> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apollospace.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rotinas

> Tarefas recorrentes e gatilhos agendados — o cron do Apollo Space pra automatizar o que se repete.

## Pra que servem rotinas

**Rotinas** são tarefas que **se repetem em uma cadência fixa** —
toda segunda às 9h, todo dia útil às 18h, todo primeiro dia do mês.

Em vez de você lembrar de fazer + executar manualmente, uma rotina
**dispara automaticamente** no momento configurado e executa o que
você definiu — podendo envolver um agente, uma criação de task, um
envio outbound, ou uma combinação.

## Quando usar rotina vs task

| Cenário                                              | Use                     |
| ---------------------------------------------------- | ----------------------- |
| "Tenho que fazer X uma vez, semana que vem"          | **Task** com data       |
| "Tenho que fazer X toda semana, indefinidamente"     | **Rotina**              |
| "Quero que o agente revise leads parados toda terça" | **Rotina** + agente     |
| "Vou disparar uma campanha agora pros leads novos"   | **Outbound** (one-shot) |
| "Quero relatório semanal por e-mail toda sexta 18h"  | **Rotina** + Marcus     |

A regra geral: **se você ainda vai precisar fazer de novo na semana
que vem**, vale criar rotina.

## Anatomia de uma rotina

<CardGroup cols={2}>
  <Card title="Cadência" icon="calendar">
    Quando dispara — diária / semanal / mensal / cron expression
    custom. Suporta fuso horário da org.
  </Card>

  <Card title="Ação" icon="bolt">
    O que executa no momento do disparo — chamar um agente, criar
    uma task, enviar uma mensagem, rodar um pipeline outbound.
  </Card>

  <Card title="Contexto" icon="brain">
    Inputs que a rotina passa pra ação (ex.: "leads que não tiveram
    atividade nos últimos 7 dias"). Pode ser estático ou dinâmico.
  </Card>

  <Card title="Histórico" icon="clock-rotate-left">
    Cada execução fica registrada — quando rodou, o que executou,
    se deu certo, quanto gastou em Stars.
  </Card>
</CardGroup>

## Padrões comuns

<AccordionGroup>
  <Accordion title="Relatório semanal pro time" icon="file-chart-column">
    **Cadência:** toda sexta às 18h
    **Ação:** Athena consulta atividade da semana + monta resumo em
    documento
    **Output:** doc novo numa pasta compartilhada + notificação no
    chat dos owners

    Útil pra: visibility recurring sem trabalho manual.
  </Accordion>

  <Accordion title="Re-engajamento de leads parados" icon="reply-clock">
    **Cadência:** toda terça às 10h
    **Ação:** Marcus revisa leads sem atividade nos últimos 14 dias
    e propõe rascunhos de follow-up (HITL ligado, você aprova)
    **Output:** drafts aguardando aprovação no chat

    Útil pra: evitar que oportunidade morra por falta de toque.
  </Accordion>

  <Accordion title="Limpeza mensal do pipeline" icon="broom">
    **Cadência:** primeiro dia do mês às 8h
    **Ação:** Athena arquiva leads em estado terminal há mais de 90
    dias + identifica duplicatas
    **Output:** task de revisão pro owner do pipeline

    Útil pra: pipeline não ficar inflado com lixo histórico.
  </Accordion>

  <Accordion title="Importação automática de leads" icon="file-import">
    **Cadência:** todo dia útil às 7h
    **Ação:** roda um actor Apify (Maps lead search com query
    pré-definida) e adiciona resultados novos no pipeline
    "Outbound novo"
    **Output:** N leads novos prontos pra o Marcus trabalhar

    Útil pra: manter o funil sempre alimentado sem trabalho manual.
  </Accordion>
</AccordionGroup>

## Configurar uma rotina

<Steps>
  <Step title="Sidebar → Rotinas → Nova rotina">
    Abre o configurador.

    **Resultado esperado:** painel com 4 abas (Cadência / Ação /
    Contexto / Notificação).
  </Step>

  <Step title="Defina a cadência">
    Opções:

    * **Diária** (escolhe hora)
    * **Semanal** (dias da semana + hora)
    * **Mensal** (dia do mês + hora)
    * **Custom** (cron expression — pra cenários complexos)

    <Tip>
      Pra cron expressions, formato padrão Linux: `0 18 * * 5` =
      sexta-feira às 18h. Veja [crontab.guru](https://crontab.guru)
      pra testar a sua expression.
    </Tip>
  </Step>

  <Step title="Escolha a ação">
    O que vai executar:

    * **Chamar agente** — passa prompt pré-definido pro Scout /
      Marcus / Athena
    * **Criar task** — task nova num board específico
    * **Disparar outbound** — rodar campanha existente em audiência
      filtrada
    * **Executar tool** — ex.: rodar `maps_lead_search` direto

    Cada tipo abre seu próprio configurador.
  </Step>

  <Step title="Defina notificação (opcional)">
    Quando a rotina termina, quem é notificado:

    * Ninguém (silenciosa)
    * Você (notificação no inbox)
    * Pessoas específicas (mention)
    * Canal externo (Slack via Composio)
  </Step>

  <Step title="Ative">
    Toggle **Ativa**. A próxima execução agendada aparece embaixo —
    confirma se a cadência ficou certa antes de fechar.
  </Step>
</Steps>

## Limites e gotchas

<Warning>
  **Rotinas consomem Stars** — assim como qualquer ação cobrável.
  Uma rotina que chama um agente diariamente vai debitar Stars todo
  dia. Veja a estimativa de custo antes de ativar; ela aparece no
  configurador baseado no histórico da org.
</Warning>

<CardGroup cols={2}>
  <Card title="Cap diário do agente vale" icon="gauge-high">
    Se a rotina dispara um agente que tem cap diário, e a rotina
    estoura o cap, a execução é bloqueada. Você é notificado pra
    decidir: subir o cap ou aceitar a falha pontual.
  </Card>

  <Card title="Skip em janelas sensíveis" icon="moon">
    Configurações da org podem definir janelas sensíveis (fim de
    semana, feriado, after-hours) onde rotinas não disparam outbound
    pra clientes. Internal-only continua rodando.
  </Card>

  <Card title="Idempotência por execução" icon="shield-check">
    Se uma rotina falha e tenta de novo, ela usa Idempotency-Key
    pra evitar duplo-disparo. Você não corre risco de mandar a
    mesma mensagem duas vezes.
  </Card>

  <Card title="Backfill desligado por default" icon="ban">
    Se a rotina ficou pausada por 3 dias e você reativa, **não roda
    as 3 execuções perdidas**. Roda só a próxima agendada. Pra
    backfill explícito, use "Rodar agora" manualmente.
  </Card>
</CardGroup>

## Auditoria

Cada execução de rotina gera entrada no histórico:

| Campo                         | O que registra                                |
| ----------------------------- | --------------------------------------------- |
| `executed_at`                 | Timestamp da execução                         |
| `routine_id` + `routine_name` | Qual rotina                                   |
| `action_type`                 | Tipo de ação (agent / task / outbound / tool) |
| `status`                      | success / failed / skipped                    |
| `cost_stars`                  | Quanto gastou em Stars                        |
| `output_ref`                  | Link pro recurso criado (task, draft, etc.)   |

Owner + Admin podem inspecionar em **Rotinas → cliques numa
rotina → aba Histórico**.

## Próximos passos

<CardGroup cols={2}>
  <Card title="Outbound" icon="paper-plane" href="/features/outbound">
    Como o Marcus opera as campanhas que rotinas podem disparar.
  </Card>

  <Card title="Agentes" icon="robot" href="/concepts/agents">
    Quem você pode chamar de dentro de uma rotina.
  </Card>

  <Card title="Caps" icon="gauge-high" href="/billing/caps">
    Como travar gasto de rotinas que ficaram em loop.
  </Card>

  <Card title="Composio" icon="puzzle-piece" href="/integrations/composio">
    Pra integrações externas que rotinas acionam (Slack notify,
    Calendar, Notion).
  </Card>
</CardGroup>
