A página Agendamento (/schedule) consolida dois tipos de envios futuros em uma única visão:
- Conteúdos agendados (criados via biblioteca
/content)
- Campanhas agendadas (WhatsApp e Email, criadas em
/campaigns/new ou /campaigns/new-email)
Filtros
- Tipo: Todos · Conteúdo · Template/Campanha
- Status: Aguardando · Enviando · Concluído · Falhou · Cancelado
Cancelar
Itens com status Aguardando podem ser cancelados pelo botão Cancelar. Itens já em Enviando precisam ser pausados/cancelados na respectiva tela (Campanha > Pausar; Conteúdo já parte para fila e não é cancelável após o início).
Como agendar
- 1Conteúdo: em
/content > Enviar > marque "Agendar"
- 2Campanha WhatsApp: em
/campaigns/new > defina data + horário antes de criar
- 3Campanha Email: em
/campaigns/new-email > defina data + horário antes de criar
- 4Disparo Novo: botão + Novo Envio na tela de Agendamento abre o diálogo de criação rápida
Como funciona por baixo
- Scheduler interno (
whatsapp-service/src/lib/scheduler.ts) faz polling a cada 60s
- Quando
next_run_at <= now, o item é enfileirado no BullMQ
- Workers processam respeitando rate-limit do canal (10/s para email, configurável para WA)
Boas práticas
- Não agende muito próximo do horário atual — o scheduler pode levar até 60s para detectar; agende com ≥ 2 minutos de antecedência.
- Considere fuso horário — o agendamento usa o timezone configurado no tenant. Confirme em
/settings.
- Para envios recorrentes, use Automações Agendadas (
flow_type = 'scheduled') em vez de agendar manualmente.