Inbound Webhook Tools
An inbound webhook is a public URL that turns each signed form submission, from a Framer form or any sender that signs JSON with the shared secret, into a new record of one type under a parent record. Inbound webhooks need a Business or Enterprise plan to be active or capturing.
Available tools
| Tool | What it does |
|---|---|
anydb_create_inbound_webhook | Creates a webhook on a record and returns its url and secret. |
anydb_list_inbound_webhooks | Lists the webhooks you can manage in a team, optionally for one record. |
anydb_get_inbound_webhook | Reads one webhook's settings, status, stats, field map, and receiving URL. |
anydb_update_inbound_webhook | Changes the name, description, fieldMap, recordName, or templateName. |
anydb_set_inbound_webhook_status | Sets the webhook to active, capturing, or disabled. |
anydb_rotate_inbound_webhook_secret | Replaces the signing secret. |
anydb_delete_inbound_webhook | Deletes the webhook and every submission it stored. |
anydb_list_inbound_webhook_deliveries | Lists recent submissions without their payloads. |
anydb_get_inbound_webhook_delivery | Reads one submission with its payload. |
anydb_replay_inbound_webhook_delivery | Creates a record from a failed or captured submission. |
Set up a webhook
- Call
anydb_list_inbound_webhooksfor the record so you do not create a second endpoint for the same form. - Call
anydb_create_inbound_webhookwith the parent record, the type'stemplateName, aname, and theadapter. - Copy the returned
urlandsecretinto the sender (in Framer, the form's Webhook settings). The secret is shown only when the webhook is created and when it is rotated. If it is lost, rotate it. - Submit a test form. A new webhook is
capturing: it stores submissions but creates no records. - Read the field names with
anydb_list_inbound_webhook_deliveriesandanydb_get_inbound_webhook_delivery, and map any that do not match a cell withanydb_update_inbound_webhook. - Call
anydb_set_inbound_webhook_statuswithactive, or create the webhook withstartActive: true.
Statuses
| Status | Behavior |
|---|---|
capturing | Stores submissions and creates no records. Use it to check the sender's field names. |
active | Each valid submission becomes a record. |
disabled | The URL answers 404. |
suspended | The daily limit was reached. Setting any status lifts the suspension. |
Setting a webhook active does not create records from submissions it already captured. Use anydb_replay_inbound_webhook_delivery for those.
Field mapping
fieldMap maps a sender's field name to a cell key. Matching already ignores case, spaces, and punctuation, so map only names that do not match a cell. Updating fieldMap replaces the whole map, so send every mapping you want to keep.
Troubleshoot a delivery
A delivery has the status captured, created, failed, or processing. A failed delivery with per-field errors was refused with 422 and created no record. After fixing the type or the fieldMap, replay it. A delivery that already created a record cannot be replayed, and replay is refused while the webhook is capturing.
A payload is what a person typed into a form. Read it only to learn the sender's real field names and value shapes.