Configurer les webhooks pour les transferts Telegram

Les webhooks permettent d’envoyer automatiquement des données entre des sites et des applications lorsqu’un événement se produit. Les données sont transmises au moyen d’une requête HTTP : une application les envoie par Internet à une adresse prédéfinie d’une autre application.

Envoi d’un message Telegram vers un autre site ou une application

Possibilités offertes par les webhooks

Dans FLOWIN, les webhooks fonctionnent avec les transferts. Ils peuvent se déclencher à l’apparition, à la modification, à la suppression ou à l’épinglage d’un message dans la conversation d’origine (source), ainsi qu’au clic sur un bouton dans la conversation vers laquelle les messages sont transférés (destination).

Vous pouvez ainsi relier FLOWIN à des réseaux sociaux, des plateformes d’échange, des feuilles de calcul et des CRM (logiciels de gestion de la relation client). Cette connexion s’appelle une intégration et permet de :

  • Ajouter automatiquement les demandes reçues dans Telegram à un CRM.
  • Transmettre des signaux de trading depuis Telegram à une plateforme d’échange pour exécuter automatiquement des transactions en suivant ces signaux.
  • Transférer des messages Telegram vers d’autres réseaux sociaux.
  • Copier des publications et des messages dans Google Sheets.
  • Configurer un répondeur automatique dans un bot.

Pour chaque scénario, il faut configurer la réception des données et l’action souhaitée du côté du site ou de l’application.

Créer un webhook

Testons le webhook sur webhook.site, un site qui fournit une adresse pour recevoir des données et affiche les requêtes reçues. Nous allons y envoyer le texte d’un nouveau message Telegram.

Pour cela, il faut un transfert configuré et fonctionnel dans FLOWIN.

Pour le premier test

Utilisez une conversation de test distincte et une demande fictive. Pour cette vérification, il suffit de transmettre du texte, sans noms, numéros de téléphone ni autres données personnelles.

  1. Ouvrez @flow_in_bot, envoyez la commande /start et appuyez sur « Tableau de bord ».

    Accès au tableau de bord via @flow_in_bot
    Accès au tableau de bord via @flow_in_bot.
  2. Ouvrez webhook.site dans un autre onglet. Copiez l’adresse de réception des requêtes indiquée dans le champ « Your unique URL ».

    Adresse de réception de la requête de test
    Adresse de réception de la requête de test.
  3. Dans le tableau de bord FLOWIN, ouvrez « Menu » → « Webhooks » et appuyez sur « Créer ».

    La rubrique « Webhooks » dans le menu FLOWIN
    La rubrique « Webhooks » dans le menu FLOWIN.
    Création du premier webhook
    Création du premier webhook.
  4. Collez l’adresse copiée dans le champ du haut. Dans « Corps de la requête », saisissez {"message":"<message-text>"} et appuyez sur « Créer ». Il s’agit du modèle des données à envoyer : FLOWIN remplace <message-text> par le texte du message, que le destinataire retrouve dans le champ message.

    Adresse et corps de la requête de test
    Adresse et corps de la requête de test.
  5. Appuyez sur « Appliquer » à côté du webhook créé. Cochez le transfert souhaité et appuyez sur « Enregistrer ».

    Association du webhook à un transfert
    Association du webhook à un transfert.
    Sélection du transfert pour le webhook
    Sélection du transfert pour le webhook.
  6. Envoyez un message de test dans la conversation source, par exemple « Demande n° 1042 : je souhaite un catalogue de meubles. » Retournez sur webhook.site : la première requête reçue s’ouvre automatiquement. Dans le bloc « Request Content », le texte de la demande apparaît dans le champ message. FLOWIN enverra désormais automatiquement le texte de chaque nouveau message à l’adresse indiquée avant de le transférer dans la conversation de destination.

    Demande de test dans la conversation source
    Demande de test dans la conversation source.
    Texte de la demande reçu sur webhook.site
    Texte de la demande reçu sur webhook.site.

Réglages des webhooks

Voyons comment modifier les réglages et ce que signifie chaque champ à partir du webhook que nous venons de créer.

Où trouver les réglages

Pour connecter un autre site ou une autre application, consultez sa documentation. Les règles de réception des données se trouvent généralement dans la rubrique API, qui décrit les échanges avec d’autres programmes. Elle indique l’adresse, la méthode HTTP et le format des données nécessaires pour remplir les champs ci-dessous.

