***Les Webhooks entrants fonctionnent avec les handlers de Webhooks (un type de connecteur). Les connecteurs sont limités à certains de nos partenaires technologiques. Si vous souhaitez établir une connexion entre votre système et votre projet Dialog Insight, notre équipe pourra vous proposer une solution qui correspondra à vos besoins et à votre structure de données.***
Pour envoyer des Webhooks depuis un système tiers vers un projet Dialog Insight, vous devez créer un Webhook Handler. Le Webhook Handler génère une URL (endpoint) à appeler pour envoyer vos données. Concrètement, lorsqu'il y a un événement dans le système tiers, cela déclenche un appel à cette URL de Dialog Insight.
Note: Si vous voulez créer une connexion dans l'autre direction (de Dialog Insight vers un système tiers, veuillez consulter le guide sur les Webhooks sortants).
Dans cet article, vous verrez comment mettre en place la structure nécessaire pour la connexion à l'aide d'un exemple dans lequel nous connecterons des données d'une liste de contacts ET d'une liste de transactions.
| Chemin d'accès : Gestion des données → Intégrations → Configurations avancées → Webhooks | 
Préalables
Pour l'exemple présenté dans cet article, nous allons utiliser l'adresse courriel comme clé unique de projet. Vous pourriez toutefois utiliser le numéro de client/membre ou un autre type de clé pour la gestion des doublons.
Étape 1 : Créer les Handlers de Webhooks
Pour créer une connexion pour les Contacts et pour les Transactions, vous devez créer 2 handlers de Webhooks (un pour les Contacts ET un pour les Transactions).
Pour créer un handler, suivez le chemin d'accès et cliquez sur Créer : Pour accéder à cette interface (SU Handler de Webhook externe), vous devez avoir les permissions nécessaires.
Pour accéder à cette interface (SU Handler de Webhook externe), vous devez avoir les permissions nécessaires.
Extension de path
Dans la fenêtre de création, ajoutez une Extension de path :
Le format recommandé est [intégration]/[objet]/[action]
Intégration : le système tiers qui envoie les données
Objet : la table qui envoit des données
Action : le traitement des données
Mode d'authentification
Indiquez quel mode d'authentification utiliser selon ce qui est compatible avec votre système tiers.
| Modes d'authentification | |
| En-tête hashmac | Authentification avec clé secrète partagée entre les 2 plateformes combiné à un algorithme et un encodage. | 
| Authentification http de base | Authentification avec un nom d’utilisateur et un mot de passe dans la requête HTTPS. Notez bien le mot de passe (à un endroit sécurisé), car il ne sera plus affiché nulle part dans la plateforme. Si vous le perdez, vous pourrez cliquer sur Générer un mot de passe aléatoire. | 
| En-têtes statiques | Authentification qui utilise le nom et la valeur de l'en-tête envoyée par votre système. | 
Étape 2 : Ajouter les scripts de transformation
Un script de transformation est un script en DI# qui dirige ce qui doit être fait avec la donnée lorsqu'un payload est reçu dans Dialog Insight. Le payload vient d'un Webhook entrant. Les scripts de transformation vont convertir les données reçues dans le endpoint (URL du Webhook Handler) avant de les envoyer à la liste de contacts ou la table de transactions.
La plupart du temps, notre équipe vous fournira un script de transformation lors de l'accompagnement initial. Ajoutez simplement les scripts dans leur handler de Webhooks respectif (Contacts ou Transactions). Vous pourriez toutefois créer un script vous-même ou modifier un script existant. Si c'est le cas, consultez la procédure ci-après.
Rendez-vous dans Projet → Gestion des données et, sous Intégrations, cliquez sur Configurations avancées :
Rendez-vous dans la section Scripts. Si vous voulez créer un nouveau script, cliquez sur Créer.
Pour ajouter du contenu à un script (déjà existant ou que vous venez tout juste de créer), cliquez sur Consulter au bout de la ligne de ce script.
Ajoutez les scripts dans l'éditeur :
Après avoir ajouté le script, cliquez sur Sauvegarder et sur Publier en production. Retournez ensuite dans la liste des scripts et créez un autre script pour les transactions.
Modèles de scripts de transformation
Ces scripts sont présentés à titre d'exemples et sont à adapter à votre cas.
| // Exemple de script de transformation pour Contact
datasource contacts = context.Payload;
datasource contactListUpdater = System.Operations.ContactListUpdaters.GetCurrent();
datasource mapping = System.Operations.Mappings.Get(contactListUpdater, "ContactMapping");
foreach (contact in contacts)
{
    datasource contactDataSource = system.SourceHelper.CreateCollection();
    
    // Section Identification
    contactDataSource.SetValue("email", contact.email);
    contactDataSource.SetValue("firstName", contact.firstName);
    contactDataSource.SetValue("lastName", contact.lastName);
    
    // Section Coordonnées
    contactDataSource.SetValue("address", contact.address);
    contactDataSource.SetValue("app", contact.appartment_number);
    contactDataSource.SetValue("city", contact.city);
    contactDataSource.SetValue("province", contact.province);
    contactDataSource.SetValue("country", contact.country);
    contactDataSource.SetValue("postalcode", contact.postal_code);
    contactDataSource.SetValue("phone", contact.home_phone);
    contactDataSource.SetValue("mobile", contact.mobile_phone);
    
    // Application du mapping et chargement des données
    datasource mappedContact = mapping.MapWithMappingBase(contactDataSource);
    contactListUpdater.Merge(mappedContact);
} | 
| // Exemple de script de transformation pour Transaction (la table standard de Dialog Insight)
datasource transactionPayload = context.Payload;
datasource transactionUpdater = System.Operations.RelationalTableUpdaters.GetByCode("ECommerce_Transaction");
datasource mapping = System.Operations.Mappings.Get(transactionUpdater, "TransactionMapping");
foreach (trx in transactionPayload)
{
    datasource trxDataSource = system.SourceHelper.CreateCollection();
    
    trxDataSource.SetValue("id", trx.id);
    trxDataSource.SetValue("email", trx.email);
    trxDataSource.SetValue("status", trx.status);
    trxDataSource.SetValue("price", trx.price);
    
    // Application du mapping et chargement des données
    datasource mappedtrx = mapping.MapWithMappingBase(trxDataSource);
    transactionUpdater.Merge(mappedtrx);
} | 
Étape 3 : Créer la correspondance des champs
Rendez-vous dans Projet → Gestion des données et, sous Intégrations, cliquez sur Configurations avancées. Dans la section Mappings, vous devez ajouter un mapping pour les contacts et un autre pour les transactions :
Exemple de correspondance pour Contact Légende
Légende 
Étape 4 : Appeler le callback URL
Lorsqu'un handler de Webhooks est créé (il faut sauvegarder et revenir dans le handler), un callback URL est généré :
C = Numéro de compte dans Dialog Insight
P = Numéro du projet Dialog Insight
W = Numéro du Webhook
Vous devez indiquer à votre système tiers l'URL à appeler pour synchroniser vos Contacts Et celle pour pour les Transactions.
 
                