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.

Le trajet d'un appel : du combiné à votre système, en passant par la fiche construite par Sylen et l'envoi signé POST 1 · L’appel est traité l’agent raccroche 2 · La fiche est construite résumé, intention, résultat 3 · L’envoi est signé HMAC-SHA256, horodaté 4 · Votre système reçoit CRM, ERP, automatisation
  1. 1

    L’appel est traité

    Votre agent répond, prend le rendez-vous ou le message, puis raccroche.

  2. 2

    La fiche est construite

    Résumé, intention, ressenti, résultat de l’appel et coordonnées de l’appelant.

  3. 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. 4

    Votre système reçoit

    La fiche arrive dans votre outil. Personne n’a ouvert de tableau de bord.

Entre le raccroché et l’arrivée dans votre outil, il n’y a ni export, ni tâche planifiée, ni intervention humaine, et si votre serveur ne répond pas, Sylen revient.

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.

POST https://votre-systeme.fr/webhooks/sylen
{
  "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é.

Node.js vérifier la signature
// 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));
}
GET /api/v1/calls
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.

RessourceCe 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é

Continuer la visite

Vos appels, dans vos outils.

Chaque fiche part vers votre CRM à la seconde où l'appel raccroche. Disponible à partir de l'offre Pro.

Besoin d’aide ?