Ouvrir le Studio

Join List

Joindre deux listes d'objets sur des propriétés correspondantes (comme un JOIN SQL)

A quoi sert ce node ?

Le node Join List joint deux listes d’objets sur des propriétés correspondantes, de manière similaire à un JOIN SQL. Il combine les objets des deux listes lorsque leurs propriétés spécifiées correspondent.

Usages courants :

  • Fusionner des données CRM avec des analytics en faisant correspondre l’email ou l’ID
  • Combiner des bases de données Notion sur une clé partagée
  • Enrichir des données produits avec des informations d’inventaire

Configuration rapide

Ajouter le node Join List

Trouvez-le dans ToolsJoin List

Connecter les deux entrées de listes

Reliez deux nodes qui produisent des listes d’objets aux entrées list_1 et list_2.

Configurer les conditions de jointure

Spécifiez les propriétés à faire correspondre (par exemple, email dans la liste 1 correspond à user_email dans la liste 2).

Choisir le type de jointure

Sélectionnez inner, left, right ou full selon les éléments sans correspondance que vous souhaitez conserver.

Utiliser la sortie

Connectez la sortie joined_list au node suivant de votre workflow.

Configuration

list_1 json required

La première liste d’objets à joindre.

list_2 json required

La deuxième liste d’objets à joindre.

join_conditions json

Un tableau JSON de conditions spécifiant les propriétés à faire correspondre. Chaque condition a un list1_property et un list2_property.

Exemple :

[
  { "list1_property": "keyword", "list2_property": "keyword" }
]

Plusieurs conditions créent une correspondance AND — toutes les conditions doivent être satisfaites pour que deux objets soient joints.

join_type select default: inner

Le type de jointure à effectuer :

  • inner — uniquement les éléments avec une correspondance dans les deux listes
  • left — tous les éléments de list_1, avec les données correspondantes de list_2 (ou null si aucune correspondance)
  • right — tous les éléments de list_2, avec les données correspondantes de list_1 (ou null si aucune correspondance)
  • full — tous les éléments des deux listes, avec des valeurs null là où aucune correspondance n’existe

Sortie

Un tableau JSON d’objets fusionnés. Chaque objet résultant contient toutes les propriétés des deux objets correspondants :

{
  "joined_list": [
    { "keyword": "seo tools", "volume": 12000, "rank": 3 },
    { "keyword": "keyword research", "volume": 8500, "rank": 7 }
  ]
}

Accès au résultat : {{JoinList_0.joined_list}}

Exemples

Inner join : mots-clés avec classements

Objectif : Faire correspondre une liste de mots-clés avec des données de classement pour ne voir que les mots-clés présents dans les deux sources.

graph LR
    A[Semrush: Keywords + Volume] --> C[Join List]
    B[Search Console: Keywords + Rank] --> C
    C --> D[LLM: Analyser les top keywords]

Configuration :

  • join_conditions : [{"list1_property": "keyword", "list2_property": "keyword"}]
  • join_type : inner

Résultat : Uniquement les mots-clés présents dans Semrush et Search Console, avec les données de volume et de classement combinées.

Left join : contacts avec commandes

Objectif : Lister tous les contacts et y attacher leurs données de commande si elles existent.

graph LR
    A[HubSpot: Contacts] --> C[Join List]
    B[Sheets: Orders] --> C
    C --> D[Filter List: Sans commandes]
    C --> E[LLM: Résumé des commandes]

Configuration :

  • join_conditions : [{"list1_property": "email", "list2_property": "customer_email"}]
  • join_type : left

Résultat : Tous les contacts de HubSpot apparaissent dans la sortie. Ceux avec des commandes correspondantes recoivent les données de commande ; ceux sans obtiennent des valeurs null pour les champs de commande.

Full join : vue complète des données

Objectif : Obtenir une vue complète de tous les produits à travers deux systèmes, qu’ils existent dans l’un ou les deux.

graph LR
    A[Notion: Product Catalog] --> C[Join List]
    B[Sheets: Inventory] --> C
    C --> D[Loop]
    D --> E[LLM: Générer un rapport]

Configuration :

  • join_conditions : [{"list1_property": "sku", "list2_property": "product_sku"}]
  • join_type : full

Résultat : Chaque produit des deux sources. Les produits présents dans les deux obtiennent des données fusionnées ; les produits dans une seule source obtiennent des valeurs null pour le côté manquant.

Bonnes pratiques

  • Choisir le bon type de jointure. Utilisez inner quand vous n’avez besoin que des enregistrements correspondants. Utilisez left quand la première liste est votre jeu de données principal et que vous souhaitez l’enrichir. Utilisez full quand vous avez besoin d’une vue complète des deux jeux de données.
  • Vérifier les noms de propriétés. Les noms de propriétés dans les conditions de jointure doivent correspondre exactement aux clés de vos objets. Inspectez la sortie brute des nodes en amont pour vérifier les noms de clés.
  • Gérer les valeurs null en aval. Avec les jointures left, right ou full, les éléments sans correspondance auront des valeurs null pour le côté manquant. Utilisez un node Conditional ou Code Block pour gérer ces cas.

Problèmes courants

La liste jointe est vide

Aucun objet ne correspond sur les propriétés spécifiées. Vérifiez que les noms de propriétés dans join_conditions correspondent exactement aux clés de vos objets (sensible à la casse). Inspectez les données brutes des nodes en amont pour vérifier les noms de clés réels.

Données manquantes dans les objets joints

Si vous utilisez une jointure left, right ou full, les éléments sans correspondance auront des valeurs null pour les propriétés de l’autre liste. C’est le comportement attendu. Ajoutez un node Filter List ou Conditional pour gérer les valeurs null si nécessaire.

Doublons inattendus dans la sortie

Si plusieurs objets d’une liste correspondent au même objet de l’autre liste, vous obtiendrez plusieurs résultats joints (un par correspondance). C’est le comportement standard des jointures. Utilisez Remove Duplicates ou Filter List après la jointure si vous avez besoin de résultats uniques.

Nodes associés