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

# Make

> Send contacts from Make scenarios to Kerux, receive Kerux events in Make, and answer a contact that's waiting.

> [!NOTE]
>
> **Pro plan.** Make 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).

Make connects to Kerux with its built-in **HTTP** and **Webhooks** apps:

* **HTTP > Make a request** sends people to a campaign's trigger URL.
* **Webhooks > Custom webhook** receives Kerux events.
* A **Call & wait** step in Kerux calls a scenario and waits for its answer.

> [!NOTE]
>
> **How it connects:** Kerux's trigger URLs, webhooks and callback URLs, with Make's [HTTP app](https://apps.make.com/http) and Webhooks app.

## 1. Send people from a scenario 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 HTTP > Make a request**

**URL:** the trigger URL. **Method:** POST. **Body type:** Raw, **Content type:** JSON (application/json).

**3. Write the body**

Map your trigger module's fields into Kerux's names. `linkedin_url` is required.

```json theme={null}
{
  "linkedin_url": "https://www.linkedin.com/in/daniel-kim",
  "first_name": "Daniel",
  "last_name": "Kim",
  "email": "daniel@northwind.com",
  "company": "Northwind",
  "custom": { "source": "Make", "form_answer": "Agency" }
}
```

Kerux answers `202` with `{ "data": { "enrolled": 1, "already_in": 0, "lead_ids": ["..."] } }`. A person already in the campaign is never added twice.

## 2. Receive Kerux events in a scenario

**1. Add Webhooks > Custom webhook**

Create a webhook and copy its address.

**2. Add the endpoint in Kerux**

In **Integrations > Developers**, under **Webhooks**, add the address and pick the events (for example `reply.positive`, `meeting.booked`). Click **Send test event** while Make is listening, so it learns the fields.

**3. Get the contact's details**

Events carry `data.lead_id`. Add **HTTP > Make a request**: `GET https://www.usekerux.com/api/v1/leads/` followed by the contact id, header `Authorization: Bearer YOUR_KERUX_API_KEY` (scope `leads:read`).

Event body (from Kerux's code): `id`, `type`, `created_at`, `workspace_id` and `data` (for a reply: `lead_id`, `type`, `confidence`, `text`, `received_at`; for a meeting: `meeting` with its time and link). Deliveries are signed with Standard Webhooks.

## 3. Let a scenario answer a waiting contact (Call & wait)

**1. In Kerux**

Add a **Call & wait** step that POSTs to your scenario's Custom webhook with `"callback_url": "{{wait.callback_url}}"` and the fields the scenario needs.

**2. In Make**

End the scenario with **HTTP > Make a request**: POST to the `callback_url` it received, JSON such as `{ "score": 87, "segment": "agency" }`.

**3. Use the answer**

Later steps read `{{steps.<step>.payload.score}}`. No answer before the time limit: the step goes out through **timed out**.

## Test with one contact

In the campaign's **Builder**, click **Test** to open **Test on one contact**, and run the scenario once with **Run once**. The contact's journey shows the call to Make and its answer.

## Common errors

> [accordion] 422 VALIDATION\_FAILED
>
> `linkedin_url` is missing or a field is too long. Make shows Kerux's answer in the module's output.

> [accordion] The scenario doesn't see Kerux's fields
>
> Click **Redetermine data structure** on the Custom webhook, then **Send test event** in Kerux.

> [accordion] 400 INVALID\_JSON
>
> The body isn't valid JSON, often a value with a quote or a line break mapped into it. Use Make's JSON module (**Create JSON**) to build the body.

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


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