Skip to main content

Receive Webflow form submissions

Guides

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​

  1. In Manage Account > Webhooks, select New webhook, enter a name and set Signature to Webflow API webhook.
  2. Create the webhook with the Webflow API, POST /sites/{site_id}/webhooks, with the DataLug webhook URL as its destination.
  3. Paste the signing key into Webflow secret: the secretKey from the API response for a webhook created with a site token, or your app's client secret for an OAuth app.
  4. 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​

  1. In Manage Account > Webhooks, select New webhook, enter a name, set Signature to Webflow dashboard webhook (unsigned) and press Create webhook.
  2. Copy the Webhook URL. It is shown once.
  3. In the Webflow dashboard, add a form submission webhook with that URL as its destination.
Treat the URL like a password

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.