Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.withallo.com/llms.txt

Use this file to discover all available pages before exploring further.

Les webhooks vous permettent de recevoir des notifications en temps réel lorsque des événements se produisent dans votre compte Allo.

Sujets disponibles

Abonnez-vous aux sujets de webhook suivants :
SujetDescriptionDéclencheur
CALL_RECEIVEDDéclenché lorsqu’un appel est terminéAprès la fin de l’appel
SMS_RECEIVEDDéclenché lorsqu’un SMS est envoyé ou reçuAprès envoi ou réception du SMS
CONTACT_CREATEDDéclenché lorsqu’un contact est crééAprès création du contact
CONTACT_UPDATEDDéclenché lorsqu’un contact est mis à jourAprès mise à jour du contact

Configuration d’un webhook

Utilisez le point d’accès Créer un webhook pour configurer votre webhook :
curl -X POST "https://api.withallo.com/v1/api/webhooks" \
  -H "Authorization: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "allo_number": "+1234567890",
    "enabled": true,
    "url": "https://votre-serveur.com/webhook",
    "topics": ["CALL_RECEIVED", "SMS_RECEIVED", "CONTACT_CREATED"]
  }'

Exigences des webhooks

  • Votre URL de webhook doit être accessible publiquement
  • Votre serveur doit répondre avec un code de statut 200 dans les 30 secondes
  • Utilisez HTTPS pour une communication sécurisée

Format des données

Tous les webhooks utilisent un format d’enveloppe standard :
{
  "topic": "CALL_RECEIVED",
  "data": { /* données spécifiques au sujet */ }
}

Données des webhooks

CALL_RECEIVED

Envoyé lorsqu’un appel est terminé.
{
  "topic": "CALL_RECEIVED",
  "data": {
    "id": "call_abc123",
    "start_date": "2024-01-15T10:30:00Z",
    "recording_url": "https://storage.withallo.com/recordings/abc123.mp3",
    "from_number": "+1234567890",
    "from_name": "Jean Dupont",
    "to": "+0987654321",
    "to_name": "Support Acme",
    "length_in_minutes": 5.5,
    "length": "5m 30s",
    "tag": "support",
    "summary": "Le client a appelé concernant le statut de sa commande.",
    "one_sentence_summary": "Demande de statut de commande",
    "transcriptions": [
      {
        "source": "AGENT",
        "time": "2024-01-15T10:30:05Z",
        "text": "Bonjour, comment puis-je vous aider ?"
      },
      {
        "source": "USER",
        "time": "2024-01-15T10:30:10Z",
        "text": "Bonjour, j'appelle concernant ma commande."
      }
    ],
    "concatenated_transcript": "AGENT: Bonjour, comment puis-je vous aider ?\nUSER: Bonjour, j'appelle concernant ma commande.",
    "data_collected": {
      "orderNumber": "12345",
      "customerEmail": "[email protected]"
    },
    "ivr_result": [
      {
        "dtmf_key": "2",
        "text_key": "Ventes"
      }
    ],
    "type": "INBOUND",
    "result": "ANSWERED",
    "integration_id": null,
    "transfer_from": {
      "number": "+1555000000",
      "user_email": "[email protected]",
      "user_name": "Premier Agent"
    },
    "transfer_to": {
      "number": "+1555123456",
      "user_email": "[email protected]",
      "user_name": "Équipe Support"
    },
    "transfer_original_call_id": "call_original123",
    "user_email": "[email protected]",
    "original_to_number": "+0987654321",
    "original_to_name": "Ligne principale"
  }
}
Description des champs :
ChampTypeDescription
idstringIdentifiant unique de l’appel
start_datedatetimeDate de début de l’appel
recording_urlstring | nullURL de l’enregistrement
from_numberstringNuméro de l’appelant
from_namestring | nullNom de l’appelant si connu
tostringNuméro du destinataire
to_namestring | nullNom du destinataire si connu
length_in_minutesnumberDurée de l’appel en minutes
lengthstringDurée lisible (ex: “2m 30s”)
tagstring | nullÉtiquette de catégorie
summarystring | nullRésumé généré par IA
one_sentence_summarystring | nullRésumé en une phrase
transcriptionsarrayTableau des entrées de transcription
concatenated_transcriptstringTranscription complète en texte
data_collectedobjectDonnées collectées pendant l’appel
ivr_resultarraySélections du menu IVR effectuées pendant l’appel (voir objet résultat IVR ci-dessous)
typestringINBOUND ou OUTBOUND
resultstringStatut du résultat de l’appel. Un parmi : ANSWERED, VOICEMAIL, TRANSFERRED_AI, TRANSFERRED_EXTERNAL, BLOCKED, FAILED
integration_idstring | nullID d’intégration associé
transfer_fromobject | nullDétails de la source du transfert (voir objet transfert ci-dessous)
transfer_toobject | nullDétails de la destination du transfert (voir objet transfert ci-dessous)
user_emailstringEmail de l’utilisateur/propriétaire de la route
original_to_numberstring | nullNuméro original composé (avant routage)
original_to_namestring | nullNom original du numéro composé
transfer_original_call_idstring | nullID du premier appel dans la chaîne de transfert (identique pour tous les appels de la chaîne)
Champs de l’objet transfert (transfer_from / transfer_to) :
ChampTypeDescription
numberstring | nullNuméro de téléphone de la partie du transfert
user_emailstring | nullEmail de l’utilisateur qui a transféré/reçu
user_namestring | nullNom de l’utilisateur qui a transféré/reçu
Champs de l’objet résultat IVR (ivr_result) :
ChampTypeDescription
dtmf_keystring | nullLe chiffre DTMF appuyé (ex: “1”, “2”, “3”)
text_keystringLe libellé de l’option du menu IVR (ex: “Ventes”, “Support”)

