Filter payloads based on key presence, value conditions, and optional time-based throttling.
What It Does
The Conditional Filter Node allows you to pass or block workflow payloads depending on the presence (or absence) of a JSON key, whether that key’s value meets a specific condition, and/or whether a time-based pass limit is applied.
This node is useful for:
-
Routing only relevant data to downstream nodes
-
Enforcing rules like “only once per time window”
-
Blocking incomplete, invalid, or redundant payloads
-
Creating condition-driven logic flows (e.g., only proceed if
status = active
)
Configuration Options
Field | Required | Description |
---|---|---|
Node name | ✅ | A label to identify the node in your workflow |
JSON key | ✅ | The key in the payload to inspect (supports dot notation, e.g., device.temperature ) |
Payload passes if JSON key exists | Optional | If enabled, the node allows the payload only if the key exists |
Payload passes if JSON key is absent | Optional | If enabled, the node allows the payload only if the key does not exist |
Condition | Optional | The operator used to evaluate the key's value. Options: equals , not equals , greater than , less than , contains , starts with , etc. |
Value | Required if Condition is set |
The value to compare against |
Payload passes once in time period | Optional | Enables rate-limiting so that only one payload is allowed per configured time window |
Time period units | Required if time-based limit is enabled | Select from: seconds , minutes , hours , days |
Step-by-Step: How to Configure the Node
1. Add the Node
Drag a Conditional Filter Node onto the workflow canvas from the Logic & ETL category.
2. Set Node Name
Give the node a meaningful name (e.g., Filter: temperature > 50
).
3. Define the JSON Key
Enter the payload key to evaluate (e.g., temperature
, payload.deviceStatus
, etc.).
4. Configure Key Presence Logic
Enable only one of the following:
-
Payload passes if key exists
-
Payload passes if key is absent
Leave both unchecked if you only want to apply a condition.
5. Apply a Condition (Optional)
Choose a condition operator (e.g., greater than
) and define the Value (e.g., 30
).
The condition is only evaluated if the key is present.
6. Add Time-Based Rate Limiting (Optional)
Enable Payload passes once in time period and set the Time period units to restrict how often a match can pass.
Example Configurations
Example 1: Filter for a Key with a Value
-
JSON key:
temperature
-
Condition:
greater than
-
Value:
80
-
Passes if:
temperature > 80
Example 2: Only Pass Payloads That Contain errorCode
-
JSON key:
errorCode
-
Payload passes if JSON key exists: ✅
Example 3: Debounce Event
-
JSON key:
status
-
Condition:
equals
→fault
-
Payload passes once in time period: ✅
-
Time period units:
10 minutes
Q&A
Q: What happens if both “key exists” and “key is absent” are selected?
A: The payload will never pass. You should only enable one of these options.
Q: Can I filter by multiple keys in one node?
A: No. You should use multiple Conditional Filter nodes to evaluate multiple keys.
Q: What happens if the key is missing but a condition is defined?
A: The condition is skipped. The key presence logic (if defined) will decide whether the payload passes.
Q: Can I use nested keys?
A: Yes. Use dot notation for nested keys, e.g., payload.temperature.value
.