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

# Webflow forms

> Everyone who submits a form on your Webflow site becomes a contact in Kerux and can start a campaign, without Zapier.

> [!NOTE]
>
> **Pro plan.** Lead forms (the secret URLs in **Forms** and the **Lead form submitted** trigger) are part of Pro and Agency (and the free trial), like Lead Ads. On Starter, **Connections** shows **Part of Pro** with an **Upgrade to Pro** button, and making a URL or adding the trigger shows **Part of Pro: Lead forms (Typeform, Tally, Jotform...)** with the same button. URLs and triggers you already have keep adding contacts on every plan. See [Plans and billing](/help/account/billing.md).

Have a demo request or contact form on your Webflow site? Everyone who submits it can become a contact in Kerux and start the campaign you choose.

No Zapier or Make in between: Webflow sends each submission straight to a secret URL of your workspace, and Kerux reads Webflow's own format.

## Connect Webflow forms

**1. Make your secret URL in Kerux**

Go to **Integrations > Connections**. In **Forms**, click **Connect** on the **Webflow forms** row: a side panel opens. Under **Name your first URL**, type a name you'll recognize (for example *Demo request*) and click **Create URL**, then **Copy**. Keep it private: anyone with this URL can add contacts to your workspace.

**2. Add the webhook in Webflow**

In Webflow, go to **Site settings > Apps & integrations > Webhooks** and click **Add webhook**.

**3. Pick Form submission**

Choose **Form submission** as the trigger type and **v2** as the API version (v1 works too), paste your Kerux URL and save.

**4. Send a submission**

Publish your site and submit the form once. In Kerux, the URL's card shows its fields.

Kerux names each field after its name in Webflow (give your fields clear names like *Email*, *First Name*, *Company*) and tells your forms apart by their names, so a campaign can start from only your *Demo request* form. One Webflow webhook sends every form of the site; use the campaign's form filter to pick one.

## Choose where each field goes

When the first submission arrives, the URL's card in the panel stops saying **Waiting for your first submission...** and shows **Where each field goes**: every field of that submission (only the field names, never the answers) and where Kerux puts it.

* **Automatic** is Kerux's guess. It uses the field's type when Webflow sends one (an email question is the email), then the question's words (*First name*, *Company*, *Job title*, *Phone*...), and any answer that is an email address or a LinkedIn profile URL.
* Pick another target to change it: **Email**, **First name**, **Last name**, **First and last name**, **Phone**, **Company**, **Job title**, **Location**, **Address**, **City**, **Country**, **Postal code**, **LinkedIn profile**, a **Custom field** (use it in messages as `{{contact.custom.<name>}}`), or **Don't keep**.
* Click **Save mapping**. Every next submission uses it.

**Test** shows how a sample Webflow forms submission (taken from Webflow's documentation) would be read with your mapping. Nothing is saved and no contact is made.

## Start a campaign from the form

**1. Add the trigger**

Open your campaign, go to its **Triggers** tab and click **+ Add** > **Lead form submitted**.

**2. Pick the source**

Under **Source**, pick **Webflow forms**. Under **Which URL**, pick one of your Webflow forms URLs or **Any Webflow forms URL**. Leave **Every form**, or pick **Only these forms** once a submission from them has arrived. Click **Add the trigger**.

Pick **Any source (every lead form and form tool)** instead to start the campaign from every form and every Facebook / Instagram lead ad at once.

## Good to know

* **No LinkedIn profile? They still come in.** People without a LinkedIn URL become contacts by their email. Email and other steps run; LinkedIn steps wait (shown in **Home > Tasks** with the reason *missing LinkedIn URL*) until someone adds their profile, then continue by themselves.
* **Never twice.** Webflow may send the same submission again (a retry, a test sent twice): Kerux recognizes it by its submission id and adds the person once. Someone who is already a contact is updated: empty fields are filled, their answers are saved as custom fields.
* **One URL per form.** Make as many URLs as you like (**Add another URL**), so each campaign can pick its own.
* **If the URL leaks**, click **Make a new URL** on its card: the old one stops working at once. Paste the new one in Webflow. **Turn off** stops the URL for good.
* **Limits.** Each URL takes up to 60 requests a minute; more get an answer to try again later. A body can be up to 256 KB.
* Only workspace owners and admins can make URLs and see them. Members see **Ask an admin** on the row.
* Answers are data, never instructions: whatever someone types in your form is stored as text, nothing else.

## With the API

The same URLs are in the public API: `GET /v1/integrations/form-relays`, `POST /v1/integrations/form-relays` (`{"tool": "webflow", "name": "Demo request"}`), `PATCH /v1/integrations/form-relays/{id}` (rename, or `mapping`), `POST /v1/integrations/form-relays/{id}/rotate`, `POST /v1/integrations/form-relays/{id}/test`, `DELETE /v1/integrations/form-relays/{id}`, and `POST /v1/workflows/{id}/lead-form-triggers` (`{"provider": "webflow", "page_id": "*"}`). See [the API](/help/developers/api.md).

## Sources

* Webflow: [Intro to Webflow's APIs: How to create a webhook](https://help.webflow.com/hc/en-us/articles/33961356296723), [Form submission event](https://developers.webflow.com/data/reference/webhooks/events/form-submission) and [Working with webhooks](https://developers.webflow.com/data/docs/working-with-webhooks).

> [!NOTE]
>
> Kerux reads Webflow's webhook as Webflow's documentation describes it. If a field arrives somewhere unexpected, change it under **Where each field goes**, or contact support from [Get help](/help/get-help.md).


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