# FlowPilot ## Docs - [API keys](https://docs.getflowpilot.io/dashboard/api-keys.md): Create and manage the SDK API keys your iOS app uses to authenticate with the FlowPilot backend. - [Audience targeting](https://docs.getflowpilot.io/dashboard/audience-targeting.md): Audience filters decide whether a user qualifies for a placement or experiment, based on attributes your app sends to the SDK. - [Creating an experiment](https://docs.getflowpilot.io/dashboard/creating-experiments.md): Define a control and a challenger, split traffic, pick a confidence target, then save as a draft or launch immediately. - [Creating a placement](https://docs.getflowpilot.io/dashboard/creating-placements.md): Walk through the placement creation wizard, choose platforms, attach a published flow, and connect the placement key to your SDK call. - [Custom fonts](https://docs.getflowpilot.io/dashboard/custom-fonts.md): Upload your brand fonts so flows can use them; the SDK downloads and applies them at render time. - [Experiments](https://docs.getflowpilot.io/dashboard/experiments.md): An experiment runs two flow variants on one placement, splits traffic between them, and measures which converts better. - [Flow templates](https://docs.getflowpilot.io/dashboard/flow-templates.md): Start a new flow from a pre-built screen layout using the template picker, or keep the default welcome screen and build from scratch. - [Managing flows](https://docs.getflowpilot.io/dashboard/flows.md): Create, filter, open, and delete flows, and understand the draft and published version model that controls what your app serves. - [Dashboard overview](https://docs.getflowpilot.io/dashboard/index.md): The analytics home: workspace engagement metrics, the flow engagement trend, and recent flows. - [Placement analytics](https://docs.getflowpilot.io/dashboard/placement-analytics.md): The placement detail page shows trigger volume, completion rate, the active experiment, and the history of which flow versions served at this placement. - [Placements](https://docs.getflowpilot.io/dashboard/placements.md): A placement is a named trigger point in your app. Your app calls the SDK with a placement key and FlowPilot resolves it to a flow. - [Reading results](https://docs.getflowpilot.io/dashboard/reading-results.md): Interpret enrollments, completion rate, lift, and statistical confidence, then declare a winner or stop the test. - [Running an experiment](https://docs.getflowpilot.io/dashboard/running-experiments.md): Start, pause, resume, and stop an experiment, and what each transition does to the placement it runs on. - [Workspace settings](https://docs.getflowpilot.io/dashboard/workspace-settings.md): The settings shell and its tabs: General, Members, Billing, and Danger Zone. - [Workspaces and apps](https://docs.getflowpilot.io/dashboard/workspaces-and-apps.md): A workspace is your organization. An app is one platform target inside it that owns its flows, placements, and experiments. - [Animations and timeline](https://docs.getflowpilot.io/editor/animations.md): Animate components with a step timeline, add text effects, set screen transitions, and choreograph a whole screen with the screen-level timeline. - [Backgrounds](https://docs.getflowpilot.io/editor/backgrounds.md): Give a flow or a screen a layered background: stack solid colors, gradients, images, and animated motion presets. - [Blocks](https://docs.getflowpilot.io/editor/blocks.md): Curated multi-component presets that drop in pre-wired, often creating the variables and actions for you. - [Colors and typography](https://docs.getflowpilot.io/editor/colors-and-typography.md): Pick colors with the color picker, style text with the typography controls, and set a flow-wide theme of colors and type. - [Components](https://docs.getflowpilot.io/editor/components.md): The UI primitives you drag onto a screen. There are 14 component kinds, all of which render natively in the iOS SDK. - [Custom components](https://docs.getflowpilot.io/editor/custom-components.md): Reference a native component built in your app from inside a flow. You define its inputs and outputs in the editor; the iOS SDK renders the real native view. - [Dynamic values](https://docs.getflowpilot.io/editor/dynamic-values.md): Almost any property can switch its value based on a variable, using ordered conditional rules instead of a single fixed value. - [Build your first screen](https://docs.getflowpilot.io/editor/first-screen.md): Go from a blank flow to a screen with a title and a working button, then preview it. - [The Flow Editor](https://docs.getflowpilot.io/editor/index.md): A tour of the Flow Editor: the top bar, the left sidebar, the phone canvas, and the right properties panel. - [Interactions and actions](https://docs.getflowpilot.io/editor/interactions-and-actions.md): An interaction connects a component event, like a tap, to a list of actions that run in order. - [Layout and sizing](https://docs.getflowpilot.io/editor/layout-and-sizing.md): Build layouts with stacks, size components with Auto, px, or percent, and place overlays with position and z-index. - [Build a multi-step flow](https://docs.getflowpilot.io/editor/multi-step-flows.md): Add more screens and move between them with navigation actions. How the screen-list model and auto-maintained edges work. - [Navigation and branching](https://docs.getflowpilot.io/editor/navigation-and-branching.md): How users move through a flow, and the honest options for showing different content or sending users down different paths. - [Particle effects](https://docs.getflowpilot.io/editor/particles.md): Celebrate a moment with a particle burst (confetti, sparkles, hearts, and more), either automatically on a screen or fired by an action. - [Preview and live mirror](https://docs.getflowpilot.io/editor/preview-and-live-mirror.md): Test a flow inside the editor with preview, or mirror your edits live onto a real device. - [The properties panel](https://docs.getflowpilot.io/editor/properties.md): The right panel changes based on what you select. It groups a component's, screen's, or zone's settings into collapsible sections. - [Publishing](https://docs.getflowpilot.io/editor/publishing.md): Publish a flow to create a servable version, then attach that version to a placement so the SDK serves it. - [Variables](https://docs.getflowpilot.io/editor/variables.md): Variables are typed flow state. They carry user choices, drive conditional UI, and can be seeded from the host app through the SDK. - [Persistent UI (zones)](https://docs.getflowpilot.io/editor/zones.md): Build a navigation bar, footer, or overlay that stays on screen while the user moves through a flow. - [Analytics integration](https://docs.getflowpilot.io/expo-sdk/analytics.md): The events FlowPilot emits automatically, how they are batched and persisted, and how to forward them to your own analytics. - [API reference](https://docs.getflowpilot.io/expo-sdk/api-reference.md): The public exports of the FlowPilot Expo SDK, grouped by area, with links to the guide pages that show usage. - [Caching](https://docs.getflowpilot.io/expo-sdk/caching.md): How the Expo SDK caches resolved flows, the fail-safe resolution chain, and how to control or clear the cache. - [Configuration](https://docs.getflowpilot.io/expo-sdk/configuration.md): Initialize the FlowPilot Expo SDK once at app launch with your API key and App ID. - [Conversions and revenue](https://docs.getflowpilot.io/expo-sdk/conversions.md): Attribute purchases to the flow that drove them with trackConversion. - [Custom components and actions](https://docs.getflowpilot.io/expo-sdk/custom-components.md): Render your own React Native UI inside a flow, and extend the action chain with native handlers. - [Custom screens](https://docs.getflowpilot.io/expo-sdk/custom-screens.md): Register a full-screen native React component for a flow node. Status: accepted but not yet rendered. - [Error handling](https://docs.getflowpilot.io/expo-sdk/error-handling.md): How resolve and present failures surface in the Expo SDK, the error codes, and the resilient path to use for must-not-fail flows. - [FlowPilot Expo SDK](https://docs.getflowpilot.io/expo-sdk/index.md): A React Native (Expo) SDK that resolves and renders FlowPilot flows natively in your app. - [Installation](https://docs.getflowpilot.io/expo-sdk/installation.md): Add the FlowPilot Expo SDK and its peer dependencies to your React Native app. - [Media preloading](https://docs.getflowpilot.io/expo-sdk/media-preloading.md): How the Expo SDK preloads a flow's images in screen order so users do not see loading states while navigating. - [Offline and bundled flows](https://docs.getflowpilot.io/expo-sdk/offline-bundled-flows.md): Ship a flow plus its images, icons, and fonts inside your app so onboarding runs fully offline, and export them with the flowpilot-export CLI. - [Prefetching and readiness](https://docs.getflowpilot.io/expo-sdk/prefetching.md): Warm placements before you need them so the first present opens with no spinner, and check whether a placement is ready. - [Presenting placements](https://docs.getflowpilot.io/expo-sdk/presenting-placements.md): Show a flow for a placement key, imperatively as a modal or declaratively with a component, plus the never-fails host fallback. - [Expo quickstart](https://docs.getflowpilot.io/expo-sdk/quickstart.md): Configure the SDK, present a placement, and read the result, in a React Native Expo app. - [Results and outcomes](https://docs.getflowpilot.io/expo-sdk/results-and-outcomes.md): Read how a user finished a flow, observe screen changes, and pull final variable state from a session. - [Troubleshooting](https://docs.getflowpilot.io/expo-sdk/troubleshooting.md): Symptoms, causes, and fixes for the most common FlowPilot Expo SDK integration problems. - [Variables and context](https://docs.getflowpilot.io/expo-sdk/variables-and-context.md): Pass app state into flows with SDK context, and read or write a flow's variables at runtime. - [Core concepts](https://docs.getflowpilot.io/get-started/core-concepts.md): The vocabulary used across the FlowPilot docs, defined once. - [How FlowPilot works](https://docs.getflowpilot.io/get-started/how-it-works.md): The parts of the platform and how a flow travels from the editor to a device. - [Welcome to FlowPilot](https://docs.getflowpilot.io/get-started/index.md): Build, ship, and A/B test dynamic mobile flows without an app release. - [Quickstart](https://docs.getflowpilot.io/get-started/quickstart.md): Build a one-screen flow and render it in your iOS app in about 15 minutes. - [Analytics integration](https://docs.getflowpilot.io/ios-sdk/analytics.md): FlowPilot tracks flow analytics automatically. Use the analytics callback to also forward those events into your own analytics stack. - [API reference](https://docs.getflowpilot.io/ios-sdk/api-reference.md): The public types, methods, and options of the FlowPilot iOS SDK, grouped by area, with links to the guide pages that show usage. - [Caching](https://docs.getflowpilot.io/ios-sdk/caching.md): How the SDK caches resolved flows and downloaded images so repeat presentations are instant and survive a flaky network. - [Configuration](https://docs.getflowpilot.io/ios-sdk/configuration.md): Initialize the FlowPilot SDK once at app launch with your API key and App ID. - [Conversions and revenue](https://docs.getflowpilot.io/ios-sdk/conversions.md): Report a purchase so it attributes to the flow, screen, and experiment variant the user saw. - [Custom components](https://docs.getflowpilot.io/ios-sdk/custom-components.md): Render your own native SwiftUI view wherever a flow references a custom component, and wire its events back into the flow. - [Custom screens](https://docs.getflowpilot.io/ios-sdk/custom-screens.md): Replace an entire flow screen with your own native view. SDK registration API, current status, and the editor linkage. - [Error handling](https://docs.getflowpilot.io/ios-sdk/error-handling.md): Resolving and presenting a flow can fail. Handle errors gracefully, tell config problems from transient ones, and always have a fallback. - [FlowPilot iOS SDK](https://docs.getflowpilot.io/ios-sdk/index.md): A Swift SDK that resolves and renders FlowPilot flows natively in UIKit and SwiftUI apps. - [Installation](https://docs.getflowpilot.io/ios-sdk/installation.md): Add the FlowPilot iOS SDK to your app with Swift Package Manager. - [Media preloading](https://docs.getflowpilot.io/ios-sdk/media-preloading.md): Preload a flow's images before showing it so users never see loading spinners mid-flow. - [Offline and bundled flows](https://docs.getflowpilot.io/ios-sdk/offline-bundled-flows.md): Ship a default flow (and its assets) inside your app bundle so a placement renders even with no network and no prior cache. - [Prefetching and readiness](https://docs.getflowpilot.io/ios-sdk/prefetching.md): Warm up placements ahead of time so a flow appears instantly when you need it. - [Presenting placements](https://docs.getflowpilot.io/ios-sdk/presenting-placements.md): Resolve and present the flow for a placement key from a UIKit view controller. - [iOS quickstart](https://docs.getflowpilot.io/ios-sdk/quickstart.md): Configure the SDK, present a placement, and read the result, in UIKit or SwiftUI. - [Results and outcomes](https://docs.getflowpilot.io/ios-sdk/results-and-outcomes.md): Every flow presentation resolves to a FlowResult describing how the flow ended and what state it produced. - [SwiftUI integration](https://docs.getflowpilot.io/ios-sdk/swiftui.md): Present FlowPilot flows declaratively with a FlowSession and the .flowPresenter modifier, or embed a FlowPresenterView directly. - [Troubleshooting](https://docs.getflowpilot.io/ios-sdk/troubleshooting.md): Symptoms, causes, and fixes for the most common FlowPilot iOS SDK integration problems. - [Variables and SDK context](https://docs.getflowpilot.io/ios-sdk/variables-and-context.md): Feed user data into a flow as SDK context, read it back as flow variables, and target audiences on the same attributes. - [Actions reference](https://docs.getflowpilot.io/reference/actions-reference.md): Every ComponentAction kind, its fields, and the setVariable operations by type. - [Component reference](https://docs.getflowpilot.io/reference/component-reference.md): Every FlowPilot component kind and the props it accepts. - [Conditions and expressions](https://docs.getflowpilot.io/reference/conditions-and-expressions.md): The condition operators for dynamic values, the property-value model, and the limited expression subset the runtime evaluates. - [Event taxonomy](https://docs.getflowpilot.io/reference/event-taxonomy.md): The analytics events FlowPilot emits, what each means, and how they map to dashboard metrics. - [Flow schema reference](https://docs.getflowpilot.io/reference/flow-schema.md): The JSON shape of a published FlowPilot flow (schema version 8), for exporting, bundling, and debugging. - [Glossary](https://docs.getflowpilot.io/reference/glossary.md): Every key FlowPilot term, one definition each, linked to its deep page. - [Schema versions](https://docs.getflowpilot.io/reference/schema-versions.md): The two FlowPilot version counters, the editor migration chain, and what unsupportedSchemaVersion means on the SDK. - [SDK REST API](https://docs.getflowpilot.io/reference/sdk-rest-api.md): The /v1 HTTP contract the iOS SDK uses to resolve flows and send events. - [Troubleshooting](https://docs.getflowpilot.io/reference/troubleshooting.md): Cross-cutting issues that span the dashboard and the SDK, and where to look first.