> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: July 10, 2026

# Configure reusable webhooks

In Workspace Settings, create webhook configurations to reuse across campaigns and broadcasts and secure your credentials.

[![At the bottom of workspace settings is webhook configuration.](https://docs.customer.io/images/webhook-manager.png)](#a1188c4b7ced70263594ea87aec96c55-lightbox)

## Overview

In Workspace Settings, you can configure webhooks to reuse them across your campaigns and API-triggered broadcasts. Use them to reduce friction across your workflows:

*   **Less repetitive work & fewer errors.** Define your webhook URL, headers, and auth details once, and reference them in any campaign.
*   **Updates at scale.** When an API endpoint or auth header changes, update the configuration in one place and all referencing campaigns pick up the change automatically.
*   **Tighter security.** Team members can select pre-configured webhooks without ever seeing sensitive data like API keys, auth tokens, or headers.

Account admins and [Workspace managers](/accounts/settings/team/assign-standard-roles/) have full access to creating and choosing webhooks in your campaigns, while Authors can only select which webhooks to use.

Currently, people with custom roles cannot create or configure reusable webhooks.

## Create webhooks

1.  Go to [*Workspace Settings > Webhook configuration*](https://fly.customer.io/workspaces/last/settings/webhook_configuration).
2.  Click **Create webhook**.
3.  Add a **Name** for your webhook.
    
    [![A webhook for sending data to Salesforce](https://docs.customer.io/images/webhook-example.png)](#ae1b26503ba1df6db1c790d9c9c3e3d8-lightbox)
    
4.  (Optional) Add a **Description** to help you distinguish your webhooks.
5.  Specify the right **Method** and **Endpoint URL**.
6.  Add any other **Headers** you need.
7.  (Optional) Send a **Test Webhook** to ensure your webhook is functional.

Now you can add the webhook to your campaigns and API-triggered broadcasts, which is where you’ll specify the **Body** or store data on attributes for use later on.

For more information on setting up a webhook, check out our [webhook action](/messaging/send/workflows/webhooks/action/) article.

## Edit webhooks

To edit a webhook, click **Edit** from the Webhook configuration page. Make sure you test the webhook before you save; changes take effect immediately across your campaigns and broadcasts.

## Delete webhooks

To delete a webhook, click **Edit** and choose **Delete** from the webhook’s page. You can’t delete a webhook in use; you must remove it from all campaigns and broadcasts first.

## Use saved webhooks

You can use saved webhooks in campaigns or API-triggered broadcasts.

To assign a configured webhook to a campaign or broadcast, follow these steps:

1.  Drag a **Send and receive data** action into your workflow.
2.  Click the action and then choose **Edit Request**.
3.  Click the dropdown at the top and select a pre-configured webhook. You’ll see the name and description set in the configuration manager.

Then you can finish setting up the webhook:

*   [Add a request body](/messaging/send/workflows/webhooks/action/#structure-your-request-body).
*   [Set journey attributes](/messaging/send/workflows/webhooks/action/#set-journey-attributes) to temporarily store and use data in an active journey.
*   [Set customer attributes](/messaging/send/workflows/webhooks/action/#response) to use the data outside of the campaign.
*   Preview the webhook with sample customer data.
*   [Send a test](/messaging/send/workflows/webhooks/action/#testing-your-requests).

*   *   [Overview](#overview)
    *   [Create webhooks](#create-webhooks)
    *   [Edit webhooks](#edit-webhooks)
    *   [Delete webhooks](#delete-webhooks)
    *   [Use saved webhooks](#use-saved-webhooks)

Copy page

Copy page [Download .md](/messaging/send/workflows/webhooks/manager.md)

Is this page helpful?

![](https://docs.customer.io/images/export-success.png) ![](https://docs.customer.io/images/export-failure.png)

# How can we make it better?

Close

Do you need help from Customer.io support?  No  
 Yes

What part of Customer.io do you need help with? 

How can we improve this page?

Email (optional):  Please provide a valid email address

 I am not a bot

 

We appreciate your feedback!

Our support team will contact you as soon as possible
