/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"

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.