Ouvrir le Studio

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.

Node Filter List sur le canevas filtrant les éléments d'une liste reliée

À 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

Paramètres du Filter List avec critères et opérateur logique configurables

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 listestring 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 quand list_type vaut object ; laisser vide en mode string).
  • 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 conditionsAND 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érateurDescription
equalsCorrespondance exacte
not_equalsNe correspond pas
containsContient la sous-chaîne
not_containsNe contient pas la sous-chaîne
starts_withCommence par la valeur
ends_withSe termine par la valeur
greater_thanSupérieur à (comparaison numérique)
less_thanInférieur à (comparaison numérique)
greater_equalSupérieur ou égal à
less_equalInférieur ou égal à
is_emptyValeur vide ou null
is_not_emptyValeur non vide et non null
inValeur incluse dans une liste séparée par des virgules
not_inValeur absente d’une liste séparée par des virgules
Tip

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 : object
  • conditions : [{"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 : string
  • conditions : [{"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 : object
  • conditions : [{"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

Tip

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.

Warning

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