Go to Studio

Filter List

Filter a list based on conditions with AND/OR logic

What does this node do?

The Filter List node filters a list of items based on one or more conditions combined with AND/OR logic. It supports both simple string lists and lists of objects, with a wide range of comparison operators.

Common uses:

  • Filter articles by status or category from a Notion database
  • Remove empty or invalid items from a list
  • Find items matching specific criteria
  • Filter dynamically based on user input using {{variable}} placeholders

Quick setup

Add the Filter List node

Drag it onto the canvas from the Tools panel.

Connect a list input

Connect the output of any node that produces a list (e.g., Create List, API Connector, Notion Database Reader) to the list input.

Configure conditions

Open the node settings and define your filter conditions. Choose whether to filter simple strings or objects, set one or more conditions, and select the logical operator (AND/OR).

Use the filtered output

Connect the filtered_list output to the next node in your workflow.

Configuration

Input

list json required

The list to filter. Must be a JSON array of strings or objects.

Parameters

list_type select default: string

The type of items in the list. Choose string for simple string lists or object for lists of objects with properties.

conditions json

An array of filter rules. Each condition is an object with the following fields:

  • id — unique identifier for the condition
  • property — the object property to evaluate (only used when list_type is object)
  • operator — the comparison operator to apply
  • value — the value to compare against (supports {{variable}} template placeholders)
logical_operator select default: AND

How multiple conditions are combined. AND requires all conditions to match. OR requires at least one condition to match.

Available operators

OperatorDescription
equalsExact match
not_equalsDoes not match
containsContains the substring
not_containsDoes not contain the substring
starts_withStarts with the value
ends_withEnds with the value
greater_thanGreater than (numeric comparison)
less_thanLess than (numeric comparison)
greater_than_or_equalGreater than or equal to
less_than_or_equalLess than or equal to
is_emptyValue is empty or null
is_not_emptyValue is not empty or null
inValue is in a comma-separated list

Output

A filtered_list containing only the items that match the conditions.

{
  "filtered_list": [
    {"title": "Article A", "status": "published"},
    {"title": "Article C", "status": "published"}
  ]
}

Examples

Filter objects by property

Filter a list of articles to keep only those with status equal to published.

graph LR
    A[Notion Database Reader] --> B[Filter List]
    B --> C[Loop: Process articles]

Settings:

  • list_type: object
  • conditions: [{"id": "1", "property": "status", "operator": "equals", "value": "published"}]
  • logical_operator: AND

Filter strings containing a keyword

Filter a list of URLs to keep only those containing blog.

graph LR
    A[Sitemap Reader] --> B[Filter List]
    B --> C[Web Scraper]

Settings:

  • list_type: string
  • conditions: [{"id": "1", "property": "", "operator": "contains", "value": "blog"}]
  • logical_operator: AND

Dynamic filter with variables

Filter products by a category provided by the user via a Text Input node. Use {{variable}} syntax to reference dynamic values.

graph LR
    A[Text Input: Category] --> B[Filter List]
    D[API Connector: Products] --> B
    B --> C[LLM: Summarize]

Settings:

  • list_type: object
  • conditions: [{"id": "1", "property": "category", "operator": "equals", "value": "{{category}}"}]
  • logical_operator: AND

The {{category}} placeholder is replaced at runtime with the value from the Text Input node.

Best practices

  • AND vs OR. Use AND when items must satisfy all conditions simultaneously (e.g., status is “published” AND author is “Alice”). Use OR when items should match any one of the conditions (e.g., status is “draft” OR status is “review”).
  • String vs Object mode. Use string mode for flat lists of values (URLs, names, keywords). Use object mode when your list contains structured data with properties you want to filter on.
  • Use variables for flexibility. Instead of hardcoding filter values, use {{variable}} placeholders so the same workflow can filter differently based on user input or upstream data.

Common issues

No results returned

Check that your conditions are correct. If using AND logic, all conditions must be satisfied simultaneously — try switching to OR to see if individual conditions match. Also verify that the comparison values are exact (operators like equals are case-sensitive).

Wrong list_type selected

If your list contains objects (e.g., [{"name": "Alice"}, {"name": "Bob"}]) but list_type is set to string, the filter will not evaluate properties correctly. Switch to object mode and specify the property field in your conditions.

Variable not resolved in condition value

If you see the literal text {{variable}} in your results instead of the resolved value, make sure the referenced node is connected and has produced output. The variable name must match the upstream node’s output name exactly.