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

# Webhook steps: call, listen, continue

> Send data to other apps and wait for their answer, anywhere in a campaign.

> [!NOTE]
>
> **Pro plan.** HTTP steps and listeners (call, wait, continue) are part of Pro and Agency (and the free trial). On Starter, a campaign that already has one keeps running it and you can still edit its other steps; adding or changing an HTTP step shows **This is part of Pro** with an **Upgrade to Pro** button. See [Plans and billing](/help/account/billing.md).

Integration steps can go anywhere in a campaign, not only at the start. A contact can call a service, wait for its own answer, and continue using that data in the next steps.

## The four steps

| Step | Use it to |
| - | - |
| **Webhook / HTTP** | Send the contact's data to another app's API (CRM, Slack, Zapier, Make, n8n...). |
| **Wait for webhook** | Wait until another app sends data for this contact. Results: **received**, **timed out** or **invalid data**. |
| **Call & wait** | Call an app that answers later (for example Clay enrichment) and wait for its answer, in one step. |
| **Poll until** | Ask an app again every few minutes until the answer is ready. The contact's journey shows the last check, the next one and how many checks are left. |

## Set up Wait for webhook

**1. Add the step**

Click **+** where the contact should wait, open the **Automations** tab of **Add a step** and choose **Wait for webhook**.

**2. Tell the other app where to send**

Each contact can get its own link (`{{listeners.<step>.callback_url}}`), or all contacts share one link and Kerux finds the contact with a field you choose (for example the email).

**3. Listen for a test**

Click **Listen for test event** and send one from the other app. Kerux shows the data it received: click a field to use it in later steps. See how to write an app's answer as a variable in the [Variables reference](/help/campaigns/variables-reference.md).

> [!NOTE]
>
> If the data arrives and Kerux can't tell which contact it belongs to (or it matches more than one), nobody continues by mistake: it goes to **Home > Tasks** so you can assign it.

## Common problems

> [accordion] The contact says it's waiting for the integration
>
> The other app hasn't answered yet. The contact continues through **timed out** when the time limit passes.

> [accordion] The call failed
>
> The contact stops with the service's error message, visible in **Home > Tasks** with **Retry**. It never shows as finished when something failed.


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