Skip to main content

Payload structure

All webhook payloads share a common envelope:

step.broken

Fired when Zenstep’s Smart Anchoring engine cannot find the DOM element for a step after multiple consecutive page loads.

step.recovered

Fired when a previously broken step is successfully anchored again.

flow.completed

Fired when a user completes a flow (reaches the last step and confirms).
userHash is a HMAC-SHA256 hash of the userId passed to identify(). The raw user ID is never sent in webhook payloads.

flow.dismissed

Fired when a user explicitly dismisses a flow (clicks the X or “Skip” button).

Common data fields