SMS_RECEIVED

Envoyé lorsqu’un SMS est envoyé ou reçu. Utilisez le champ direction pour déterminer si le SMS est entrant ou sortant.
{
  "topic": "SMS_RECEIVED",
  "data": {
    "id": "sms_abc123",
    "direction": "INBOUND",
    "type": "SMS",
    "content": "Bonjour, je souhaite prendre rendez-vous.",
    "sent_at": "2024-01-15T10:30:00Z",
    "from_number": "+1234567890",
    "to_number": "+0987654321",
    "from_name": "Jean Dupont",
    "to_name": "Support Acme"
  }
}
Description des champs SMS :
ChampTypeDescription
idstringIdentifiant unique du message
directionstringINBOUND ou OUTBOUND
typestringSMS ou MMS
contentstringContenu du message
sent_atdatetimeDate d’envoi/réception
from_numberstringNuméro de l’expéditeur
to_numberstringNuméro du destinataire
from_namestringNom de l’expéditeur
to_namestringNom du destinataire

CONTACT_CREATED

Envoyé lorsqu’un nouveau contact est créé.
{
  "topic": "CONTACT_CREATED",
  "data": {
    "id": "cnt_abc123",
    "name": "Jean",
    "last_name": "Dupont",
    "company": "Acme Inc",
    "emails": ["[email protected]"],
    "numbers": ["+15551234567"]
  }
}

CONTACT_UPDATED

Envoyé lorsqu’un contact existant est mis à jour.
{
  "topic": "CONTACT_UPDATED",
  "data": {
    "id": "cnt_abc123",
    "name": "Jean",
    "last_name": "Martin",
    "company": "Acme Inc",
    "emails": ["[email protected]", "[email protected]"],
    "numbers": ["+15551234567"]
  }
}
Description des champs Contact :
ChampTypeDescription
idstringPID du contact
namestring | nullPrénom
last_namestring | nullNom de famille
companystring | nullNom de l’entreprise
emailsarrayListe des adresses email
numbersarrayListe des numéros de téléphone