Registration Webhook
A secure webhook that triggers when a funnel visitor provides their email and clicks the Registration button, delivering form answers to your system in real-time.

Overview
The Registration Webhook is triggered immediately when a visitor completes the registration step in your funnel — providing their email address and clicking the "Registration" button. This webhook delivers the visitor's email along with all their quiz/form answers, enabling you to:
Capture leads in real-time — Send data to your CRM, email marketing platform, or database instantly
Personalize follow-up flows — Use quiz answers to trigger customized email sequences or experiences
Sync with external systems — Update customer profiles, assign tags, or route leads based on their responses
Registration happens before payment. This webhook fires when the visitor submits their email, not when they complete a purchase. Use it for lead capture and pre-qualification.
Configuration
To enable the Registration Webhook, configure it in your Zellify dashboard:
Navigate To: https://dash.zellify.app/settings?tab=developers
Click on button with label
ConfigureEnter your Registration Webhook URL (the endpoint that will receive the payload)
Save Configuration and make sure to securely save webhook secret.
How It Works
Visitor completes registration — They provide their email and click the "Registration" button in your funnel
Zellify sends webhook — A POST request is immediately sent to your configured endpoint
Your system processes data — Verify the signature, then store the lead, trigger automations, or sync to other platforms
Visitor continues funnel — The funnel proceeds to the next step (typically payment or confirmation)
Payload Structure
email
string
Email address the visitor submitted
answers
object
Map of question ID → answer value, collected from the funnel
context
object
Session metadata: user identity, funnel, campaign, and request details
Example
context fields
context fieldsappUserId
string
Zellify-generated user ID used to track funnel activity. Passed to Stripe/Paddle metadata as app_user_id
funnelId
string
ID of the funnel where registration took place
campaignId
string
ID of the campaign link the visitor used to reach the funnel
experimentId
string
ID of the A/B testing experiment the campaign targets. Only present when A/B testing is active
organizationId
string
ID of the organization that owns this funnel and webhook configuration
pageLocation
string
Path of the page where the registration event occurred
ip
string
IPv4 or IPv6 address of the visitor
userAgent
string
Visitor's browser user agent string
answers fields
answers fieldsanswers is a map of question identifier → response object. Each key is a question ID; each value is an object with a single value property holding the user's answer.
The type of value depends on the question type — it can be a string, number, or string[]. See Understanding Answers below for how to interpret these values.
All values in answers are user input. Client-side validation exists but is not authoritative and can be bypassed. Do not assume values are present, non-empty, or valid.
Understanding Answers
Variables Schema
To interpret answers correctly, export the Variables Schema from your funnel. It provides the metadata needed to map raw answer values to human-readable meaning.
How to export:
Click Edit Funnel on the desired funnel
Open the Variables tab from the right sidebar
Click the Copy Variables Schema button:

Example schema:
Each entry in the schema defines:
questionType— how the value should be interpretedquestionText— what was shown to the userpageSlug— where in the funnel it was askedoptions— how to resolve option IDs to human-readable labels (forsingleselect,multiselect,slider)
In other words:
answers= raw user inputVariables Schema = metadata needed to interpret that input
Question Types
email
string
Validated as email; serialized as a plain string
text
string
Free-form user input (text field, textarea, etc.)
number
number
May be integer or float
singleselect
string
Value is an option id; resolve label via options[]
multiselect
string[]
Array of option ids; resolve labels via options[]
slider
string
Same data model as singleselect; UI differs, data does not
range
string
Format: "from-to" — hyphen-separated numeric values (e.g. "18-35")
Security & Verification
HTTP Request Details
Method:
POSTContent-Type:
application/jsonHeaders:
X-Webhook-Signature: HMAC-SHA256 signature of the request body
Signature Verification
Every request is signed using your Registration Webhook Secret. The signature is computed as:
Always verify signatures before processing.
Last updated

