Skip to main content
This is a reference page, not an API endpoint. Use these event types when creating webhooks via the Create Webhook endpoint.

Available Events

EMAIL_SENT

Triggered when an email is successfully sent to a lead. When: Immediately after email delivery confirmation
Use For: Tracking send volume, updating CRM status, logging
Payload Example:

FIRST_EMAIL_SENT

Triggered only when the first email in a sequence is sent to a lead. Use this instead of EMAIL_SENT if you only want to track initial outreach. When: When sequence step 1 is sent
Use For: Tracking new outreach starts, CRM contact creation
Payload Example: Same structure as EMAIL_SENT, but only fires for sequence_number: 1.

EMAIL_OPEN

Triggered when a lead opens your email (tracking pixel loads). When: When recipient’s email client loads the tracking pixel
Use For: Lead scoring, engagement tracking, trigger follow-up actions
Payload Example:

Triggered when a lead clicks a tracked link in your email. When: Immediately when link is clicked
Use For: High intent signals, lead scoring, conversion tracking
Payload Example:

EMAIL_REPLY

Triggered when a lead replies to your email. When: When reply is received and processed
Use For: Hot lead alerts, CRM updates, sales notifications
Payload Example:

EMAIL_BOUNCE

Triggered when an email bounces (delivery fails). When: When email server returns bounce notification
Use For: List cleaning, deliverability monitoring, account health

LEAD_UNSUBSCRIBED

Triggered when a lead clicks the unsubscribe link. When: Immediately when unsubscribe link is clicked
Use For: Compliance, list management, CRM suppression
Payload Example:

LEAD_CATEGORY_UPDATED

Triggered when a lead’s category changes (manual or auto-categorization). When: When lead category is updated
Use For: CRM sync, sales routing, workflow automation
Payload Example:
The LEAD_CATEGORY_UPDATED event includes the full conversation history between the sending account and the lead, including all sent emails, replies, and threaded replies.

CAMPAIGN_STATUS_CHANGED

Triggered when a campaign’s status changes (e.g., started, paused, completed). When: When campaign status is updated
Use For: Workflow automation, status dashboards, notifications

UNTRACKED_REPLIES

Triggered when an untracked reply is received — a reply that doesn’t match a known lead in the campaign. When: When an untracked reply is detected
Use For: Catch-all inbox monitoring, forwarded replies

MANUAL_STEP_REACHED

Triggered when a lead reaches a manual step in the email sequence (e.g., a step that requires human action like a phone call or LinkedIn message). When: When the sequence advances a lead to a manual step
Use For: Task creation, sales team notifications, CRM task assignment

EMAIL_ACCOUNT_DISCONNECTED

Triggered when a sending email account is disconnected (SMTP/IMAP failure). When: When an email account connection fails
Use For: Account health monitoring, alerting
This event uses a separate per-user webhook configuration (notify_on_disconnect.webhookUrl in user settings), not the standard campaign webhook system.

LINKEDIN_DISCONNECTED

Triggered when a LinkedIn cookie becomes invalid. When: When LinkedIn cookie validation fails
Use For: Account health monitoring, alerting
This event uses a separate per-user webhook configuration, not the standard campaign webhook system.

Webhook Configuration

When creating a webhook, specify which events you want to receive using the event_type_map object:
Webhook Config Example
For LEAD_CATEGORY_UPDATED, you can also specify which categories to listen to via the category_id_map:
Category Filter Example

Handling Webhooks

Example Handler (Python/Flask)

Example Handler (JavaScript/Express)

Best Practices

Return 200 Quickly: Process webhooks asynchronously to avoid timeouts. SmartLead will retry if your server doesn’t respond with 200 in time.
Implement Idempotency: Use event fields like campaign_id + to_email + event_type + timestamp to handle duplicate deliveries.
Webhook Level Priority: If a User-level webhook exists, it will override Client and Campaign-level webhooks for the same event type.