In Zaplane, triggers start workflows and actions perform tasks. But what if you want a workflow to run only when certain criteria are met? That’s where Conditions and Filters come in. These two tools let you add logic to your automations, making them smarter and more precise.
In this document, you will learn:
- The difference between Condition and Filter.
- How to add a Condition to control workflow flow.
- How to use a Filter to manipulate data arrays.
- Real‑world examples.
- Best practices.
1. Condition vs. Filter – What’s the Difference?
|
Tool |
Purpose |
Example |
|
Condition |
Controls whether a workflow continues or stops |
“Only continue if the order total is greater than $100” |
|
Filter |
Extracts or transforms data from an array or collection |
“From a list of users, keep only those who are subscribers” |
Both are found under Tools when you click Add Action (they are not apps – they are built‑in logic tools).

2. Adding a Condition
A condition works like an if‑then statement. You define a rule, and Zaplane checks if the rule is true.
Step 1: Insert a Condition tool
After your trigger (and before any action), click Add Action and choose Condition from the Tools list.

Step 2: Configure the condition
You will see a condition builder with fields:
- Left value – This can be static data or dynamic data from the trigger (type @).
- Operator – Choose a comparison, such as:
- equals / not equals
- greater than / less than
- contains / not contains
- is empty / is not empty
- Right value – The value to compare against.
Example:{{post_title}} contains “Urgent” → then condition is true.

Step 3: Define the outcome
You can choose what happens when the condition is true and (optionally) what happens when false.
- If true → continue to the next step (action or another tool).
- If false → you can stop the workflow or skip to an alternative branch (if you add a “else” path).

Step 4: Save
Click Continue. The condition will appear in your workflow. Any actions placed after it will only run if the condition passes.
3. Using the Filter Tool
A filter is used when you have an array (a list of items) and you want to extract a subset based on a rule. It does not stop the workflow; it changes the data.
Common use cases:
- From a list of WooCommerce order items, keep only those with quantity > 1.
- From a list of user IDs, keep only those who have a specific role.
- From an API response that returns many records, keep only records where status = “active”.
Step 1: Insert a Filter tool
Click Add Action and select Filter from Tools.

Step 2: Configure the filter
The filter requires:
- Source array – The list to filter (usually dynamic data from the trigger, e.g., @order_items).
- Filter condition – Similar to a condition, but applied to each item in the array.
- Example: quantity greater than 1
- Output – The filtered array will replace the original in the workflow data.

Step 3: Save
Click Continue. The filtered array is now available for subsequent actions (use @filtered_output or similar key).
4. Chaining Conditions and Filters
You can combine multiple conditions and filters to create complex logic.
Example Workflow:
- Trigger: WooCommerce → Order Completed
- Filter: From @order_items, keep only items where product_type equals membership.
- Condition: If the filtered array is not empty (i.e., the order contains at least one membership product) → then proceed.
- Action: FluentCRM → Add customer to “Membership” list.

5. Real‑World Examples
Example 1: High‑value order notification
- Trigger: WooCommerce → Order Completed
- Condition: @order_total greater than 500
- Action (true): Slack → Send message to #high-value-orders
- Action (false): Do nothing (or log a message)
Example 2: Process only specific post categories
- Trigger: WordPress → Post Published
- Condition: @post_category contains “news”
- Action: Send email to subscribers
Example 3: Filter array of comments to keep only approved ones
- Trigger: WordPress → Comment Added (but you want to process only approved comments in bulk)
- Filter: From @all_comments, keep where comment_approved equals 1
- Action: Loop through each filtered comment (using Iterator) and send a reply.
6. Advanced: Nested Conditions Using Multiple Condition Tools
Zaplane does not have an “else if” block directly, but you can achieve the same by adding multiple condition tools in sequence.
Example:
- Condition 1: If @status equals pending → action A
- Condition 2: (after condition 1’s false branch) If @status equals completed → action B
7. Testing Conditions and Filters
When you test a workflow, the Test Flow panel will show you:
- Whether each condition evaluated to true or false.
- The before and after state of a filter (original array vs filtered array).
If a condition fails, the workflow stops (unless you configured it to continue on false). Use logs to debug.
8. Common Mistakes
| Mistake | Solution |
| Using a condition on a non‑existent field | Check trigger’s output in logs to see available fields |
| Forgetting that filters return an array, not a single value | If you need a single item, use an Iterator or take the first element |
| Comparing numbers with equals when greater than is needed | Choose the correct operator for your logic |
| Condition placed after an action that depends on it | Conditions should come before the actions they control |
9. Best Practices
- Use conditions early in the workflow to avoid unnecessary processing.
- Combine conditions with filters – first filter the data, then check if the filtered result is meaningful.
- Label your tools (if supported) so logs are readable.
- Keep conditions simple – break complex logic into multiple condition steps.
- Always test both the true and false paths.
Summary
Conditions and filters give your automations intelligence. Conditions decide whether to continue; filters decide what data to keep. Together, they allow you to build precise, efficient workflows that react only to the right circumstances.
Next, we’ll cover Delays, Iterators, and Variables – the remaining tools that complete Zaplane’s automation toolkit.
Useful Links:
- Official Zaplane Website
- Previous: Understanding Actions
- Next: Using Delays, Iterators, and Variables