English
English
Appearance
English
English
Appearance
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.
| Aspect | Internal Message Node | Send Email Node |
|---|---|---|
| Delivery | In-app message center (bell icon in the top bar) | Recipient's mailbox |
| Prerequisites | None | Administrator must configure the SMTP email service |
| Recipients | Existing system users (targeted by user identity) | Email addresses, including external addresses |
| Content | Plain text | Templates and HTML supported |
| External recipients | Not supported | Supported |
If you need both an in-app reminder and an email notification, add both nodes to the workflow.

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.
| Source | Description | Extra configuration |
|---|---|---|
| Specific members | Pick fixed people from the current space's members | Select at least one member |
| Member field | Resolve recipients dynamically from member-type fields on the trigger record | Select at least one member, collaborator, or creator field |
| Workflow trigger user | Dynamically use the user who triggered this workflow run | None |
| Record creator | Dynamically use the creator of the trigger record | None |
| All space members | Send to every member of the current space | None |
After enabling "Specific members", select one or more people. Candidates are limited to members of the current space and can be searched.
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.
Required. Supports static text and variable references. Limited to 500 characters; longer titles are truncated.
Supports static text and variable references and is treated as plain text.
{{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 dataThe 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.
The table has an "Assignee" (member field) and a "Task name" field. Notify the assignee when a new task is created.
| Setting | Value |
|---|---|
| Recipient source | Member field |
| Member field | Assignee |
| Message title | New task: {{trigger.record.<task_name_field_id>}} |
| Message body | You have a new pending task "{{trigger.record.<task_name_field_id>}}". Please handle it in time. |
When a record's status is modified, notify both the record creator and the user who made the change.
| Setting | Value |
|---|---|
| Recipient source | Record creator + Workflow trigger user |
| Message title | Record status updated |
| Message body | A 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.
| Setting | Value |
|---|---|
| Recipient source | All space members |
| Message title | Data check alert |
| Message body | 3 abnormal records were detected. Please handle them. |