Form Events

Receive `FORM.SUBMISSION` events via webhook when a recipient completes a Pinnacle form. Fires once per successful submit — and again on every edit when the form was created with `can_update: true`. The payload includes the full form metadata, the submitter's answers (both keyed by `key` in `submission.data` and as a resolved `submission.fields` snapshot ready to render), and the conversation the form was sent in. `conversation` is only populated when the form was dispatched via `POST /forms/send` with a `to` recipient — it's null for URL-only sends and for forms whose URL was shared through any other channel (e.g. an RCS card built with `POST /send`). `sender` is hoisted to the event root so you can route on it without walking into the submission object. **Before trusting the payload, verify the `PINNACLE-SIGNING-SECRET` header matches the signing secret of the webhook this event was delivered to.** Respond with a `200` to acknowledge receipt — any non-2xx response causes Pinnacle to retry with exponential backoff.