Déclenchez un message personnalisé de demande de connexion IA depuis votre CRM vers Dux-Soup à l'aide de n8n.

Difficulté : avancée ; inclut n8n, JavaScript, l'API Zoho CRM, l'API Dux-Soup et l'API OpenAI.


Cette intégration n8n vous permet d'envoyer automatiquement des demandes de connexion LinkedIn semi-personnalisées et aléatoires avec Dux-Soup chaque fois qu'un nouvel événement de prospect se produit dans le CRM.

Dans ce guide, nous utilisons Zoho CRM comme exemple.


Étape 1 - Créez un Webhook dans n8n et connectez-le à Zoho CRM.


  1. Créer un nœud Webhook
  2. Définissez la méthode HTTP sur POST.
  3. Copiez l'URL du webhook

  1. Collez maintenant l'URL du webhook n8n dans la configuration du webhook Zoho.

Zoho → Configuration → Automatisation → Webhooks → Configurer le webhook

Collez le webhook, assurez-vous que la méthode reste POST, sélectionnez le module « Leads » et enregistrez la configuration.

  1. Le webhook doit être associé à une règle de workflow pour se déclencher.

Zoho → Automatisation → Règles de workflow → Créer une règle

Définissez une règle pour la création d'un prospect, avec pour condition que l'URL du profil LinkedIn ne soit pas vide. Si cette condition est remplie, le webhook doit être déclenché.

Ceci n'est qu'un exemple ; vous pouvez avoir un nom de champ différent contenant l'URL LinkedIn.

  1. Revenez au flux de travail n8n et cliquez sur Écouter l'événement test.

Vous devriez voir apparaître les champs de sortie sur le côté droit.


Étape 2 - Génération de messages OpenAI


  1. Ajoutez le nœud OpenAI Chat Model dans n8n. Ce nœud se décompose en trois composants :

    • Lorsque le chat est créé (déclencheur — non nécessaire pour ce flux de travail)
    • Chaîne LLM de base (où vous entrerez votre message)
    • OpenAI (où vous sélectionnez votre compte API et votre modèle)

  1. Supprimez le déclencheur « Lorsque le chat est créé » — nous utilisons à la place le webhook Zoho comme déclencheur.
  2. Connectez Webhook → Chaîne LLM de base comme indiqué dans la capture d'écran.

  1. Ouvrez le nœud Basic LLM Chain et définissez :

Source pour la invite → Définir ci-dessous


Étant donné qu'OpenAI ne peut pas parcourir les URL LinkedIn, il doit uniquement utiliser les données que vous fournissez : pas de scraping de profil, pas de lecture en direct. Voici l'invite recommandée conçue pour l'automatisation avec les espaces réservés Dux-Soup :

Rédigez un message LinkedIn unique pour établir des contacts à l'aide des espaces réservés ci-dessous. 
Les espaces réservés doivent rester EXACTS et inchangés — ne les remplacez pas, ne les réécrivez pas et ne modifiez pas leur formatage.

Espaces réservés obligatoires :
_FN_ (toujours inclus)
Choisissez au hasard UN des éléments suivants, mais pas plus d'un :
_CN_ / _TI_ / _IN_

Utilisez l'un de ces espaces réservés et rédigez votre message de manière naturelle autour de celui-ci.
N'utilisez jamais plus d'un des espaces réservés (_CN_, _TI_, _IN_) dans un même message.

Exemple de logique (à ne PAS copier directement) :
Si vous utilisez _CN_ → « Bonjour _FN_, j'apprécie beaucoup d'entrer en contact avec des personnes issues d'entreprises telles que _CN_. »
Si vous utilisez _TI_ → « Bonjour _FN_, je suis ravi de rencontrer des professionnels travaillant chez _TI_. »
Si vous utilisez _IN_ → « Bonjour _FN_, j'apprécie de rencontrer des personnes chez _IN_. »

Règles :
- 280 caractères maximum.
- Ton chaleureux, humain et professionnel — pas de vente ni de promotion.
- N'inventez PAS de détails sur le profil. Si les données requises sont manquantes, rédigez un message général mais amical.
- Le message doit sembler naturel et ne pas être répétitif.

Exigence de variation :
Avant de rédiger, choisissez silencieusement un style aléatoire entre 1 et 10 afin de varier le ton et la structure des phrases.
Utilisez ce style pour produire à chaque fois un résultat différent en modifiant la formulation, le rythme et les premières lignes.
NE révélez PAS le style.

Correspondance des tons :
1-3 → concis et chaleureux
4-6 → raffiné et professionnel
7-8 → légèrement plus détaillé
9-10 → amical et sympathique

Générez maintenant le message en utilisant _FN_ et EXACTEMENT UN espace réservé choisi parmi (_CN_, _TI_, _IN_).
  1. Sélectionnez votre compte et votre modèle dans le composant OpenAI.

Pour que cela fonctionne, vous devez disposer d'un crédit OpenAI ou d'un moyen de paiement associé.

  1. Revenez au composant Basic LLM Chain et exécutez l'étape de test. Le message devrait s'afficher à droite.

Étape 3 - Nœud de code (générer HMAC + charge utile)

  1. Ajoutez un nœud Code après la chaîne LLM de base. Dans ce guide, nous utilisons le code JavaScript, mais vous pouvez également utiliser Python.

  1. Utilisez ce code :
// 1. Read data from previous nodes

// From the Webhook node (Zoho payload)
const webhookData = $node["Webhook"].json;

// If Zoho sends the profile in the body as "url"
const profileUrl = webhookData.headers.url;   // <-- change 'url' if your field name is different

// From the Basic LLM Chain (your AI-written message)
const llmData = $node["Basic LLM Chain"].json;
const messageText = llmData.text || "$input.first().json.text";   // The message the AI wrote

// 2. Dux-Soup credentials
const apiKey = 'DUXAPIKEY';  //  your Dux-Soup API key here
const userId = 'DUXUSERID';  // your Dux-Soup userid

// 3. Build payload Dux-Soup expects
const payload = {
  targeturl: `https://app.dux-soup.com/xapi/remote/control/${userId}/queue`,
  userid: userId,
  timestamp: Date.now(),
  command: 'connect',              // or 'message'
  params: {
    profile: profileUrl,
    messagetext: messageText
  }
};

// 4. Sign payload with HMAC SHA1 (Base64)
const crypto = require('crypto');
const hmac = crypto
  .createHmac('sha1', apiKey)
  .update(JSON.stringify(payload))
  .digest('base64');

// 5. Return for HTTP Request node
return [
  {
    json: {
      payload,
      hmac,
      profileUrl,
      messageText,
    },
  },
];

Étape 4 - Nœud de requête HTTP vers Dux-Soup


  1. Ajoutez un nœud de requête HTTP avec les champs suivants :
Champ Valeur
URL https://app.dux-soup.com/xapi/remote/control/<USER>/queue
Méthode POST
Authentification Aucun
  1. Ajoutez les en-têtes suivants :
Nom Valeur
Type de contenu application/json
X-Dux-Signature {{$json["hmac"]}}

  1. Ajoutez le corps de la requête (RAW JSON, non encapsulé dans Body:):
{{$json["payload"]}}


  1. Exécutez l'étape. La demande de connexion LinkedIn est désormais automatiquement mise en file d'attente dans Dux-Soup Queued Activity.

Remarques importantes

Assurez-vous de passer au webhook de production après le test réussi et mettez à jour la configuration de votre webhook CRM.

La clé API et l'URL de contrôle à distance se trouvent dans l'extension Dux-Soup → Options → onglet Connect.