Deferred Deeplinks
Bridge your web funnel to your native app with deferred deeplinks and pass user context securely for a seamless post-purchase experience.
Deferred deeplinks let you send users from your web funnel into your native app — even if the app is not installed yet. They preserve context (like the user’s email or ID) across install and first open, enabling automatic sign-in and personalized onboarding.
This guide covers using AppsFlyer OneLink with Zellify.
How It Works (AppsFlyer OneLink)
A user completes a step in your Zellify funnel (e.g., purchase or onboarding).
The user clicks a button configured with an AppsFlyer OneLink URL.
If your app is installed, the link opens the app directly; if not, the user is sent to the App Store / Play Store based on device.
On first open after install, the AppsFlyer SDK delivers the original link data (including any query parameters Zellify appended) to your app.
Your app reads these parameters (e.g., email, user ID) to sign the user in or complete setup.
Set Up in Zellify
Step 1: Create your OneLink in AppsFlyer
In AppsFlyer, create a OneLink and enable deferred deep linking.
Configure your iOS and Android destinations.
Copy your base OneLink URL (for example:
https://yourapp.onelink.me/abc123
).
Step 2: Add the OneLink to your funnel page
Open your funnel in the editor.
In the left sidebar
Component Library
, scroll toIntegrations
.Add the
AppsFlyer OneLink
component to the page where you want the link.In the component settings, paste your AppsFlyer OneLink into
OneLink URL
.Optionally select which parameters Zellify should append to the link when a user reaches this page, and customize the parameter key names if desired.
Publish the funnel to apply these changes.
Optional parameters you can append
Select which parameters to include and customize their keys. Available options:
Current user email address
Current funnel identifier
Current time when link is generated
Current customer UID
Current organization
Notes:
Zellify URL-encodes parameter values automatically.
Parameter key names are configurable. For example, you can use
&amazingEmail={email}
to send the user’s email under a custom key.
Example final URL shape after Zellify appends parameters:
https://yourapp.onelink.me/abc123?email=jane.doe%40example.com&userId=usr_123&funnelId=fnl_789×tamp=1731436800
Example with customized keys:
https://yourapp.onelink.me/abc123?amazingEmail=jane.doe%40example.com&customer_uid=usr_123&funnel=fnl_789
Important prerequisites and warnings
If you expect to append
email
, the user must have authenticated earlier in the funnel so Zellify knows their email. If there’s no prior authentication step, the email cannot be interpolated and will not be added.Similarly,
Current customer UID
andCurrent organization
require that the funnel session has that context available.Keep parameter names stable (or update your app’s parsing accordingly) so your app can reliably read them.
Step 3: Test end-to-end
Complete a test flow in your funnel (use sandbox/test environment when possible).
Click the OneLink button on a real device (not a simulator).
If the app isn’t installed, install it from the store and open it.
Verify your app receives the appended parameters on first open via the AppsFlyer SDK.
Confirm the app links the session to the correct user and purchase.
Implementing in your mobile app
Integrate and initialize the AppsFlyer SDK on iOS and Android.
Handle OneLink/deep link callbacks on first open and subsequent opens.
Parse your chosen parameter keys (including any custom names you set in Zellify) and use them to sign the user in or continue onboarding.
Avoid placing secrets or tokens in URL parameters. Only pass identifiers; fetch sensitive data server-side after validation.
Refer to the official AppsFlyer documentation for OneLink setup and SDK deep link handling.
Best Practices
Pass only the minimum identifiers needed (e.g., email or userId) and fetch the rest via your API.
Use a short-lived in-app flow to validate the purchase server-side after open.
Maintain separate OneLinks for staging and production environments.
Log link clicks and app opens to monitor attribution health.
Keep parameter keys consistent across environments, or ensure your app handles variations.
Troubleshooting (OneLink)
Last updated