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

# Webhooks

> Listening to call events

Webhooks allow your system to receive real-time updates about call lifecycles.

## Call Status Events

We send POST requests to your configured webhook URL for the following events:

| Status        | Description                                  |
| :------------ | :------------------------------------------- |
| `initiated`   | Outbound call has started dialing.           |
| `ringing`     | The recipient's phone is ringing.            |
| `in-progress` | The call was answered and the bot is active. |
| `completed`   | The call ended successfully.                 |
| `failed`      | The call failed (e.g., invalid number).      |
| `busy`        | The line was busy.                           |
| `no-answer`   | The recipient did not pick up.               |

## Webhook Payload

```json theme={null}
{
  "call_sid": "call_123456",
  "status": "completed",
  "duration": 45,
  "timestamp": "2024-01-01T12:00:45Z",
  "error_code": null,
  "error_message": null
}
```

## Configuring Webhooks

Currently, webhook URLs are configured at the Phone Number level (via Twilio configuration) or system-wide settings.

<Note>
  In the current version, we proxy Twilio's status callbacks. When bringing your own Twilio number, our system sets the `StatusCallback` URL to our platform, and we process the events.
</Note>
