Comment pouvons-nous vous aider ?

Intégration des appels sortants

Intégration sortante :
Whatsapp > CRM et vos autres systèmes

Partagez cet article avec votre développeur ou utilisez Zapier pour intégrer votre système à Whatsapp.

Mise en place

TimelinesAI permet de notifier un système externe lorsqu'un nouveau message est reçu ou envoyé dans n'importe quel compte Whatsapp connecté à un espace de travail. Cela inclut les messages whatsapp envoyés via l'application mobile Whatsapp ou depuis Timelines.

Il arrive souvent qu'une telle intégration soit utilisée via un service intermédiaire tel que Zapier, où chaque activation d'un webhook compte pour l'utilisation du quota de tâches.

Pour rendre l'utilisation du quota de tâches plus efficace, TimelinesAI offre la possibilité d'agréger plusieurs messages envoyés ou reçus dans un chat spécifique au cours de la période sélectionnée. Les messages sont transmis via le webhook sous la forme d'un "bundle" unique. Pour votre commodité, ce "bundle" contient un champ avec l'agrégation préformatée des messages (et un lien vers le point dans les conversations dans TimelinesAI), mais vous pouvez implémenter votre propre formatage en utilisant les données fournies avec le webhook.

Capture d'écran 2021 11 23 à 12 06 26
Ensemble de messages envoyés via un webhook

Pour configurer l'intégration à l'aide de Webhooks sortants :

  1. Naviguez jusqu'à la section Crochets Web dans votre compte TimelinesAI
  2. Sélectionnez l'onglet Outbound.

Capture d'écran 2021 11 23 à 11.47.21

Les paramètres suivants vous seront présentés :

  • Granularité de l'agrégation - les messages seront agrégés et envoyés à l'aide du webhook en fonction de la sélection (toutes les 1 / 6 / 12 / 24 heures) ou seront envoyés dès qu'ils apparaîtront dans les lignes de temps ("Ne pas agréger").
  • Webhook URL - ici, vous devez saisir l'URL réelle qui doit être notifiée.
  • Webhook activé - vous pouvez désactiver le webhook si vous souhaitez arrêter l'intégration.

Dès qu'un Webhook est activé et que des messages sont envoyés, un journal d'activité s'affiche (jusqu'aux 10 actions les plus récentes).

Erreurs et dépannage

Pour garantir le bon fonctionnement de l'intégration, si plus de 10 erreurs consécutives sont rencontrées du côté de la réception (n'importe quelle erreur, allant d'une URL invalide à un code de réponse qui n'est pas 200), le système désactivera automatiquement l'intégration. Dans ce cas, le propriétaire de l'espace de travail recevra une notification par courrier électronique.

Si vous avez besoin de résoudre une erreur, vous pouvez télécharger un journal détaillé (le lien sera disponible en bas de la page), où jusqu'à 100 requêtes les plus récentes seront affichées avec tous les détails des données envoyées et de la réponse reçue.

Format des données

Les données seront envoyées à l'URL d'un Webhook au moyen d'une requête HTTP POST, au format JSON. Les données sont fournies dans deux formats différents, en fonction de la granularité de l'agrégation, comme décrit ci-dessous.

Agrégation toutes les X heures

