Web App with Signup Page
Route end-users to your web signup page after a Zellify funnel purchase and connect their account to the payment.
The Problem
You have a web product — a SaaS application, membership site, web dashboard, or any browser-based product. You want to acquire users through a Zellify web funnel, collect payment via Stripe or Paddle, and then send the user to your own signup page where they create an account. You need a way to connect that new account to the payment that just happened.
How It Works
The end-user goes through your Zellify funnel and reaches the paywall
They complete checkout via Stripe or Paddle. Zellify creates a customer in your payment provider with
app_user_idandemailset in metadataThe end-user lands on your success page, which contains a Deep Link Button configured as a web URL pointing to your signup page, with
app_user_idandemailinterpolated as query parametersThe end-user clicks the button and is redirected to your signup page. The URL contains their
app_user_idandemailYour signup page reads these parameters. It can pre-fill the email field and store the
app_user_idon the new accountYour backend matches the new account to the Stripe/Paddle customer using
app_user_id(which is already in the payment provider's metadata) and grants entitlements
What Zellify Handles
Generates a unique
app_user_idfor every funnel visitorSets
app_user_idandemailon Stripe Customer/Subscription metadata or Paddle Customer/Transaction custom data at checkoutProvides the Deep Link Button component on the success page, which interpolates
app_user_idandemailinto the redirect URL
What You Need to Set Up
1. Configure the Deep Link Button on your success page
Add a Deep Link Button component to the page that appears after your paywall. In the component's configuration panel, set the URL to your web signup page and enable app_user_id and email interpolation.
For example, your configured URL might look like:
When the end-user clicks the button, they are redirected to your signup page with both values in the URL.
2. Read the parameters on your signup page
Your signup page should read app_user_id and email from the URL query parameters. Use the email to pre-fill the registration form. Store the app_user_id on the new user account in your database.
3. Match the account to the payment
Once the account is created with app_user_id stored, you can look up the corresponding Stripe Customer or Paddle Customer using app_user_id from their metadata/custom data.
There are two ways to do this:
Option A: Query your payment provider by metadata
Search for the Stripe Customer or Paddle Customer to find the subscription or transaction details needed to grant entitlements:
Stripe: Search Customers by metadata using
app_user_idPaddle: List Customers with email filter — use email since Paddle enforces email uniqueness
Option B: Listen for payment webhooks
Register your own webhook endpoint in Stripe or Paddle. When a payment event arrives, extract app_user_id from the metadata and match it to the account in your database. This approach is more reliable for ongoing subscription management (renewals, cancellations, upgrades).
Stripe: Webhooks
Paddle: Webhooks Overview
Option B is recommended if you need to handle subscription lifecycle events beyond the initial purchase.
The Linking Key
The flow depends on app_user_id being present in two places:
Stripe/Paddle metadata — set by Zellify at checkout, available on the customer and subscription/transaction objects
Signup page URL — interpolated by the Deep Link Button, carried to your signup page as a query parameter and stored on the user account
Your backend uses app_user_id to connect the user account (created on your signup page) to the payment record (in Stripe or Paddle). The email serves as a secondary identifier and convenience for pre-filling the signup form.
Related
Last updated

