"If alarm was not cleared, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'metadata' will contains 'isClearedAlarm' property. "+
"If alarm was not cleared, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'metadata' will contains 'isClearedAlarm' property. "+
"Message payload can be accessed via <code>msg</code> property. For example <code>'temperature = ' + msg.temperature ;</code>. "+
"Message payload can be accessed via <code>msg</code> property. For example <code>'temperature = ' + msg.temperature ;</code>. "+
"Message metadata can be accessed via <code>metadata</code> property. For example <code>'name = ' + metadata.customerName;</code>.",
"Message metadata can be accessed via <code>metadata</code> property. For example <code>'name = ' + metadata.customerName;</code>.",
"If alarm was not created, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'metadata' will contains one of those properties 'isNewAlarm/isExistingAlarm'. "+
"If alarm was not created, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'metadata' will contains one of those properties 'isNewAlarm/isExistingAlarm'. "+
"Message payload can be accessed via <code>msg</code> property. For example <code>'temperature = ' + msg.temperature ;</code>. "+
"Message payload can be accessed via <code>msg</code> property. For example <code>'temperature = ' + msg.temperature ;</code>. "+
"Message metadata can be accessed via <code>metadata</code> property. For example <code>'name = ' + metadata.customerName;</code>.",
"Message metadata can be accessed via <code>metadata</code> property. For example <code>'name = ' + metadata.customerName;</code>.",
"Useful in GPS tracking use cases where relation acts as a temporary indicator of a tracker presence in specific geofence.</li>"+
"Useful in GPS tracking use cases where relation acts as a temporary indicator of a tracker presence in specific geofence.</li>"+
"<li><strong>Change originator to target entity</strong> - useful when you need to process submitted message as a message from target entity.</li></ul>"+
"<li><strong>Change originator to target entity</strong> - useful when you need to process submitted message as a message from target entity.</li></ul>"+
"Output connections: <code>Success</code> - if the relation already exists or successfully created, otherwise <code>Failure</code>.",
"Output connections: <code>Success</code> - if the relation already exists or successfully created, otherwise <code>Failure</code>.",
"This node is particularly useful when device isn't using transports to receive data, such as when fetching data from external API or computing new data within the rule chain.",
"This node is particularly useful when device isn't using transports to receive data, such as when fetching data from external API or computing new data within the rule chain.",
"<b>Note:</b>If the mapping key is <b>$entity_id</b>, that is identified by the Message Originator, then to the appropriate column name(mapping value) will be write the message originator id.<br><br>"+
"<b>Note:</b>If the mapping key is <b>$entity_id</b>, that is identified by the Message Originator, then to the appropriate column name(mapping value) will be write the message originator id.<br><br>"+
"If specified message field does not exist or is not a JSON Primitive, the outbound message will be routed via <b>failure</b> chain,"+
"If specified message field does not exist or is not a JSON Primitive, the outbound message will be routed via <b>failure</b> chain,"+
" otherwise, the message will be routed via <b>success</b> chain.",
" otherwise, the message will be routed via <b>success</b> chain.",
"If the incoming message originator is a dashboard, will try to search for the customer by title specified in the configuration. "+
"If the incoming message originator is a dashboard, will try to search for the customer by title specified in the configuration. "+
"If customer doesn't exist, the exception will be thrown. Otherwise will unassign the dashboard from retrieved customer.<br><br>"+
"If customer doesn't exist, the exception will be thrown. Otherwise will unassign the dashboard from retrieved customer.<br><br>"+
"Other entities can be assigned only to one customer, so specified customer title in the configuration will be ignored if the originator isn't a dashboard.",
"Other entities can be assigned only to one customer, so specified customer title in the configuration will be ignored if the originator isn't a dashboard.",
"Message will be routed via <b>Failure</b> route if node was not able to save cloud event to database or unsupported originator type/message type arrived. "+
"Message will be routed via <b>Failure</b> route if node was not able to save cloud event to database or unsupported originator type/message type arrived. "+
"In case successful storage cloud event to database message will be routed via <b>Success</b> route.",
"In case successful storage cloud event to database message will be routed via <b>Success</b> route.",
nodeDetails="Produces output of the rule chain processing. "+
nodeDetails="Produces output of the rule chain processing. "+
"The output is forwarded to the caller rule chain, as an output of the corresponding \"input\" rule node. "+
"The output is forwarded to the caller rule chain, as an output of the corresponding \"input\" rule node. "+
"The output rule node name corresponds to the relation type of the output message, and it is used to forward messages to other rule nodes in the caller rule chain. ",
"The output rule node name corresponds to the relation type of the output message, and it is used to forward messages to other rule nodes in the caller rule chain. ",
"If the presence monitoring strategy <b>\"On each message\"</b> is selected, sends messages via rule node connection type <code>Inside</code> or <code>Outside</code> every time the geofencing condition is satisfied. "+
"If the presence monitoring strategy <b>\"On each message\"</b> is selected, sends messages via rule node connection type <code>Inside</code> or <code>Outside</code> every time the geofencing condition is satisfied. "+
nodeDescription="Transforms message to email message",
nodeDescription="Transforms message to email message",
nodeDetails="Transforms message to email message. If transformation completed successfully output message type will be set to <code>SEND_EMAIL</code>.<br><br>"+
nodeDetails="Transforms message to email message. If transformation completed successfully output message type will be set to <code>SEND_EMAIL</code>.<br><br>"+
"If multiple related entities are found, only first entity is used for message enrichment, other entities are discarded. "+
"If multiple related entities are found, only first entity is used for message enrichment, other entities are discarded. "+
"Useful when you need to retrieve data from an entity that has a relation to the message originator and use them for further message processing.<br><br>"+
"Useful when you need to retrieve data from an entity that has a relation to the message originator and use them for further message processing.<br><br>"+
"For example <b>statusCode</b> field can be accessed with <code>metadata.statusCode</code>."+
"For example <b>statusCode</b> field can be accessed with <code>metadata.statusCode</code>."+
"<br/><b>Note-</b> if you use system proxy properties, the next system proxy properties should be added: \"http.proxyHost\" and \"http.proxyPort\" or \"https.proxyHost\" and \"https.proxyPort\" or \"socksProxyHost\" and \"socksProxyPort\","+
"<br/><b>Note-</b> if you use system proxy properties, the next system proxy properties should be added: \"http.proxyHost\" and \"http.proxyPort\" or \"https.proxyHost\" and \"https.proxyPort\" or \"socksProxyHost\" and \"socksProxyPort\","+
"and if your proxy with auth, the next ones should be added: \"tb.proxy.user\" and \"tb.proxy.password\" to the thingsboard.conf file.",
"and if your proxy with auth, the next ones should be added: \"tb.proxy.user\" and \"tb.proxy.password\" to the thingsboard.conf file.",
"Additionally if checkbox <b>Send attributes updated notification</b> is set to true, rule node will put the \"Attributes Updated\" "+
"Additionally if checkbox <b>Send attributes updated notification</b> is set to true, rule node will put the \"Attributes Updated\" "+
"event for <b>SHARED_SCOPE</b> and <b>SERVER_SCOPE</b> attributes updates to the corresponding rule engine queue."+
"event for <b>SHARED_SCOPE</b> and <b>SERVER_SCOPE</b> attributes updates to the corresponding rule engine queue."+
"Performance checkbox 'Save attributes only if the value changes' will skip attributes overwrites for values with no changes (avoid concurrent writes because this check is not transactional; will not update 'Last updated time' for skipped attributes).",
"Performance checkbox 'Save attributes only if the value changes' will skip attributes overwrites for values with no changes (avoid concurrent writes because this check is not transactional; will not update 'Last updated time' for skipped attributes).",
"However, the timestamp of the messages originated by multiple devices/servers may be unsynchronized long before they are pushed to the queue. "+
"However, the timestamp of the messages originated by multiple devices/servers may be unsynchronized long before they are pushed to the queue. "+
"The DB layer has certain optimizations to ignore the updates of the \"attributes\" and \"latest values\" tables if the new record has a timestamp that is older than the previous record. "+
"The DB layer has certain optimizations to ignore the updates of the \"attributes\" and \"latest values\" tables if the new record has a timestamp that is older than the previous record. "+
"So, to make sure that all the messages will be processed correctly, one should enable this parameter for sequential message processing scenarios.",
"So, to make sure that all the messages will be processed correctly, one should enable this parameter for sequential message processing scenarios.",
nodeDetails="This node should be used together with \"synchronization end\" node. \n This node will put messages into queue based on message originator id. \n"+
nodeDetails="This node should be used together with \"synchronization end\" node. \n This node will put messages into queue based on message originator id. \n"+
"Subsequent messages will not be processed until the previous message processing is completed or timeout event occurs.\n"+
"Subsequent messages will not be processed until the previous message processing is completed or timeout event occurs.\n"+
"Size of the queue per originator and timeout values are configurable on a system level",
"Size of the queue per originator and timeout values are configurable on a system level",