Free Funnel with Deep Link
Route users to your app or web product after a free Zellify funnel with no paywall.
The Problem
You are using Zellify for lead generation, onboarding, or quizzes — but you are not charging at this stage. There is no paywall in your funnel. After the user completes the flow, you want to route them to your mobile app or web product, and you need a way to identify them on the other side.
How It Works
The end-user goes through your Zellify funnel (quiz, onboarding, personalization, etc.)
At the email collection step, the user enters their email. The Registration Webhook fires, delivering the email, quiz answers, and
app_user_idto your backendYour backend creates a user account using the email and
app_user_idThe end-user reaches the final page (no paywall), which contains a Deep Link Button configured with
app_user_idThe end-user taps the button, is routed to your app or web product, and the
app_user_ididentifies them
What Zellify Handles
Generates a unique
app_user_idfor every funnel visitorFires the Registration Webhook with email, quiz answers, and
app_user_idwhen the user submits their emailProvides the Deep Link Button component, which interpolates
app_user_id(andemail) into any URL
What You Need to Set Up
1. Configure the Registration Webhook
Since there is no payment in this flow, the Registration Webhook is your primary way to capture user data.
Go to Dashboard → Settings → Developers (https://dash.zellify.app/settings?tab=developers)
Click Configure
Enter your webhook endpoint URL
Save and securely store the webhook secret
For the full payload structure and signature verification, see Registration Webhook.
2. Handle the Registration Webhook in your backend
Your backend receives the webhook payload containing:
email— the visitor's email addressanswers— all quiz/form responses collected in the funnelcontext.appUserId— the uniqueapp_user_idcontext.funnelId,context.campaignId,context.experimentId— attribution data
Create a user account with email and app_user_id. Store quiz answers if your product uses them for personalization.
3. Configure the Deep Link Button on your final page
Add a Deep Link Button component to the last page of your funnel. Configure it with app_user_id interpolation:
For mobile apps: set the URL to your deeplink scheme (or a deferred deeplink provider URL). The app reads
app_user_idfrom the deeplink to identify the userFor web products: set the URL to your signup or login page with
app_user_idandemailas query parameters
4. Identify the user in your product
When the user arrives at your app or web product:
Extract
app_user_idfrom the deeplink or URL parametersCall your backend to look up the user by
app_user_idThe account and any quiz data stored from the Registration Webhook are already available
The Linking Key
Without a paywall, there is no payment provider metadata involved. The linking is simpler:
Registration Webhook —
context.appUserIdin the payload, used by your backend to create the accountDeep Link Button URL —
app_user_idinterpolated into the link, carried to your app or web product
Your backend matches on app_user_id at both steps. No payment provider is in the loop.
When to Use This
Lead generation funnels — capture email and quiz data, then send users to your product
Onboarding-first flows — run users through a personalized quiz before they see your app, so the in-app experience can be tailored from the start
Freemium acquisition — get users into your free tier through a web funnel, then upsell inside the app later
If you later add a paywall to this funnel, the same app_user_id will flow into Stripe/Paddle metadata, and you can extend the integration using any of the other guides.
Related
Last updated

