diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java
index 04fd3aad25..ef7dca542f 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java
@@ -42,7 +42,7 @@ import java.io.IOException;
configClazz = TbCheckAlarmStatusNodeConfig.class,
relationTypes = {"True", "False"},
nodeDescription = "Checks alarm status.",
- nodeDetails = "If the alarm status matches the specified one - msg is success if does not match - msg is failure.",
+ nodeDetails = "Checks the alarm status to match one of the specified statuses.",
uiResources = {"static/rulenode/rulenode-core-config.js"},
configDirective = "tbFilterNodeCheckAlarmStatusConfig")
public class TbCheckAlarmStatusNode implements TbNode {
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java
index 26b8de5e8e..3853b3a62a 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java
@@ -32,12 +32,13 @@ import java.util.Map;
@Slf4j
@RuleNode(
type = ComponentType.FILTER,
- name = "check existence fields",
+ name = "check fields presence",
relationTypes = {"True", "False"},
configClazz = TbCheckMessageNodeConfiguration.class,
- nodeDescription = "Checks the existence of the selected keys from message data and metadata.",
- nodeDetails = "If selected checkbox 'Check that all selected keys are present'\" and all keys in message data and metadata are exist - send Message via True chain, otherwise False chain is used.\n" +
- "Else if the checkbox is not selected, and at least one of the keys from data or metadata of the message exists - send Message via True chain, otherwise, False chain is used. ",
+ nodeDescription = "Checks the presence of the specified fields in the message and/or metadata.",
+ nodeDetails = "Checks the presence of the specified fields in the message and/or metadata. " +
+ "By default, the rule node checks that all specified fields need to be present. " +
+ "Uncheck the 'Check that all specified fields are present' if the presence of at least one field is sufficient.",
uiResources = {"static/rulenode/rulenode-core-config.js"},
configDirective = "tbFilterNodeCheckMessageConfig")
public class TbCheckMessageNode implements TbNode {
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java
index 19a6c9ac5f..4a0d6b05e7 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java
@@ -46,10 +46,9 @@ import static org.thingsboard.common.util.DonAsynchron.withCallback;
name = "check relation",
configClazz = TbCheckRelationNodeConfiguration.class,
relationTypes = {"True", "False"},
- nodeDescription = "Checks the relation from the selected entity to the originator of the message by type and direction" +
- " if 'Check for single entity' is set to true, otherwise rule node will check if exist" +
- " any relation to the originator of the message by type and direction.",
- nodeDetails = "If at least one relation exists - send Message via True chain, otherwise False chain is used.",
+ nodeDescription = "Checks the presence of the relation between the originator of the message and other entities.",
+ nodeDetails = "If 'check relation to specific entity' is selected, one must specify a related entity. " +
+ "Otherwise, the rule node checks the presence of a relation to any entity that matches the direction and relation type criteria.",
uiResources = {"static/rulenode/rulenode-core-config.js"},
configDirective = "tbFilterNodeCheckRelationConfig")
public class TbCheckRelationNode implements TbNode {
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java
index b439c64abb..0bde9402a7 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java
@@ -34,9 +34,10 @@ import static org.thingsboard.common.util.DonAsynchron.withCallback;
type = ComponentType.FILTER,
name = "script", relationTypes = {"True", "False"},
configClazz = TbJsFilterNodeConfiguration.class,
- nodeDescription = "Filter incoming messages using JS script",
- nodeDetails = "Evaluate incoming Message with configured JS condition. " +
- "If True - send Message via True chain, otherwise False chain is used." +
+ nodeDescription = "Filter incoming messages using TBEL or JS script",
+ nodeDetails = "Evaluates boolean function using incoming message. " +
+ "The function may be written using TBEL or plain JavaScript. " +
+ "Script function should return boolean value and accepts three parameters:
" +
"Message payload can be accessed via msg property. For example msg.temperature < 10;
" +
"Message metadata can be accessed via metadata property. For example metadata.customerName === 'John';
" +
"Message type can be accessed via msgType property.",
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java
index 46422db94a..706978846a 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java
@@ -39,8 +39,8 @@ import java.util.Set;
name = "switch", customRelations = true,
relationTypes = {},
configClazz = TbJsSwitchNodeConfiguration.class,
- nodeDescription = "Route incoming Message to one or multiple output chains",
- nodeDetails = "Node executes configured JS script. Script should return array of next Chain names where Message should be routed. " +
+ nodeDescription = "Routes incoming message to one OR multiple output connections.",
+ nodeDetails = "Node executes configured TBEL(recommended) or JavaScript function that returns array of strings (connection names). " +
"If Array is empty - message not routed to next Node. " +
"Message payload can be accessed via msg property. For example msg.temperature < 10;
" +
"Message metadata can be accessed via metadata property. For example metadata.customerName === 'John';
" +
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java
index 5730de2b31..f4e13d761e 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java
@@ -32,8 +32,8 @@ import org.thingsboard.server.common.msg.TbMsg;
name = "entity type",
configClazz = TbOriginatorTypeFilterNodeConfiguration.class,
relationTypes = {"True", "False"},
- nodeDescription = "Filter incoming messages by message Originator Type",
- nodeDetails = "If the entity type of the incoming message originator is expected - send Message via True chain, otherwise False chain is used.",
+ nodeDescription = "Filter incoming messages by the type of message originator entity",
+ nodeDetails = "Checks that the entity type of the incoming message originator matches one of the values specified in the filter.",
uiResources = {"static/rulenode/rulenode-core-config.js"},
configDirective = "tbFilterNodeOriginatorTypeConfig")
public class TbOriginatorTypeFilterNode implements TbNode {
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java
index 6df6bc1e8a..373118ebdd 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java
@@ -32,7 +32,32 @@ import org.thingsboard.server.common.msg.TbMsg;
configClazz = TbGpsGeofencingFilterNodeConfiguration.class,
relationTypes = {"True", "False"},
nodeDescription = "Filter incoming messages by GPS based geofencing",
- nodeDetails = "Extracts latitude and longitude parameters from incoming message and returns 'True' if they are inside configured perimeters, 'False' otherwise.",
+ nodeDetails = "Extracts latitude and longitude parameters from the incoming message and checks them according to configured perimeter. " +
+ "Configuration:" +
+ "