ROASFormDocs
Webhooks

Overview

View as Markdown

Receive ROASForm form activity on your own endpoint as signed JSON events.

ROASForm webhooks push form activity to any public HTTPS URL the moment it happens: a lead completes a form, books a call, abandons halfway, or advances a step. Point them at Zapier, Make, n8n, or your own backend.

How it works

You register a webhook per subaccount: a target URL, the events you want, and an optional list of forms to scope it to. When a matching event occurs, ROASForm sends the webhook to your URL as an HTTP POST with a JSON body, signed with your webhook's secret.

  1. Create a webhook under Integrations → Webhooks in the dashboard.
  2. Store the signing secret. It is shown exactly once.
  3. Subscribe to events and pick the forms it applies to.
  4. Verify the signature on every delivery before trusting the body.
  5. Respond 2xx within 10 seconds, then process asynchronously.

Delivery guarantees

Delivery is at-least-once. If your endpoint is slow or down, ROASForm retries up to 5 times with exponential backoff, so a rare duplicate is possible. Deduplicate on the webhook's id: it is stable across retries of the same delivery. See Delivery & retries for the full rules.

The five events

EventFires when
form_submissionAny submission completes, with or without a lead.
form_stepContact details are captured (email or phone).
completed_leadA lead (contact details captured) finishes the form.
partial_leadA lead abandons the form before finishing.
booked_callAn appointment is booked through a connected calendar.