Aparência
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étodo | Rota | Descrição |
|---|---|---|
GET | /scheduled_messages | Lista (ordenado por scheduled_at desc; resultado em payload) |
GET | /scheduled_messages/{id} | Detalhes de um agendamento |
POST | /scheduled_messages | Cria (simples, com anexos, template ou recorrente) |
PUT | /scheduled_messages/{id} | Atualiza (somente enquanto pending) |
POST | /scheduled_messages/{id}/cancel | Cancela 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étodo | Rota | Descrição |
|---|---|---|
GET | /scheduled_messages | Lista os agendamentos da conversa |
GET | /scheduled_messages/{id} | Detalhes |
POST | /scheduled_messages | Cria |
PUT | /scheduled_messages/{id} | Atualiza |
POST | /scheduled_messages/{id}/cancel | Cancela |
DELETE | /scheduled_messages/{id} | Exclui |
GET | /scheduled_messages/count | Conta (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:
| Campo | Valores | Observação |
|---|---|---|
recurrence_type | none / daily / weekly / monthly / yearly | tipo da repetição |
recurrence_interval | inteiro | a cada N períodos (ex.: 2 = a cada 2 semanas) |
recurrence_days | array 0–6 (0=Dom … 6=Sáb) | somente com weekly |
recurrence_end_type | never / on_date / after_occurrences | quando parar |
recurrence_end_date | ISO 8601 UTC | se on_date |
recurrence_max_occurrences | inteiro | se 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_idapontando para o agendamento-pai. Excluir o pai interrompe as ocorrências futuras.
Status e regras
- Status:
pending→sentoufailed. Ostatusnão é editável manualmente — para interromper umpending, usecancelouDELETE. - 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_paramscom 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ódigo | Significado |
|---|---|
403 | Sem permissão para gerenciar este agendamento |
404 | Agendamento não encontrado |
422 | Dados inválidos (ex.: scheduled_at no passado, mais de 15 anexos) |