# Interactive actions

> Enhance the interactivity of your app by adding actions that connect components and screens, including screen navigation, state changes, component interactions, database operations, and more.

https://docs.pandasuite.com/essentials/interactions/interactive-actions/

**Actions are the engine of your workflows: they connect components, screens, and data to build smooth, interactive user journeys.**

An action can take many forms: navigating to another screen, opening a pop-up, acting on data, changing the project language, creating a transition, and much more. By combining multiple actions, you define logical sequences that guide the user through your application.

When you create an action, you select a [triggering event](https://docs.pandasuite.com/essentials/interactions/triggers/) and an action from a list of options. You can add multiple actions to the same trigger — they execute in the order they were created.

## Change screen

Add a link to another screen.

[Image: Action window of the Procedure tab in a tab bar foreground: on Single tap/click, Change screen goes to the 2. Procedure screen]

You can choose to navigate to a specific screen, the previous screen, or the next screen.

If you choose a specific screen, you can specify its state. If you choose to navigate to the previous or next screen, the order corresponds to the position of screens in the list. You can add an interval (e.g., skip every second screen) and enable loop mode.

## Change screen state

Add a link to another state on the same screen. [States](https://docs.pandasuite.com/essentials/interactions/understand-states/) allow you to animate screens and create transitions.

[Image: Change screen state action set to the next state of a two-state screen, with delay, duration, Ease In Out animation, interval and loop]

You can choose to navigate to a specific state, the previous state, or the next state. You can also select a random state.

If navigating to the previous or next state, the order corresponds to the position of states in the list. You can add an interval (e.g., skip every second state) and enable loop mode.

You can also add a delay, transition duration, and a type of [animation](https://docs.pandasuite.com/essentials/interactions/animations/) (easing curves, spring animations, etc.).

## Interact with a component

Create an action with any [component](https://docs.pandasuite.com/getting-started/understand-components/) based on its characteristics.

[Image: Interact with a component action: the Interactive Selection banner is open, and the chosen pop-up can be opened, closed or change state]

When you choose this action, the next step is to visually select the target component. A blue banner will appear, inviting you to navigate through your project to select the component. It can be located anywhere in your app; use the breadcrumb navigation to explore your project.

Once the component is selected, choose from the proposed actions.

For each component, there are different actions available. For more details, refer to the corresponding article for each component.

## Interact with a data source

Create an action on a project data source: the [Datastore](https://docs.pandasuite.com/essentials/data/datastore/) for variable management, the [Firebase Session](https://docs.pandasuite.com/essentials/components/firebase-session/) component for user-associated data, or an external database (e.g., Airtable) through the [HTTP component](https://docs.pandasuite.com/essentials/components/http/). For detailed actions available, refer to the corresponding articles.

[Image: Interact with a data source action run when the Articles screen displays, on a PandaSuite Datastore: create or update data, fetch, export]

## Return a value

Answer the event that triggered the action list.

[Image: The Return a value action, its Response parameter bound to a value of the project, next to the Actions panel]

Most actions do something. This one reports back: it sends a value to whatever started the list, so the caller can use it. Bind the **Response** parameter to anything your project produces: a collection, a [Datastore](https://docs.pandasuite.com/essentials/data/datastore/) field, the result of a search, a plain constant.

The action appears only on a trigger whose event expects an answer. The [D-ID Agent](https://docs.pandasuite.com/essentials/components/d-id-agent/) component is the usual case: each Client Tool of your AI agent becomes an event, the agent calls it and waits, and **Return a value** is how you reply. An event that declares no response parameter says so in the editor, and the caller receives an empty answer.

A list holds one **Return a value**. Once you have added it, Studio stops offering the action for that list, so if you cannot find it in the picker, it is already there. Place it wherever you like: it answers the call, and the actions after it still run, so you can reply quickly and keep working.

A list that finishes without one answers with a plain acknowledgment. If one of its actions failed, the caller is told the call failed rather than receiving a value.

## Open a URL

Add a link to a website, display a PDF hosted on an external server, or [open the default email app](https://docs.pandasuite.com/essentials/interactions/buttons-for-phone-calls-emails-and-sms/). This action allows you to open a URL from your app in an external window.

[Image: Open URL action on an article image: URL field filled in, External (iOS…) option and delay]

Specify the URL in the action settings.

> **Info**
>
> This action opens an external window. If you want to integrate a web page
> directly into your app, you can embed it using the [Web
> component](https://docs.pandasuite.com/essentials/components/web/) (iframe) within a screen. Note: Not all
> websites allow such integration.

## Share

Share content (a URL, video, text, image, or PDF) using the native sharing action of iOS and Android devices or Safari and Chrome mobile browsers.

[Image: Native share sheets on Android and iOS: suggested contacts and apps such as Instagram, AirDrop, Messages, WhatsApp or Gmail]

Choose to share a URL or media. Add custom text if desired.

Note: The Text + URL option is not supported by all apps. Some will display only the URL.

[Image: Share action on an article image: URL or Media type, URL and Text fields filled in, and a delay]

## Trigger a tracking event

Collect specific data on user interactions and screen loads when your app is connected to an analytics tool.

Learn more: [Custom tracking plan](https://docs.pandasuite.com/essentials/deployment-services/custom-tracking-plan/)

## Trigger haptic feedback

Activate a vibration on the user’s device to enhance tactile feedback. This feature is compatible with iOS, Android, and mobile web (excluding Safari).

Learn more: [Haptic feedback](https://docs.pandasuite.com/essentials/interactions/haptic-feedback/)

## Copy to clipboard

This action allows the user to copy the selected content (text or media) to their clipboard.

## Save

The user can save media to their device. On mobile, the media is saved to the gallery; on desktop, it is saved to the Downloads folder.

## Switch foreground/background

Add a link to another [foreground/background](https://docs.pandasuite.com/essentials/project-properties/foreground-and-background/). This is particularly useful for configuring menus and navigation elements.

You can choose to navigate to a specific foreground/background, the previous one, or the next one. You can also select a random foreground/background.

If navigating to the previous or next foreground/background, the order corresponds to their position in the list. You can add an interval (e.g., skip every second one) and enable loop mode.

You can also add a delay, transition duration, and a type of [animation](https://docs.pandasuite.com/essentials/interactions/animations/) (easing curves, spring animations, etc.).

## Change language

This action lets users switch the app’s language among those you have defined. Learn more: [Language management](https://docs.pandasuite.com/essentials/project-properties/languages-and-localization/)

[Image: Change language action set to French, on the FR button of the Articles screen, with its delay]

## Mute/Unmute sound

This action allows users to mute or unmute the app's sound. It is a global command, applying to [all sounds in your project](https://docs.pandasuite.com/essentials/components/audio/). Ensure sounds are already integrated into your project before using this action.

## Return to the previous screen or state

Add a link to navigate to the previous screen or state, regardless of the user's current position.

By enabling the **Ignore states** option, users return to the previous screen even if their current screen has multiple states.

## Exit the application (Windows, macOS & Linux)

This action creates a button to close the application. It is compatible only with desktop apps: Windows, macOS, and Linux. In kiosk mode on macOS and Linux, it is ignored: only staff leave, with `Ctrl` + `Shift` + `L` (see [Kiosk Mode on macOS](https://docs.pandasuite.com/essentials/desktop-publishing/kiosk-mode-for-macos/) and [Kiosk Mode on Linux](https://docs.pandasuite.com/essentials/desktop-publishing/kiosk-mode-for-linux/)).

## About conditional actions

You can create conditional actions using the [Condition](https://docs.pandasuite.com/essentials/components/condition/) component. Define your condition and trigger actions based on whether the condition is met.

[Image: Conditional action: when all conditions of the Condition component are true, Change language switches the app to French]

You must configure your condition, evaluate it, or select an action.
