Creates a webhook that receives real-time POST callbacks for selected events.
Documentation Index
Fetch the complete documentation index at: https://developer.lemlist.com/llms.txt
Use this file to discover all available pages before exploring further.
type field. Events are organized by category below.
| Event | Description |
|---|---|
contacted | Lead was contacted (email sent, LinkedIn message, API call, etc.) |
hooked | Lead opened a message (email, LinkedIn, WhatsApp) |
attracted | Lead clicked a link or accepted a LinkedIn invite |
warmed | Lead replied (email, LinkedIn, WhatsApp, SMS) |
interested | Lead marked as interested |
notInterested | Lead marked as not interested |
| Event | Description |
|---|---|
emailsSent | Email sent |
emailsOpened | Email opened |
emailsClicked | Link clicked in email |
emailsReplied | Email replied |
emailsBounced | Email bounced |
emailsFailed | Email failed to send |
emailsInterested | Lead marked as interested via email |
emailsNotInterested | Lead marked as not interested via email |
emailsUnsubscribed | Lead unsubscribed via email |
| Event | Description |
|---|---|
linkedinSent | LinkedIn message sent |
linkedinOpened | LinkedIn message opened |
linkedinReplied | LinkedIn message replied |
linkedinInterested | Lead marked as interested via LinkedIn |
linkedinNotInterested | Lead marked as not interested via LinkedIn |
linkedinSendFailed | LinkedIn message failed to send |
linkedinVisitDone | LinkedIn profile visit completed |
linkedinVisitFailed | LinkedIn profile visit failed |
linkedinFollowDone | LinkedIn follow completed |
linkedinFollowFailed | LinkedIn follow failed |
linkedinFollowSkipped | LinkedIn follow skipped |
linkedinInviteDone | LinkedIn invite sent |
linkedinInviteFailed | LinkedIn invite failed |
linkedinInviteAccepted | LinkedIn invite accepted |
linkedinEndorseDone | LinkedIn endorsement completed |
linkedinEndorseFailed | LinkedIn endorsement failed |
linkedinEndorseSkipped | LinkedIn endorsement skipped |
linkedinVoiceNoteDone | LinkedIn voice note sent |
linkedinVoiceNoteFailed | LinkedIn voice note failed |
linkedinLikeLastPostDone | LinkedIn like last post completed |
linkedinLikeLastPostNoPost | LinkedIn like last post — no post found |
linkedinLikeLastPostFailed | LinkedIn like last post failed |
linkedinWithdrawInvitationDone | LinkedIn invite withdrawn |
linkedinWithdrawInvitationFailed | LinkedIn invite withdrawal failed |
| Event | Description |
|---|---|
whatsappMessageSent | WhatsApp message sent |
whatsappMessageDelivered | WhatsApp message delivered |
whatsappMessageOpened | WhatsApp message opened |
whatsappReplied | WhatsApp message replied |
whatsappMessageFailed | WhatsApp message failed |
| Event | Description |
|---|---|
smsSent | SMS sent |
smsDelivered | SMS delivered |
smsReplied | SMS replied |
smsFailed | SMS failed |
| Event | Description |
|---|---|
aircallCreated | Call created |
aircallEnded | Call ended |
aircallDone | Call task completed |
aircallInterested | Lead marked as interested via call |
aircallNotInterested | Lead marked as not interested via call |
callRecordingDone | Call recording ready |
callTranscriptDone | Call transcript ready |
| Event | Description |
|---|---|
apiDone | API step executed |
apiInterested | Lead marked as interested via API |
apiNotInterested | Lead marked as not interested via API |
apiFailed | API step failed |
| Event | Description |
|---|---|
manualInterested | Lead marked as interested manually |
manualNotInterested | Lead marked as not interested manually |
| Event | Description |
|---|---|
annotated | Lead annotated |
| Event | Description |
|---|---|
paused | Lead paused |
resumed | Lead resumed |
stopped | Lead stopped |
campaignComplete | Campaign completed |
customDomainErrors | Custom domain error detected |
connectionIssue | Email account connection issue |
sendLimitReached | Daily send limit reached |
lemwarmPaused | Lemwarm paused |
| Event | Description |
|---|---|
enrichmentDone | Enrichment completed |
enrichmentError | Enrichment failed |
| Event | Description |
|---|---|
inboxLabelUpdated | Inbox conversation label changed |
| Event | Description |
|---|---|
signalRegistered | New signal detected on a watchlist |
| Event | Description |
|---|---|
deliverabilityAlertTriggered | Deliverability alert triggered |
| Removed event | Replacement |
|---|---|
skipped | No direct replacement |
emailsSendFailed | Use emailsFailed instead |
opportunitiesDone | Use annotated or task-level webhooks instead |
secret in the request body when creating the webhook. It works like a shared password between lemlist and your endpoint:
GET /hooks or any other endpoint.secret field in the JSON body of every webhook call, so you can verify the request originated from lemlist.zapId if you use Zapier to track the webhook mapping on your side.Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Webhook for specific campaign
Webhook for first activity only
Zapier ID
The URL that will receive webhook POST requests.
Optional event type to subscribe to. When omitted, all events are sent. See the full categorized list in the endpoint documentation.
contacted, hooked, attracted, warmed, interested, notInterested, emailsSent, emailsOpened, emailsClicked, emailsReplied, emailsBounced, emailsFailed, emailsInterested, emailsNotInterested, emailsUnsubscribed, linkedinSent, linkedinOpened, linkedinReplied, linkedinInterested, linkedinNotInterested, linkedinSendFailed, linkedinVisitDone, linkedinVisitFailed, linkedinFollowDone, linkedinFollowFailed, linkedinFollowSkipped, linkedinInviteDone, linkedinInviteFailed, linkedinInviteAccepted, linkedinEndorseDone, linkedinEndorseFailed, linkedinEndorseSkipped, linkedinVoiceNoteDone, linkedinVoiceNoteFailed, linkedinLikeLastPostDone, linkedinLikeLastPostNoPost, linkedinLikeLastPostFailed, linkedinWithdrawInvitationDone, linkedinWithdrawInvitationFailed, whatsappMessageSent, whatsappMessageDelivered, whatsappMessageOpened, whatsappReplied, whatsappMessageFailed, smsSent, smsDelivered, smsReplied, smsFailed, aircallCreated, aircallEnded, aircallDone, aircallInterested, aircallNotInterested, apiDone, apiInterested, apiNotInterested, apiFailed, manualInterested, manualNotInterested, paused, resumed, stopped, campaignComplete, customDomainErrors, connectionIssue, sendLimitReached, lemwarmPaused, annotated, enrichmentDone, enrichmentError, callRecordingDone, callTranscriptDone, inboxLabelUpdated, signalRegistered, deliverabilityAlertTriggered Optional shared secret. Stored encrypted, never returned by GET, and immutable once set. Sent back to your endpoint as a secret field in the body of every webhook call so you can verify the request originated from lemlist.