Passer au contenu principal
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
PINGTest de connectivité du webhookTest manuel
CALL_RECEIVEDDéclenché lorsqu’un appel est terminéAprès la fin de l’appel
SMS_RECEIVEDDéclenché lorsqu’un SMS est reçuAprès réception du SMS
SMS_SENTDéclenché lorsqu’un SMS est envoyéAprès envoi 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",
    "startDate": "2024-01-15T10:30:00Z",
    "recordingUrl": "https://storage.withallo.com/recordings/abc123.mp3",
    "fromNumber": "+1234567890",
    "fromName": "Jean Dupont",
    "to": "+0987654321",
    "toName": "Support Acme",
    "lengthInMinutes": 5.5,
    "length": "5m 30s",
    "tag": "support",
    "summary": "Le client a appelé concernant le statut de sa commande.",
    "oneSentenceSummary": "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."
      }
    ],
    "concatenatedTranscript": "AGENT: Bonjour, comment puis-je vous aider ?\nUSER: Bonjour, j'appelle concernant ma commande.",
    "dataCollected": {
      "orderNumber": "12345",
      "customerEmail": "[email protected]"
    },
    "type": "INBOUND",
    "integrationId": null,
    "transferFrom": null,
    "transferTo": {
      "number": "+1555123456",
      "userEmail": "[email protected]",
      "userName": "Équipe Support"
    }
  }
}
Description des champs :
ChampTypeDescription
idstringIdentifiant unique de l’appel
startDatedatetimeDate de début de l’appel
recordingUrlstring | nullURL de l’enregistrement
fromNumberstringNuméro de l’appelant
fromNamestring | nullNom de l’appelant si connu
tostringNuméro du destinataire
toNamestring | nullNom du destinataire si connu
lengthInMinutesnumberDuré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
oneSentenceSummarystring | nullRésumé en une phrase
transcriptionsarrayTableau des entrées de transcription
concatenatedTranscriptstringTranscription complète en texte
dataCollectedobjectDonnées collectées pendant l’appel
typestringINBOUND ou OUTBOUND
integrationIdstring | nullID d’intégration associé
transferFromobject | nullDétails de la source du transfert
transferToobject | nullDétails de la destination du transfert

SMS_RECEIVED

Envoyé lorsqu’un SMS est reçu.
{
  "topic": "SMS_RECEIVED",
  "data": {
    "id": "sms_abc123",
    "direction": "INBOUND",
    "type": "SMS",
    "content": "Bonjour, je souhaite prendre rendez-vous.",
    "sentAt": "2024-01-15T10:30:00Z",
    "fromNumber": "+1234567890",
    "toNumber": "+0987654321",
    "fromName": "Jean Dupont",
    "toName": "Support Acme"
  }
}

SMS_SENT

Envoyé lorsqu’un SMS est envoyé.
{
  "topic": "SMS_SENT",
  "data": {
    "id": "sms_xyz789",
    "direction": "OUTBOUND",
    "type": "SMS",
    "content": "Votre rendez-vous est confirmé pour demain à 14h.",
    "sentAt": "2024-01-15T10:35:00Z",
    "fromNumber": "+0987654321",
    "toNumber": "+1234567890",
    "fromName": "Support Acme",
    "toName": "Jean Dupont"
  }
}
Description des champs SMS :
ChampTypeDescription
idstringIdentifiant unique du message
directionstringINBOUND ou OUTBOUND
typestringSMS ou MMS
contentstringContenu du message
sentAtdatetimeDate d’envoi/réception
fromNumberstringNuméro de l’expéditeur
toNumberstringNuméro du destinataire
fromNamestringNom de l’expéditeur
toNamestringNom du destinataire

CONTACT_CREATED

Envoyé lorsqu’un nouveau contact est créé.
{
  "topic": "CONTACT_CREATED",
  "data": {
    "id": "cnt_abc123",
    "name": "Jean",
    "lastName": "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",
    "lastName": "Martin",
    "company": "Acme Inc",
    "emails": ["[email protected]", "[email protected]"],
    "numbers": ["+15551234567"]
  }
}
Description des champs Contact :
ChampTypeDescription
idstringPID du contact
namestring | nullPrénom
lastNamestring | nullNom de famille
companystring | nullNom de l’entreprise
emailsarrayListe des adresses email
numbersarrayListe des numéros de téléphone