Skip to Content

App

An app is a runnable interactive flow nested inside a campaign.

An app defines a concrete execution path within a campaign. It encapsulates flow logic, branching rules, and state mutations, while inheriting identity, state, and configuration from the parent campaign.

Frontend and backend apps can coexist inside a single campaign, sharing data and orchestration.

Apps do not own users or data independently. All state reads and writes performed by an app are scoped to the campaign and user context in which the app is executed.

Below is a client app that runs a security quiz. It opens directly in the browser and renders the experience to end users.

Page node

Client apps are responsible for rendering interactive experiences and collecting user input, but they do not make independent business decisions. All decisions are driven by the app’s flow logic and the underlying campaign state.

Backend apps execute on the server, so users never see them directly, but they still operate on campaign data. Here is an example that processes user reviews, moderates them, and updates profile attributes.

Page node

Backend apps are commonly used to react to external events, perform validations, apply business rules, or prepare data for user-facing experiences. They execute deterministically as part of the campaign runtime.

Each app specifies one entry node and a directed graph describing the user experience.

Apps can reuse campaign-level resources such as style sets and reward pools.

Apps are intentionally lightweight and composable. Complex campaigns are built by combining multiple apps—each focused on a specific responsibility—rather than embedding all logic into a single flow.

Last updated on