Passer au contenu principal

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 événements suivent la convention de nommage entité.action. Allo livre les événements au moins une fois — votre endpoint peut recevoir le même événement plusieurs fois. Utilisez l’en-tête webhook-id pour dédupliquer. Consultez les Bonnes pratiques pour plus de détails.

Résumé des événements

ÉvénementDescriptionDédupliqué
call.receivedAppel entrant en cours de sonnerieOui
call.triggeredAppel sortant initiéOui
call.completedAppel terminé avec toutes les donnéesOui
tag.addedTag ajouté à un appelNon
tag.removedTag retiré d’un appelNon
sms.receivedSMS entrant reçuOui
sms.sentSMS sortant envoyéOui
contact.createdContact crééOui
contact.updatedContact mis à jourNon

call.received

Déclenché lorsqu’un appel entrant commence à sonner, avant que l’appel ne soit décroché. Lorsqu’un contact correspondant est trouvé, l’événement inclut les objets person, company et deals avec le contexte du contact.
{
  "topic": "call.received",
  "version": "2.0",
  "timestamp": "2025-03-15T14:30:00.000Z",
  "data": {
    "from_number": "+33612345678",
    "to_number": "+33112345678",
    "started_at": "2025-03-15T14:30:00.000Z",
    "user_email": "[email protected]",
    "person": {
      "id": "con_5MiGNHp2vI1AN6sTu4Cw",
      "name": "Marie",
      "last_name": "Dupont",
      "email": "[email protected]",
      "emails": ["[email protected]"],
      "numbers": ["+33612345678"],
      "job_title": "Directrice Commerciale",
      "linkedin_url": "https://linkedin.com/in/mariedupont",
      "lead_source": "Inbound"
    },
    "company": {
      "id": "com-a1b2c3d4e5f6",
      "name": "Acme Corp"
    },
    "deals": [
      {
        "id": "dea-x1y2z3w4v5u6",
        "name": "Plan Enterprise",
        "status": "qualified",
        "value": 25000.00,
        "currency": "EUR",
        "close_date": "2025-06-15T00:00:00"
      }
    ]
  }
}
ChampTypeDescription
from_numberstringNuméro de téléphone de l’appelant
to_numberstringVotre numéro de téléphone Allo
started_atstringHorodatage ISO 8601 du début de la sonnerie
user_emailstringEmail de l’utilisateur Allo assigné au numéro
personobject ou nullContact correspondant. Absent si aucun contact ne correspond au numéro de l’appelant.
companyobject ou nullEntreprise liée au contact. null si aucune.
dealsarray ou nullDeals liés au contact. null si aucun.

Objet person

ChampTypeDescription
idstringIdentifiant unique du contact
namestring ou nullPrénom
last_namestring ou nullNom de famille
emailstring ou nullAdresse email principale
emailsarray de stringsToutes les adresses email
numbersarray de stringsTous les numéros de téléphone
job_titlestring ou nullIntitulé de poste
<property>anyChaque propriété de contact que vous avez définie apparaît comme une clé de premier niveau (ex. linkedin_url, lead_source). Seules les valeurs non-null sont incluses.

Objet company

ChampTypeDescription
idstringIdentifiant unique de l’entreprise
namestring ou nullNom de l’entreprise

Objet deal

ChampTypeDescription
idstringIdentifiant unique du deal
namestring ou nullNom du deal
statusstring ou nullÉtape ou statut du deal
valuenumber ou nullValeur monétaire du deal
currencystring ou nullCode devise (ex. EUR, USD)
close_datestring ou nullDate de clôture prévue (ISO 8601)

call.triggered

Déclenché lorsqu’un appel sortant est initié. Lorsqu’un contact correspondant est trouvé, l’événement inclut les objets person, company et deals avec le contexte du contact.
{
  "topic": "call.triggered",
  "version": "2.0",
  "timestamp": "2025-03-15T14:35:00.000Z",
  "data": {
    "from_number": "+33112345678",
    "to_number": "+33612345678",
    "started_at": "2025-03-15T14:35:00.000Z",
    "user_email": "[email protected]",
    "person": {
      "id": "con_5MiGNHp2vI1AN6sTu4Cw",
      "name": "Marie",
      "last_name": "Dupont",
      "email": "[email protected]",
      "emails": ["[email protected]"],
      "numbers": ["+33612345678"],
      "job_title": "Directrice Commerciale"
    },
    "company": {
      "id": "com-a1b2c3d4e5f6",
      "name": "Acme Corp"
    },
    "deals": null
  }
}
ChampTypeDescription
from_numberstringVotre numéro de téléphone Allo
to_numberstringNuméro de téléphone du destinataire
started_atstringHorodatage ISO 8601 du lancement de l’appel
user_emailstringEmail de l’utilisateur Allo qui a passé l’appel
personobject ou nullContact correspondant. Absent si aucun contact ne correspond au numéro du destinataire.
companyobject ou nullEntreprise liée au contact. null si aucune.
dealsarray ou nullDeals liés au contact. null si aucun.
Les objets person, company et deals utilisent le même schéma que call.received.

