Changelog
Every change to the webhook contract and delivery behavior, newest first.
We announce every payload and behavior change here before or as it ships. Additions never change the webhookVersion; removals or renames only happen with a new version, announced with a migration period.
2026-07-29
-
markAbandonedAfterSecondsis now always a number. Forms using the default idle window deliver60instead ofnull. -
Renamed the
partial_leadreason values tobrowser_detectionandserver_detection(previouslyclient_signal/backstop_cron). -
Removed
lead.score. Score belongs to a submission, not to the person — a lead can go through several forms. Usesubmission.score. -
Removed the payload size limit. The
answersarray is always delivered in full; theanswersTruncatedflag no longer exists. -
Answers arrive in a guaranteed order. The
answersarray is now always ordered by when each question was answered. -
form_stepalways includes the submission. Previously, forms using the server-driven flow could deliverform_stepwithsubmission: null. Everyform_stepnow carries the full submission object. -
Deleted endings no longer break routing. If an ending is deleted in the builder after submissions completed,
submission.endingnow falls back to the values saved with the submission (idisnull,nameandtyperemain) instead of becomingnull.ending.idis documented as nullable for this reason. -
appointment.bookingTagsis always an array. Bookings without configured tags now deliver[]instead ofnull. -
The abandon safety net works without a CRM.
partial_leadwithreason: "server_detection"now also fires for subaccounts that have webhooks but no CRM integration, so abandons whose browser signal was lost (for example mobile tab closes) are still delivered. -
Docs corrected for
form_step. The event fires when contact details are captured (email or phone), at most a couple of times per submission — not on every question step. Bothform_stepandpartial_leadalso require the form's partial capture setting to be enabled.
2026-07-01
- Initial webhook contract: five events (
completed_lead,form_submission,booked_call,partial_lead,form_step), signed deliveries, per-webhook version pinning, at-least-once delivery with retries.