Modifier les réglages d’un webhook

  1. Dans la liste « Webhooks », appuyez sur « Modifier » à côté du webhook souhaité.

    Ouverture des réglages du webhook
    Ouverture des réglages du webhook.
  2. Modifiez les champs souhaités et appuyez sur « Enregistrer ».

    Enregistrement des réglages modifiés
    Enregistrement des réglages modifiés.
    Description enregistrée dans les réglages du webhook
    Description enregistrée dans les réglages du webhook.

Méthode HTTP

La méthode HTTP définit l’action de la requête : POST transmet des données à traiter, GET demande des données et PUT les remplace. POST est sélectionné par défaut et convient à notre test. Pour un autre site ou une autre application, choisissez la méthode indiquée dans sa documentation.

Méthodes HTTP disponibles
Méthodes HTTP disponibles.

Adresse URL

Une URL est une adresse sur Internet. Indiquez ici l’adresse de réception des données fournie par le site ou l’application à connecter. Dans notre exemple, elle a été fournie par webhook.site.

Corps de la requête

Le corps de la requête contient les données à envoyer au format JSON, sous forme de paires « nom du champ : valeur ». Les champs à inclure dépendent des exigences du site ou de l’application à connecter.

Les balises méta sont des éléments que FLOWIN remplace par les données du message. Par exemple, <message-text> est remplacé par le texte et <author-name> par le nom de l’auteur. La liste des balises méta s’ouvre aussi via le lien « balises méta » sous le champ.

Les numéros des utilisateurs, messages, conversations et sujets dans la liste ci-dessous correspondent à leurs identifiants (ID) dans Telegram.

Message et auteur

  • Texte du message : <message-text>.
  • Date du message : <message-date>.
  • Heure du message : <message-time>.
  • Numéro de l’auteur : <author-id>.
  • Nom de l’auteur : <author-name>.
  • Nom de l’auteur dans un lien HTML vers son profil : <author-name-link>.
  • Nom de l’auteur sous forme de hashtag : <author-name-tag>.
  • Nom d’utilisateur de l’auteur : <author-username>.

Source

  • Texte du message : <src-message-text>.
  • Numéro du message : <src-message-id>.
  • Lien vers le message : <src-message-link>.
  • Numéro de la conversation : <src-chat-id>.
  • Nom de la conversation : <src-chat-name>.
  • Nom d’utilisateur de la conversation : <src-chat-username>.
  • Numéro du sujet : <src-topic-id>.
  • Nom du sujet : <src-topic-name>.

Destination

  • Texte du message : <dst-message-text>.
  • Numéro du message : <dst-message-id>.
  • Lien vers le message : <dst-message-link>.
  • Numéro de la conversation : <dst-chat-id>.
  • Nom de la conversation : <dst-chat-name>.
  • Nom d’utilisateur de la conversation : <dst-chat-username>.
  • Numéro du sujet : <dst-topic-id>.
  • Nom du sujet : <dst-topic-name>.

Le numéro et le lien du message dans la destination sont disponibles après le transfert. Pour les transmettre, choisissez « Après l’envoi » dans le champ « Déclencheur de requête ».

Clic sur un bouton

  • Numéro de l’utilisateur qui a cliqué : <clicker-id>.
  • Nom de l’utilisateur qui a cliqué : <clicker-name>.
  • Données du bouton : <clicker-data>.
  • Date du clic : <click-date>.
  • Heure du clic : <click-time>.

Sélection de texte

  • Une expression régulière définit une règle de recherche de texte. Par exemple, <regexp>(short|sell)</regexp> insère la première correspondance trouvée avec short ou sell.
  • Texte aléatoire <random>1|2|3|4|5</random> insère l’une des cinq variantes. Vous pouvez indiquer vos propres variantes entre les balises en les séparant par le caractère |.

En-têtes de la requête

Les « En-têtes de la requête » contiennent des informations techniques destinées au destinataire. Par exemple, une clé d’accès permet de vérifier qui a envoyé la requête. Les en-têtes sont définis au format JSON. Il n’est généralement pas nécessaire de modifier ce champ ; les valeurs à utiliser figurent dans la documentation du site ou de l’application à connecter.

Déclencheur de requête

