Skip to content

Integration Overview ​

The web funnel sells the subscription. Your app gives access when the buyer signs in with the same email they entered in the funnel and verifies it. The email is the only link between the purchase and the app account; no click attribution is involved.

The Flow ​

text
Visitor completes the web funnel and checkout with their email
  -> installs and opens your app
  -> signs in with that email and verifies it
  -> backend verifies the subscription with that email
  -> matched user is returned with a stable user.user_id and access status
  -> backend tracks the login and saves user.user_id on the account
  -> later app opens verify access again with the saved ID

If you use AppsFlyer, you can prefill the sign-in email from a OneLink on the funnel's download button. See Connect your app.

The Trust Rule ​

Verify email ownership before looking up a subscription by email. A typed, prefilled, or link-provided value is not proof of ownership.

Identity And Access ​

  1. Call POST /sdk/public/users/verify_subscription with the verified email. It returns active, the test mode flag, and, when a user matches, user.user_id without changing state.
  2. If a user resolves, call POST /sdk/public/users/track_login with that user_id, regardless of paid access.
  3. Save the exact returned ID on the authenticated app account.
  4. On later app opens, verify access again with the saved ID.

Verification is read-only. Login tracking records App Login after identity ownership has been proven, including for users without a subscription. Unlock paid production content only when verification returns active: true and test: false.

Responsibilities ​

AreaResponsibility
Web funnelCapture email, show the paywall, and complete checkout.
Billing systemCreate and track the subscription.
AppSign the user in with email and verify it.
Customer backendVerify access by email, track login, and save the stable funnelsgrove user ID.
funnelsgrove SDK APIResolve project-scoped subscription state and record App Login.
App backend webhook receiverOptionally receive signed funnel user, payment, and subscription updates.

FAQ ​

What if the user signs in with a different email? ​

verify_subscription returns user: null. Ask them to sign in with the email they used in the funnel. Never move access from an unverified email.

What if the user paid but has not signed in to the app yet? ​

Nothing happens until they sign in. Remind them by email to install the app and sign in with the same address.

Which platforms fit this flow? ​

Any app with email sign-in: iOS, Android, or web. Nothing in the flow is platform-specific.

Next ​

Build. Launch. Grow.