Skip to content

Internal Message Node

The Internal Message node sends in-app notifications to specified people during workflow execution. Messages are delivered to the recipient's in-app message center and do not depend on email service configuration.

When to Use

  • Notify the assignee after a task is assigned
  • Notify followers when a record's status changes
  • Remind the handler when a process step is reached
  • Broadcast an alert to all space members when data looks abnormal

Differences from the Send Email Node

AspectInternal Message NodeSend Email Node
DeliveryIn-app message center (bell icon in the top bar)Recipient's mailbox
PrerequisitesNoneAdministrator must configure the SMTP email service
RecipientsExisting system users (targeted by user identity)Email addresses, including external addresses
ContentPlain textTemplates and HTML supported
External recipientsNot supportedSupported

If you need both an in-app reminder and an email notification, add both nodes to the workflow.

Configuration

Internal Message node

Recipient Source

You can select multiple sources at the same time. Recipients resolved from all sources are merged and de-duplicated, so the same person only receives one message.

SourceDescriptionExtra configuration
Specific membersPick fixed people from the current space's membersSelect at least one member
Member fieldResolve recipients dynamically from member-type fields on the trigger recordSelect at least one member, collaborator, or creator field
Workflow trigger userDynamically use the user who triggered this workflow runNone
Record creatorDynamically use the creator of the trigger recordNone
All space membersSend to every member of the current spaceNone

Specific Members

After enabling "Specific members", select one or more people. Candidates are limited to members of the current space and can be searched.

Member Field

After enabling "Member field", select one or more fields. Only member, collaborator, and creator fields are supported. At run time the values of these fields on the trigger record are resolved into recipients.

Message Title

Required. Supports static text and variable references. Limited to 500 characters; longer titles are truncated.

Message Body

Supports static text and variable references and is treated as plain text.

Available Variables

  • {{record.<field_id>}}: Trigger record field
  • {{trigger.record.<field_id>}}: Trigger record field (equivalent form)
  • {{node_outputs.<node_id>.result}}: Output of a previous node
  • {{loop.current_data.<field_id>}}: Current loop iteration data

The configuration panel lists the currently available variables below the title and body inputs; click to copy. Inside a loop body you can also insert loop variables with the variable inserter.

Examples

Example 1: Notify the assignee after a task is assigned

The table has an "Assignee" (member field) and a "Task name" field. Notify the assignee when a new task is created.

SettingValue
Recipient sourceMember field
Member fieldAssignee
Message titleNew task: {{trigger.record.<task_name_field_id>}}
Message bodyYou have a new pending task "{{trigger.record.<task_name_field_id>}}". Please handle it in time.

Example 2: Notify the creator and the trigger user after a change

When a record's status is modified, notify both the record creator and the user who made the change.

SettingValue
Recipient sourceRecord creator + Workflow trigger user
Message titleRecord status updated
Message bodyA record you follow has been changed to "Done".

If the creator and the trigger user are the same person, only one message is sent after de-duplication.

Example 3: Broadcast to all space members

SettingValue
Recipient sourceAll space members
Message titleData check alert
Message body3 abnormal records were detected. Please handle them.

Notes

  • Internal messages are only sent to users that already exist in the system. If no valid recipient can be resolved, the node is skipped and a warning is logged; it does not stop the workflow.
  • A single node sends to at most 200 people; the remainder is truncated and a warning is logged.
  • The message title is required — a workflow cannot be saved without it. This prevents the run from failing at this node later on.
  • The message body is rendered as plain text and is HTML-escaped before being stored; rich text styling and hyperlinks are not supported.
  • Recipients see an unread badge on the bell icon in the top bar; in the message center the message is tagged with the "Workflow" source.
  • The Internal Message node can also be used inside a loop body. Note that the "Member field" source reads the trigger record, not the current iteration; use loop variables if you need per-iteration values.

Released under the MIT License.