Actions
The Interactions panel lets you define how flow elements respond to events — such as taps, element appearances, and form submissions. For each event, you assign one or more actions: navigate between screens, show or hide elements, open URLs, set variables, and more. Use conditions to customize the flow based on user data.
Each interaction follows a three-part chain:
- Element: The screen component that starts the interaction — a button, quiz answer, input field, or anything else.
- Trigger: The event that activates the logic, such as a tap, an element appearance, or a form submission.
- Action: The task the flow performs in response. A single trigger can run multiple actions in sequence.
Set up interactions
To set up an interaction:
- Select an element on the screen or in the Layers panel.
- On the right, switch to the Interactions panel and click Add trigger.
- In the Button triggers section, select the trigger type.
- Click Add action, click the action name, and select an action type from the dropdown in the Edit action window.
- Configure the action properties based on the action type you selected.
- If needed, click Add action to add more actions for the same trigger.
Trigger types
Currently, you can add the following triggers to your flow:
- On tap: Starts an action when a user taps an element. The most common trigger; used primarily for navigation between screens.
- On screen appear: Starts an action as soon as a screen loads. Use it to trigger an animation or log an impression when a screen loads.
Action types
Navigate to screen
This is the primary action for moving users between screens. It takes the user to a specified destination screen.
For this action, you only need to set up the destination screen. If you want to enable dynamic navigation, see Navigation and branching or the Conditional actions section.
Navigate to screen should always be the last action in the list. Any action placed after it (like “Set Variable”) might not execute because the app has already changed screens.
Navigate back
Returns the user to the previous screen in their navigation history, rather than the previous screen in the sequence.
Open URL
Use inline links to insert links to flowing text.
Opens a specific web address. Use this to send users to web pages, articles, or social media profiles outside of your app’s native screens.
For this action, you can configure two settings:
- URL address: Set a URL address. Additionally, you can make it dynamic — for example, to navigate users to different pages based on their quiz answer or using the data they’ve submitted. To do this, click
and select a variable you want to use. - Open in external browser: Define where you want to open external links. By default, they open in an in-app browser to keep users within the app. Select the Open in external browser checkbox if you want to open links in an external browser.
Close flow
Closes the current flow.
Show/hide elements
Shows or hides a specific element on the screen.
This action overrides the initial state set in Visibility in the Design panel. If Visibility is set to Hide, the Show action will make it appear.
A Show or Hide action with no target element blocks previewing and publishing. Select a target or remove the action.
Show alert
Displays a native system pop-up window. Users must tap Ok to proceed.
For alerts, you must set up their Title and Message. In both, you can use variables to make the content dynamic. To do this, click
and select a variable you want to use.
A Show alert action with an empty or incomplete configuration blocks previewing and publishing. Fill in both fields or remove the action.
Set variable
Updates the value of a variable in the flow. Before adding this action, create variables in the Variables panel on the left (see Variables).
Click Add variable and set as many variables and their values as you need.
A Set variable action with no assignment blocks previewing and publishing. Configure at least one assignment or remove the action.
Purchase
Triggers a purchase flow directly from a button or interaction in your onboarding. Use this to let users subscribe or buy a product without leaving the flow.
You can configure two behaviors for this action:
- In-app store: Initiates a native purchase. Set Product to a specific product, or to
products.selectedProductfor the user’s current selection on the screen. - Web payment: Sends the user to a web paywall instead of triggering a native purchase. Use this when you want to handle the transaction outside the app, such as for web-based subscription offers.
A Purchase action without a target Product or Web Paywall URL blocks previewing and publishing. Assign a target or remove the action.
Custom
Fires a named custom action that your app code handles. Use this when you need behavior that the built-in action types don’t cover — for example, triggering an in-app event, applying a discount, or showing a custom native screen.
To set up a custom action:
- In the Edit action window, assign an Action ID — a string your app will recognize (for example,
show_discount). - In your app code, implement a handler for this action ID. See Handle paywall actions for implementation details.
A Custom action without an Action ID blocks previewing and publishing. Assign an Action ID or remove the action.
Conditional actions
Use conditional actions to split the flow into different paths based on user data.
Some common use cases include:
- You have a quiz on the screen, and you want to navigate users to different screens based on their answers. In this case, add a conditional action to a button.
- You want to offer different products and offers to different user groups. Place them on different screens and set up conditions for a navigation button.
- You want to skip certain steps for users who have already completed a tutorial in a previous app session.
Conditional actions work like an if / else-if / else chain. The app reads the rules from top to bottom and stops at the first match:
- IF: The flow checks the primary condition.
- Is it True? The flow executes the THEN actions immediately and stops.
- Is it False? The flow skips to the next section.
- ELSE IF: You can add extra checks here (e.g., “If not Premium, is the user on a Trial?”).
- ELSE (Fallback): If none of the rules above matched, the flow executes the actions in this final section.
- If a rule is added but has no action assigned, matching the condition results in doing nothing.
- An incomplete rule (no operator or value) blocks previewing and publishing.
For each rule, select a variable to evaluate and an action to run. You can set more than one action per rule.
The flow executes only one rule — the first one it matches. If you need to execute both IF and ELSE IF at the same time, add both actions to IF.
To learn how to make elements selectable and organize them into groups for use in conditions, see Selectable elements and groups.
Troubleshooting
Any action with missing required fields blocks previewing and publishing. See Save & publish flows for the full list.