# Webhooks

> Send AI call results, booked meetings and opt-outs to your CRM, Zapier or any other system the moment they happen.

- Section: Using the app (manual) › AI agent
- Web page: https://docs.biglysales.com/manual/webhooks
- MCP (AI assistant) equivalent: [Webhooks](https://docs.biglysales.com/mcp/webhooks.md)
- Video: placeholder — "Sending AI call results to your CRM" (not yet recorded)

A **webhook** sends information from Bigly to another system as soon as something happens. For example, when the AI transfers a call, Bigly can post the call details and transcript to your CRM, so your team sees them there without copying anything by hand.

You can add as many webhooks as you need, each for one event.

## Before you start

- Get the **URL** your other system gave you for receiving webhooks (in Zapier, for example, the *Catch Hook* URL).
- Find out what authentication it expects: none, a username and password, a bearer token, or a custom header.

## Events you can send

| Type | Sent when |
|---|---|
| **Call transferred** | The AI transfers a call to your team. |
| **Call Completed** | An AI call ends. |
| **Meeting Booked** | A meeting is booked. |
| **Contact Opt Out** | A contact opts out. |
| **On Demand** | Your AI agent fires it during a live call, or another system triggers it. See [On Demand webhooks](#on-demand-webhooks). |

For **Call transferred** and **Call Completed**, you can limit the webhook to calls that used one intro.

## Add a webhook

1. Go to **AI › Webhooks**.
2. Click **Add New**. A form slides in from the right.
3. Enter a **Name** and the **URL**.
4. Choose the **Type** (the event).
5. For call events, optionally choose an **Intro**.
6. Set **Status** to **Active**.
7. Choose the **Auth Type** and fill in the fields it shows:
   - **None**: nothing else needed.
   - **Basic**: **Username** and **Password**.
   - **Bearer**: **Bearer Token**.
   - **Custom**: **Header Key** and **Header Value**.
8. Optionally, under **Custom Headers**, click **Add Header** for each extra header your system needs. They're sent on every call, alongside any authentication header.
9. Click **Save**.

> [Screenshot placeholder: Adding a webhook — AI › Webhooks with the Add new Webhook panel open on the right: Name, URL, Type set to Call Completed, Intro, Status Active, Auth Type Bearer with a token, and one custom header row.]

The webhook now appears in the table, with its **ID**, **Name**, **Status**, **Intro**, **Type**, **URL** and **Last Response**. Click an ID to copy it.

> [Screenshot placeholder: Webhooks table — The Webhooks table listing three webhooks with green Active and red Inactive badges, their types and URLs, and the Last Response column showing a truncated reply.]

## Send your own payload

By default Bigly sends a standard set of fields for the event, such as the call status, duration, transcript, summary, recording link and outcome. If your system needs a different layout:

1. Open the webhook and click **Use Custom Payload**.
2. Choose the **Method**: **Post** or **Get**.
3. Build the **Query** and **Body**. For each field, type a key name and either a fixed value or a variable, such as a contact field.
4. In **Required Fields Before Post**, list the keys that must have a value, separated by commas. If any is missing, Bigly doesn't call your system.
5. Click **Update**.

Click **Use Standard Payload** to go back to the default fields.

## Save values from the response onto the contact

If your system replies with useful data, such as its own record ID, you can store it on the contact.

1. Under **Response Mapping**, click **Add Mapping**.
2. Type the **Response path**, for example `data.crm_id`. For lists, include the position, for example `data.0.call.id`.
3. Choose the contact field to store it in.
4. Click **Update**.

## Edit, clone or delete a webhook

- Click a row to edit it. Click **Show** next to **Last Webhook Call Response** to see the full reply from your system.
- Click **Clone** to copy a webhook, for example to send the same event to a second system.
- Click **Delete** to remove it.
- To pause a webhook without deleting it, set **Status** to **Inactive**.

## On Demand webhooks

An **On Demand** webhook isn't tied to an event. Your AI agent can fire it in the middle of a call, for example to look something up or send a lead to a partner, and then use the reply in the conversation. Setting up the agent to do this is part of [Tools configuration](https://docs.biglysales.com/manual/tools-configuration.md), which the Bigly team handles. Give them the webhook's **ID**.

## Troubleshooting

**Nothing arrives at my system.** Check that the webhook is **Active**, the URL is correct, and, for call events, that the **Intro** filter isn't excluding the calls you expect. Then look at **Last Response** for the error your system returned.

**My system says it's unauthorized.** Check the **Auth Type** and credentials, and any header names your system requires.

## Related

- [Zapier](https://docs.biglysales.com/manual/zapier.md)
- [Integrations](https://docs.biglysales.com/manual/integrations.md)
- [Lead webhooks](https://docs.biglysales.com/manual/lead-webhooks.md) (sending leads *into* Bigly)
- [Tools configuration](https://docs.biglysales.com/manual/tools-configuration.md)
- [Webhooks through the MCP](https://docs.biglysales.com/mcp/webhooks.md)

---

All documentation pages: https://docs.biglysales.com/llms.txt
