---
title: "Flows (Beta)"
description: "Visual no-code builder for interactive flows. Update copy, design, and pricing without shipping an app release."
---

:::important
Flows are currently supported in iOS SDK v.4 and up. Support for other platforms and frameworks is coming soon.
:::

<CustomDocCardList ids={['builder-ui', 'flow-builder-recipes', 'builder-navigation-actions']} />

In Adapty, you can create flows in a visual no-code editor.

- **Create paywalls, onboardings, and more**: Create dynamic single- or multi-screen flows.
- **Flexible design**: Recreate complex screens visually: no code required.
- **Native rendering**: The Adapty SDK renders flows natively without web views to ensure a seamless user experience.
- **Update without redeploying**: Change copy, design, or logic any time. Updates reach your users without an app release.

## What you can build

You can place flows anywhere in your app — at first launch, in front of a premium feature, or after a key action. Every screen is fully customizable, so each flow can match its moment. Here are some of the most popular things you can build:

- **App onboarding**: Showcase your app features, ask questions, and personalize the highlighted features and CTAs based on the quiz answers. See [Build a personalized onboarding flow](onboarding-flow-tutorial).
- **Paywall screens**: Put a feature gate in front of premium content and present your products with feature lists, pricing, and a purchase button. See [Create a basic paywall screen](basic-paywall-screen).
- **Tiered plans in tabs**: Show subscription tiers side by side in tabs, with conditional text that swaps the feature list and CTA as the user switches between them. See [Create a paywall with tabs](paywall-with-tabs) and [Add conditional text to a paywall](paywall-features-per-product).
- **Expandable plan lists**: Lead with one highlighted offer and reveal the full product list in a bottom sheet when the user wants to compare. See [Show all plans in a bottom sheet](show-plans-bottom-sheet).
- **Surveys and quizzes**: Collect goals, preferences, or experience level, then use the answers to branch the flow or tailor later screens. See [Inputs and forms in the Flow Builder](builder-inputs-and-forms).
- **Social proof**: Build trust with review cards, ratings, and testimonials right before the purchase decision. See [Reviews and testimonials](builder-reviews-and-testimonials).
- **Promo and winback screens**: Run limited-time discounts, free-trial offers, or winback screens to re-engage lapsed users.

These are just the most common patterns. Flows are built from flexible, reusable elements, so you can combine them into almost any screen your product needs — and reshape it whenever your product evolves.

## Create a flow

Open the **Flows** page and click **Create flow**. Use the following tools to customize your flow:

- **[Element library](builder-elements)** — pre-built blocks for text, media, buttons, forms, and other content.
- **[Actions](onboarding-actions)** — navigate between screens, open URLs, run purchases, and more.
- **[Variables](onboarding-variables)** — use variable values in text or to enable trigger-based flow logic.
- **[Conditional navigation](onboarding-navigation-branching)** — branch the flow based on user input.
- **[Quizzes and inputs](builder-inputs-and-forms)** — collect and process user input.
- **[Dark mode](paywall-dark-mode)** — style elements to match the device theme.
- **[Localization](add-paywall-locale-in-adapty-paywall-builder)** — manual or AI-enabled.

[Save and publish](builder-save-publish) your draft, then attach it to a [placement](create-placement). A placement can hold different flows for different [audiences](add-audience-paywall-ab-test).

Follow this quickstart video to create a basic personalized flow:

<div style={{
    maxWidth: '560px',
    margin: '0 auto 2rem',
    position: 'relative',
    aspectRatio: '16/9',
    width: '100%'
}}>
    <iframe
        style={{
            position: 'absolute',
            top: 0,
            left: 0,
            width: '100%',
            height: '100%'
        }}
        src="https://www.youtube.com/embed/aa-m459VIuY?si=zN_Co6B6qB88UPZP"
        title="YouTube video player"
        frameBorder="0"
        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
        referrerPolicy="strict-origin-when-cross-origin"
        allowFullScreen
    />
</div>

## Next steps

<CustomDocCardList />