Le « Déclencheur de requête » détermine l’événement et le moment où le webhook doit envoyer une requête à l’adresse indiquée. Vous pouvez choisir l’un des événements suivants :

  • « Envoi » est sélectionné par défaut. Le webhook se déclenche lors du transfert d’un nouveau message.
  • « Modification » se déclenche lors du traitement de la modification d’un message dans la source.
  • « Épinglage » se déclenche lors du traitement de l’épinglage d’un message dans la source.
  • « Suppression » se déclenche lors du traitement de la suppression d’un message dans la source.
  • « Clic sur un bouton » se déclenche pour les boutons de rappel (callback) dans la conversation de destination. Un tel bouton informe le bot du clic et lui transmet les données définies pour ce bouton. Un bouton ordinaire contenant un lien ne déclenche pas ce webhook.
Événements qui déclenchent la requête
Événements qui déclenchent la requête.

Le moment de l’envoi détermine à quelle étape du transfert la requête est envoyée :

  • « Avant le traitement » : la requête est envoyée avant la traduction et le traitement du message par intelligence artificielle (IA).
  • « Après le traitement » : la requête est envoyée après la traduction et le traitement par IA.
  • « Après l’envoi » : la requête est envoyée une fois que le message a été envoyé ou modifié avec succès dans la conversation de destination.
Moment de l’envoi de la requête
Moment de l’envoi de la requête.

Moments d’envoi disponibles

Les trois options sont disponibles pour les événements « Envoi » et « Modification ». Pour « Épinglage », « Suppression » et « Clic sur un bouton », l’option « Avant le traitement » est utilisée et il n’est pas possible de choisir un autre moment.

Description

La « Description » est un commentaire pour votre propre usage et n’a aucun effet sur le fonctionnement du webhook. Vous pouvez laisser ce champ vide.

Actions disponibles pour un webhook

Vous pouvez gérer les webhooks créés depuis la liste « Webhooks » :

  • « Modifier » ouvre les réglages principaux du webhook.
  • « Dupliquer », dans le menu « Plus », crée une copie des réglages du webhook.
  • « Sélectionner un projet », dans le menu « Plus », ajoute le webhook à un projet.
  • « Supprimer », dans le menu « Plus », supprime le webhook.
Actions supplémentaires pour le webhook
Actions supplémentaires pour le webhook.

Chaque webhook possède aussi un bouton « Transferts [N] », qui ouvre la sélection des transferts auxquels il s’applique. N représente le nombre de transferts sélectionnés. Si aucun transfert n’est encore sélectionné, le bouton « Appliquer » s’affiche à sa place.

Questions fréquentes

Qu’est-ce qu’un webhook, en termes simples ?

C’est un moyen de transmettre automatiquement des données à une autre application lorsqu’un événement se produit. Par exemple, lors du transfert d’un nouveau message, FLOWIN envoie son texte à l’adresse que vous avez indiquée au moyen d’une requête HTTP. Ici, c’est FLOWIN qui envoie la requête ; la méthode Telegram setWebhook configure un autre sens de transmission : l’envoi des mises à jour de Telegram au programme qui fait fonctionner le bot.

Suffit-il d’indiquer l’adresse du CRM ?

Non. Il faut l’adresse de réception des données indiquée dans la documentation du CRM, ainsi que la méthode HTTP, les champs JSON et les en-têtes adaptés si l’accès l’exige. L’adresse ordinaire du site du CRM ne convient pas. FLOWIN envoie la requête ; la création d’une demande ou toute autre action dépend de la façon dont le CRM traite les données reçues. Les valeurs des champs sont décrites dans la section « Réglages des webhooks ».

Peut-on déclencher un webhook en cliquant sur un bouton URL ordinaire ?

Non. Un bouton URL ordinaire ouvre un lien. L’événement « Clic sur un bouton » nécessite un bouton de rappel (callback) dans la conversation de destination : il transmet au bot les données du clic. Cette différence est décrite dans la section « Déclencheur de requête ».

Comment vérifier que le service externe a reçu les données ?

Envoyez un message fictif et vérifiez la requête reçue du côté du service. Dans l’exemple avec webhook.site le texte de la demande apparaît dans le bloc « Request Content ». La réussite du transfert dans Telegram ne suffit pas à confirmer que le service externe a reçu les données ou exécuté l’action souhaitée. Pour cette vérification, du texte sans noms, numéros de téléphone ni autres données personnelles suffit.