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

# Jotform

> Everyone who submits your Jotform 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).

Using Jotform for contact forms, quotes or registrations? Everyone who submits it can become a contact in Kerux and start the campaign you choose.

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

## Connect Jotform

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

Go to **Integrations > Connections**. In **Forms**, click **Connect** on the **Jotform** 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. Open the Webhooks integration**

In Jotform's **Form Builder**, click **Settings** in the orange bar at the top, then **Integrations** on the left. Search for **Webhooks** and click its icon.

**3. Paste your URL**

Paste your Kerux URL in the **Add Webhook** field, click **Complete Integration**, then **Finish**.

**4. Send a submission**

Submit your form once. In Kerux, the URL's card shows its fields.

Jotform sends its webhooks as multipart form data, with the answers inside a field called `rawRequest`. Kerux reads that format as it is: fields are named after your questions (without Jotform's `q3_` prefix), a full name question becomes first and last name, and a phone question its full number. Jotform waits only 5 seconds for an answer; Kerux answers right away.

Encrypted forms only send encrypted data, which Kerux can't read: turn encryption off for a form you connect.

## 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 Jotform 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 Jotform submission (taken from Jotform'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 **Jotform**. Under **Which URL**, pick one of your Jotform URLs or **Any Jotform 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.** Jotform 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 Jotform. **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": "jotform", "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": "jotform", "page_id": "*"}`). See [the API](/help/developers/api.md).

## Sources

* Jotform: [How to Send Submission Data via a Webhook](https://www.jotform.com/help/245-how-to-send-submission-data-via-a-webhook/) and [Webhook data is multipart form data](https://www.jotform.com/answers/17741001-webhook-integration-recieving-multipart-form-data-instead-of-json).

> [!NOTE]
>
> Kerux reads Jotform's webhook as Jotform'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.