How a hook works
- The visitor finishes a step that has a hook.
- Funeli sends a
POSTto your URL with the funnel, step and session ids and the answers you listed. - Funeli waits for the response (15 seconds by default) and copies the response fields you mapped into answers.
- The step’s rules run, so you can branch on the saved values.
https URLs that resolve to public addresses are called. Choose what happens on an error: continue the funnel, or stay on the step with an error message and a retry.
Hooks are set up through an AI agent, for example “add a hook to the photo step that sends photo_url to https://api.example.com/scan and saves result.label as face_shape”. The editor does not have a hook form yet.
Photo upload, analysis and branching
1
Upload step
Add a form step with a file upload (camera or gallery), a consent checkbox and a button. For face photos, set a minimum image size and require exactly one face; the face check runs on the visitor’s device before the upload.
2
Hook
Add a hook to that step that sends the photo URL to your endpoint and saves the result, for example a face shape, into an answer.
3
Loader for long processing
For processing that takes longer, put the hook on a loader step with a progress bar; it moves on when both the bar and the hook are done.
4
Branch on the result
Add rules on the next step, such as “face_shape exists” or “face_shape equals oval”.
Connect the session to payment
Each funnel session has a server-owned id, available as{{runtime_id}}. Pass it, or an id your hook returned, to Paddle as custom data in the funnel’s Settings, Payments section (Paddle custom data), and to your web app in the web handoff. Your backend can then match the upload, the payment and the user.