# How to use Message Received Webhook

A customer sends your business a WhatsApp message. It could be a text inquiry, a photo of a damaged product, a voice note explaining a complaint, or a video showing a technical issue. The message arrives in DoubleTick. Your agent eventually sees it and responds.

But in between the message arriving and your agent responding, nothing happened automatically. Your CRM was not updated. No ticket was created. No one was notified. The message just waited.

Now imagine a different scenario: The moment any customer message arrives — regardless of whether it is a text, an image, an audio note, or a video — your CRM is updated, a support ticket is created, the assigned agent is notified, and the message content or media file is linked directly to the customer's record. All of this happens before any agent has even seen the message.

That is what the **Message Received Webhook** makes possible.

***

#### <mark style="color:$primary;">**What Is the Message Received Webhook?**</mark>

Every time a customer sends a message to your WhatsApp Business number on DoubleTick, that is an incoming message event. The **Message Received** webhook fires the moment any such message arrives — capturing its full details and sending them to your connected system instantly.

This webhook handles all message types. Whether the customer sends a plain text message, an image, an audio recording, or a video, the webhook fires and delivers the relevant data — including a direct URL to the media file where applicable.

Think of it like a reception desk that never closes. Every message that arrives — at any hour, in any format — is immediately logged, catalogued, and forwarded to the right place in your system, without anyone having to manually check the inbox first.

***

#### <mark style="color:$primary;">**When Does This Webhook Trigger?**</mark>

This webhook activates every time a customer sends a message to your WhatsApp Business number on DoubleTick, including:

* A plain **text** message
* An **image**
* An **audio** recording or voice note
* A **video**

Each message type triggers the webhook independently, with the relevant data and media URL included in the payload.

***

#### <mark style="color:$primary;">**Step-by-Step Setup Guide**</mark>

<figure><img src="https://2303112206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F53n17VnOICC1LtDqlENV%2Fuploads%2F542RW7pHeUDJIC1yoos5%2FUntitled%20design%20-%202026-04-01T163234.055.gif?alt=media&#x26;token=15e76d47-3b0d-4823-a94e-0de3a90c797c" alt=""><figcaption></figcaption></figure>

#### <mark style="color:$primary;">**Step 1: Open Webhooks in DoubleTick**</mark>

1. Log in to your DoubleTick account
2. Go to **Settings**
3. Click on **Webhooks**

#### <mark style="color:$primary;">**Step 2: Create a New Webhook**</mark>

1. Click **New Webhook**
2. Give it a clear name — for example: `Incoming Message Tracker`

#### <mark style="color:$primary;">**Step 3: Get Your Webhook URL**</mark>

You need a destination URL — this is where DoubleTick will send the incoming message data the moment it arrives.

You can connect it to:

* A **CRM** like Zoho, HubSpot, or Salesforce
* An **automation tool** like Zapier or Pabbly
* A **helpdesk tool** like Freshdesk or Zendesk
* Your own **backend or internal system**

**For testing purposes**, you can use DoubleTick's **Bot Studio** to capture and preview the data first:

1. Open a new tab and go to **Bot Studio**
2. Click **Create New Bot**
3. Set the trigger to **On Webhook**
4. **Copy the webhook URL** that appears

#### <mark style="color:$primary;">**Step 4: Fill in Webhook Details**</mark>

1. Go back to the **Webhooks** page
2. Paste the webhook URL
3. Select your **API Number** (your WABA/WhatsApp Business number)
4. Click **Continue**

#### <mark style="color:$primary;">**Step 5: Choose the Event**</mark>

1. Select **Message Received** from the event list
2. Click **Create Webhook**

Your webhook is now live and capturing every incoming message the moment it arrives.

***

#### <mark style="color:$primary;">**How to Test It**</mark>

1. Send a message of any type — text, image, audio, or video — to your WhatsApp Business number from a test customer number
2. Go to **Bot Studio → Capture Response → View Response Data**

You will see all the data captured at the exact moment that message was received.

***

#### <mark style="color:$primary;">**What Data Do You Receive?**</mark>

The data captured by this webhook varies slightly depending on the type of message received. Here is a breakdown for each message type.

**When a Customer Sends a Text Message:**

