Skip to content

Mensagens agendadas

Programe o envio de mensagens para um momento futuro — pontual ou recorrente. Ótimo para follow-up pós-venda, lembretes de consulta, nutrição de leads e newsletters. Suporta anexos e templates de WhatsApp.

Base e autenticação

As rotas usam a base https://appchat01.interleads.chat e exigem o cabeçalho api_access_token. Existem dois escopos: por conta e por conversa.

Endpoints

Por conta — /api/v1/accounts/{account_id}/scheduled_messages

MétodoRotaDescrição
GET/scheduled_messagesLista (ordenado por scheduled_at desc; resultado em payload)
GET/scheduled_messages/{id}Detalhes de um agendamento
POST/scheduled_messagesCria (simples, com anexos, template ou recorrente)
PUT/scheduled_messages/{id}Atualiza (somente enquanto pending)
POST/scheduled_messages/{id}/cancelCancela o agendamento
DELETE/scheduled_messages/{id}Exclui (qualquer status; 204 No Content)

Por conversa — /api/v1/accounts/{account_id}/conversations/{conversation_id}/scheduled_messages

MétodoRotaDescrição
GET/scheduled_messagesLista os agendamentos da conversa
GET/scheduled_messages/{id}Detalhes
POST/scheduled_messagesCria
PUT/scheduled_messages/{id}Atualiza
POST/scheduled_messages/{id}/cancelCancela
DELETE/scheduled_messages/{id}Exclui
GET/scheduled_messages/countConta (filtro opcional ?status=pending)

Criar um agendamento simples

Campos: inbox_id, contact_id, content, scheduled_at (ISO 8601 UTC, no futuro), title.

bash
curl -X POST "https://appchat01.interleads.chat/api/v1/accounts/3/scheduled_messages" \
  -H "api_access_token: $INTERLEADS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "inbox_id": 5,
    "contact_id": 456,
    "content": "Olá! Passando para lembrar da sua consulta amanhã às 14h.",
    "scheduled_at": "2026-02-06T15:00:00Z",
    "title": "Lembrete de consulta"
  }'
js
const res = await fetch(
  "https://appchat01.interleads.chat/api/v1/accounts/3/scheduled_messages",
  {
    method: "POST",
    headers: {
      api_access_token: process.env.INTERLEADS_TOKEN,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      inbox_id: 5,
      contact_id: 456,
      content: "Olá! Passando para lembrar da sua consulta amanhã às 14h.",
      scheduled_at: "2026-02-06T15:00:00Z",
      title: "Lembrete de consulta",
    }),
  }
)

Agendamentos recorrentes

Para repetir o envio, some os campos de recorrência ao corpo:

CampoValoresObservação
recurrence_typenone / daily / weekly / monthly / yearlytipo da repetição
recurrence_intervalinteiroa cada N períodos (ex.: 2 = a cada 2 semanas)
recurrence_daysarray 06 (0=Dom … 6=Sáb)somente com weekly
recurrence_end_typenever / on_date / after_occurrencesquando parar
recurrence_end_dateISO 8601 UTCse on_date
recurrence_max_occurrencesinteirose after_occurrences
bash
# toda segunda e quarta, às 12h UTC, por 10 ocorrências
curl -X POST "https://appchat01.interleads.chat/api/v1/accounts/3/scheduled_messages" \
  -H "api_access_token: $INTERLEADS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "inbox_id": 5,
    "contact_id": 456,
    "content": "Bom dia! Sua dose de novidades da semana.",
    "scheduled_at": "2026-02-09T12:00:00Z",
    "title": "Newsletter",
    "recurrence_type": "weekly",
    "recurrence_interval": 1,
    "recurrence_days": [1, 3],
    "recurrence_end_type": "after_occurrences",
    "recurrence_max_occurrences": 10
  }'

Cada ocorrência gerada traz um parent_id apontando para o agendamento-pai. Excluir o pai interrompe as ocorrências futuras.

Status e regras

  • Status: pendingsent ou failed. O status não é editável manualmente — para interromper um pending, use cancel ou DELETE.
  • Datas: sempre ISO 8601 em UTC; não é possível agendar no passado.
  • Anexos: até 15 por agendamento.
  • Templates de WhatsApp: exigem aprovação prévia e o campo template_params com a estrutura exata do template.

Webhooks

Você pode reagir ao ciclo de vida assinando os eventos scheduled_message.created, scheduled_message.updated e scheduled_message.deleted.

Erros comuns

CódigoSignificado
403Sem permissão para gerenciar este agendamento
404Agendamento não encontrado
422Dados inválidos (ex.: scheduled_at no passado, mais de 15 anexos)

Documentação da API — Interleads Chat.