Kerux
Start free trial
All articles

Outreach webhooks: call your CRM or any API mid-campaign and wait for the answer

Published November 2, 2026 · Updated November 10, 2026

Outreach webhooks are the requests your outreach tool and your other apps send each other: your tool posts a lead's data to an app's URL when something happens (an invitation accepted, a reply), and an app posts data back to your tool's URL to add a lead or answer for one. The useful ones work in the middle of a campaign: call an app, wait for its answer, and use it in the next LinkedIn, email or WhatsApp message.

Most LinkedIn automation tools treat webhooks as a door at the edge of the campaign: a trigger that adds leads at the start, or a notification when something happens at the end. Everything in between is a closed box.

Real outreach doesn't work like that. You want to enrich a lead after they accept your invitation, generate a personalized video before the second message, or check your CRM before you follow up. That means calling another tool in the middle of the sequence, waiting for its answer, and using it in the next step.

This guide shows how that pattern works and what to watch out for.

The pattern: call, listen, continue

Every useful integration mid-sequence follows the same three moves:

  1. Call. Send the lead's data to another app: your CRM, an enrichment tool, Zapier, Make, n8n or your own API.
  2. Listen. Wait until that app answers for this lead. Some answer right away, some take minutes, some hours.
  3. Continue. Use what came back (a video link, a company size, a lead score) in the next message or to choose a branch.

The hard part is not the call. It is the waiting: hundreds of leads, each waiting for its own answer, each matched to the right person.

Four kinds of integration steps

In Kerux these are regular steps you can drop anywhere in a campaign:

Step Use it to
Webhook / HTTP Send the lead's data to another app's API.
Wait for webhook Wait until another app sends data for this lead. It ends as received, timed out or invalid data.
Call & wait Call an app that answers later, such as an enrichment, and wait for its answer in one step.
Poll until Ask an app again every few minutes until the answer is ready.

Matching the answer to the right lead

When the other app answers, how do you know which lead it belongs to? There are two clean ways:

  • One link per lead. Each lead gets its own callback URL. The answer can only belong to that lead.
  • One shared link plus a field. All leads use the same URL, and the answer is matched by a field you choose, such as the email.

The second way has a trap: what if the email matches two leads, or none? A safe tool never guesses. In Kerux, an answer that matches nobody or more than one lead resumes nobody; it goes to Tasks so you can assign it yourself. Sending the wrong video to the wrong person is worse than sending none.

Example: a personalized video in the second message

A common flow with a video tool like Sendspark:

  1. Send the invitation.
  2. When it is accepted, call Sendspark to create a personalized video for this lead.
  3. Check every 2 minutes, for up to 2 hours, until the video link is ready.
  4. Send the message: "Hi {{lead.first_name}}, I made you a video: {{video link}}".
  5. If the video is not ready in time, the lead takes a different path instead of getting a broken message.

The same shape works for enrichment ("wait for the company size, then pick the right message"), lead scoring, or a manager approving a lead before the follow-up.

Never send a message with a hole in it

The danger of using data from other tools is the empty variable. If the enrichment never came back, "Hi {{first_name}}, loved what {{company}} is doing" goes out as "loved what is doing".

Two rules prevent that:

  • Defaults for common fields. An empty first name can safely become "there".
  • Wait instead of sending. For fields with no safe default, such as data from another step, the lead waits on the step with a clear reason until the data arrives or someone fills it in.

In Kerux a message never goes out with an empty variable that has no default, and the launch check warns you before you start.

When something fails

Other apps go down, keys expire, a campaign gets deleted. What matters is what happens to the lead:

  • The lead should stop with the service's error message, not show as "finished".
  • You should be able to fix the cause and retry, without the lead repeating a LinkedIn action it already did.

Beyond the sequence: rules

Some reactions shouldn't live inside the sequence at all. "When an invitation is accepted, tag the lead and tell the CRM" can run beside every campaign as a rule, wherever the lead is, without holding anything up.

Try it

Kerux lets you put calls, waits and answers anywhere in a LinkedIn campaign, with safe matching and no empty messages. Webhook and API steps are part of the Pro and Agency plans; the 10-day free trial includes them. Read the setup steps in the help center: Webhook steps: call, listen, continue. For a full example with a CRM, see how to add LinkedIn outreach to GoHighLevel.

Frequently asked questions

What are outreach webhooks?

Requests between your outreach tool and your other apps. Outgoing webhooks send an event (an invitation accepted, a reply, a meeting booked) with the lead's data to your URL; incoming webhooks let another app add a lead or send the data a waiting lead needs.

Which events can Kerux send to a webhook?

Contacts, contacts in campaigns, campaigns, LinkedIn actions (such as invitation sent or accepted), messages received on LinkedIn, email or WhatsApp, reply types such as reply.positive, email opens and clicks, meetings and bookings, posts and comments, and LinkedIn account status. You pick events one by one, by group or all of them.

What is the difference between a webhook and a webhook step?

A webhook endpoint receives events from the whole workspace as they happen. A Webhook / HTTP step is part of a campaign: it calls an app for one lead at that point, and a Wait for webhook step holds the lead until the app answers.

Are Kerux webhooks signed and retried?

Yes. Every delivery is signed in the Standard Webhooks format. A delivery that doesn't get a 2xx answer is retried 7 times over about two days, and any delivery can be sent again from the log.

Which Kerux plan includes webhooks?

Pro and Agency, and the free trial. Webhooks, HTTP steps and listeners you already set up keep running on every plan.