| Field               | What It Tells You                                          |
| ------------------- | ---------------------------------------------------------- |
| To                  | Your WhatsApp Business number that received the message    |
| From                | The customer's phone number                                |
| Contact Name        | The customer's name as saved in DoubleTick                 |
| Message Text        | The full text content of the message                       |
| Message Type        | "TEXT" — confirms this is a text message                   |
| Message ID          | The unique WhatsApp ID for this message                    |
| Received At         | The exact date and time the message was received           |
| DT Message ID       | DoubleTick's internal unique ID for this message           |
| DT Last Message ID  | The ID of the previous message in this conversation        |
| Integration Type    | "WHATSAPP" — confirms the channel                          |
| Last Message Origin | "CUSTOMER" — confirms the message was sent by the customer |

**When a Customer Sends an Image:**

| Field               | What It Tells You                                          |
| ------------------- | ---------------------------------------------------------- |
| To                  | Your WhatsApp Business number that received the message    |
| From                | The customer's phone number                                |
| Contact Name        | The customer's name as saved in DoubleTick                 |
| Message URL         | A direct link to the image file                            |
| Message Type        | "IMAGE" — confirms this is an image                        |
| Message ID          | The unique WhatsApp ID for this message                    |
| Received At         | The exact date and time the message was received           |
| DT Message ID       | DoubleTick's internal unique ID for this message           |
| DT Last Message ID  | The ID of the previous message in this conversation        |
| Integration Type    | "WHATSAPP" — confirms the channel                          |
| Last Message Origin | "CUSTOMER" — confirms the message was sent by the customer |

**When a Customer Sends an Audio Recording:**

| Field               | What It Tells You                                          |
| ------------------- | ---------------------------------------------------------- |
| To                  | Your WhatsApp Business number that received the message    |
| From                | The customer's phone number                                |
| Contact Name        | The customer's name as saved in DoubleTick                 |
| Message URL         | A direct link to the audio file                            |
| Message Type        | "AUDIO" — confirms this is an audio message                |
| Message ID          | The unique WhatsApp ID for this message                    |
| Received At         | The exact date and time the message was received           |
| DT Message ID       | DoubleTick's internal unique ID for this message           |
| DT Last Message ID  | The ID of the previous message in this conversation        |
| Integration Type    | "WHATSAPP" — confirms the channel                          |
| Last Message Origin | "CUSTOMER" — confirms the message was sent by the customer |

**When a Customer Sends a Video:**

| Field               | What It Tells You                                          |
| ------------------- | ---------------------------------------------------------- |
| To                  | Your WhatsApp Business number that received the message    |
| From                | The customer's phone number                                |
| Contact Name        | The customer's name as saved in DoubleTick                 |
| Message URL         | A direct link to the video file                            |
| Message Type        | "VIDEO" — confirms this is a video message                 |
| Message ID          | The unique WhatsApp ID for this message                    |
| Received At         | The exact date and time the message was received           |
| DT Message ID       | DoubleTick's internal unique ID for this message           |
| DT Last Message ID  | The ID of the previous message in this conversation        |
| Integration Type    | "WHATSAPP" — confirms the channel                          |
| Last Message Origin | "CUSTOMER" — confirms the message was sent by the customer |

For image, audio, and video messages, the **Message URL** field provides a direct, accessible link to the media file stored in DoubleTick — meaning your connected system can retrieve, display, or archive the actual media content automatically, without anyone having to manually download and re-upload it.

***

#### <mark style="color:$primary;">**Sample Payload -When a Customer Sends a Text Message**</mark>

{% code expandable="true" %}

```
{
  "to": "919845672310",
  "from": "919876123456",
  "contact": {
    "name": "Rahul Mehta"
  },
  "message": {
    "text": "Hello, I need more details about your service",
    "type": "TEXT",
    "context": {}
  },
  "messageId": "wamid.HBgMOTE5ODc2MTIzNDU2FQIAEhgWM0VCMDJCQjQwNTUwQkYxRkI1QUMwMwA=",
  "receivedAt": "2026-04-01T15:02:44.336Z",
  "dtMessageId": "a1b2c3d4-830b-4af1-a42e-9fa47f812d56",
  "callbackData": null,
  "isAgentOffline": false,
  "dtLastMessageId": "b2c3d4e5-a28e-4c3e-8604-a76334fc9847",
  "integrationType": "WHATSAPP",
  "lastMessageOrigin": "CUSTOMER"
}
```

