> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trybrein.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webflow

> Each form submitted on your Webflow site creates their Contact and their Company.

## What it brings into Brein

Every time someone fills in a form on your site, Brein creates or fills in their **Contact** and their **Company** by the email domain. If you ask at connect time, it also opens an **Opportunity**.

| From Webflow | Goes to |
| - | - |
| `firstName` and `lastName` | Contact name |
| `email` | Contact email |
| `phoneNumber` | Contact phone |

## Connect it

Webhooks created from the Webflow dashboard **carry no signature**, and Brein rejects unsigned notices. For Webflow to sign, the webhook is created with its API, using a site token with the `forms:read` scope. Webflow hands you the signing secret and you paste it in Brein.

<Steps>
  <Step title="In Brein">
    Go to **Settings → Integrations → Connect → Webflow** and copy the **address**.
  </Step>

  <Step title="Create the webhook in Webflow">
    With the Webflow API (*Create Webhook*), using your site id:

    ```bash theme={"theme":"github-light"}
    curl -X POST "https://api.webflow.com/sites/<site id>/webhooks" \
      -H "Authorization: Bearer $WEBFLOW_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "triggerType": "form_submission",
        "url": "https://api.trybrein.com/api/v1/door/<Source id>"
      }'
    ```

    To receive only one form, Webflow accepts a `filter` parameter with the form's name (see its documentation). The site id is in the site settings, in the *Overview* section.
  </Step>

  <Step title="Copy the secret">
    The response carries `secretKey` if you used an API key created from the site dashboard. If you use an OAuth app, the secret is that app's client secret. Copy it.
  </Step>

  <Step title="Paste it in Brein">
    In the Integration, paste the secret and save. Until you paste it, Brein rejects every notice.
  </Step>
</Steps>

## Which events to choose

Only `form_submission`.

## Limits

* The keys in the data are those of your form's fields. The template looks for `firstName`, `lastName`, `email` and `phoneNumber`. If your form names its fields differently (for example "First Name"), those fields arrive as **new fields, undecided**. Assign them and reprocess.
* Webflow signs with a timestamp and rejects notices more than 5 minutes off.

More about results, how people are recognized and privacy: [Integrations](/integrations). Source: [Webflow webhooks](https://developers.webflow.com/data/docs/working-with-webhooks).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.