Cookbook

Onboarding Flow

Build a multi-screen onboarding experience with navigation

Onboarding Flow

Create a multi-screen onboarding that guides new users through your app's value proposition before presenting a paywall. The flow triggers on first launch and never shows again.

Prerequisites:

  • A Nuxie account with an app created in the dashboard
  • A flow open in the Studio
  • The iOS SDK installed and configured in your app (see Quickstart)

Step 1: Design multiple screens

Open the Studio and use the chat panel to generate your onboarding screens. Create them one at a time or describe the full sequence:

Create a 3-screen onboarding flow for a habit tracking app. Screen 1: welcome with app logo and tagline. Screen 2: highlight the streak feature with an illustration placeholder. Screen 3: a paywall with monthly and annual pricing.

Each screen appears on the canvas as a separate card. You can refine each screen individually: "Make the welcome screen background a gradient" or "Add a skip button to screen 2."

Step 2: Wire up navigation between screens

Select the "Next" button on your welcome screen. In the inspector panel, set the button's action to Navigate and choose the second screen as the destination.

Repeat for each transition:

  • Welcome screen "Get Started" button navigates to the feature highlight screen
  • Feature highlight screen "Continue" button navigates to the paywall screen
  • Paywall screen "Skip" button uses a Dismiss action to close the flow

For the paywall screen's subscribe button, set the action to Purchase and select your product. After a successful purchase, the flow dismisses automatically.

Step 3: Set the starting screen

Right-click the welcome screen on the canvas and choose Set as starting point. This marks it as the first screen users see when the flow is presented. The publish panel blocks publishing until a starting screen is set.

Step 4: Publish the flow

Click Publish in the top-right corner. Select your target app and click Launch Campaign.

The editor validates your flow (starting screen, no binding errors, no parse errors) and queues the build. When the build completes, your campaign is live.

Step 5: Configure the trigger for first launch

Open the campaign in the dashboard from the link in the publish panel. Configure the trigger:

  • Trigger type -- Event
  • Event name -- $app_installed

The $app_installed event fires automatically the first time a user opens your app after installation. No code is needed to fire this event -- the SDK tracks it for you.

Step 6: Set the re-entry policy to "Once"

Under the campaign's delivery settings, set the re-entry policy to Once. This means each user sees the onboarding flow at most one time. After they complete or dismiss it, the campaign never triggers again for that user.

PolicyWhen to use
OnceOnboarding flows that should only appear on first launch
Every timePaywalls that should reappear on each trigger
Once per windowPromotions that can reappear after a cooldown period

Step 7: Track completion (optional)

Set the campaign goal to track whether users complete the onboarding. A common approach:

  • Goal type -- Custom event
  • Event name -- onboarding_completed

Fire this event from the final screen's interaction. Alternatively, if your paywall is the last screen, use a Purchase goal to track whether the user subscribed.

Goal data appears on the campaign's Overview tab, where you can see conversion rates and time to convert.

Step 8: Test the flow

In your iOS app, the onboarding flow appears automatically on first launch. To test it again during development, you can reset the SDK's local state:

swift
NuxieSDK.shared.reset()

This clears the cached profile and journey history, so the $app_installed trigger and the "Once" re-entry policy evaluate fresh on the next launch.

Tip: Use experiment overrides or a test segment to preview flows without resetting state in production. See Experiments for override options.

Step 9: Branch by user choice (optional)

For more advanced onboarding, add branching based on user selections. For example, if screen 2 asks "What is your goal?" with two buttons ("Build habits" and "Break habits"), you can navigate each button to a different follow-up screen.

Set each button's action to Navigate pointing to a different screen. Both paths can converge on the final paywall screen, giving users a personalized experience without duplicating the paywall design.

Next steps