Filter List
Le node Filter List ne conserve dans une liste que les éléments qui satisfont une ou plusieurs conditions combinées avec une logique AND/OR.
À quoi sert le node Filter List ?
Le node Filter List filtre une liste d’éléments selon une ou plusieurs conditions combinées avec une logique AND/OR. Il prend en charge les listes plates de chaînes de caractères comme les listes d’objets, avec un large choix d’opérateurs de comparaison et des valeurs dynamiques résolues depuis les nodes en amont via les placeholders {{variable}}.
Cas d’usage typiques :
- Ne conserver que les articles publiés issus d’une base Notion ou BigQuery avant de les traiter.
- Supprimer les éléments vides, invalides ou hors sujet d’une liste renvoyée par un scraper ou une API.
- Restreindre un catalogue produits à une seule catégorie choisie à l’exécution via un node Text Input.
- Pré-filtrer les URL d’un sitemap pour qu’un Web Scraper ne parcoure que le sous-ensemble pertinent.
Configuration rapide
Suivez ces étapes pour ajouter et configurer le node Filter List dans votre workflow :
Ajouter le node au canevas
Ouvrez la bibliothèque de nodes (Node Library), naviguez dans la catégorie Tools > List operations, puis glissez-déposez le node Filter List sur votre espace de travail.
Connecter la liste en entrée
Reliez le point d’entrée (à gauche du node) à la sortie de n’importe quel node produisant une liste — par exemple Create List, API Connector, Notion Database Reader, ou l’agrégat d’un Loop. L’entrée doit être un tableau JSON de chaînes ou d’objets.
Choisir le mode et les conditions
Ouvrez les paramètres du node. Réglez List Type sur string pour les listes plates ou object pour des éléments structurés. Cliquez sur + Add condition pour définir chaque règle (propriété, opérateur, valeur). Lorsque vous avez plusieurs conditions, choisissez AND ou OR pour les combiner.
Connecter la sortie
Reliez la sortie filtered_list (à droite du node) au node suivant. Celui-ci peut alors itérer, compter ou transformer les éléments restants.
Paramètres de configuration
Configurer le node revient à décrire ce qu’il faut conserver : la forme des éléments, les règles à évaluer, et la façon dont elles se combinent.
Champs requis
Name string required default: Filter List Nom du node — Sert à identifier ce node lors de l’exécution et du débogage du workflow (par exemple, « Garder uniquement les articles publiés »).
Description string required default: Filter a list based on conditions with AND/OR logic Description du node — Une courte phrase qui explique l’intention du filtre.
list json required Liste d’entrée — La liste à filtrer. Doit être un tableau JSON de chaînes ou d’objets, connecté depuis un node en amont.
Champs optionnels
list_type select default: string Type de liste — string pour les listes plates de valeurs (URL, noms, mots-clés). object pour les listes d’éléments structurés sur lesquels vous filtrez via une propriété précise.
conditions json default: [] Un tableau de règles de filtrage. Chaque condition est un objet avec les champs suivants :
id— identifiant unique de la condition (généré automatiquement dans l’UI).property— la propriété de l’objet à évaluer (utilisé uniquement quandlist_typevautobject; laisser vide en modestring).operator— l’opérateur de comparaison à appliquer (voir table ci-dessous).value— la valeur de comparaison. Supporte les placeholders{{variable}}résolus à l’exécution depuis les sorties des nodes en amont.
logical_operator select default: AND Combinaison des conditions — AND ne conserve un élément que si toutes les conditions sont remplies. OR conserve un élément dès qu’au moins une condition est remplie.
Opérateurs disponibles
| Opérateur | Description |
|---|---|
equals | Correspondance exacte |
not_equals | Ne correspond pas |
contains | Contient la sous-chaîne |
not_contains | Ne contient pas la sous-chaîne |
starts_with | Commence par la valeur |
ends_with | Se termine par la valeur |
greater_than | Supérieur à (comparaison numérique) |
less_than | Inférieur à (comparaison numérique) |
greater_equal | Supérieur ou égal à |
less_equal | Inférieur ou égal à |
is_empty | Valeur vide ou null |
is_not_empty | Valeur non vide et non null |
in | Valeur incluse dans une liste séparée par des virgules |
not_in | Valeur absente d’une liste séparée par des virgules |
Les opérateurs is_empty et is_not_empty n’attendent pas de valeur — le champ Value disparaît de l’UI lorsque vous les sélectionnez.
Que renvoie le node ?
Le node renvoie un unique tableau JSON contenant uniquement les éléments de la liste d’entrée qui satisfont aux conditions configurées. L’ordre des éléments retenus est préservé.
filtered_list json Le sous-ensemble des éléments d’entrée qui correspondent au filtre. Les éléments rejetés sont supprimés. Si rien ne correspond, le tableau est vide ([]) — le node ne lève pas d’erreur.
Exemple de payload après filtrage d’une liste d’articles pour ne garder que les articles publiés :
{
"filtered_list": [
{"title": "Article A", "status": "published"},
{"title": "Article C", "status": "published"}
]
}
Exemples d’utilisation
Exemple 1 : Filtrer des objets par propriété
Filtrer une liste d’articles pour ne conserver que ceux dont le status est published, puis itérer dessus.
Paramètres :
list_type:objectconditions:[{"id": "1", "property": "status", "operator": "equals", "value": "published"}]logical_operator:AND
graph LR
A[Notion Database Reader] --> B[Filter List]
B --> C[Loop: traiter les articles]
Exemple 2 : Filtrer des chaînes contenant un mot-clé
Filtrer une liste d’URL d’un sitemap pour ne garder que celles qui contiennent blog, puis les envoyer à un Web Scraper.
Paramètres :
list_type:stringconditions:[{"id": "1", "property": "", "operator": "contains", "value": "blog"}]logical_operator:AND
graph LR
A[Sitemap Reader] --> B[Filter List]
B --> C[Web Scraper]
Exemple 3 : Filtre dynamique avec une variable d’exécution
Filtrer un catalogue produits par une catégorie choisie par l’utilisateur via un node Text Input. Utilisez la syntaxe {{variable}} dans la valeur de la condition pour référencer une donnée dynamique.
Paramètres :
list_type:objectconditions:[{"id": "1", "property": "category", "operator": "equals", "value": "{{category}}"}]logical_operator:AND
graph LR
A[Text Input: category] --> B[Filter List]
D[API Connector: Products] --> B
B --> C[LLM: résumer]
Le placeholder {{category}} est remplacé à l’exécution par la valeur fournie par le node en amont dont la sortie s’appelle category.
Problèmes courants
La liste de sortie est vide alors que mes données semblent correctes
Cause : Avec la logique AND, toutes les conditions doivent être satisfaites — une seule règle trop stricte vide la liste entière. Les opérateurs sur chaînes comme equals, contains ou starts_with sont également sensibles à la casse.
Solution : Basculez temporairement l’opérateur logique sur OR pour identifier les conditions qui correspondent individuellement. Resserrez ensuite les règles une à une. Vérifiez la casse de vos valeurs de comparaison.
Le filtre ignore la propriété que j'ai configurée
Cause : list_type est défini sur string alors que l’entrée est en réalité une liste d’objets (par exemple [{"name": "Alice"}, {"name": "Bob"}]). En mode string, le node compare l’élément entier, jamais ses propriétés.
Solution : Passez List Type en object et renseignez le champ property de chaque condition avec la clé que vous souhaitez évaluer (par exemple name ou status).
Je vois le texte littéral {{variable}} dans le résultat au lieu d'une valeur
Cause : Le placeholder n’a pas pu être résolu : le node en amont référencé n’est pas connecté, n’a pas encore produit de sortie, ou son nom de sortie ne correspond pas exactement au nom de la variable.
Solution : Vérifiez que le node en amont est bien câblé sur le Filter List et que son nom de sortie (sensible à la casse) correspond au nom entre {{ }}. Assurez-vous qu’il s’exécute avant le Filter List.
La comparaison numérique donne des résultats incohérents
Cause : Les valeurs comparées sont stockées comme des chaînes, donc greater_than et less_than effectuent une comparaison lexicographique au lieu d’une comparaison numérique (par exemple, "10" est considéré comme inférieur à "9").
Solution : Assurez-vous que le node en amont émet de vrais nombres, pas des chaînes. Si vous ne pouvez pas modifier la sortie en amont, convertissez le champ en nombre avant le filtrage.
Bonnes pratiques
Privilégiez les placeholders {{variable}} aux valeurs codées en dur dès qu’un utilisateur, un LLM ou un node en amont peut fournir le critère. Le même workflow gère alors plusieurs cibles de filtrage sans duplication.
AND et OR ne sont presque jamais interchangeables. Utilisez AND quand chaque élément doit satisfaire toutes les conditions simultanément (status est published ET author est Alice). Utilisez OR quand un élément doit correspondre à au moins une de plusieurs alternatives (status est draft OU status est review). Choisir le mauvais opérateur vide silencieusement la sortie ou laisse passer trop de données.
Nodes complémentaires
Construire une liste à partir de plusieurs entrées avant de la filtrer.
Compter combien d’éléments ont survécu au filtre.
Combinez avec Filter List pour dédupliquer et nettoyer une liste en une seule passe.
Itérer sur chaque élément retenu pour le traiter plus loin.