Esta página descreve todos os status possíveis para campanhas, incluindo transições válidas e comportamentos esperados.
Status de Campanha
As campanhas possuem 6 status principais que representam seu ciclo de vida:DRAFT
Rascunho - Campanha criada mas ainda não iniciada
SCHEDULED
Agendada - Campanha programada para execução futura
RUNNING
Em Execução - Campanha enviando mensagens ativamente
PAUSED
Pausada - Campanha temporariamente suspensa
COMPLETED
Concluída - Todas as mensagens foram processadas
CANCELLED
Cancelada - Campanha interrompida permanentemente
Fluxo de Status
Diagrama de Transições
Regras de Transição
✅ Transições Permitidas
Status Atual | Status Destino | Ação/Trigger | Condições |
---|---|---|---|
DRAFT | RUNNING | Criar sem agendamento | Execução imediata |
DRAFT | SCHEDULED | Criar com agendamento | Data futura definida |
SCHEDULED | RUNNING | Automático | Horário agendado chegou |
SCHEDULED | CANCELLED | Cancelar | Antes da execução |
RUNNING | PAUSED | Pausar | A qualquer momento |
RUNNING | COMPLETED | Automático | Todas mensagens enviadas |
RUNNING | CANCELLED | Cancelar | A qualquer momento |
PAUSED | RUNNING | Retomar | Dentro do prazo |
PAUSED | CANCELLED | Cancelar | A qualquer momento |
❌ Transições Não Permitidas
Status Atual | Status Destino | Motivo |
---|---|---|
COMPLETED | Qualquer | Campanha já finalizada |
CANCELLED | Qualquer | Campanha cancelada permanentemente |
DRAFT | PAUSED | Não pode pausar antes de iniciar |
SCHEDULED | PAUSED | Não pode pausar campanha agendada |
PAUSED | SCHEDULED | Não pode reagendar campanha pausada |
Comportamentos por Status
DRAFT (Rascunho)
Características
- Status inicial de toda campanha criada com
isDraft: true
- Nenhuma mensagem enviada
- Pode ser iniciada imediatamente ou agendada
- Configurações podem ser alteradas livremente
- Sem limite de tempo neste status
createdAt
: Data de criaçãosentCount
: Sempre 0status
: “DRAFT”totalContacts
: Número de contatos definidos
SCHEDULED (Agendada)
Características
- Campanha aguardando horário programado
- Worker verifica a cada minuto por campanhas prontas
- Inicia automaticamente no horário definido
- Pode ser cancelada antes do início
- Notificação enviada quando inicia (se configurado)
scheduledFor
: Data/hora programadastatus
: “SCHEDULED”sentCount
: Sempre 0message
: Pode estar vazio se for enquete
RUNNING (Em Execução)
Características
- Enviando mensagens ativamente
- Respeita intervalos configurados
- Atualiza contadores em tempo real
- Pode ser pausada ou cancelada
- Remove automaticamente contatos bloqueados
startedAt
: Momento do início realsentCount
: Incrementado a cada enviofailedCount
: Contador de falhasstatus
: “RUNNING”progress
: Percentual calculado
PAUSED (Pausada)
Características
- Interrupção temporária do envio
- Mantém posição na fila de contatos
- Pode ser retomada ou cancelada
- Tempo máximo de pausa configurável
- Estado preservado para continuação
pausedAt
: Momento da pausasentCount
: Congelado no valor atualstatus
: “PAUSED”remainingContacts
: Calculado dinamicamente
Por padrão, campanhas pausadas há mais de 24 horas são canceladas automaticamente.
COMPLETED (Concluída)
Características
- Todos os contatos foram processados
- Status final bem-sucedido
- Não pode ser modificada
- Estatísticas finais disponíveis
- Notificação de conclusão enviada (se configurado)
completedAt
: Momento da conclusãosentCount
: Total de enviados com sucessofailedCount
: Total de falhasduration
: Tempo total de execução
CANCELLED (Cancelada)
Características
- Interrupção permanente
- Não pode ser retomada
- Mantém histórico parcial
- Libera recursos do sistema
- Registra motivo do cancelamento
cancelledAt
: Momento do cancelamentocancelledBy
: Usuário ou sistemasentCount
: Mensagens enviadas antes do cancelamentoreason
: Motivo (manual, timeout, erro)
Campos de Controle
Timestamps
Contadores
API de Transições
Pausar Campanha
- Status atual: RUNNING
- Campanha pertence à empresa do token
Retomar Campanha
- Status atual: PAUSED
- Dentro do prazo permitido
- Evolution API conectada
Cancelar Campanha
- Status atual: SCHEDULED, RUNNING ou PAUSED
- Campanha pertence à empresa do token
Webhooks de Status
Eventos Disparados
Configuração
Configure URLs de webhook nas configurações da empresa para receber notificações de mudança de status.Boas Práticas
Monitoramento
Acompanhe campanhas RUNNING regularmente
Timeouts
Configure timeouts apropriados para PAUSED
Limpeza
Archive campanhas COMPLETED antigas
Logs
Mantenha logs de transições para auditoria
Troubleshooting
Campanha travada em RUNNING
Possíveis causas:- Worker parado ou com erro
- Evolution API desconectada
- Fila Redis congestionada
- Verificar logs do worker
- Confirmar conexão Evolution
- Pausar e retomar campanha
- Reiniciar worker se necessário
Campanha não inicia no horário agendado
Possíveis causas:- Fuso horário incorreto
- Worker não está rodando
- Campanha foi cancelada
- Verificar configuração de timezone
- Confirmar worker ativo
- Verificar logs de sistema
Status inconsistente
Possíveis causas:- Modificação manual no banco
- Erro durante transição
- Concorrência de processos
- Usar apenas APIs oficiais
- Verificar logs de erro
- Implementar locks apropriados
Referência Rápida
Status | Cor | Pode Pausar | Pode Cancelar | Pode Retomar | É Final |
---|---|---|---|---|---|
DRAFT | Cinza | ❌ | ❌ | ❌ | ❌ |
SCHEDULED | Roxo | ❌ | ✅ | ❌ | ❌ |
RUNNING | Verde | ✅ | ✅ | ❌ | ❌ |
PAUSED | Amarelo | ❌ | ✅ | ✅ | ❌ |
COMPLETED | Azul | ❌ | ❌ | ❌ | ✅ |
CANCELLED | Vermelho | ❌ | ❌ | ❌ | ✅ |