Actions
Detailed reference for NotificationActionType and how actions are generated, displayed and processed.
Action Types
Each action adds an interactive capability to a delivered message. Below are the allowed type values, the expected value format (when applicable) and the intended effect. Client implementations may vary; this section is agnostic of a specific mobile/web codebase.
| Type | Value Required | Value Format / Examples | Effect |
|---|---|---|---|
NAVIGATE | Yes | External URL (https://example.com) | Opens a browser link. |
OPEN_NOTIFICATION | No | - | Opens the detailed view of the notification. |
MARK_AS_READ | No | - | Marks the notification/message as read. |
DELETE | No | - | Removes the notification from the user list. |
SNOOZE | Yes | <minutes> (e.g. 5, 30) | Temporarily stop the notification of the whole bucket for the specified minutes. |
POSTPONE | Yes | <minutes> (e.g. 15, 60) | Postpones the notification to reappear after specified minutes. |
WEBHOOK | Yes | Webhook ID or identifier (UUID) | Triggers a configured outbound webhook. |
BACKGROUND_CALL | Yes | METHOD::URL (e.g. GET::https://api.example.com/ping) | Invokes a background HTTP request without opening UI. |
Minimal JSON shape:
{ "type": "DELETE" }
Optional fields applicable to any action object:
title: Custom button label (string)icon: Icon identifier (string). On iOS this should be a valid SF Symbol name, e.g.sfsymbols:arrow.down.circle.destructive: Boolean hint for UI styling (commonly true forDELETE)
Adding Automatic Actions
Flags in the message payload generate actions automatically:
| Flag | Generates | Notes |
|---|---|---|
addMarkAsReadAction | MARK_AS_READ | Localized title & platform icon |
addOpenNotificationAction | OPEN_NOTIFICATION | Uses notification ID as value |
addDeleteAction | DELETE | Marked destructive, platform-specific icon |
snoozes array | Multiple SNOOZE | One per duration minutes |
postpones array | Multiple POSTPONE | One per duration minutes |
Manual Actions Array
You can also provide custom actions array with objects:
{
"actions": [
{
"type": "NAVIGATE",
"value": "/settings/profile",
"icon": "settings",
"title": "Profile"
},
{ "type": "BACKGROUND_CALL", "value": "job:refresh-metrics" }
]
}
Conflicts: If you manually add an action of the same logical effect as an auto-generated one, both may appear; avoid duplicates by disabling the flag.
tapAction
tapAction is a single action executed when the notification itself is tapped (not from the buttons row). If absent and tapUrl is provided, it is auto-created as a NAVIGATE. Default will be open the notification.
Icons & Localization
Platform-specific icon hints are applied to automatic actions; custom actions should specify icon where useful. Titles for auto-generated actions are localized based on locale.
Validation Rules
typemust be one of the enum values exactly.valueis not required; semantics depend ontype.destructiveoptional, hint for UI styling.icon&titleoptional;
Example Combined
{
"title": "Security Alert",
"bucketId": "<bucket-uuid>",
"deliveryType": "NORMAL",
"addMarkAsReadAction": true,
"snoozes": [10, 30],
"tapUrl": "https://app.example.com/security/alerts/abc",
"actions": [
{ "type": "WEBHOOK", "value": "<webhook-uuid>" },
{ "type": "DELETE", "destructive": true }
]
}
Return to main notifications: Notifications Overview