call.completed

Déclenché après la fin d’un appel. Inclut toutes les données de l’appel : enregistrement, transcription, résumé, tags et détails de transfert. Cet événement est généralement envoyé environ 30 secondes après la fin de l’appel.
{
  "topic": "call.completed",
  "version": "2.0",
  "timestamp": "2025-03-15T14:45:00.000Z",
  "data": {
    "id": "cll_2NfDKEm9sF8xK3pQr1Zt",
    "start_date": "2025-03-15T14:30:00.000Z",
    "recording_url": "https://storage.withallo.com/recordings/abc123.mp3",
    "from_number": "+33612345678",
    "from_name": "Marie Dupont",
    "to": "+33112345678",
    "to_name": "Support Acme",
    "length_in_minutes": 5.5,
    "length": "5m 30s",
    "tag": "support",
    "tags": ["support", "urgent"],
    "summary": "The customer called about a billing issue with their last invoice. The agent confirmed the charge was correct and explained the new pricing plan.",
    "transcriptions": [
      {
        "source": "EXTERNAL",
        "time": "2025-03-15T14:30:05.000Z",
        "text": "Hi, I have a question about my last invoice."
      },
      {
        "source": "USER",
        "time": "2025-03-15T14:30:12.000Z",
        "text": "Of course, let me pull up your account."
      }
    ],
    "concatenated_transcript": "Hi, I have a question about my last invoice.\nOf course, let me pull up your account.",
    "data_collected": {
      "account_number": "12345"
    },
    "type": "INBOUND",
    "result": "ANSWERED",
    "integration_id": null,
    "transfer_from": {
      "number": null,
      "user_email": null,
      "user_name": null
    },
    "transfer_to": {
      "number": null,
      "user_email": null,
      "user_name": null
    },
    "user_email": "[email protected]",
    "original_to_number": null,
    "original_to_name": null,
    "transfer_original_call_id": null,
    "ivr_result": [
      {
        "dtmf_key": "2",
        "text_key": "Support"
      }
    ]
  }
}

Champs

ChampTypeDescription
idstringIdentifiant unique de l’appel
start_datestringHorodatage ISO 8601 du début de l’appel
recording_urlstring ou nullURL de l’enregistrement de l’appel (MP3). Null si l’enregistrement est désactivé.
from_numberstringNuméro de téléphone de l’appelant
from_namestringNom de l’appelant (depuis les contacts) ou nom de votre entreprise
tostringNuméro de téléphone du destinataire
to_namestringNom du destinataire (depuis les contacts) ou nom de votre entreprise
length_in_minutesnumberDurée de l’appel en minutes (décimale)
lengthstringDurée lisible (ex. "5m 30s")
tagstring ou nullTag principal assigné à l’appel
tagsarray of stringsTous les tags assignés à l’appel
summarystringRésumé de l’appel généré par l’IA
transcriptionsarrayEntrées de la transcription de l’appel (voir ci-dessous)
concatenated_transcriptstringTranscription complète en une seule chaîne
data_collectedobjectDonnées personnalisées collectées pendant l’appel (ex. depuis le SVI)
typestringINBOUND ou OUTBOUND
resultstringRésultat de l’appel (voir les valeurs ci-dessous)
integration_idstring ou nullIdentifiant d’intégration CRM externe pour le contact
transfer_fromobjectDétails de l’origine du transfert (voir ci-dessous)
transfer_toobjectDétails de la destination du transfert (voir ci-dessous)
user_emailstringEmail de l’utilisateur Allo qui a géré l’appel
original_to_numberstring ou nullNuméro initialement composé (si l’appel a été redirigé)
original_to_namestring ou nullNom du destinataire initial
transfer_original_call_idstring ou nullIdentifiant de l’appel d’origine s’il s’agit d’un transfert
ivr_resultarraySélections du menu SVI effectuées pendant l’appel (voir ci-dessous)

Valeurs du résultat d’appel

ValeurDescription
ANSWEREDL’appel a été décroché
VOICEMAILL’appelant a laissé un message vocal
TRANSFERRED_AIL’appel a été géré par l’agent IA
TRANSFERRED_EXTERNALL’appel a été transféré vers un numéro externe
BLOCKEDL’appel a été bloqué
FAILEDL’appel n’a pas pu aboutir

Entrée de transcription

ChampTypeDescription
sourcestringUSER (votre côté) ou EXTERNAL (appelant/destinataire)
timestringHorodatage ISO 8601 du segment de transcription
textstringTexte transcrit

Objet de transfert

ChampTypeDescription
numberstring ou nullNuméro de téléphone impliqué dans le transfert
user_emailstring ou nullEmail de l’utilisateur Allo
user_namestring ou nullNom de l’utilisateur Allo

Entrée de résultat SVI

ChampTypeDescription
dtmf_keystring ou nullTouche DTMF appuyée par l’appelant
text_keystring ou nullLibellé du menu sélectionné

