Skip to main content

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.

TypeValue RequiredValue Format / ExamplesEffect
NAVIGATEYesExternal URL (https://example.com)Opens a browser link.
OPEN_NOTIFICATIONNo-Opens the detailed view of the notification.
MARK_AS_READNo-Marks the notification/message as read.
DELETENo-Removes the notification from the user list.
SNOOZEYes<minutes> (e.g. 5, 30)Temporarily stop the notification of the whole bucket for the specified minutes.
POSTPONEYes<minutes> (e.g. 15, 60)Postpones the notification to reappear after specified minutes.
WEBHOOKYesWebhook ID or identifier (UUID)Triggers a configured outbound webhook.
BACKGROUND_CALLYesMETHOD::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 for DELETE)

Adding Automatic Actions

Flags in the message payload generate actions automatically:

FlagGeneratesNotes
addMarkAsReadActionMARK_AS_READLocalized title & platform icon
addOpenNotificationActionOPEN_NOTIFICATIONUses notification ID as value
addDeleteActionDELETEMarked destructive, platform-specific icon
snoozes arrayMultiple SNOOZEOne per duration minutes
postpones arrayMultiple POSTPONEOne 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

  • type must be one of the enum values exactly.
  • value is not required; semantics depend on type.
  • destructive optional, hint for UI styling.
  • icon & title optional;

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