Añade una dirección https en Integraciones → Webhooks y notificaciones para recibir eventos de llamada:
| Evento | Cuándo |
|---|---|
call.started | El agente contestó |
call.ended | La llamada terminó, con su duración y créditos |
call.analyzed | El resumen, el resultado, los campos extraídos y la transcripción están listos |
call.transcript | Durante la llamada, las líneas nuevas de la transcripción cada pocos segundos |
call.tool_called | El agente llamó a una de tus funciones: name, arguments, status, durationMs |
call.handed_off | La llamada se pasó a otro agente: fromAgentId, toAgentId |
call.transferred | La llamada se transfirió a una persona: destination |
call.voicemail | Una llamada saliente llegó a un buzón |
call.do_not_call | La persona de una llamada saliente pidió que no se la volviera a llamar: phone |
call.recording_ready | La grabación de dos canales está almacenada: recordingUrl (válido 24 horas), durationMs |
call.message_sent | El agente mostró tarjetas en la pantalla de quien llama por web o app: items, quickReplies |
alert.triggered | Una de tus alertas (Webhooks y notificaciones → Alertas) superó su umbral |
alert.resolved | Esa alerta ha vuelto a la normalidad |
Los eventos enviados durante una llamada llevan data.call (id, agentId, channel, direction, números). Cada solicitud va firmada:
EvaSay-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">
EvaSay-Delivery: <delivery id>
Verifica la firma con el secreto del webhook que se mostró al crearlo, y responde con un estado 2xx. Las entregas fallidas se reintentan tras 1 minuto, 5 minutos, 30 minutos, 2 horas y 12 horas con el mismo cuerpo y el mismo id EvaSay-Delivery, así que puedes ignorar las repeticiones. Las últimas entregas de un webhook, con el cuerpo exacto enviado y el estado que respondió tu endpoint, las lista GET /webhooks/{id}/deliveries y el panel; POST /webhooks/{id}/deliveries/{delivery_id} reenvía una.
Además del correo electrónico y de los webhooks alert.triggered / alert.resolved, las alertas pueden ir a un canal de Slack (incoming webhook), a un robot de grupo de WeCom o a Telegram en Webhooks y notificaciones → Alertas → Enviar también a.
Crea un webhook mediante POST /webhooks con { "url": "https://crm.example.com/evasay-events", "events": ["call.analyzed"] }. La respuesta contiene la suscripción y un secreto de firma generado, devuelto solo al crearla. Verifica EvaSay-Signature, deduplica EvaSay-Delivery y actualiza tu CRM. Los webhooks de eventos son notificaciones asíncronas; las herramientas durante la llamada devuelven los resultados directamente al agente.