company logo

Help center

Go to Smartlead.ai
API Documentation
All collectionsAPI, Integrations, and Webhooks How To Resolve Webhook Failures

How To Resolve Webhook Failures

This article helps you diagnose and resolve webhook delivery failures in Smartlead. It covers setup validation, delivery debugging, endpoint hardening, and common error patterns with fixes.⁠

Overview

Smartlead webhooks allow you to receive real-time notifications about key events happening within your Smartlead campaigns. These webhooks send JSON payloads via HTTPS POST requests to your configured webhook URL.

Events You Can Track:

  • Email Sent

  • First Email Sent

  • Email Open

  • Email Link Click

  • Email Reply

  • Lead Unsubscribed

  • Lead Category Updated

  • Email Bounce

  • Campaign Status Changed

  • Manual Step Reached

  • Untracked Replies

Each event includes a structured payload with relevant details, consistent with Smartlead’s webhook reference.

What is considered as a “failure”?

A webhook delivery is considered failed if:

  • Smartlead tries to send the webhook, but your server does not confirm success (anything other than a 2xx code).

  • The request takes too long and times out before your server responds.

  • Your server says it received the event (2xx), but then fails to process the data and drops it internally.

  • Your server blocks or limits requests (for example, too many at once).

Prerequisites

  • A configured webhook at the correct level: User, Client, or Campaign

  • A public HTTPS link (your webhook URL) that can receive data

  • Access to your server’s logs (and any security or CDN logs) to check what happened

  • If you use extra security checks (like secret keys or special headers), make sure you have the correct secret handy.

How does Smartlead webhooks work?

Smartlead fires event webhooks for:

Email Sent
First Email Sent
Email Open
Email Link Click
Email Reply
Lead Unsubscribed
Lead Category Updated
Email Bounce
Campaign Status Changed
Manual Step Reached
Untracked Replies

Notes:

  • Some events are state-change events that depend on “new vs old” fields in the event payload.

  • “Manual Step Reached” is emitted when a sequence hits a manual action step.⁠⁠​

  • Event categories and payload shapes are consistent with our Webhooks reference.⁠⁠​

Quick Start checklist

  • Pick the right level
    Webhooks set at the user level will take priority over campaign or client-level ones. If you’ve added a user-level webhook, only that will receive events.

  • Check your URL
    Make sure your webhook link is public (HTTPS), can receive POST requests with JSON, and replies with a quick success response (2xx). Do any heavy processing later in the background.

  • Select your events
    Turn on only the event types you actually want to receive.

Troubleshooting delivery failures

Symptoms and fixes

No deliveries showing up

  • Double-check that you subscribed to the right events and actually triggered one.

  • Make sure you don’t have a user-level webhook overriding the one you’re testing.

  • Verify the webhook URL is correct, uses HTTPS, and has no typos.

Errors from your server (4xx responses)

  • Always reply with a 200 OK if you received the webhook successfully.

  • Make sure your server accepts JSON and can handle it correctly.

  • If you use secrets or headers for security, confirm they match what’s configured.

Server errors or timeouts (5xx responses)

  • Send back a quick success response, then process the heavy work in the background.

  • Check your server logs and make sure the database or app isn’t slowing things down.

  • Keep your response time within the limits your provider expects.

Too many requests (429 responses)

  • Use a proper production webhook receiver instead of a limited test tool.

  • Add a queue or buffer for bursts, and avoid blocking Smartlead’s webhook traffic.

Event mismatch in testing

  • Make sure you’re testing with the correct type of event (e.g., lead created vs. email sent).

Observability and platform-side checks

Webhook logs

  • Check the logs for each attempt — they show the time of delivery, the HTTP status, and your server’s response.

  • If you see repeated 429 errors, it usually means your server or test tool is limiting requests.

Webhook manager

  • If you think the problem is on the Smartlead side, check the health of the webhook manager service that handles deliveries.

Error Webhook API

  • If you’ve set up the error webhook, platform or integration errors will be sent there with a status and ID so you can track them.

FAQ

Q: Why are my Client or Campaign webhooks not firing?

A: A User-level webhook overrides lower-level hooks. Remove or adjust the User-level hook if you want Client or Campaign hooks to receive events.⁠⁠⁠⁠​

Q: Is there a built-in test for Slack webhooks?

A: Not currently. Configure the Slack webhook and trigger a real event to validate end-to-end.⁠⁠​

Q: What happens if my server drops the webhook after returning 200 OK?

A: Smartlead considers it delivered, even if you fail to process it internally. Ensure you queue/process in background correctly.

Q: Can I see delivery attempts and errors?

A: Yes. Use Smartlead’s webhook logs and optionally configure an Error Webhook to receive structured error notifications.

Related articles

  • Set Up Smartlead Webhooks for Campaign Automation

  • Full API Documentation

  • Webhook not sending triggers

Did this answer your question?
😞
😐
😁