> For the complete documentation index, see [llms.txt](https://learn.doubletick.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.doubletick.io/bot-studio/triggers/how-to-configure-and-register-a-webhook.md).

# How to configure and register a webhook

A step-by-step setup guide for generating a webhook in Bot Studio, registering it through the DoubleTick API, and testing it with Postman.

Webhooks allow DoubleTick to send **real-time data** to your systems whenever an event happens, for example when a message is sent, delivered, read, or failed. Many businesses use webhooks to **automate workflows**, push updates to CRM systems, store event logs, trigger notifications, or hand off data to other tools. This guide is written for first-time DoubleTick users and walks through the complete process slowly and clearly, so you can follow along confidently. **No coding knowledge is required.**

#### What's covered

* [What you will need](#what-you-will-need)
* [How to configure and register a webhook](#how-to-configure-and-register-a-webhook-1)
* [What you can do next](#what-you-can-do-next)
* [Why webhooks are useful for businesses](#why-webhooks-are-useful-for-businesses)
* [Key takeaways](#key-takeaways)
* [Frequently asked questions](#frequently-asked-questions)

#### What you will need

Before you begin, make sure you have:

* **DoubleTick account** with **Bot Studio** access
* Valid **WABA (WhatsApp Business) number**
* Access to **Postman** (or any REST API testing tool)

#### How to configure and register a webhook

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2FgHQi8Kr2csBdf9ZLSsWM%2FUntitled%20design%20(8).gif?alt=media&#x26;token=83a73f4b-8ec3-425f-a6e6-7279c1875706" alt=""><figcaption></figcaption></figure>

**Generate webhook credentials in Bot Studio**:\
Open **Bot Studio** on DoubleTick and **drag** the block called **On Webhook Trigger** onto the workflow canvas. As soon as you add it, DoubleTick generates a **Webhook URL** and an **Authorization Key**. The Webhook URL tells DoubleTick where to send the data, and the Authorization Key makes sure only allowed systems can access the webhook. **Copy both** for the registration step.

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2F3O3UPLB9zlDZUOXllsnI%2FUntitled%20design%20(9).gif?alt=media&#x26;token=da745843-9791-49e5-a61f-fd903b10c3f6" alt=""><figcaption></figcaption></figure>

**Go to the webhook registration page**:\
Open the [webhook registration reference](https://docs.doubletick.io/reference/register-webhook) and **click** **Register a New Webhook**. Here, you are telling DoubleTick what webhook you want to use, for which WABA number, and what kind of events you want to receive.

**Paste the webhook URL**:\
In the request body, find the field named **URL** and **paste** the Webhook URL copied from Bot Studio. Normally the method here will be `POST`, so make sure it is set correctly.

**Add the authorization header (required)**:\
This step is important because DoubleTick will not send sensitive data to an unsecured system. Go to the **Headers** section, **click** **Add New Header**, and enter the key `Authorization` with the value set to the **Authorization Key** from Bot Studio. This allows secure transmission of webhook data and prevents unauthorized access.

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2FAGFFpQs7IdElKnKi9LRT%2FUntitled%20design%20(11).gif?alt=media&#x26;token=b41531c4-670e-407a-90a1-87b251a0056b" alt=""><figcaption></figcaption></figure>

**Choose the webhook event**:\
Under **Webhook Event**, **choose** the type of data you want to receive. For example, `message_status_update` sends events whenever message delivery status changes. Other events may include message received, message sent, template status update, message delivered, and message read. Choose the event that matches your use case.

**Enter the WABA number and name**:\
Enter your **WABA number** in international format, for example `+91XXXXXXXXXX`. Optionally, give the webhook a name such as `test_ctwa_new_6`. Naming webhooks helps if you manage multiple business numbers or workflows.

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2F7G3xbWvfENT1axqpiPk5%2FUntitled%20design%20(12).gif?alt=media&#x26;token=cbefb511-a553-4132-8a6f-8ff3df7b1c2b" alt=""><figcaption></figcaption></figure>

**Generate and copy the cURL command**:\
Once all details are filled, **click** **Generate cURL** and **copy** the cURL command that appears on screen. This command is what you will use to register the webhook via Postman.

**Import the cURL command into Postman**:\
Open the **Postman** application, **click** **Import**, **paste** the cURL command in the import box, and **click** **Continue**. Postman creates a new request based on the cURL and shows you the body, headers, and endpoint.

**Adjust authorization in Postman**:\
Postman often adds **Basic Authorization** automatically, but DoubleTick does not require this for webhook registration. Go to the **Authorization** tab and **remove** **Basic Auth**. Do not add anything else here, since the **Authorization Key** in headers is enough.

**Test the webhook registration**:\
**Click** **Send**. If everything is correct, you should receive `200 OK`, which means the webhook has been successfully registered.

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2Fhw7GzPAyojQXRo2LFTm1%2FUntitled%20design%20(13).gif?alt=media&#x26;token=46a1271c-95e5-4691-a157-27fd912db970" alt=""><figcaption></figcaption></figure>

**Verify the webhook in DoubleTick**:\
Go to DoubleTick, open **Settings → Webhooks**, and look for the webhook name you created, for example `test_ctwa_new_6`. If it appears, your setup is complete.

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2FzQYVe6ipP1UoTVWmh5RV%2FUntitled%20design%20(16).gif?alt=media&#x26;token=82a26579-9446-4c34-aa33-9c99add43ee9" alt=""><figcaption></figcaption></figure>

**Trigger the webhook (test event)**:\
Since this example used `message_status_update`, the webhook triggers when message delivery status changes. To test it, **open** any chat in DoubleTick, **send** a test message, and wait until the message receives status ticks such as **Sent**, **Delivered**, and **Read**. When the status updates, DoubleTick sends data to your webhook. In **Bot Studio**, **click** **Capture Response**, and you should see structured JSON data appear.

#### What you can do next

Once the webhook data is captured, you can **trigger automation**, **build conditions**, **push data to CRMs**, **log delivery events**, **notify internal systems**, and **connect with third-party tools**. This is where webhook-based automation becomes powerful.

#### Why webhooks are useful for businesses

Webhooks help automate workflows such as:

* **Updating lead stages**
* **Notifying sales teams**
* **Tracking message success**
* **Measuring campaign performance**
* **Storing delivery logs**
* **Triggering workflows** in Bot Studio

Without webhooks, these tasks must be done manually.

#### Key takeaways

* **Setting up a webhook** has two parts: **generating credentials** in Bot Studio and **registering the URL** through the DoubleTick API using Postman
* The **Authorization Key** must be added as a header, and Postman's default **Basic Auth** should be removed
* A successful registration returns `200 OK`, and the webhook then appears under **Settings → Webhooks** in DoubleTick
* **Testing with a real message** helps confirm the webhook is capturing structured JSON data correctly

#### Frequently asked questions

<details>

<summary>Do I need coding knowledge to set up a webhook?</summary>

No. This guide only needs Bot Studio, the DoubleTick API docs page, and Postman. No coding is required.

</details>

<details>

<summary>Why do I need to add the Authorization Key as a header?</summary>

DoubleTick will not send sensitive data to an unsecured system, so the Authorization Key confirms that only allowed systems can receive the webhook data.

</details>

<details>

<summary>What does a 200 OK response mean when testing the webhook?</summary>

It means the webhook has been registered successfully with DoubleTick.

</details>

<details>

<summary>Why does Postman add Basic Auth automatically, and should I keep it?</summary>

Postman sometimes adds Basic Authorization by default when importing a cURL command, but DoubleTick does not need it for webhook registration. You should remove it and rely only on the Authorization Key header.

</details>

<details>

<summary>How do I confirm my webhook is actually working after registration?</summary>

Send a test message in DoubleTick and watch for status ticks such as Sent, Delivered, and Read. If the webhook is working, DoubleTick sends data for each status change, which you can view using Capture Response in Bot Studio.

</details>

#### Related articles

{% content-ref url="/spaces/53n17VnOICC1LtDqlENV/pages/0aDCle4TiDKQfd5p2MJo" %}
[How to Use Webhooks to Pass Events to Third-Party](/settings/how-to-use-webhooks-to-pass-events-to-third-party.md)
{% endcontent-ref %}

{% content-ref url="/spaces/53n17VnOICC1LtDqlENV/pages/pzfwSyD9HYHWwTrfxkqr" %}
[How to use Message Status Update Webhook](/webhooks-and-public-api/webhooks/how-to-use-message-status-update-webhook.md)
{% endcontent-ref %}

{% content-ref url="/spaces/53n17VnOICC1LtDqlENV/pages/1iv6KwoYp8NomHfL2nVk" %}
[How to use Message Received Webhook](/webhooks-and-public-api/webhooks/how-to-use-message-received-webhook.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://learn.doubletick.io/bot-studio/triggers/how-to-configure-and-register-a-webhook.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
