> ## Documentation Index
> Fetch the complete documentation index at: https://drippi.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks Overview

> Real-time notifications for automation events in your Drippi account

## What are Webhooks?

Webhooks allow you to receive real-time HTTP notifications when specific events occur in your Drippi automations. Instead of polling our API repeatedly, webhooks push data to your application instantly when events happen.

## How Webhooks Work

When you create a webhook endpoint, Drippi will send HTTP POST requests to your specified URL whenever the subscribed events occur. Each webhook payload contains detailed information about the event, including:

* Event type and timestamp
* User and automation identifiers
* Lead information (when applicable)
* Message content (for message events)

## Webhook Events

Drippi supports the following webhook events:

| Event                     | Description                                                        |
| ------------------------- | ------------------------------------------------------------------ |
| `cold_dm.sent`            | Triggered when a cold DM is successfully sent to a lead            |
| `followup.sent`           | Triggered when a follow-up message is sent to a lead               |
| `reply.received`          | Triggered when a lead replies to your automation                   |
| `automation.paused`       | Triggered when an automation is automatically paused by the system |
| `automation.out_of_leads` | Triggered when an automation runs out of available leads           |

## Getting Started

### 1. Create a Webhook Endpoint

Use the [Drippi dashboard](https://app.drippi.ai/settings/webhooks) to create a webhook endpoint by providing:

* **URL**: Your endpoint that will receive webhook notifications
* **Events**: Array of event types you want to subscribe to

### 2. Verify Webhook Signatures

All webhook requests include a signature in the `X-Drippi-Signature` header that you should verify to ensure the request came from Drippi.

### 3. Handle Webhook Payloads

Your endpoint should:

* Respond with a 2xx status code to acknowledge receipt
* Process the webhook payload asynchronously if possible
* Implement idempotency to handle duplicate deliveries

## Webhook Delivery

### Retry Logic

Drippi implements an exponential backoff retry strategy:

* **Retries**: Up to 5 attempts
* **Initial Interval**: 1 second
* **Strategy**: Exponential backoff

### Timeouts

Webhook requests have a 30-second timeout. Your endpoint should respond quickly to avoid timeouts.

### Filtering

Webhooks are automatically filtered by:

* **User ID**: You only receive events for your account
* **Event Types**: Only subscribed event types are delivered
* **Status**: Only successful events trigger webhooks (errors are not sent)

## Best Practices

1. **Verify Signatures**: Always verify the `X-Drippi-Signature` header
2. **Respond Quickly**: Return a 2xx status code as soon as possible
3. **Handle Duplicates**: Implement idempotency using the event timestamp and IDs
4. **Process Asynchronously**: Queue webhook processing to avoid timeouts
5. **Monitor Failures**: Set up alerts for webhook delivery failures

## Security

* Webhook URLs should use HTTPS
* Verify webhook signatures to prevent spoofing
* Consider implementing IP allowlisting for additional security
* Store signing secrets securely

## Next Steps

* [Webhook Verification](/webhooks/verification) - Learn how to verify webhook signatures
* [Webhook Events](/webhooks/events) - Detailed documentation of all webhook events
