Adicione um endereço https em Integrações → Webhooks e notificações para receber eventos de chamada:
| Evento | Quando |
|---|---|
call.started | O agente atendeu |
call.ended | A chamada terminou, com duração e créditos |
call.analyzed | O resumo, o resultado, os campos extraídos e a transcrição estão prontos |
call.transcript | Durante a chamada, as novas linhas da transcrição a cada poucos segundos |
call.tool_called | O agente chamou uma das suas funções: name, arguments, status, durationMs |
call.handed_off | A chamada foi passada a outro agente: fromAgentId, toAgentId |
call.transferred | A chamada foi transferida para uma pessoa: destination |
call.voicemail | Uma chamada de saída chegou a uma caixa postal |
call.do_not_call | A pessoa de uma chamada de saída pediu para não ser chamada de novo: phone |
call.recording_ready | A gravação de dois canais está armazenada: recordingUrl (válido por 24 horas), durationMs |
call.message_sent | O agente mostrou cartões na tela de quem liga pela web ou pelo app: items, quickReplies |
alert.triggered | Um dos seus alertas (Webhooks e notificações → Alertas) ultrapassou o limite |
alert.resolved | Esse alerta voltou ao normal |
Os eventos enviados durante uma chamada trazem data.call (id, agentId, channel, direction, números). Cada requisição é assinada:
EvaSay-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">
EvaSay-Delivery: <delivery id>
Verifique a assinatura com o segredo do webhook exibido quando você o criou, e responda com um status 2xx. As entregas com falha são repetidas após 1 minuto, 5 minutos, 30 minutos, 2 horas e 12 horas com o mesmo corpo e o mesmo id EvaSay-Delivery, então você pode ignorar as repetições. As últimas entregas de um webhook, com o corpo exato enviado e o status que seu endpoint respondeu, são listadas por GET /webhooks/{id}/deliveries e no painel; POST /webhooks/{id}/deliveries/{delivery_id} reenvia uma.
Além do e-mail e dos webhooks alert.triggered / alert.resolved, os alertas podem ir para um canal do Slack (incoming webhook), um robô de grupo do WeCom ou o Telegram em Webhooks e notificações → Alertas → Enviar também para.
Crie um webhook com POST /webhooks e { "url": "https://crm.example.com/evasay-events", "events": ["call.analyzed"] }. A resposta contém a assinatura e um segredo de assinatura gerado, retornado somente na criação. Verifique EvaSay-Signature, desduplique EvaSay-Delivery e atualize o seu CRM. Os webhooks de eventos são notificações assíncronas; as ferramentas durante a chamada retornam os resultados diretamente ao agente.