Skip to main content
The Filter action evaluates a condition and either continues execution (if true) or stops the workflow for that record (if false). Use it to gate processing and prevent unwanted records from continuing through your workflow.

How it works

  1. Define a condition using an expression
  2. If the condition is true, execution continues to the next node
  3. If the condition is false, execution stops for this record
  4. Stopped records are marked as “filtered” in execution logs

Configuration

PropertyDescription
ConditionAn expression that must be true for execution to continue

Writing filter conditions

Basic comparisons

{{nodes.score.value >= 50}}
{{nodes.enrich.employees > 100}}
{{nodes.start.status == "active"}}

Check for required values

{{nodes.start.email}}
{{nodes.enrich.company_name}}
{{nodes.search.results.length > 0}}

Exclude specific values

{{nodes.start.email.includes("@gmail.com") == false}}
{{!nodes.enrich.is_competitor}}
{{nodes.start.source != "test"}}

Combine conditions

{{nodes.enrich.email && nodes.enrich.company_name}}
{{nodes.score.value >= 50 && nodes.enrich.employees >= 100}}
{{nodes.start.tier == "enterprise" || nodes.score.value >= 80}}

Common use cases

Quality gate for leads

Only process leads that meet minimum criteria:
Condition: {{nodes.score.value >= 50 && nodes.enrich.employees >= 20}}
Records below the threshold are filtered out, saving processing time and API credits.

Require essential data

Stop processing if required fields are missing:
Condition: {{nodes.start.email && nodes.start.company_domain}}

Exclude competitors

Filter out competitor domains:
Condition: {{!["competitor1.com", "competitor2.com"].includes(nodes.start.domain)}}

Prevent duplicate processing

Check if the record was already processed:
Condition: {{!nodes.lookup.already_processed}}

Validate enrichment results

Only continue if enrichment was successful:
Condition: {{nodes.enrich.success && nodes.enrich.company_name}}

Skip test data

Filter out test or internal records:
Condition: {{!nodes.start.email.endsWith("@yourcompany.com")}}

Filter vs. Branch

Choose the right action for your use case:
ScenarioUse FilterUse Branch
Stop processing if condition fails
Need to handle both outcomes
Simple gate/quality check
Take different actions per outcome
Log or track failed records
Filter is simpler when you just want to stop processing. Branch is better when you need to do something specific with records that don’t pass.
Use Filter for simple quality gates. Use Branch when you need visibility into why records were stopped or want to handle failures explicitly.

Filter on arrays

When working with search results or lists:

Check if array has items

Condition: {{nodes.search.results.length > 0}}

Check if array has minimum items

Condition: {{nodes.find_contacts.results.length >= 3}}

Check array contents

Condition: {{nodes.search.results.some(r => r.score >= 50)}}

Best practices

Place filters early in your workflow to avoid wasting API calls and credits on records that will be filtered later.
Make your filter conditions clear and specific. Future you should understand why a record would be filtered.
If you need to track or handle filtered records (log them, send alerts), use Branch instead of Filter.
Test your filters with null values, empty strings, and unexpected data to ensure they behave correctly.
If most records are being filtered, your filter might be too strict or your data source might have quality issues.

Example: Lead qualification pipeline

A workflow with multiple quality gates: 1. Start → Receive inbound lead 2. Filter: Has required fields
Condition: {{nodes.start.email && nodes.start.company}}
Stops leads missing email or company 3. Enrich Company → Get firmographic data 4. Filter: Not a competitor
Condition: {{!nodes.enrich.is_competitor}}
Stops competitor companies 5. Score Lead → Calculate lead score 6. Filter: Meets qualification threshold
Condition: {{nodes.score.value >= 50 && nodes.enrich.employees >= 20}}
Stops leads below qualification threshold 7. Allocate → Assign to sales rep 8. Create CRM Contact → Add to HubSpot Only leads that pass all three filters reach the CRM.