---
title: "In-App Button Actions"
slug: "in-app-button-actions"
updated: 2026-06-08T21:11:41Z
published: 2026-06-08T21:11:41Z
canonical: "docs.xtremepush.com/in-app-button-actions"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt
> Use this file to discover all available pages before exploring further.

# In-App Button Actions

Reference for navigation and save actions available on In-App campaign buttons

**Full-Screen** and **Modal In-App** in-app campaigns include a button-builder, which you can configure in the **Content** tab. Each button supports up to three types of actions:

- Navigation: Controls what happens on the user's device when the button is clicked, such as navigating to a URL, a deeplink, or dismissing the message. This action is configured using the **Action** drop-down in button builder.
- Save: Triggers a server-side update to the user's profile at the moment of the button click, such as setting an attribute, adding them to a list, or updating a subscription preference. This action is configured using the **Save** drop-down in the button builder.
- Event trigger: Fires a named custom event against the user's profile when the button is clicked, which can then be used to trigger automation workflows or other campaigns. This action is configured using the **Trigger** drop-down in the button builder.

All three can be applied to the same button simultaneously.

> [!NOTE]
> Banner and Custom HTML campaigns
> 
> - Banner campaigns do not support buttons and therefore only support navigation actions, configured using the **Action** drop-down directly in the **Content** tab.
> - Custom HTML campaigns support buttons and navigation actions, but these are implemented in code using the `InAppMessage.action()` SDK method rather than the button builder. For more details, see *SDK Methods* in [Create Custom HTML Content](/documentation/docs/in-app-custom-html#perform-an-action-from-the-inapp-message).

The table below summarises which action types are supported across in-app campaign types:

| **Campaign Type** | **Supported Action** |
| --- | --- |
| Banner | Navigation |
| Modal | Navigation, Save, Event trigger |
| Full-Screen | Navigation, Save, Event trigger |
| Custom HTML | Navigation (implemented via the `InAppMessage.action()` SDK method) |
| Native Content | NA. These campaigns deliver a JSON payload and do not use configurable buttons. |

## **Navigation Action**

[](https://docs.xtremepush.com/docs/in-app-button-actions#navigation-action)

The following action types are available in the **Action** dropdown, for **Banner**, **Modal**, and **Full-screen** campaigns.

| **Action** | **Behaviour** |
| --- | --- |
| None | The button click is recorded in analytics but no navigation occurs and the message stays open. |
| Open URL | Opens the specified URL in the device's default browser. |
| Go to Deeplink | Routes to a screen inside the app. See our [deeplinks](/documentation/docs/mobile-deeplinks) guide for details on how deeplinks are registered in the native SDK. |
| Dismiss | Closes the in-app message. |
| Request Push Permission | Displays the native OS push notification permission dialog when the user clicks the button. See [Configure Push Primers](/documentation/docs/configure-push-primer) for more details. |

## **Save Action**

> [!NOTE]
> Save actions are only supported on **Modal** and **Full Screen** campaigns.

Save actions trigger a server-side update to the user's profile the moment they click the button. Each button can have one save action assigned to it:

The following save action types are available in the **Save** drop-down:

- **None**: No save action is triggered when the button is clicked.
- **Set attribute**: Sets a specified [attribute](/documentation/docs/attributes-tags) to a given value on the user's profile at the moment of the button click. Select the attribute in the left field and the desired value in the right field.

Example use case: Tag users who dismiss a paywall prompt with an attribute like `saw_paywall = true` so you can re-target them in a future campaign.
- **Add to list**: Adds the user to a previously created [user list](/documentation/docs/create-a-user-list) at the moment the button is clicked.

Example use case: Move users who click "I'm interested" into a high-intent list for a follow-up push campaign.
- **Subscribe to**: Subscribes the user to a [Subscription Preference](/documentation/docs/consent-management) at the moment the button is clicked. Clicking the button sets the subscription flag active for the selected preference and updates the user's channel-level subscription status.

The supported channels are push, email, and SMS.

Example use case: Use an in-app modal to re-engage users who previously opted out of email by asking them to opt back in, updating their subscription status when they click "Yes".

> [!NOTE]
> Subscription preferences must be configured in your project before using this save action type.

## **Trigger Action**

> [!NOTE]
> Trigger actions are only supported on **Modal** and **Full Screen** campaigns.

When a user clicks the button, a named [custom event](https://docs.xtremepush.com/docs/events) is fired against their profile. This event can then be used as a trigger for automation workflows or other campaigns.

To configure this select the **Trigger event** option from the **Trigger** drop-down, and then select a previously created custom event.

Example use case: Fire a `completed_onboarding` event when a user clicks the final button in an onboarding in-app sequence, automatically entering them into a welcome automation.