{% endcode %}

#### <mark style="color:$primary;">**Sample Payload -When a Customer Sends an Image**</mark>

{% code expandable="true" %}

```
{
  "to": "919845672310",
  "from": "919876123456",
  "contact": {
    "name": "Rahul Mehta"
  },
  "message": {
    "url": "https://data-storage.doubletick.io/sample-org/chat-messages/sample-id/images/image123.jpg",
    "type": "IMAGE",
    "context": {}
  },
  "messageId": "wamid.HBgMOTE5ODc2MTIzNDU2FQIAEhgWM0VCMDI1QjAxQjY1RDUwMDIwREFCQgA=",
  "receivedAt": "2026-04-01T15:05:56.982Z",
  "dtMessageId": "c3d4e5f6-6e8c-4ae7-8e6e-81f2793ea0a1",
  "callbackData": null,
  "isAgentOffline": false,
  "dtLastMessageId": "d4e5f6g7-8bb9-442f-bfa4-4957afc1e67b",
  "integrationType": "WHATSAPP",
  "lastMessageOrigin": "CUSTOMER"
}
```

{% endcode %}

#### <mark style="color:$primary;">**Sample Payload -When a Customer Sends an Audio Recording**</mark>

{% code expandable="true" %}

```
{
  "to": "919845672310",
  "from": "919876123456",
  "contact": {
    "name": "Rahul Mehta"
  },
  "message": {
    "url": "https://data-storage.doubletick.io/sample-org/chat-messages/sample-id/audio/audio123.ogg",
    "type": "AUDIO",
    "context": {}
  },
  "messageId": "wamid.HBgMOTE5ODc2MTIzNDU2FQIAEhgWM0VCMDUwMUZEOEM5NjJERjM5RkU0RgA=",
  "receivedAt": "2026-04-01T15:06:44.006Z",
  "dtMessageId": "e5f6g7h8-a68b-45e3-bb02-efc5f60ca37c",
  "callbackData": null,
  "isAgentOffline": false,
  "dtLastMessageId": "f6g7h8i9-6e8c-4ae7-8e6e-81f2793ea0a1",
  "integrationType": "WHATSAPP",
  "lastMessageOrigin": "CUSTOMER"
}
```

{% endcode %}

#### <mark style="color:$primary;">**Sample Payload - When a Customer Sends a Video**</mark>

{% code expandable="true" %}

```
{
  "to": "919845672310",
  "from": "919876123456",
  "contact": {
    "name": "Rahul Mehta"
  },
  "message": {
    "url": "https://data-storage.doubletick.io/sample-org/chat-messages/sample-id/videos/video123.mp4",
    "type": "VIDEO",
    "context": {}
  },
  "messageId": "wamid.HBgMOTE5ODc2MTIzNDU2FQIAEhgWM0VCMEYwOTIyNjI4NjZDNEExNTNEOAA=",
  "receivedAt": "2026-04-01T15:11:59.399Z",
  "dtMessageId": "g7h8i9j0-fd6e-4edd-8d3c-245e8594d802",
  "callbackData": null,
  "isAgentOffline": false,
  "dtLastMessageId": "h8i9j0k1-a68b-45e3-bb02-efc5f60ca37c",
  "integrationType": "WHATSAPP",
  "lastMessageOrigin": "CUSTOMER"
}
```

{% endcode %}

***

#### <mark style="color:$primary;">**Real-Life Business Use Case: A Home Appliance Service Company Automatically Creating Support Tickets With Media Evidence the Moment a Customer Reaches Out**</mark>

**The Situation**

A home appliance service company handles warranty claims and repair requests for refrigerators, washing machines, air conditioners, and other household appliances. Customers contact the company through WhatsApp when they have a problem — and the nature of appliance complaints makes WhatsApp an ideal channel, because customers can send photos of the damage, audio voice notes describing the issue, and sometimes videos showing the appliance malfunctioning in real time.

The company's service team processes dozens of complaints every day across a large geographic area. Each complaint needs to be logged as a support ticket, assigned to the right service technician based on location and appliance type, and scheduled for a site visit. The ticket needs to include all the media the customer sent — the photo of the damage, the voice note describing the sound the machine makes, the video of the malfunction — because the technician needs this evidence before going to the customer's home so they can carry the right spare parts.

