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

  1. The end-user goes through your Zellify funnel and reaches the paywall

  2. They complete checkout via Stripe or Paddle. Zellify creates a customer in your payment provider with app_user_id and email set in metadata

  3. The 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_id and email interpolated as query parameters

  4. The end-user clicks the button and is redirected to your signup page. The URL contains their app_user_id and email

  5. Your signup page reads these parameters. It can pre-fill the email field and store the app_user_id on the new account

  6. Your 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_id for every funnel visitor

  • Sets app_user_id and email on Stripe Customer/Subscription metadata or Paddle Customer/Transaction custom data at checkout

  • Provides the Deep Link Button component on the success page, which interpolates app_user_id and email into the redirect URL


What You Need to Set Up

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:

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).

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:

  1. Stripe/Paddle metadata — set by Zellify at checkout, available on the customer and subscription/transaction objects

  2. 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.


Last updated