Webhooks & API REST
Vos appels dans votre système, en temps réel
À la fin de chaque appel, Sylen envoie la fiche complète, appelant, résumé, rendez-vous, message, à l’adresse de votre choix. Votre CRM, votre ERP ou votre automatisation la reçoit sans que personne n’ait à ouvrir un tableau de bord.
- Webhooks signés HMAC
- API REST & OpenAPI
- Aucun audio conservé
- Journal et rejeu
Le trajet
Ce qui se passe après le raccroché
Aucune synchronisation à planifier, aucun fichier à récupérer : l’événement part dès que l’appel est traité, et il est scellé avant de partir.
- 1
L’appel est traité
Votre agent répond, prend le rendez-vous ou le message, puis raccroche.
- 2
La fiche est construite
Résumé, intention, ressenti, résultat de l’appel et coordonnées de l’appelant.
- 3
L’envoi est signé
Un POST JSON scellé en HMAC-SHA256, en HTTPS, avec reprise automatique si votre serveur ne répond pas.
- 4
Votre système reçoit
La fiche arrive dans votre outil. Personne n’a ouvert de tableau de bord.
Le contenu
Ce que vous recevez
Un objet stable et versionné. La transcription complète est jointe uniquement si vous l’activez sur l’endpoint, par défaut, le payload reste léger et ne transporte que l’essentiel.
Chaque événement porte un identifiant unique dans l’en-tête Sylen-Event-Id : en cas de reprise, votre système sait qu’il s’agit du même appel et ne le traite qu’une fois.
{
"id": "evt_m8x2k4p9qz",
"type": "call.completed",
"api_version": "2026-08-28",
"created_at": "2026-08-28T14:32:11Z",
"livemode": true,
"data": {
"call_id": "7f3c…",
"from": "+33612345678",
"caller_name": "Camille Dupont",
"to": "+33184606011",
"started_at": "2026-08-28T14:30:37Z",
"duration_seconds": 94,
"status": "answered",
"sentiment": "positive",
"caller_intent": "booking",
"tags": ["rdv_pris"],
"summary": "Demande de devis pour une salle
de bain. RDV fixé jeudi 14h sur place.",
"dashboard_url": "https://app.sylen.ai/…"
}
}
Sept déclencheurs
Les événements disponibles
Chaque endpoint s’abonne à ce qu’il veut. Vous pouvez en déclarer plusieurs : un vers votre CRM, un vers vos automatisations, un vers votre canal d’équipe.
-
call.completed
Un appel a été traité, c’est la fiche complète, celle qui porte le résumé, l’intention et le résultat.
-
call.missed
Un appel n’a pas été décroché.
-
call.transferred
L’agent a passé l’appel à un humain.
-
message.received
L’agent a pris un message.
-
appointment.created
Un rendez-vous a été pris.
-
appointment.updated
Un rendez-vous a été déplacé.
-
appointment.cancelled
Un rendez-vous a été annulé.
En pratique
Vérifier, puis relire
Deux gestes, deux morceaux de code. À gauche, on s’assure que l’envoi vient bien de Sylen ; à droite, on va rechercher ce qui s’est passé.
// En-tête reçu : Sylen-Signature: t=…,v1=… const crypto = require('crypto'); function verifier(corps, entete, secret) { const [t, v1] = entete.split(',') .map(p => p.split('=')[1]); // Rejeu : on refuse au-delà de 5 minutes if (Math.abs(Date.now()/1000 - t) > 300) return false; const attendu = crypto .createHmac('sha256', secret) .update(`${t}.${corps}`) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(attendu), Buffer.from(v1)); }
curl https://app.sylen.ai/api/v1/calls \ -H "Authorization: Bearer sk_live_…" \ -G --data-urlencode "since=2026-08-01" # Réponse { "object": "list", "data": [ { "id": "7f3c…", … } ], "has_more": true, "next_cursor": "7f3c…" }
En lecture seule : appels, transcriptions, rendez-vous, messages et consommation. Pagination par curseur, 120 requêtes par minute et par clé.
Treize ressources
Tout ce que l’API expose
Une clé, un en-tête Authorization: Bearer, et l’ensemble de votre activité
téléphonique devient interrogeable. Pagination par curseur, quota annoncé dans chaque
réponse, erreurs typées.
| Ressource | Ce qu’elle vous donne |
|---|---|
| Le compte | |
GET/v1/me |
Ce que peut votre clé : compte, offre, portées, quotas |
GET/v1/agent |
La configuration de votre agent, pour l’auditer |
GET/v1/usage |
Votre consommation, pour alerter avant le dépassement |
| Les appels | |
GET/v1/calls |
Les appels, avec résumé, ressenti et résultat - expand=transcript joint les verbatims |
GET/v1/calls/{id}/transcript |
La transcription complète d’un appel |
POST/v1/calls/{id}/tags |
Annoter un appel depuis votre outil (« devis envoyé ») |
| Les gens et les chiffres | |
GET/v1/contacts |
Le répertoire de vos appelants, agrégé : fréquence, RDV, dernier ressenti |
GET/v1/stats |
Série journalière prête à brancher sur votre tableau de bord |
| L’agenda et les messages | |
GET/v1/appointments |
Les rendez-vous pris par l’agent |
GET/v1/availability |
Ouverture, créneaux occupés et créneaux libres d’une journée |
GETPATCH/v1/messages |
Les messages pris, et de quoi les marquer traités depuis votre CRM |
| Les webhooks eux-mêmes | |
GET/v1/events |
Le journal des événements - pour rattraper un webhook manqué |
GETPOSTDELETE/v1/webhooks |
Provisionner vos endpoints par script |
Spécification OpenAPI 3.1 publique sur app.sylen.ai/api/v1/openapi :
import direct dans Postman ou Insomnia, génération de client dans votre langage, sans
écrire une ligne.
Une clé de test renvoie des données de démonstration au lieu des vôtres. Votre prestataire développe l’intégration avant même votre premier appel, et sans accéder à vos données.
Ce qui circule
Sécurité et données
Faire sortir des données d’appel d’un système, c’est une décision sérieuse. Voici exactement ce qui circule, et ce qui ne circule pas.
-
Chaque envoi est signé
HMAC-SHA256 avec un secret propre à votre endpoint, horodatage inclus pour empêcher tout rejeu. HTTPS obligatoire, aucune redirection suivie.
-
Aucun audio conservé
Sylen n’enregistre pas les appels. Seuls la transcription et le résumé sont stockés, puis supprimés automatiquement au bout de douze mois.
-
Rien ne se perd
Si votre serveur ne répond pas, Sylen réessaie : 1 min, 5 min, 30 min, 2 h, 6 h. Le journal garde chaque tentative, et vous pouvez rejouer une livraison d’un clic.
Sans écrire de code
Pas de développeur ? Pas de problème
Un webhook se branche aussi sur les outils d’automatisation grand public. Collez l’URL fournie par votre scénario, cochez les événements, c’est en service. De là, vous alimentez une feuille de calcul, un canal d’équipe, un CRM ou un e-mail interne sans écrire une ligne de code.
Un bouton « envoyer un test » depuis vos réglages : vous voyez arriver un vrai payload sans attendre un vrai appel.
Un journal de livraison avec le contenu envoyé, la réponse de votre serveur et le code HTTP. Le débogage se fait sans nous écrire.
Disponible à partir de l’offre Pro
Le compte rendu par e-mail est dans toutes les offres. Les webhooks commencent à Pro.
Trois endpoints sur Pro, dix sur Scale, sur mesure en Enterprise, et l’API REST avec. Le compte rendu par e-mail est inclus dès la première minute, et la garantie de 30 jours couvre votre premier mois.
À côté