**The Problem**

The existing process was entirely manual. When a customer sent a message, an agent would read it, manually create a support ticket in the helpdesk system, type out a summary of the complaint, and then separately download the media files the customer had sent and attach them to the ticket. This process took an average of eight to ten minutes per ticket and was entirely dependent on an agent being available and attentive enough to process each message promptly.

During peak hours — particularly Monday mornings after a weekend of appliance breakdowns — the inbox would accumulate 40 to 50 incoming messages before agents had processed the first wave. Customers were waiting 30 to 45 minutes for a ticket acknowledgement. Some sent multiple follow-up messages wondering if anyone had seen their complaint, adding to the inbox volume and confusing agents about which complaints were new and which were follow-ups.

Technicians were being dispatched without complete information because agents had summarised complaints poorly or had not attached all the media files. A technician would arrive at a customer's home, discover the actual issue was different from what was documented, and have to return the next day with the correct part — wasting both time and the customer's patience.

**How the Message Received Webhook Solves This**

The company connects this webhook directly to their helpdesk system via their backend.

The moment any customer message arrives on DoubleTick, the webhook fires instantly — before any agent has seen it.

For text messages, the webhook sends the customer's phone number, their name, the message content, and the timestamp to the helpdesk. The helpdesk checks whether a ticket already exists for this customer. If no open ticket exists, a new one is created automatically with the message content as the complaint description, the customer's details pre-filled, and the received at timestamp as the ticket creation time. The customer receives an automatic acknowledgement message from DoubleTick within seconds confirming their complaint has been registered and a ticket number.

For image messages, the webhook fires with the message URL field containing a direct link to the image file. The helpdesk automatically attaches this image URL to the customer's open ticket — or creates a new ticket if none exists — so the technician can view the damage photo directly from the ticket without anyone having to manually download and re-upload it.

For audio messages, the same process applies. The audio URL is automatically attached to the ticket. Technicians can listen to the customer's voice note describing the sound the appliance is making — an extremely useful diagnostic input — directly from the ticket management system.

For video messages, the video URL is attached to the ticket automatically. A technician preparing for a site visit can watch the customer's video of the malfunction before leaving, assess the likely fault, and load the correct spare parts onto their vehicle — arriving prepared rather than arriving to investigate.

Because the last message origin field confirms every event is a customer message, the helpdesk can confidently distinguish incoming customer messages from outgoing agent replies and only create or update tickets based on genuine customer communication.

**What Changes for the Team**

Agents no longer spend time manually creating tickets or attaching media. Every incoming message creates or updates a ticket automatically within seconds of arrival. Agents open the helpdesk and see a clean, fully populated queue of tickets — each with the customer's details, their message, and all their media files already attached and accessible.

Technicians receive job assignments that include the full media evidence from the customer's messages — photos, audio, and video — allowing them to prepare properly for every site visit.

Customers receive an instant acknowledgement the moment their message arrives, regardless of whether any agent is currently available — eliminating the uncertainty and frustration of not knowing if their complaint was seen.

**The Result**

* Every incoming customer message — regardless of type — automatically creates or updates a support ticket with zero manual effort from any agent
* Media files sent by customers are automatically linked to the correct ticket via direct URLs, eliminating manual download and re-upload
* Ticket creation time drops from eight to ten minutes to under ten seconds
* Customer acknowledgement is sent instantly upon message receipt — not after an agent processes the message
* Technicians arrive at site visits fully briefed with all customer-provided media evidence, reducing return visits caused by insufficient information
* During peak hours, the helpdesk queue stays current and organised even when agent capacity is stretched — because ticket creation is fully automated
* The company builds a complete, media-rich archive of every customer complaint from the very first message received

***

#### <mark style="color:$primary;">**Summary**</mark>

The Message Received Webhook is the foundation of any automated customer communication workflow in DoubleTick. Every message a customer sends — whether it is a word of text or a minute-long video — is captured instantly, in full, and delivered to your connected systems before any human has to act. For businesses where response speed, media handling, and complete message logging directly affect service quality, this webhook transforms the way incoming communication is managed.

Set it up once, and every message your business receives is automatically captured, logged, and actioned — the moment it arrives.