tag.added

Déclenché lorsqu’un tag est ajouté à un appel.
{
  "topic": "tag.added",
  "version": "2.0",
  "timestamp": "2025-03-15T15:00:00.000Z",
  "data": {
    "call_id": "cll_2NfDKEm9sF8xK3pQr1Zt",
    "tag_key": "urgent",
    "tag_name": "Urgent",
    "user_email": "[email protected]"
  }
}
ChampTypeDescription
call_idstringIdentifiant de l’appel auquel le tag a été ajouté
tag_keystringIdentifiant du tag
tag_namestringNom lisible du tag
user_emailstring ou nullEmail de l’utilisateur qui a ajouté le tag

tag.removed

Déclenché lorsqu’un tag est retiré d’un appel.
{
  "topic": "tag.removed",
  "version": "2.0",
  "timestamp": "2025-03-15T15:05:00.000Z",
  "data": {
    "call_id": "cll_2NfDKEm9sF8xK3pQr1Zt",
    "tag_key": "urgent",
    "tag_name": "Urgent",
    "user_email": "[email protected]"
  }
}
ChampTypeDescription
call_idstringIdentifiant de l’appel duquel le tag a été retiré
tag_keystringIdentifiant du tag
tag_namestringNom lisible du tag
user_emailstring ou nullEmail de l’utilisateur qui a retiré le tag

sms.received

Déclenché lorsqu’un SMS entrant est reçu.
{
  "topic": "sms.received",
  "version": "2.0",
  "timestamp": "2025-03-15T16:00:00.000Z",
  "data": {
    "id": "msg_3KgELFn0tG9yL4qRs2Au",
    "direction": "INBOUND",
    "type": "SMS",
    "content": "Hi, I'd like to schedule an appointment.",
    "sent_at": "2025-03-15T16:00:00.000Z",
    "from_number": "+33612345678",
    "to_number": "+33112345678",
    "from_name": "Marie Dupont",
    "to_name": "Support Acme",
    "user_email": "[email protected]"
  }
}
ChampTypeDescription
idstringIdentifiant unique du message
directionstringINBOUND
typestringSMS ou MMS
contentstringTexte du message
sent_atstringHorodatage ISO 8601
from_numberstringNuméro de téléphone de l’expéditeur
to_numberstringVotre numéro de téléphone Allo
from_namestringNom de l’expéditeur (depuis les contacts)
to_namestringNom de votre entreprise
user_emailstringEmail de l’utilisateur Allo assigné au numéro

sms.sent

Déclenché lorsqu’un SMS sortant est envoyé.
{
  "topic": "sms.sent",
  "version": "2.0",
  "timestamp": "2025-03-15T16:10:00.000Z",
  "data": {
    "id": "msg_4LhFMGo1uH0zM5rSt3Bv",
    "direction": "OUTBOUND",
    "type": "SMS",
    "content": "Your appointment is confirmed for tomorrow at 2pm.",
    "sent_at": "2025-03-15T16:10:00.000Z",
    "from_number": "+33112345678",
    "to_number": "+33612345678",
    "from_name": "Support Acme",
    "to_name": "Marie Dupont",
    "user_email": "[email protected]"
  }
}
ChampTypeDescription
idstringIdentifiant unique du message
directionstringOUTBOUND
typestringSMS ou MMS
contentstringTexte du message
sent_atstringHorodatage ISO 8601
from_numberstringVotre numéro de téléphone Allo
to_numberstringNuméro de téléphone du destinataire
from_namestringNom de votre entreprise
to_namestringNom du destinataire (depuis les contacts)
user_emailstringEmail de l’utilisateur Allo qui a envoyé le message

contact.created

Déclenché lorsqu’un nouveau contact est créé.
{
  "topic": "contact.created",
  "version": "2.0",
  "timestamp": "2025-03-15T17:00:00.000Z",
  "data": {
    "id": "con_5MiGNHp2vI1AN6sTu4Cw",
    "name": "Marie",
    "last_name": "Dupont",
    "company": "Acme Corp",
    "emails": ["[email protected]"],
    "numbers": ["+33612345678"]
  }
}
ChampTypeDescription
idstringIdentifiant unique du contact
namestringPrénom
last_namestringNom de famille
companystring ou nullNom de l’entreprise
emailsarray of strings ou nullAdresses email
numbersarray of stringsNuméros de téléphone

contact.updated

Déclenché lorsqu’un contact existant est modifié.
{
  "topic": "contact.updated",
  "version": "2.0",
  "timestamp": "2025-03-15T17:05:00.000Z",
  "data": {
    "id": "con_5MiGNHp2vI1AN6sTu4Cw",
    "name": "Marie",
    "last_name": "Dupont",
    "company": "Acme Corp",
    "emails": ["[email protected]", "[email protected]"],
    "numbers": ["+33612345678", "+33698765432"]
  }
}
La structure du payload est identique à contact.created. L’objet data contient l’état complet du contact après la mise à jour.