/automations
Lê os fluxos de automação e o que aconteceu em cada execução.
Escopo necessário: agents:read. Limite: 120 requisições por minuto.
Endpoints
| Método | Rota | Devolve |
|---|---|---|
| GET | /automations |
Lista de fluxos |
| GET | /automations/{id} |
Um fluxo |
| GET | /automations/{id}/runs |
Execuções do fluxo |
| POST | /automations/{id}/start |
Coloca um contato no fluxo |
| POST | /automations/{id}/stop |
Tira um contato do fluxo |
Filtros: status na lista de fluxos; status e contact_id na lista de execuções.
Exemplo
curl "https://api.wevi.chat/functions/v1/automations?status=active" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
const res = await fetch("https://api.wevi.chat/functions/v1/automations?status=active", {
headers: { Authorization: "Bearer wevi_SUA_CHAVE" },
});
const { data } = await res.json();
Objeto do fluxo
{
"id": "dddd0000-0000-4000-8000-0000000000d2",
"name": "Confirmação de consulta",
"status": "active",
"connection_id": "dddd0000-...",
"trigger": {
"webhook_enabled": true,
"type": "webhook",
"tag_id": null,
"stage_id": null
},
"exit_conditions": { "on_reply": true },
"re_entry_cooldown_hours": 24,
"node_count": 6,
"created_at": "2026-07-02T09:00:00Z",
"updated_at": "2026-08-14T16:30:00Z"
}
O token de webhook do fluxo é credencial e não aparece na resposta. Ele fica na tela do fluxo, no painel.
Execuções
curl "https://api.wevi.chat/functions/v1/automations/{id}/runs?status=active" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
{
"id": "9c2f...",
"flow_id": "dddd0000-...",
"contact_id": "cccc...",
"phone": "5511999998888",
"status": "active",
"current_node_id": "wait_2",
"next_action_at": "2026-09-08T14:00:00Z",
"exit_reason": null,
"trigger_source": "webhook",
"metadata": { "name": "Maria" },
"started_at": "2026-09-07T14:00:00Z",
"ended_at": null
}
next_action_at é quando o fluxo volta a agir para aquele contato. exit_reason explica por que a execução terminou: resposta do contato, condição de saída ou fim do fluxo.
Colocar e tirar do fluxo
curl -X POST "https://api.wevi.chat/functions/v1/automations/{id}/start" \
-H "Authorization: Bearer wevi_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{"phone":"5511999998888","name":"Maria","custom_fields":{"pedido":"8412"}}'
O contato é criado ou atualizado pelo telefone antes de entrar. Valem as mesmas travas do gatilho por webhook: quem está em opt-out não entra, quem já tem execução ativa naquele fluxo não entra de novo, e quem saiu há pouco espera o período configurado.
| Status | error |
Quando |
|---|---|---|
| 403 | opted_out |
O contato pediu para não receber mais |
| 409 | active_run_exists |
Já está numa execução ativa deste fluxo |
| 409 | cooldown |
Saiu há pouco tempo; details.retry_at diz quando libera |
| 409 | flow_inactive |
O fluxo está em rascunho ou pausado |
Para tirar alguém do meio do caminho:
curl -X POST "https://api.wevi.chat/functions/v1/automations/{id}/stop" \
-H "Authorization: Bearer wevi_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{"phone":"5511999998888","reason":"comprou pelo site"}'
Aceita phone ou contact_id. O que ainda não foi enviado não sai.
Existe também o /automation-trigger, com token próprio por fluxo, que continua funcionando.