Pular para o conteúdo

Cron Jobs, Dashboard & Health

Todas as rotas cron usam autenticação via Authorization: Bearer {CRON_SECRET} e tem dynamic = "force-dynamic".


Descrição: Executa automações agendadas (trigger_type = “schedule”) que atingiram seu intervalo de execução. Auth: Cron-only (Bearer CRON_SECRET)

Response:

  • 200: { data: { executed: number, total: number } }
  • 401: { error: "Unauthorized" }

Notas:

  • Busca automações com trigger_type = "schedule", is_active = true, deleted_at IS NULL.
  • Para cada automação, verifica intervalo (schedule_interval em minutos, default 60) e ausencia de execução “running”.
  • Atualiza trigger_config.last_run_at antes de executar (previne dupla execução).
  • Execução fire-and-forget.

Descrição: Recalcula membros de todos os segmentos dinâmicos. Dispara triggers segment_entered e segment_exited. Auth: Cron-only (Bearer CRON_SECRET) Max Duration: 300 segundos (5 minutos)

Response:

  • 200: { data: { processed, errors, total, results: [{ segment_id, name, added, removed, total }] } }

Notas:

  • Busca segmentos com is_dynamic = true, ordenados por last_calculated_at ASC.
  • Usa RPC evaluate_segment_members para cada segmento.
  • Compara membros para detectar entradas e saídas.

Descrição: Recalcula scores RFM para todas as contas com pedidos pagos vinculados a contatos. Auth: Cron-only (Bearer CRON_SECRET)

Response:

  • 200: { data: { processed, errors, total } }

Descrição: Renova tokens de acesso WhatsApp que expiram nos proximos 7 dias via fb_exchange_token. Auth: Cron-only (Bearer CRON_SECRET)

Response:

  • 200: { refreshed, failed, total, results: [{ id, success, error? }] }

Notas: Em caso de falha, cria notificação de warning pedindo ao cliente para reconectar o WhatsApp.


Descrição: Suspende contas com assinatura “past_due” há mais de 3 dias. Auth: Cron-only (Bearer CRON_SECRET)

Response:

  • 200: { data: { suspended, total } }

Notas: Atualiza billing_subscriptions.status e accounts.status para “suspended”. Cria notificação de erro.


Descrição: Verifica e garante qué webhooks Yampi estão ativos para todas as integrações. Auth: Cron-only (Bearer CRON_SECRET)

Response:

  • 200: { ok: true, checked, results: [{ store, action }] }

Notas: Suporta autenticação OAuth e legacy. Eventos monitorados: order.created, order.paid, order.status.updated, cart.reminder, transaction.payment.refused, customer.created.


Descrição: Retorna estatísticas completas do dashboard: KPIs principais, variação semanal, mensagens por dia, conversas por status, campanhas recentes e conversas recentes. Auth: Required

Response:

  • 200:
{
"kpi": {
"contacts": 1500,
"messagesSent": 3200,
"templates": 15,
"activeAutomations": 8,
"contactsChange": 12,
"messagesChange": -5,
"recoveredRevenue": 15000.00,
"ordersThisMonth": 42
},
"messagesByDay": [{ "date": "seg., 17", "sent": 50, "received": 30 }],
"conversationsByStatus": [{ "status": "open", "count": 25 }],
"recentCampaigns": ["..."],
"recentConversations": ["..."]
}

Notas: 18 queries paralelas via Promise.all. Variação semanal compara esta semana vs semana passada.


Descrição: Health check do sistema. Verifica conectividade com o banco de dados. Auth: Public

Response:

  • 200:
{
"status": "ok | degraded",
"timestamp": "2026-02-20T12:00:00.000Z",
"uptime": 86400.123,
"latency": 45,
"services": { "database": "ok | error" }
}