Ajoutez une adresse https sous Intégrations → Webhooks et notifications pour recevoir les événements d’appel :
| Événement | Quand |
|---|---|
call.started | L’agent a décroché |
call.ended | L’appel est terminé, avec sa durée et ses crédits |
call.analyzed | Le résumé, le résultat, les champs extraits et la transcription sont prêts |
call.transcript | Pendant l’appel, les nouvelles lignes de la transcription toutes les quelques secondes |
call.tool_called | L’agent a appelé l’une de vos fonctions : name, arguments, status, durationMs |
call.handed_off | L’appel a été confié à un autre agent : fromAgentId, toAgentId |
call.transferred | L’appel a été transféré à une personne : destination |
call.voicemail | Un appel sortant est tombé sur une messagerie |
call.do_not_call | La personne d’un appel sortant a demandé à ne plus être appelée : phone |
call.recording_ready | L’enregistrement sur deux canaux est stocké : recordingUrl (valable 24 heures), durationMs |
call.message_sent | L’agent a affiché des cartes sur l’écran d’un appelant web ou app : items, quickReplies |
alert.triggered | L’une de vos alertes (Webhooks et notifications → Alertes) a franchi son seuil |
alert.resolved | Cette alerte est revenue à la normale |
Les événements envoyés pendant un appel portent data.call (id, agentId, channel, direction, numéros). Chaque requête est signée :
EvaSay-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">
EvaSay-Delivery: <delivery id>
Vérifiez la signature avec le secret du webhook affiché à sa création, et répondez avec un statut 2xx. Les livraisons échouées sont réessayées après 1 minute, 5 minutes, 30 minutes, 2 heures et 12 heures avec le même contenu et le même identifiant EvaSay-Delivery, pour que vous puissiez ignorer les doublons. Les dernières livraisons d’un webhook, avec le contenu exact envoyé et le statut répondu par votre point de terminaison, sont listées par GET /webhooks/{id}/deliveries et dans le tableau de bord ; POST /webhooks/{id}/deliveries/{delivery_id} en renvoie une.
En plus de l’e-mail et des webhooks alert.triggered / alert.resolved, les alertes peuvent aller vers un canal Slack (incoming webhook), un robot de groupe WeCom ou Telegram sous Webhooks et notifications → Alertes → Envoyer aussi à.
Créez un webhook via POST /webhooks avec { "url": "https://crm.example.com/evasay-events", "events": ["call.analyzed"] }. La réponse contient l’abonnement et un secret de signature généré, renvoyé uniquement à la création. Vérifiez EvaSay-Signature, dédupliquez EvaSay-Delivery et mettez à jour votre CRM. Les webhooks d’événements sont des notifications asynchrones ; les outils en cours d’appel renvoient leurs résultats directement à l’agent.