Checks whether the specified fields are present in the incoming message data and/or metadata. By default, the node requires all specified fields to be present; you can switch to “at least one” mode.
Preconditions
Incoming message data must be a JSON object.
Configuration
Field descriptions
- Message field names — optional. A set of top-level JSON field names to look for in the message data.
- Metadata field names — optional. A set of metadata key names to look for in the message metadata.
- Check that all specified fields are present — toggle.
- Enabled: route
Trueonly if all listed message/metadata fields are present. - Disabled: route
Trueif at least one listed message/metadata field is present.
- Enabled: route
JSON Schema
Message processing algorithm
- Extract data as a JSON object and metadata as key–value pairs.
- Evaluate presence:
- If Check all keys is enabled: route
Trueif every listed field inmessageNamesexists in data and every listed field inmetadataNamesexists in metadata. - If Check all keys is disabled: route
Trueif any listed field exists in data or metadata.
- If Check all keys is enabled: route
- Otherwise, route
False. If an error occurs (e.g., payload is not a JSON object), routeFailure.
Output connections
True:- If the configured presence condition is satisfied.
False:- If the configured presence condition is not satisfied.
Failure:- If the incoming message data cannot be parsed as a JSON object
- If another unexpected error occurred during message processing.
Examples
The examples below show only the relevant fields of the incoming message. Unless explicitly stated otherwise, other message fields may have any values.
Example 1 — All required data fields present → True
Incoming message
Data:
1
2
3
4
{
"temp": 22.5,
"humidity": 55
}
Node configuration
1
2
3
4
5
6
7
8
{
"messageNames": [
"temp",
"humidity"
],
"metadataNames": [],
"checkAllKeys": true
}
State of the system
Not relevant.
Result
Routed via True.
Explanation
Both temp and humidity exist in the payload.
Example 2 — Missing one required data field → False
Incoming message
Data:
1
2
3
{
"temp": 22.5
}
Node configuration
1
2
3
4
5
6
7
8
{
"messageNames": [
"temp",
"humidity"
],
"metadataNames": [],
"checkAllKeys": true
}
State of the system
Not relevant.
Result
Routed via False.
Explanation
humidity is not present.
Example 3 — At least one metadata field present → True
Incoming message
Metadata:
1
2
3
4
{
"deviceName": "Pump-42",
"token": "abc123"
}
Node configuration
1
2
3
4
5
6
7
8
{
"messageNames": [],
"metadataNames": [
"token",
"tenantId"
],
"checkAllKeys": false
}
State of the system
Not relevant.
Result
Routed via True.
Explanation
At least one listed metadata key (token) is present.
Example 4 — At least one data field present → True
Incoming message
Data:
1
2
3
4
{
"temperature": 123,
"humidity": 42
}
Metadata:
1
2
3
4
{
"deviceName": "Sensor-1",
"deviceType": "TemperatureSensor"
}
Node configuration
1
2
3
4
5
6
7
8
9
10
{
"messageNames": [
"temperature"
],
"metadataNames": [
"token",
"tenantId"
],
"checkAllKeys": false
}
State of the system
Not relevant.
Result
Routed via True.
Explanation
At least one listed key (temperature) is present.
Example 5 — Invalid message format → Failure
Incoming message data
1
"not a JSON object"
Node configuration
1
2
3
4
5
6
7
{
"messageNames": [
"temp"
],
"metadataNames": [],
"checkAllKeys": true
}
State of the system
Not relevant.
Result
Failure.
Explanation
Message data is not a JSON object, so the node cannot check data keys.