Pro plan. Webhooks are part of Pro and Agency (and the free trial). On Starter, adding an endpoint shows Part of Pro with an Upgrade to Pro button. Endpoints you already have keep receiving events. See Plans and billing.
linkedin.invitation_accepted or a reply’s type, like reply.positive) to your URL as they happen. linkedin.invitation_received fires when someone sends one of your LinkedIn accounts an invitation (with their name, headline, profile link and note), once Kerux sees it (within about an hour in the daytime). email.opened and email.clicked fire when a contact opens a campaign email (once per email; a first click also counts as an open) or clicks a link in it (once per link), with the email’s subject and the link; opens and clicks flagged as automatic (mail apps, security scanners) are left out. See Email opens and clicks. sms.message_received fires when a contact texts back one of your Twilio numbers, with message.text and message.channel (sms). A reply on LinkedIn is linkedin.message_received; WhatsApp and email replies also arrive as linkedin.message_received for now, with message.channel set to whatsapp or email so you can tell them apart. linkedin.message_reacted fires when a contact reacts to one of your LinkedIn messages (with the emoji; a reaction is never a reply). linkedin.message_read fires when a contact sees one of your LinkedIn messages (only when they share read receipts on LinkedIn; see Seen, Delivered and Not seen yet). sender.status_changed fires when one of your LinkedIn accounts needs attention (locked, restricted, signed out, removed or not answering) or is back to normal, with what happened and what to do; see LinkedIn asked to verify your account. meeting.booked and meeting.cancelled fire when a contact books or cancels a meeting (with meeting.start, meeting.end in UTC, meeting.title, meeting.link and match: sure or confirmed); meeting.possible fires when a meeting might be a contact’s and waits for someone to confirm it. meeting.transcript_ready fires once per contact and call when a Google Meet or Zoom call’s transcript is saved and its AI summary is ready (or won’t be), with meeting, transcript (source, chars, truncated, speakers), summary (discussed, interest, key_points, objections, next_steps, follow_up_date) and summary_reason; see Call transcripts and summaries. call.recorded fires once per contact and call as soon as a call’s transcript is stored (Google Meet, Zoom, another tool, an upload or a pasted transcript), before the summary, with call (id, source, source_name, title, started_at, duration_minutes, transcript_url, recording_url, meeting_id, chars); see Automations driven by calls. See Meetings booked by contacts. lead.stage_changed fires when a contact moves to another pipeline stage or off the board (by hand, through the API, or by itself on a reply or a booked meeting), with the stage it came from, the one it went to and whether it moved by itself. linkedin.post_published and linkedin.post_failed fire when a LinkedIn post scheduled in Social posts goes out (with its link and when it was published) or can’t (with the reason); social.post_published and social.post_failed do the same for Facebook, Instagram and X posts, with platform. With Comment automation on a post, linkedin.post_comment_received fires for each new comment (its text and author), linkedin.comment_keyword_matched when a comment had a keyword (with the contact and whether they entered the campaign), and linkedin.comment_reply_sent / linkedin.comment_reply_failed when Kerux’s answer to a comment goes out or can’t (with the reason). inbox.reply_sent fires when a reply typed in the inbox (or sent through the API) goes out, on any channel, with detail.channel (linkedin, email, whatsapp or sms) and, for email, WhatsApp and SMS, detail.to, detail.from and the text. lead.engagement_hot fires when a contact’s engagement score reaches the workspace’s hot threshold (once, until it cools down), with the score, the threshold and the signal that made it hot. booking.created, booking.rescheduled and booking.cancelled fire when someone books, moves or cancels a time on one of your booking pages, with booking (its id, link_id, status, start, end in UTC, name, email, company, answers, lead_id, host_user_id, meeting_id and video_link); the meeting itself also fires meeting.booked / meeting.cancelled.
1
Add an endpoint
In Integrations > Developers, under Webhooks, add your HTTPS URL and choose which events it receives (for example
lead.*, or all of them).2
Verify the signature
Every delivery is signed with the Standard Webhooks format. Use the endpoint’s secret (starts with
whsec_) to check the webhook-signature header. The webhook-id header stays the same across retries, so you can skip duplicates.3
Send a test
Click Send test event to check your endpoint.
Every event
Pick events one by one, a whole group (for exampleenrollment.*) or all of them.