Les messages seront regroupés dans un "paquet". Les données suivantes seront disponibles :

  • "compte whatsapp" - les détails du compte whatsapp (et du coéquipier de l'espace de travail qui a connecté le compte), par l'intermédiaire duquel le message a été reçu ou envoyé
    • "phone" - le numéro de téléphone du compte WA
    • "full_name" - le nom complet du propriétaire du compte WA, tel qu'il est enregistré dans Timelines
    • "email" - l'email du propriétaire du compte WA, tel qu'il est enregistré dans Timelines
  • "chat" - les détails du chat (chat direct ou groupe) dans lequel le message a été envoyé ou reçu
    • "full_name" - le nom du chat (tel qu'il apparaît dans la ligne de temps)
    • "responsible_name" - le nom d'un coéquipier qui est assigné comme responsable de ce chat
    • "responsible_email" - l'email d'un membre de l'équipe qui est assigné comme responsable de ce chat.
    • "chat_url" - l'URL à laquelle le chat est accessible dans TimelinesUI
    • "chat_id" - l'ID du chat dans TimelinesUI (peut être utilisé pour construire l'URL du chat ou avec les webhooks entrants)
    • "is_new_chat" - true, si ce chat vient d'être créé, false sinon
    • "is_group" - true, si ce chat est un chat direct, false sinon
    • "phone" - numéro de téléphone du chat (vide pour le chat de groupe)
  • "messages" - une liste de messages, où chaque objet message contient les champs suivants
    • "direction" - peut être "reçu" ou "envoyé".
    • "timestamp" - horodatage d'un message, dans le fuseau horaire UTC
    • "message_id" - non utilisé
    • "message_uid" - identifiant interne unique du message qui peut être utilisé avec l'API publique pour charger les détails du message et les mises à jour de l'état (voir les détails ici).
    • "expéditeur" - détails de l'expéditeur (participant au chat) d'un message
      • "full_name" - titre d'un chat ou nom d'un coéquipier dans la ligne de temps (s'il est envoyé depuis la ligne de temps)
      • "phone" - numéro de téléphone de l'expéditeur (ou vide pour le chat de groupe)
    • "destinataire" - coordonnées de l'expéditeur (participant au chat) d'un message
      • "full_name" - titre d'un chat ou nom d'un coéquipier dans la ligne de temps
      • "phone" - numéro de téléphone du destinataire (ou vide pour le chat de groupe)
    • "text" - texte du message (texte clair)
    • "attachment" - objet décrivant la pièce jointe au message, comprenant les champs suivants
      • "temporary_download_url" - une URL de téléchargement temporaire, valable pendant 15 minutes
      • "filename" - nom du fichier
      • "size" - taille du fichier, en octets
      • "mimetype" - type de mime du fichier
  • "first_message_timestamp" - horodatage du premier message de la liasse, dans le fuseau horaire UTC
  • "last_message_timestamp" - horodatage du message le plus récent dans la liasse, dans le fuseau horaire UTC
  • "agrégation" - texte agrégé du message, au format HTML, pouvant être utilisé avec des systèmes de gestion de la relation client ou des systèmes similaires en tant que contenu de notes, y compris le lien direct vers le premier message dans la ligne de temps.

Exemple

{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97254000000"
    },
    "messages" :
    [
        {
            "direction": "sent", 
            "timestamp": "2021-02-24T16:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum",
            "attachment": {
                "temporary_download_url": "https://acme.com/path",
                "filename": "someimage.png",
                "size": 128909,
                "mimetype": "image/png"
            }
        },
        {
            "direction": "received", 
            "timestamp": "2021-02-24T16:30:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum"
        }
    ],
    "first_message_timestamp" : "2021-02-24T16:25:29+0000",
    "last_message_timestamp" : "2021-02-24T16:30:29+0000",
    "aggregation":
        "from John Doe on 2021-02-24 16:25: Hi! How are you?<br/>from Jane Smith on 2021-02-24 16:30: I am fine, how are you?<br/>Click <a href='https://app.timelines.ai/permalink/77a28d55-5345-5435-8c72-3a7bcad8ded9/'>here</h> to open the conversation in TimelinesAI"
}

Ne pas agréger

Chaque message est envoyé individuellement, dès qu'il est disponible. Il n'y a pas de "regroupement". Les données suivantes seront disponibles :

  • "compte whatsapp" - les détails du compte whatsapp (et du coéquipier de l'espace de travail qui a connecté le compte), par l'intermédiaire duquel le message a été reçu ou envoyé
    • "phone" - le numéro de téléphone du compte WA
    • "full_name" - le nom complet du propriétaire du compte WA, tel qu'il est enregistré dans Timelines
    • "email" - l'email du propriétaire du compte WA, tel qu'il est enregistré dans Timelines
  • "chat" - les détails du chat (chat direct ou groupe) dans lequel le message a été envoyé ou reçu
    • "full_name" - le nom du chat (tel qu'il apparaît dans la ligne de temps)
    • "responsible_name" - le nom d'un coéquipier qui est assigné comme responsable de ce chat
    • "responsible_email" - l'email d'un membre de l'équipe qui est assigné comme responsable de ce chat.
    • "chat_url" - l'URL à laquelle le chat est accessible dans TimelinesUI
    • "chat_id" - l'ID du chat dans TimelinesUI (peut être utilisé pour construire l'URL du chat ou avec les webhooks entrants)
    • "is_new_chat" - true, si ce chat vient d'être créé, false sinon
    • "is_group" - true, si ce chat est un chat direct, false sinon
    • "phone" - numéro de téléphone du chat (vide pour le chat de groupe)
  • "message" - les détails du message
    • "direction" - peut être "reçu" ou "envoyé".
    • "timestamp" - horodatage d'un message, dans le fuseau horaire UTC
    • "message_id" - identifiant unique interne du message
    • "expéditeur" - détails de l'expéditeur (participant au chat) d'un message
      • "full_name" - titre d'un chat ou nom d'un coéquipier dans la ligne de temps (s'il est envoyé depuis la ligne de temps)
      • "phone" - numéro de téléphone de l'expéditeur (ou vide pour le chat de groupe)
    • "destinataire" - coordonnées de l'expéditeur (participant au chat) d'un message
      • "full_name" - titre d'un chat ou nom d'un coéquipier dans la ligne de temps
      • "phone" - numéro de téléphone du destinataire (ou vide pour le chat de groupe)
    • "text" - texte du message (texte clair)
    • "attachment" - objet décrivant la pièce jointe au message, comprenant les champs suivants
      • "temporary_download_url" - une URL de téléchargement temporaire, valable pendant 15 minutes
      • "filename" - nom du fichier
      • "size" - taille du fichier, en octets
      • "mimetype" - type de mime du fichier

Exemple

{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97251111111"
    },
    "message" :
       {
            "direction": "sent", 
            "timestamp": "2021-02-24T06:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum",
            "attachment": {
                "temporary_download_url": "https://acme.com/path",
                "filename": "someimage.png",
                "size": 128909,
                "mimetype": "image/png"
            }
        }
}
Table des matières