Receive Webflow form submissions
Webflow sends a form_submission webhook for each form submission. A webhook created through the
Webflow API is signed; one created in the Webflow dashboard is not. Pick the matching option in
DataLug. Receive a webhook from any system covers the shared settings.
Signed: a webhook created with the Webflow API
- In Manage Account > Webhooks, select New webhook, enter a name and set Signature to Webflow API webhook.
- Create the webhook with the Webflow API,
POST /sites/{site_id}/webhooks, with the DataLug webhook URL as its destination. - Paste the signing key into Webflow secret: the
secretKeyfrom the API response for a webhook created with a site token, or your app's client secret for an OAuth app. - Press Create webhook.
DataLug checks the x-webflow-signature and x-webflow-timestamp headers and refuses a request
whose timestamp is more than 5 minutes old.
Unsigned: a webhook created in the Webflow dashboard
- In Manage Account > Webhooks, select New webhook, enter a name, set Signature to Webflow dashboard webhook (unsigned) and press Create webhook.
- Copy the Webhook URL. It is shown once.
- In the Webflow dashboard, add a form submission webhook with that URL as its destination.
Anyone with the URL can start a run. Press Rotate to get a new URL.
What arrives
One row per submission, as Webflow sends it: triggerType and a payload object with the form
name, siteId, the submitted data, submittedAt and the submission id.
Duplicates and responses
The submission id, payload.id, is the event id: a submission that arrives twice runs once. Every
accepted request is answered 200, which is the only status Webflow counts as delivered.