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

# Sending workspace events with webhooks

> Send a signed request to your own systems when something happens in your workspace. Create, activate, pause and manage outgoing webhooks in workspace settings.

Outgoing webhooks tell your own systems when something changes in your workspace. When something happens in your workspace, such as an app being published or the AI chat finishing a reply, Base44 sends a signed request to the URL you choose, so your systems stay up to date without checking for changes.

> [!WARNING]
>
> You need an Enterprise plan (Business or Enterprise) to use outgoing webhooks, and only workspace owners and admins can manage them. Your developers need a receiver at the URL first. To learn how to build one, see the [outbound webhooks overview](https://docs.base44.com/developers/references/outbound-webhooks/get-started/overview.md).

![The Outgoing tab listing 4 webhooks: 2 active, 1 paused and 1 pending](https://mintcdn.com/base44/UhEyXj-zHgrdWw5u/images/outgoing-webhooks-list.png?fit=max\&auto=format\&n=UhEyXj-zHgrdWw5u\&q=85\&s=9db3c1b0c640a60be866ef912e96fca4)

Outgoing webhooks on the Webhooks page

***

## Creating a webhook

Create a webhook for each URL that should receive events. You can create up to 10 per workspace. A new webhook is **Pending** and receives nothing until you activate it. After you create it, Base44 shows your workspace's public signing key, which your receiver uses to confirm each request came from Base44. The key is safe to share with your developers.

**To create a webhook:**

1. Click your workspace name at the bottom left and click **Settings**.
2. Click **Webhooks** in the sidebar, then click the **Outgoing** tab.
3. Click **Create webhook**.
4. Enter the **Endpoint URL**. It must start with `https://`.
5. Under **Events to send**, select the events this URL should receive. There are 2 kinds:
   * **App events:** An app in your workspace is created, published, taken offline, moved to trash, or restored from trash.
   * **AI chat events:** The AI chat in the app editor starts working on a message (**Chat turn started**) or finishes it (**Chat turn ended**).
6. (Optional) Enter a **Description** so your team knows what the webhook is for.
7. Click **Create webhook**.

![The Create webhook form with an endpoint URL, 3 selected events and a description](https://mintcdn.com/base44/Cv0IQGEx6eX2LIU1/images/create-outgoing-webhook.png?fit=max\&auto=format\&n=Cv0IQGEx6eX2LIU1\&q=85\&s=d67e53d0c07a4791f5aab4869bbad414)

Creating a webhook

***

## Activating a webhook

Activating sends a test event to your URL. The webhook becomes **Active** when your receiver answers and returns the code in the test event. If activation doesn't complete, Base44 says why, for example that your endpoint didn't answer in time or didn't return the code. Fix the receiver and activate again.

**To activate a webhook:**

1. Click your workspace name at the bottom left and click **Settings**.
2. Click **Webhooks** in the sidebar, then click the **Outgoing** tab.
3. Click the **More actions** icon  next to the webhook and select **Activate**.

![A pending outgoing webhook with its More actions menu open and Activate outlined](https://mintcdn.com/base44/61xNA58oJUO_TLT3/images/outgoing-webhook-activate-menu.png?fit=max\&auto=format\&n=61xNA58oJUO_TLT3\&q=85\&s=bd0fe1030aa91e8178100c9dc8474dc7)

Activating a pending webhook

***

## Managing webhooks

Pause a webhook while your receiver is being updated, change what it receives, or remove it. A webhook that fails for several days in a row is **Auto-paused** by Base44. When your receiver works again, resume it, and Base44 runs the activation test again before it starts sending.

**To manage a webhook:**

1. Click your workspace name at the bottom left and click **Settings**.
2. Click **Webhooks** in the sidebar, then click the **Outgoing** tab.
3. Click the **More actions** icon  next to the webhook and select an option:
   * **Send test event:** Sends a test event to check your receiver.
   * **Edit endpoint:** Changes the URL, the events or the description. Changing the URL stops deliveries until you activate the new URL.
   * **Pause deliveries** or **Resume deliveries:** Stops or restarts sending. Events that happen while a webhook is paused aren't sent later.
   * **Delete endpoint:** Stops sending to the URL immediately.

> [!NOTE]
>
> Subscriptions to the old `builder.turn_started.v1` and `builder.turn_ended.v1` events no longer receive events. Select **Chat turn started** and **Chat turn ended** instead.

![The More actions menu open on an active webhook, with Send test event, Edit endpoint, Pause deliveries and Delete endpoint](https://mintcdn.com/base44/UhEyXj-zHgrdWw5u/images/outgoing-webhook-actions-menu.png?fit=max\&auto=format\&n=UhEyXj-zHgrdWw5u\&q=85\&s=93c4093385d7bf5870fa2618d5ea03fe)

Managing a webhook

***

## Managing the signing key

Every request is signed with your workspace's key. Rotating replaces it with a new one: Base44 signs with both the old and the new key for 24 hours, so your receiver keeps working while your developers add the new key. When they're done, click **Finish rotation** to stop using the old key sooner.

> [!WARNING]
>
> **Revoke** stops Base44 signing with a key immediately. Receivers that only have that key reject every delivery until they get the new one. For a routine change, rotate the key instead.

**To rotate the signing key:**

1. Click your workspace name at the bottom left and click **Settings**.
2. Click **Webhooks** in the sidebar, then click the **Outgoing** tab.
3. Click **See public keys**.
4. Click **Rotate key**, then click **Rotate key** to confirm.

![The Public signing keys dialog during a rotation, with the current key, the old key's stop date and Finish rotation](https://mintcdn.com/base44/UhEyXj-zHgrdWw5u/images/outgoing-webhook-signing-keys.png?fit=max\&auto=format\&n=UhEyXj-zHgrdWw5u\&q=85\&s=8ede530dbaeb433e3fc2c19c1707030e)

The signing keys during a rotation

***

## FAQs

Click a question below to learn more about outgoing webhooks.

> **Can a webhook send events for just one app?**
>
> No. A webhook receives the events you choose for every app in your workspace. Each event includes the app it's about, so your receiver can ignore the apps it doesn't need.

> **What happens if my server is down?**
>
> Base44 keeps retrying each event for about a day, waiting longer between each try. If your webhook keeps failing for several days, Base44 auto-pauses it. When your server works again, resume the webhook from its **More actions** menu.

> **Do webhooks use credits?**
>
> No. Sending events to your webhooks doesn't use any credits.

> **How do my developers build a receiver?**
>
> Share the [outgoing webhooks developer guide](https://docs.base44.com/developers/references/outbound-webhooks/get-started/overview.md) with them. It covers the [event types](https://docs.base44.com/developers/references/outbound-webhooks/get-started/event-types.md), [verifying requests](https://docs.base44.com/developers/references/outbound-webhooks/get-started/verifying-requests.md) and [delivery and retries](https://docs.base44.com/developers/references/outbound-webhooks/get-started/delivery-and-retries.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.