Notify
Overview
Notify pulls compound actions into the chat spotlight, sending messages to specific users with embedded actions, shown as buttons, that can perform various actions when clicked.
Action Types
Type | Function |
---|---|
Content Action | Deliver an inline message. Ideal for links or summaries |
System Action | Triggers an action with input arguments |
Conversation Action | Starts a conversation process. Inputs args must be declared as slots in the process. |
Low-Code Editor
Add a Notify step, define the recipient, the content of the message they are receiving, and what actions they'll be provided with.

- Prepare Essentials: Set the notification's recipient and informational message.

- Add Actionable Task: Add a button that can trigger an HTTP, compound, or script action.

- Start a Conversation: Add a button that invokes a conversational flow with the user.

- Add More Content: Provide a button that provides inline content that doesn't require fetching or starting a conversation.
Syntax Reference
Schema
notify: # Delivers message + buttons to user
output_key: RESULT_VAR* # str: Stores interaction results
recipient_id: USER_ID* # str: e.g., data.user.id
message: MSG_EXPR* # DSL str or RENDER() template
actions: # Optional list[dict]
- key: ACTION_KEY # Unique str ID
label: BUTTON_TEXT # Display DSL str
# ONE of:
content_action:
message: CONTENT_MSG
system_action:
action_name: ACTION_NAME
input_args:
key: VAL
conversation_action:
conversation_process_name: PROCESS_NAME # Published plugin
input_args:
slot_name: VAL # Match process slots
Fields
Field | Type | Mandatory | Description |
---|---|---|---|
output_key | string | Yes | Capture's button outcome. Currently returns NULL |
recipient_id | string | Yes | ID of the target user |
message | string | Yes | DSL expression field |
actions | list[dict] | No | Buttons displayed to user |
Action Types
Field | Keys | Use Case |
---|---|---|
content_action | message | Quick info drops. |
system_action | action_name , input_args | Invoke actions |
conversation_action | conversation_process_name , input_args | Start conversation processes |
Practical Examples
Example 1: Simple Ticket Alert
Notify assignee with a link
notify:
output_key: alert_sent
recipient_id: data.target_user.id
message:
RENDER():
template: "Hello {{name}}, <b>T-{{id}}</b> assigned to you. Follow runbook."
args:
name: data.target_user.first_name
id: data.ticket.display_id
Expectation: User will receive a simple notification message with the ID of the ticket they were assigned
Example 2: Multi-Option Response
Offer multiple options to the user
# input args: data.ticket
notify:
output_key: user_choice
recipient_id: data.target_user.id
message:
RENDER():
template: "Ticket {{id}} assigned—act now."
args:
id: data.ticket.id
actions:
- key: view
label: "View Ticket"
content_action:
message:
RENDER():
template: "View ticket {{id}}"
args:
id: data.ticket.id
- key: convert
label: "Convert to Bug"
system_action:
action_name: convert_support_issue_to_known_bug
input_args:
support_ticket: data.ticket
Expectation: User will receive a notification about a ticket that was assigned to them. They will be provided two buttons, one to look at the ticket and one to convert the ticket.
Example 3: Handoff to Conversation
Alert the user and collection more information
# input args: data.ticket
notify:
output_key: handoff_result
recipient_id: data.target_user.id
message:
RENDER():
template: "[{{id}}]({{url}}) assigned—need details?"
args:
id: data.ticket.display_id,
url: $CONCAT(["https://notion.so/", data.ticket.sys_id], "")
actions:
- key: send_back
label: "Send Back"
conversation_action:
conversation_process_name: collect_reason_for_send_back_and_send_case_back_to_case_owner
input_args:
support_ticket: data.ticket
Expectation: User receives the notification and are prompted to start a conversational process to send back the ticket for more information.
Updated about 2 hours ago