Skip to content

Cookie preferences

We use cookies for our own analytics, to see how our campaigns perform and, if you allow it, to load content from other services such as the Google site search. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details and our Privacy Policy for how we handle personal data.

Security, load balancing and remembering your cookie choice.

Show us which pages people read, how they find the site and where they get stuck, so we can improve it (Google Analytics, Microsoft Clarity).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, LinkedIn, Meta, partner program). We do not use these cookies to build advertising profiles.

Load the site search from Google when you use it. Google sets its own cookies and shows ads in the search results.

© 2026 The ThingsBoard Authors
180 Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Rule Engine Message Types

Every event that enters the Rule Engine is wrapped in a Message. The message type tells rule nodes what triggered the event so they can route or process it accordingly.

┌────────────────────────────────────────────┐
│ Rule Engine Message │
│ │
│ type: POST_TELEMETRY_REQUEST │
│ originator: Device / Asset / … │
│ payload: { "temperature": 22.7 } │
│ metadata: { deviceName, deviceType, … } │
└────────────────────────────────────────────┘
Type Display name Originator Key metadata Payload
POST_ATTRIBUTES_REQUEST Post attributes Device deviceName, deviceType { "key": "value" }
POST_TELEMETRY_REQUEST Post telemetry Device deviceName, deviceType, ts { "temperature": 22.7 }
TO_SERVER_RPC_REQUEST RPC Request from Device Device deviceName, deviceType, requestId { "method": "getTime", "params": {} }
RPC_CALL_FROM_SERVER_TO_DEVICE RPC Request to Device Device requestUUID, expirationTime, oneway { "method": "getGpioStatus", "params": {} }
ACTIVITY_EVENT Activity Event Device deviceName, deviceType Device activity JSON
INACTIVITY_EVENT Inactivity Event Device deviceName, deviceType Device activity JSON
CONNECT_EVENT Connect Event Device deviceName, deviceType Device activity JSON
DISCONNECT_EVENT Disconnect Event Device deviceName, deviceType Device activity JSON
ENTITY_CREATED Entity Created Any entity userName, userId Created entity details JSON
ENTITY_UPDATED Entity Updated Any entity userName, userId Updated entity details JSON
ENTITY_DELETED Entity Deleted Any entity userName, userId Deleted entity details JSON
ENTITY_ASSIGNED Entity Assigned Any entity userName, userId, assignedCustomerName, assignedCustomerId Entity details JSON
ENTITY_UNASSIGNED Entity Unassigned Any entity userName, userId, unassignedCustomerName, unassignedCustomerId Entity details JSON
ADDED_TO_ENTITY_GROUP Added to Group Any entity userName, userId, addedToEntityGroupName, addedToEntityGroupId Empty {}
REMOVED_FROM_ENTITY_GROUP Removed from Group Any entity userName, userId, removedFromEntityGroupName, removedFromEntityGroupId Empty {}
ATTRIBUTES_UPDATED Attributes Updated Any entity userName, userId, scope { "softwareVersion": "1.2.3" }
ATTRIBUTES_DELETED Attributes Deleted Any entity userName, userId, scope { "attributes": ["key1"] }
ALARM Alarm Any entity isNewAlarm, isExistingAlarm, isClearedAlarm Alarm details JSON
ALARM_ASSIGNED Alarm Assigned Any entity entityName, entityType, userId, userEmail, userName Alarm details JSON
ALARM_UNASSIGNED Alarm Unassigned Any entity entityName, entityType, userId, userEmail, userName Alarm details JSON
COMMENT_CREATED Comment Created Any entity userId, userName, userEmail, comment Alarm details JSON
COMMENT_UPDATED Comment Updated Any entity userId, userName, userEmail, comment Alarm details JSON
REST_API_REQUEST REST API request Any entity requestUUID, expirationTime Request payload JSON

The rule engine also uses these message types:

Type Display name
ALARM_CREATED Alarm Created
ALARM_UPDATED Alarm Updated
ALARM_SEVERITY_UPDATED Alarm Severity Updated
ALARM_ACK Alarm Acknowledged
ALARM_CLEAR Alarm Cleared
TIMESERIES_UPDATED Timeseries Updated
TIMESERIES_DELETED Timeseries Deleted
RELATION_ADD_OR_UPDATE Relation Added or Updated
RELATION_DELETED Relation Deleted
RELATIONS_DELETED All Relations Deleted
OWNER_CHANGED Owner changed
ENTITY_ASSIGNED_FROM_TENANT Entity Assigned From Tenant
ENTITY_ASSIGNED_TO_TENANT Entity Assigned To Tenant
RPC_QUEUED RPC Queued
RPC_SENT RPC Sent
RPC_DELIVERED RPC Delivered
RPC_SUCCESSFUL RPC Successful
RPC_TIMEOUT RPC Timeout
RPC_EXPIRED RPC Expired
RPC_FAILED RPC Failed
RPC_DELETED RPC Deleted

Any rule node can produce messages with a custom type string. Custom types are not listed here — they depend on your rule chain configuration. Use the Message Type Switch or Message Type Filter nodes to route on them.