Comment inscrire automatiquement un contact HubSpot dans une campagne Dux-Soup

Ce tutoriel vous guidera dans la configuration d'un workflow HubSpot afin de déclencher automatiquement une action « Enroll » (Inscrire) de Dux-Soup pour un contact spécifique. Ce processus utilise une action de code personnalisée dans HubSpot pour communiquer en toute sécurité avec l'API Dux-Soup.

Cas d'utilisation : 

  • Combinez les e-mails et LinkedIn pour une communication multicanale dans le flux de travail.
  • Inscrivez automatiquement quelqu'un à une séquence HubSpot et à une campagne Dux-Soup. 
  • Lorsqu'il est ajouté à un nouveau segment, à une nouvelle étape de prospection ou à une nouvelle transaction, il est automatiquement diffusé sur LinkedIn.
  • Envoyez une demande de connexion ou un message direct à une personne lorsqu'elle remplit un formulaire sur votre site web (merci de nous avoir contactés et d'avoir téléchargé ce document, nous serions ravis d'entrer en contact avec vous). 

Conditions préalables

Avant de commencer, assurez-vous d'avoir les éléments suivants :

  • Un compte HubSpot avec accès aux workflows (niveau HubSpot Pro ou supérieur).
  • Une licence Dux-Soup Turbo ou Dux-Soup Cloud (requise pour accéder à l'API).
  • Le connecteur Dux-Soup HubSpot s'installe à partir du Dux-Dash (Comment l'installer).

  • Un contact HubSpot dont le champ Profil LinkedIn est rempli avec son profil LinkedIn respectif (par exemple, https://www.linkedin.com/in/username/) dans le champ « Profil LinkedIn », et NON l'URL LinkedIn ou toute autre information.

Étape 1 : Créez votre campagne dans Dux-Soup

Tout d'abord, vous devez créer dans Dux-Soup la campagne à laquelle vous souhaitez inscrire des contacts.

  1. Accédez à votre Dux-Dash.
  2. Cliquez sur « Nouvelle campagne » et donnez-lui un nom facile à retenir (par exemple, visite-hs).
  3. Ajoutez les étapes que vous souhaitez inclure dans la campagne (par exemple, une visite de profil, une demande de connexion, etc.).
  4. Cliquez sur [ENREGISTRER].
  5. Il est essentiel de copier l'identifiant de la campagne. L'identifiant doit être copié exactement tel qu'il est nommé, par exemple « visit-hs ». Veuillez vous référer à la capture d'écran ci-dessous.

Étape 2 : Obtenez vos identifiants API Dux-Soup

Vous devez obtenir votre identifiant utilisateur unique et votre clé API pour authentifier vos demandes.

  1. Dans Dux-Dash, accédez à l'onglet Options.

Cliquez sur l'extension Dux-Soup, puis sur l'icône en forme de roue dentée.


  1. Cliquez sur l'onglet Connecter.
  2. Faites défiler vers le bas jusqu'à la section Télécommande Dux-Soup.
  3. Copiez votre identifiant utilisateur et votre clé. Conservez-les dans un endroit sûr et temporaire.

Si vous ne voyez pas l'onglet Connect, activez le mode Expert et réessayez (pour en savoir plus, cliquez ici).


Étape 3 : Créer le workflow HubSpot

Accédez à HubSpot pour créer le flux de travail qui déclenchera l'action.

  1. Dans HubSpot, accédez à Automatisation > Workflows.
  2. Cliquez sur « Créer un workflow » > « À partir de zéro ».
  3. Sélectionnez « Basé sur les contacts » et cliquez sur « Suivant ».
  4. Configurez votre déclencheur d'inscription. C'est l'événement qui déclenchera l'automatisation. 
    1. Déclenché manuellement (idéal pour se connecter à d'autres flux de travail) 
    2. Quand une nouvelle personne termine une séquence 
    3. Lorsqu'une nouvelle personne est ajoutée à une liste de segments 
    4. L'exemple que nous utilisons est déclenché manuellement, ce qui signifie qu'il se déclenchera lorsque nous ajouterons manuellement un contact au flux de travail.
  5. Cliquez sur l'icône + pour ajouter une action.

Étape 4 : Configurer l'action de code personnalisée

Ajoutez une action « Code personnalisé » et configurez-la de manière sécurisée.

  1. Dans le panneau « Choisir une action », faites défiler vers le bas jusqu'à « Opérations sur les données » et sélectionnez « Code personnalisé ».
  2. Dans le panneau de gauche, configurez les éléments suivants :
  • Dans le « Secrets » section, cliquez sur « Choisissez un secret » > « Ajouter un secret » et entrez votre Dux-Soup API Clé. 
    • Par exemple : SCOTT_WRIGHT_DUX_SOUP_API_KEY
    • Collez la clé API que vous avez copiée à partir de l'onglet Dux-Soup Connect dans Options à l'étape 2. Il s'agit généralement d'une chaîne de chiffres et de lettres.
  • Cliquez à nouveau sur « Ajouter un secret ».

  1. Mappez la propriété LinkedIn. Cela indique au code quel champ HubSpot contient l'URL LinkedIn du contact.
  • Dans la section « Propriétés à inclure dans le code », cliquez sur « Ajouter une propriété ».
  • Clé : ds_liprofile
  • Propriété : cliquez sur « Sélectionner une propriété » et choisissez votre propriété de contact HubSpot qui stocke l'URL du profil LinkedIn. Il doit s'agir du champ contenant l'URL du profil. N'utilisez pas d'autres champs tels que « URL LinkedIn » s'ils ne constituent pas la source de données correcte.
  • Profil LinkedIn (sensible à la casse, PAS l'URL du profil LinkedIn ou l'URL LinkedIn).
  • Vérifiez qu'il est bien indiqué ds_liprofile (voir ci-dessous).

Étape 5 : Ajouter le code personnalisé

  1. Dans la case principale « Code », assurez-vous que « Langage » est réglé sur Node.js 18.x.
  2. Supprimez tout le code de remplacement dans la zone.
  3. Copiez et collez l'intégralité du script ci-dessous.

  • Veillez à remplacer les noms de clés confidentiels par ceux que vous avez créés ci-dessous.
  • Veillez également à remplacer le nom de la campagne que vous comptez utiliser.
// Import the required libraries. 'axios' is for making HTTP requests, 'crypto' is for the signature.
const axios = require('axios');
const crypto = require('crypto');

exports.main = async (event, callback) => {
  // --- 1. Get your Secrets ---
  // These names MUST exactly match the Secrets you created in Step 4.
  const apiKey = process.env.SCOTT_WRIGHT_DUX_SOUP_API_KEY;
  const userId = process.env.SCOTT_WRIGHT_DUX_SOUP_USER_ID;

  // --- 2. Get your Contact's LinkedIn URL ---
  // This 'ds_liprofile' MUST exactly match the Key you created in Step 4.
  const profileUrl = event.inputFields['ds_liprofile'];
  
  // Check if we have all the data we need
  if (!profileUrl) {
    console.error("LinkedIn Profile URL is missing.");
    return callback({
      outputFields: {
        hs_execution_state: "FAILED",
        status: "error",
        message: "LinkedIn Profile URL is missing from contact."
      }
    });
  }
  
  // --- 4. Build the API Request (just like your script) ---
  const apiUrl = `https://app.dux-soup.com/xapi/remote/control/${userId}/queue`;
  const timestamp = Date.now();

  // This payload format is based on your API Test Tool's cURL command.
  const payload = {
    targeturl: apiUrl,
    userid: userId,
    timestamp: timestamp,
    params: {
      profile: profileUrl,
      force: true, // 'force' is included from your test tool setup
      campaignid: "visit-hs" // <-- This MUST match your Campaign ID from Step 1.
    },
    command: "enroll" 
  };

  // Convert the payload object to a JSON string
  const payloadString = JSON.stringify(payload);

  // --- 5. Generate the HMAC-SHA1 Signature ---
  const hmac = crypto.createHmac('sha1', apiKey);
  hmac.update(payloadString);
  const signature = hmac.digest('base64');
  
  // --- 6. Send the Request to Dux-Soup ---
  try {
    const response = await axios.post(apiUrl, payloadString, {
      headers: {
        'X-Dux-Signature': signature,
        'Content-Type': 'application/json'
      }
    });
    
    // Success! Send data back to HubSpot.
    console.log("Successfully queued visit:", response.data);
    callback({
      outputFields: {
        status: 'success',
        message: JSON.stringify(response.data)
      }
    });

  } catch (error) {
    // Handle any errors
    const errorMessage = error.response ? JSON.stringify(error.response.data) : error.message;
    console.error("Error queuing visit:", errorMessage);
    
    // Send error data back to HubSpot
    callback({
      outputFields: {
        status: 'error',
        message: errorMessage
      }
    });
  }
};

Étape 6 : Configuration finale et tests

  1. Personnalisez l'ID de campagne : dans le code que vous venez de coller, recherchez la ligne 47: campaignid: « visit-hs ». Remplacez « visit-hs » par l'ID de campagne exact que vous avez créé à l'étape 1.
  2. Cliquez sur « Enregistrer » en haut à droite du panneau d'actions.
  3. Vous pouvez désormais « Tester l'action » dans le panneau de gauche en sélectionnant un contact qui dispose d'une URL de profil LinkedIn.
  4. Une fois que vous êtes satisfait, cliquez sur « Vérifier et publier » pour activer votre flux de travail.

Dépannage

  • « Mon flux de travail indique « Réussite », mais rien ne s'est passé » L'API Dux-Soup fonctionne comme une file d'attente. La « réussite » de HubSpot signifie que la commande a été envoyée avec succès. Votre extension Chrome Dux-Soup doit être en cours d'exécution et connectée à LinkedIn pour récupérer la commande et l'exécuter. Vérifiez votre page Dux-Dash Queued Activity pour voir la commande en attente.
  • « Mon contact test n'est pas inscrit » Si vous avez testé un contact (par exemple, avec une action de visite), Dux-Soup peut « verrouiller » ce contact et l'empêcher d'être inscrit. Pour résoudre ce problème, accédez à votre flux d'entonnoir Dux-Dash, recherchez le contact, cochez la case à côté de son nom et sélectionnez « Qualify Out »(Exclure). Cela réinitialise le contact, le rendant éligible à l'inscription.
  • Utilisation de la campagne « par défaut ». Comme indiqué dans votre document, si vous envoyez un identifiant de campagne qui n'existe pas dans votre Dux-Dash, Dux-Soup inscrira automatiquement le contact dans votre campagne « par défaut ».
  • Dux-Soup ne vous permet pas d'inscrire une même personne à plusieurs campagnes. Vous devrez donc créer une nouvelle campagne pour chaque personne lorsque vous effectuez plusieurs tests. 

Notes

  • Un flux de travail correspond à un utilisateur Dux-Soup. 
    • Vous souhaitez avoir plusieurs utilisateurs Dux ? Créez plusieurs flux de travail distincts.
  • Un workflow est lié à une campagne spécifique pour cet utilisateur.
    • Vous souhaitez mener plusieurs campagnes différentes pour différents cas d'utilisation ? Créez des workflows HubSpot distincts pour chaque campagne Dux-Soup pour cet utilisateur Dux-Soup. 
  • Utilisez une campagne, et lorsque vous souhaitez la modifier, ajustez-la dans Dux-Dash. Pour en savoir plus sur la modification des campagnes actives, cliquez ici.
  • Vous pouvez configurer vos déclencheurs dans HubSpot sur « inscription manuelle ». Cela vous permettra de vous inscrire facilement à partir d'autres sections de HubSpot, telles que Segments (listes), en sélectionnant les personnes souhaitées dans la vue Segment de HubSpot, puis en les inscrivant au workflow HubSpot qui les inscrit à la campagne Dux-Soup. 
  • Utilisez ce workflow HubSpot pour démarrer/arrêter ou déclencher d'autres workflows dans HubSpot pour différentes tâches.

Pour toute question concernant ce processus, veuillez contacter Scott Wright, directeur commercial chez Dux-Soup, par e-mail à l'adresse scott@dux-soup.com.