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 conditionproperty— the object property to evaluate (only used whenlist_typeisobject)operator— the comparison operator to applyvalue— 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
| Operator | Description |
|---|---|
equals | Exact match |
not_equals | Does not match |
contains | Contains the substring |
not_contains | Does not contain the substring |
starts_with | Starts with the value |
ends_with | Ends with the value |
greater_than | Greater than (numeric comparison) |
less_than | Less than (numeric comparison) |
greater_than_or_equal | Greater than or equal to |
less_than_or_equal | Less than or equal to |
is_empty | Value is empty or null |
is_not_empty | Value is not empty or null |
in | Value 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:objectconditions:[{"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:stringconditions:[{"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:objectconditions:[{"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
ANDwhen items must satisfy all conditions simultaneously (e.g., status is “published” AND author is “Alice”). UseORwhen items should match any one of the conditions (e.g., status is “draft” OR status is “review”). - String vs Object mode. Use
stringmode for flat lists of values (URLs, names, keywords). Useobjectmode 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.