Follow-ups
Agende mensagens de acompanhamento automaticas em conversas. Configure templates reutilizaveis, automacoes baseadas em triggers e regras de follow-up por estagio do pipeline.
Escopos de Follow-up
Follow-ups podem ser criados por conversa (scoped) ou gerenciados globalmente na conta. Templates e automacoes permitem escalar o processo de acompanhamento.
Follow-ups da Conversa
/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-upsLista follow-ups de uma conversa.
curl -s "https://chat.seudominio.com/api/v1/accounts/1/conversations/42/follow-ups" \
-H "api_access_token: YOUR_TOKEN" | jq .{
"payload": [
{
"id": 1,
"status": "pending",
"scheduled_at": 1771596000,
"message": "Ola! Gostaria de saber se teve chance de avaliar nossa proposta.",
"title": null,
"inbox_id": 1,
"conversation_id": 42,
"created_at": 1771212000
}
]
}/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-ups/countRetorna a contagem total de follow-ups da conversa.
{ "count": 3 }/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-upsAgenda um novo follow-up para a conversa. Body envolto em follow_up.
Body envolto em follow_up
Os campos devem estar dentro do wrapper follow_up. O conversation_idna URL e o display_id da conversa (per-account, nao ID global); ele e resolvido dentro da conta autenticada e a conversa e ligada automaticamente — nao envie conversation_id no corpo.
Body (follow_up)
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
content | string | Sim | Conteudo da mensagem de follow-up |
scheduled_at | string | Sim | Data/hora de envio (ISO 8601) |
inbox_id | integer | Sim | ID do inbox para envio |
title | string | Nao | Titulo do follow-up |
follow_up_template_id | integer | Nao | ID do template a usar |
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/conversations/42/follow-ups" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"follow_up": {
"content": "Ola! Vi que ainda nao respondeu. Posso ajudar?",
"scheduled_at": "2026-02-20T10:00:00Z",
"inbox_id": 1
}
}'/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-ups/{id}Retorna detalhes de um follow-up.
/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-ups/{id}Atualiza um follow-up pendente.
/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-ups/{id}Remove um follow-up.
/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-ups/{id}/cancelCancela um follow-up pendente sem remove-lo do historico.
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/conversations/42/follow-ups/1/cancel" \
-H "api_access_token: YOUR_TOKEN"/api/v1/accounts/{account_id}/conversations/{conversation_id}/follow-ups/{id}/retry_sendReenvia um follow-up que falhou.
Apenas Follow-ups Falhados
So e possivel reenviar follow-ups com status "failed".
Follow-ups da Conta
/api/v1/accounts/{account_id}/follow-upsLista todos os follow-ups de toda a conta (todas as conversas). Apenas a acao index existe nesta rota — criar/cancelar e feito na rota aninhada de conversa.
curl -s "https://chat.seudominio.com/api/v1/accounts/1/follow-ups" \
-H "api_access_token: YOUR_TOKEN" | jq .{
"payload": [
{
"id": 1,
"message": "Ola! Posso ajudar?",
"scheduled_at": 1771596000,
"title": null,
"inbox_id": 1,
"inbox_name": "WhatsApp Business",
"conversation_id": 42,
"status": "pending",
"user_id": 5,
"user_name": "Joao Silva",
"created_at": 1771212000
}
]
}Templates de Follow-up
Templates reutilizaveis com variaveis dinamicas para padronizar mensagens de acompanhamento.
/api/v1/accounts/{account_id}/follow-up-templatesLista todos os templates ativos da conta.
{
"payload": [
{
"id": 3,
"name": "Acompanhamento pos-proposta",
"content": "Template de acompanhamento",
"variables": ["contact_name"],
"active": true,
"items_count": 2,
"uses_items": true,
"has_attachments": false,
"attachments": [],
"user_id": 5,
"user_name": "Joao Silva",
"created_at": 1767225600,
"updated_at": 1767225600
}
]
}Itens nao vem na listagem
A listagem traz apenas items_count. Para obter os itens individuais (mensagens) de um template, use GET /follow-up-templates/{template_id}/items.
/api/v1/accounts/{account_id}/follow-up-templates/variablesLista variaveis disponiveis para uso nos templates (nomes planos, nao aninhados).
{
"variables": [
{ "name": "contact_name", "placeholder": "{{contact_name}}", "description": "Nome do contato" },
{ "name": "contact_phone", "placeholder": "{{contact_phone}}", "description": "Telefone do contato" },
{ "name": "contact_email", "placeholder": "{{contact_email}}", "description": "E-mail do contato" },
{ "name": "conversation_id", "placeholder": "{{conversation_id}}", "description": "ID da conversa" },
{ "name": "inbox_name", "placeholder": "{{inbox_name}}", "description": "Nome do canal (inbox)" },
{ "name": "agent_name", "placeholder": "{{agent_name}}", "description": "Nome do agente responsavel" },
{ "name": "card_title", "placeholder": "{{card_title}}", "description": "Titulo do card no pipeline" },
{ "name": "card_value", "placeholder": "{{card_value}}", "description": "Valor do card no pipeline" },
{ "name": "stage_name", "placeholder": "{{stage_name}}", "description": "Nome do estagio atual" },
{ "name": "pipeline_name", "placeholder": "{{pipeline_name}}", "description": "Nome do pipeline" },
{ "name": "current_date", "placeholder": "{{current_date}}", "description": "Data atual (DD/MM/YYYY)" },
{ "name": "current_time", "placeholder": "{{current_time}}", "description": "Hora atual (HH:MM)" }
]
}/api/v1/accounts/{account_id}/follow-up-templatesCria um novo template.
Body (follow_up_template)
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
name | string | Sim | Nome do template (unico por conta) |
content | string | Sim | Conteudo do template (suporta variaveis como {{contact_name}}) |
active | boolean | Nao | Se o template esta ativo (padrao: true) |
/api/v1/accounts/{account_id}/follow-up-templates/{id}Atualiza um template.
/api/v1/accounts/{account_id}/follow-up-templates/{id}Remove um template (soft delete).
Itens do Template
/api/v1/accounts/{account_id}/follow-up-templates/{template_id}/itemsAdiciona um item (mensagem) ao template. Body envolto em follow_up_template_item.
Body (follow_up_template_item)
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
content | string | Sim | Conteudo da mensagem (suporta variaveis como {{contact_name}}) |
item_type | string | Sim | Tipo do item: text, image, audio, video, document |
position | integer | Nao | Posicao do item na sequencia (0, 1, 2...). Se omitida ou 0, e anexado ao final. |
delay_seconds | integer | Nao | Delay em segundos apos o item anterior (padrao: 0). Ex: 86400 = 24h |
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/follow-up-templates/3/items" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"follow_up_template_item": {
"item_type": "text",
"content": "Ola {{contact_name}}! Tudo certo com a proposta?",
"delay_seconds": 86400
}
}'/api/v1/accounts/{account_id}/follow-up-templates/{template_id}/items/{item_id}Atualiza um item do template.
/api/v1/accounts/{account_id}/follow-up-templates/{template_id}/items/{item_id}Remove um item do template.
/api/v1/accounts/{account_id}/follow-up-templates/{template_id}/items/reorderReordena itens do template.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
items | array | Sim | Array de objetos { id, delay_seconds } na nova ordem. A posicao de cada item e definida pelo indice no array. |
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/follow-up-templates/3/items/reorder" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "id": 2, "delay_seconds": 0 },
{ "id": 1, "delay_seconds": 86400 }
]
}'/api/v1/accounts/{account_id}/follow-up-templates/{id}/previewPre-visualiza o template com variaveis substituidas.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
context | object | Nao | Objeto com pares variavel: valor para substituir (ex: { "contact_name": "Maria" }). Apenas variaveis suportadas sao usadas. Se omitido, retorna o conteudo com os placeholders preservados. |
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/follow-up-templates/3/preview" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "context": { "contact_name": "Maria", "agent_name": "Joao" } }'{
"original": "Ola {{contact_name}}, tudo certo?",
"rendered": "Ola Maria, tudo certo?",
"sample": "Ola [Nome do contato], tudo certo?"
}Automacoes de Follow-up
Configure triggers automaticos para iniciar sequencias de follow-up baseados em eventos.
/api/v1/accounts/{account_id}/follow-up-automationsLista automacoes de follow-up.
/api/v1/accounts/{account_id}/follow-up-automationsCria uma automacao de follow-up.
Body (follow_up_automation)
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
name | string | Sim | Nome da automacao (unico por conta) |
follow_up_template_id | integer | Sim | ID do template a executar |
trigger_type | string | Sim | Tipo de gatilho: label_added, label_removed, contact_created, conversation_created, conversation_resolved |
enabled | boolean | Nao | Se a automacao esta ativa (padrao: true) |
delay_minutes | integer | Nao | Delay em minutos antes de executar (padrao: 0) |
trigger_config | object | Nao | Configuracao especifica do gatilho (ex: qual etiqueta dispara label_added) |
conditions | object | Nao | Condicoes adicionais para filtrar quando a automacao dispara |
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/follow-up-automations" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"follow_up_automation": {
"name": "Follow-up pos-resolucao",
"follow_up_template_id": 3,
"trigger_type": "conversation_resolved",
"enabled": true
}
}'/api/v1/accounts/{account_id}/follow-up-automations/{id}Atualiza uma automacao.
/api/v1/accounts/{account_id}/follow-up-automations/{id}Remove uma automacao.
Regras de Follow-up por Pipeline
Configure follow-ups automaticos baseados na movimentacao de cards entre estagios do pipeline.
/api/v1/accounts/{account_id}/pipelines/{pipeline_id}/follow-up-rulesLista regras de follow-up de um pipeline.
/api/v1/accounts/{account_id}/pipelines/{pipeline_id}/follow-up-rulesCria uma regra de follow-up para o pipeline.
Body (pipeline_follow_up_rule)
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
to_stage | string | Sim | ID do estagio destino que aciona a regra (ex: "755_entrada_de_lead") |
follow_up_template_id | integer | Sim | ID do template a executar |
from_stage | string | Nao | ID do estagio de origem (opcional, filtra apenas cards vindos deste estagio) |
delay_minutes | integer | Nao | Delay em minutos apos entrar no estagio (padrao: 0) |
enabled | boolean | Nao | Se a regra esta ativa (padrao: true) |
/api/v1/accounts/{account_id}/pipelines/{pipeline_id}/follow-up-rules/{id}Atualiza uma regra.
/api/v1/accounts/{account_id}/pipelines/{pipeline_id}/follow-up-rules/{id}Remove uma regra.