Skip to main content
Filters allow you to select specific items from arrays based on conditions. Using the ?() operator, you can query data, perform conditional selection, and extract exactly what you need.
Filters are a standard JSONPath feature that enables SQL-like querying of JSON data structures.

Filter Syntax

Filters use the ?() operator with conditional expressions:
  • ? - Indicates a filter operation
  • (expression) - The condition to evaluate
  • @ - References the current item being filtered
Filters always return an array, even if only one item matches. To get a single item, you can combine with array indexing: $.users[?(@.active===true)][0]

The @ Symbol

Inside filter expressions, @ represents the current item being evaluated.
Filter
Data
Result
@ refers to each product object as it’s evaluated.

Comparison Operators

Use JavaScript comparison operators in filter expressions:
Filters
Operators:
  • === - Strict equality (recommended)
  • !== - Strict inequality
  • == - Loose equality
  • != - Loose inequality

Comparison Operators Reference

Use === (strict equality) instead of == to avoid type coercion issues. For example, 5 == "5" is true, but 5 === "5" is false.

Logical Operators

Combine multiple conditions with logical operators:
Filter
Data
Result
Both conditions must be true.

Advanced Filter Variables

JSONPath Plus provides special variables for accessing related data:
Access the root document from within a filter:
Filter
Data
Result
@root lets you compare array items against trigger data or other nodes.

Filter Variables Reference

Type Selectors in Filters

Filter by data type using type selector operators:
Filters
Data
Select items by their type.

Type Selectors Reference

Complex Filter Patterns

Filter
Select items within a numeric range.

Real-World Examples

Filters
Common e-commerce filtering patterns.

Combining Filters with Other Operations

Mapping
Get a single item from filtered results.

Common Pitfalls

Wrong:
Correct:
Wrong:
Correct:
Note: In some implementations, quotes are optional, but it’s best practice to include them.
Issue:
Solution:
Issue:
Better:

Performance Considerations

Efficient Filters

Slower Filters

Optimization tips:
  • Filter early in your JSONPath expression to reduce data being processed
  • Use simple conditions when possible
  • Consider splitting complex filters into multiple steps
  • Test with realistic data sizes

Building Complex Filters

1

Start Simple

Begin with a basic filter:
2

Add One Condition

Add conditions incrementally:
3

Test Each Addition

Verify the filter works after each change using the Flow Debugger
4

Use Parentheses for Complex Logic

Group conditions clearly:
5

Consider Readability

If the filter becomes too complex, consider:
  • Breaking into multiple filters
  • Using separate nodes for each filter step
  • Adding comments in your flow documentation

Quick Reference

  • Always returns an array
  • Use @ for current item
  • Combine with [0] for single item
Prefer === over == for type safety
Use parentheses for complex logic

What’s Next?

Advanced Techniques

Learn power user features and optimization strategies

Examples

See comprehensive real-world examples

Reference

Complete syntax tables and troubleshooting

Basic Syntax

Review the fundamentals
Questions? Check the Reference or visit our Help Center.