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 and how they find the site, so we can improve it (Google Analytics).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, 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
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

Message Type Switch

Use this node to fan out processing based on message type without writing any code. Each standard message type maps to a human-readable connection label (e.g., POST_TELEMETRY_REQUEST → Post telemetry), so you can wire different downstream paths for telemetry, attribute updates, RPC calls, lifecycle events, and more. Custom or unknown types are routed via Other.

See the message types reference for the full list of built-in types.

This node requires no configuration.

  1. Determine the incoming message type and look up its rule node connection label.
  2. Route the message via the connection whose label exactly matches the rule node connection label.
  3. If the message type is custom or has no predefined label, route via Other.
Connection Condition
(message type label) The message type maps to a predefined connection label (see table below).
Other The message type is custom or has no predefined label.
Failure An unexpected error occurred during processing.
Message type Connection label
POST_ATTRIBUTES_REQUEST Post attributes
POST_TELEMETRY_REQUEST Post telemetry
TO_SERVER_RPC_REQUEST RPC Request from Device
ACTIVITY_EVENT Activity Event
INACTIVITY_EVENT Inactivity Event
CONNECT_EVENT Connect Event
DISCONNECT_EVENT Disconnect Event
ENTITY_CREATED Entity Created
ENTITY_UPDATED Entity Updated
ENTITY_DELETED Entity Deleted
ENTITY_ASSIGNED Entity Assigned
ENTITY_UNASSIGNED Entity Unassigned
ATTRIBUTES_UPDATED Attributes Updated
ATTRIBUTES_DELETED Attributes Deleted
ALARM_ACK Alarm Acknowledged
ALARM_CLEAR Alarm Cleared
ALARM_ASSIGNED Alarm Assigned
ALARM_UNASSIGNED Alarm Unassigned
COMMENT_CREATED Comment Created
COMMENT_UPDATED Comment Updated
RPC_CALL_FROM_SERVER_TO_DEVICE RPC Request to Device
ENTITY_ASSIGNED_FROM_TENANT Entity Assigned From Tenant
ENTITY_ASSIGNED_TO_TENANT Entity Assigned To Tenant
TIMESERIES_UPDATED Timeseries Updated
TIMESERIES_DELETED Timeseries Deleted
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
RELATIONS_DELETED All Relations Deleted
RELATION_ADD_OR_UPDATE Relation Added or Updated
RELATION_DELETED Relation Deleted
REST_API_REQUEST REST API request
OWNER_CHANGED Owner changed
ADDED_TO_ENTITY_GROUP Added to Group
REMOVED_FROM_ENTITY_GROUP Removed from Group
generateReport Generate Report

Example 1 — POST_TELEMETRY_REQUEST → Post telemetry

Section titled “Example 1 — POST_TELEMETRY_REQUEST → Post telemetry”

A telemetry message arrives. The node looks up the connection label for POST_TELEMETRY_REQUEST and routes via Post telemetry.


A message with type CUSTOM_MESSAGE_TYPE arrives. No predefined label exists, so the node routes via Other.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "EmptyNodeConfiguration",
"type": "object",
"properties": {},
"additionalProperties": false
}