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

# Zapier

> Start Kerux campaigns from any Zap with Webhooks by Zapier, and send Kerux events to Zapier.

> [!NOTE]
>
> **Pro plan.** Zapier works through trigger URLs, webhooks, HTTP steps and listeners (and API keys to read a contact), which are part of Pro and Agency (and the free trial). Anything you already have keeps working on every plan. See [Plans and billing](/help/account/billing.md).

Zapier connects to Kerux with **Webhooks by Zapier**: **POST** sends people to a campaign, **Catch Hook** receives Kerux events. There's no Kerux app in Zapier's directory yet.

> [!NOTE]
>
> **How it connects:** Kerux's trigger URLs and webhooks, with Zapier's [Webhooks by Zapier](https://help.zapier.com/hc/en-us/articles/8496288690317-Trigger-Zaps-from-webhooks).

## Before you start

* **Zapier plan:** Webhooks by Zapier is a premium app, available on Zapier's paid plans.

## 1. Send people from a Zap to a campaign

**1. Copy the trigger URL**

In Kerux, open the campaign, click **+ Add** on the **Trigger** half of the start box and choose **Incoming webhook (API)**. Click **Add**, then **Copy link**.

**2. Add Webhooks by Zapier > POST**

**URL:** the trigger URL. **Payload Type:** json.

**3. Fill in Data**

One row per field: `linkedin_url` (required), `first_name`, `last_name`, `email`, `company`, `title`. Extra fields go under `custom`: with Zapier's **Unflatten** option on (its default), a key with double underscores like `custom__source` is sent as `custom.source`.

What Kerux needs (JSON):

```json theme={null}
{
  "linkedin_url": "https://www.linkedin.com/in/maria-lopez",
  "first_name": "Maria",
  "email": "maria@acme.com",
  "company": "Acme"
}
```

Kerux answers `202` with `{ "data": { "enrolled": 1, "already_in": 0, "lead_ids": ["..."] } }`.

## 2. Receive Kerux events in a Zap

**1. Start a Zap with Webhooks by Zapier > Catch Hook**

Copy the webhook URL Zapier gives you.

**2. Add the endpoint in Kerux**

In **Integrations > Developers**, under **Webhooks**, paste it and pick the events (for example `reply.positive`). Click **Send test event**, then **Test trigger** in Zapier.

**3. Get the contact's details when you need them**

Events carry `data.lead_id`. Add **Webhooks by Zapier > GET** to `https://www.usekerux.com/api/v1/leads/` plus the id, with the header `Authorization: Bearer YOUR_KERUX_API_KEY` (scope `leads:read`).

Simpler when the Zap needs the contact's email: in the campaign, a **Webhook / HTTP** step POSTs the contact's fields straight to the Catch Hook URL (`{{email}}`, `{{contact.first_name}}`...), for example from the follow-up campaign the **When the contact replies** box sends contacts to.

## 3. Answer a waiting contact

A **Call & wait** step can send the Zap `"callback_url": "{{wait.callback_url}}"`. A **Webhooks by Zapier > POST** to that URL resumes exactly that contact, and its fields become `{{steps.<step>.payload.<field>}}`.

## Test with one contact

Run the Zap with **Test step** and check the person in the campaign. For events, **Send test event** in Kerux shows up in the Catch Hook's test.

## Common errors

> [accordion] 422 VALIDATION\_FAILED
>
> `linkedin_url` is missing. Zapier shows Kerux's answer in the step's test result.

> [accordion] Webhooks by Zapier isn't available
>
> It's a premium app: the Zap needs a paid Zapier plan. Make's HTTP and Webhooks apps or a self-hosted n8n do the same.

Related: [Trigger URLs and forms](/help/developers/trigger-urls-and-forms.md), [Webhooks](/help/developers/webhooks.md), [Make](/help/integration-guides/make.md), [n8n](/help/integration-guides/n8n.md).


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