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 Tools → Join 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 delist_2(ou null si aucune correspondance) - right — tous les éléments de
list_2, avec les données correspondantes delist_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
innerquand vous n’avez besoin que des enregistrements correspondants. Utilisezleftquand la première liste est votre jeu de données principal et que vous souhaitez l’enrichir. Utilisezfullquand 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,rightoufull, 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.