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

# Webhooks

> Set up webhooks to receive real-time notifications about events in your Levers account

## Overview

Levers webhooks enable your application to receive real-time notifications when important events occur, such as AI phone calls completing. Webhooks are delivered as HTTP POST requests to your configured endpoint.

<CardGroup cols={2}>
  <Card title="How Webhooks Work" icon="globe">
    When an event occurs, Levers sends an HTTP POST payload to your webhook endpoint with event data and Svix signature headers.
  </Card>

  <Card title="When to Use" icon="bell">
    Webhooks are ideal for updating your database, triggering workflows, or sending notifications in response to events.
  </Card>
</CardGroup>

## Setup Guide

Follow this step-by-step guide to configure webhooks in the Levers Dashboard:

<iframe className="w-full aspect-video rounded-xl" src="https://embed.app.guidde.com/playbooks/cbgRgS8C7t6ahfXMs8tHU8?mode=videoOnly" title="Configure Webhook Settings in Levers Application" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

### Steps Covered in the Guide

1. **Create Webhook** - Add a name and description for your webhook
2. **Configure Endpoint** - Enter your webhook URL (e.g., from Beeceptor for testing)
3. **Select Events** - Choose which events trigger the webhook (e.g., `phone_call.ended`)
4. **Test Your Setup** - Trigger test events and verify the payload
5. **Inspect Headers** - Review the Svix signature headers for verification

## Security

Levers uses **Svix** to secure webhook deliveries. All webhook requests include:

* **Signature Headers**: cryptographic signatures to verify the request originated from Levers
* **Timestamp Headers**: to prevent replay attacks
* **Event IDempotency**: each event has a unique ID to prevent duplicate processing

<Notice>
  Never process webhook events without verifying the Svix signature headers. See [Verifying Webhooks](/webhooks/verification) for implementation details.
</Notice>

## The Webhook Flow

<Steps>
  <Step title="Configure Your Endpoint">
    Create a publicly accessible HTTPS endpoint that accepts POST requests. Your endpoint should:

    <ul>
      <li>Respond with <code>200 OK</code> within 30 seconds</li>
      <li>Verify the Svix signature before processing</li>
      <li>Handle duplicate events (idempotency)</li>
    </ul>
  </Step>

  <Step title="Register Your Webhook">
    Add your webhook URL in the Levers Dashboard under Settings > Webhooks. You can:

    <ul>
      <li>Select which events to subscribe to</li>
      <li>Add multiple endpoints for redundancy</li>
      <li>Set secret keys for each endpoint</li>
    </ul>
  </Step>

  <Step title="Receive Events">
    When a subscribed event occurs, Levers sends a POST request to your endpoint with:

    <ul>
      <li>JSON payload containing event data</li>
      <li>Svix signature headers for verification</li>
      <li>Event type and timestamp metadata</li>
    </ul>
  </Step>

  <Step title="Verify and Process">
    Always verify the Svix signature headers, then process the event data according to your business logic.
  </Step>
</Steps>

## Authentication

Webhook authentication uses the Svix signature verification method, which is different from the Bearer token authentication used for API calls.

For API authentication, see the [Introduction](/api-reference/introduction).

<CardGroup cols={2}>
  <Card title="Webhook Verification" icon="lock" href="/webhooks/verification">
    Learn how to verify webhook signatures using Svix.
  </Card>

  <Card title="Available Events" icon="list" href="/webhooks/events">
    See all available webhook events and their payloads.
  </Card>
</CardGroup>
