# How to use Call Rejected Webhook

There is a world of difference between a call that went unanswered and a call that was deliberately declined.

When a call is missed, the person on the other end may have been busy, away from their phone, or simply did not hear it ring. It is a neutral event. The right response is a polite callback or a follow-up message.

When a call is explicitly rejected — when someone sees the call on their screen and consciously hits the decline button — that is an entirely different signal. It means the person was available, aware of the call, and chose not to take it. That choice carries information your business needs to act on differently.

The **Call Rejected Webhook** captures this moment precisely. The instant any call — incoming or outgoing — is explicitly rejected, this webhook fires and sends the full details to your connected system. Who rejected it, which direction the call was travelling, and exactly when it happened.

***

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

In DoubleTick, a call can end in several ways — it can be answered, missed, ended after a conversation, or explicitly rejected. The **Call Rejected** webhook exclusively captures the last scenario: an explicit, deliberate rejection of a call by either party.

This webhook fires for both directions:

* When an **incoming call** from a customer is rejected by an agent in DoubleTick
* When an **outgoing call** made by an agent is rejected by the customer on their end

In both cases, the moment the rejection happens and the call status moves to rejected, this webhook fires and sends all the relevant details to your system instantly.

Think of it as the difference between someone not hearing a knock at the door versus someone looking through the peephole and choosing not to open it. The webhook tells you it was the second scenario — and gives you the information to decide what to do next.

***

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

This webhook activates when:

* A DoubleTick agent explicitly declines an incoming call from a customer
* A customer explicitly declines an outgoing call initiated by a DoubleTick agent

It does not fire for missed calls or ended calls — those are separate webhook events.

***

#### <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%2F2PhMSdxiZislX1l9tu54%2FUntitled%20design%20-%202026-03-31T131014.811.gif?alt=media&#x26;token=72c8e251-f19a-461f-b7c3-2d63e7620748" 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: `Call Rejection Tracker`

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

You need a destination URL — this is where DoubleTick will send the rejection data the moment it happens.

You can connect it to:

* A **CRM** like Zoho, HubSpot, or Salesforce
* An **automation tool** like Zapier or Pabbly to route the data into your CRM
* Your own **backend or internal notification 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 **Call Rejected** from the event list
2. Click **Create Webhook**

Your webhook is now live and tracking every explicit call rejection the moment it happens.

***

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

**To test an incoming call rejection:**

1. Call your WhatsApp Business number from a test customer number
2. On the DoubleTick agent's screen, explicitly decline the call
3. Go to **Bot Studio → Capture Response → View Response Data**

**To test an outgoing call rejection:**

1. Initiate an outgoing call from DoubleTick to a test number
2. On the receiving end, explicitly decline the call
3. Go to **Bot Studio → Capture Response → View Response Data**

***

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

This webhook sends slightly different data depending on the direction of the rejected call.

**When an Incoming Call Is Rejected by an Agent:**

| Field                 | What It Tells You                                         |
| --------------------- | --------------------------------------------------------- |
| Event                 | "CALL\_REJECTED" — confirms this is a call rejected event |
| Call ID               | A unique identifier for this specific call session        |
| Chat ID               | The ID of the chat thread this call is linked to          |
| Call Status           | "REJECT" — confirms the call was explicitly declined      |
| Customer ID           | The unique identifier of the customer in DoubleTick       |
| Rejected By           | The phone number of the agent who rejected the call       |
| WABA Number           | Which WhatsApp Business number received the call          |
| Call Ended At         | The exact date and time the call was rejected             |
| Customer Name         | The name saved for this customer in DoubleTick            |
| Call Direction        | "INCOMING" — confirms this was an inbound call            |
| Chat Message ID       | The ID linking this call to the customer's chat thread    |
| Customer Phone Number | The customer's WhatsApp number                            |

**When an Outgoing Call Is Rejected by a Customer:**

| Field                 | What It Tells You                                         |
| --------------------- | --------------------------------------------------------- |
| Event                 | "CALL\_REJECTED" — confirms this is a call rejected event |
| Call ID               | A unique identifier for this specific call session        |
| Chat ID               | The ID of the chat thread this call is linked to          |
| Device ID             | The device from which the call was initiated              |
| Picked By             | The phone number of the agent who initiated the call      |
| Call Status           | "REJECT" — confirms the call was explicitly declined      |
| Customer ID           | The unique identifier of the customer in DoubleTick       |
| WABA Number           | Which WhatsApp Business number was used                   |
| Call Ended At         | The exact date and time the call was rejected             |
| Customer Name         | The name saved for this customer in DoubleTick            |
| Call Direction        | "OUTGOING" — confirms this was an outbound call           |
| Chat Message ID       | The ID linking this call to the customer's chat thread    |
| Customer Phone Number | The customer's WhatsApp number                            |

The key distinction between the two scenarios lies in the **Rejected By** field for incoming rejections — which identifies the agent who declined — and the **Picked By** field for outgoing rejections — which identifies the agent whose call was declined by the customer.

***

#### <mark style="color:$primary;">**Real-Life Business Use Case: A Loan Collections Team Using Call Rejections to Identify Deliberate Avoidance and Escalate Intelligently**</mark>

**The Situation**

A Non-Banking Financial Company manages a large portfolio of personal loans and consumer EMIs. Their collections team uses DoubleTick to contact borrowers whose EMI payments are overdue. Agents make outgoing calls daily to remind borrowers about pending payments, negotiate revised repayment schedules, and prevent accounts from slipping into deeper delinquency.

Each overdue account is categorised by risk level: early-stage delinquency (1 to 30 days overdue), mid-stage (31 to 60 days), and late-stage (60 days and beyond). The collection strategy and the urgency of follow-up differs significantly across these categories.

**The Problem**

The collections team was tracking call attempts but had no way to distinguish between a call that went unanswered because the borrower was genuinely unavailable and a call that was explicitly rejected because the borrower was deliberately avoiding contact.

This distinction is critical in collections. A borrower who misses a call might simply be in a meeting or driving. A borrower who sees your agent's call and hits decline is communicating something very specific — they are aware of the outstanding payment, they are aware of the call, and they are choosing not to engage. That is a fundamentally different risk signal and requires an entirely different response.

Without this distinction, the collections team was treating all unanswered calls the same — scheduling another call attempt at a later time regardless of whether the previous non-answer was passive or deliberate. This meant that high-risk deliberate avoiders were being handled with the same low-urgency follow-up as genuinely unreachable borrowers, allowing high-risk accounts to slip into deeper delinquency undetected.

Additionally, there was a second problem on the incoming side. When a borrower proactively called the collections team — often to discuss a payment arrangement or raise a dispute — and an agent rejected that incoming call, the borrower would feel dismissed and would sometimes escalate to regulatory complaints. The company had no way to track which agents were rejecting incoming borrower calls or how frequently this was happening.

**How the Call Rejected Webhook Solves This**

The company connects this webhook directly to their CRM.

**For outgoing call rejections** — when a borrower explicitly declines an agent's call — the webhook fires and the CRM automatically updates the borrower's account with a rejection event, the exact timestamp, and the agent's number from the picked by field. The CRM logic then evaluates the borrower's delinquency stage.

If a borrower in the early stage rejects a call once, the system logs it as a note and schedules a follow-up attempt via WhatsApp message instead of another call — switching the communication channel automatically.

If a borrower rejects two or more calls within a seven-day window, their risk classification is automatically upgraded one level in the CRM. A mid-stage borrower who rejects calls twice becomes flagged as a high-risk account requiring senior officer review.

If a borrower in the late stage explicitly rejects any call, the CRM immediately creates an escalation task assigned to a senior collections officer — because deliberate avoidance at that delinquency level is a strong signal of potential default and requires immediate legal and recovery review.

**For incoming call rejections** — when an agent declines a borrower's incoming call — the webhook fires and the rejected by field captures exactly which agent rejected it. The CRM logs this against both the borrower's account and the agent's activity record.

If a borrower's incoming call is rejected by an agent, an automated WhatsApp message is sent to the borrower immediately: "We missed your call and we apologise. An officer will contact you within the hour." This ensures the borrower does not feel ignored and does not escalate to a regulatory complaint.

The team lead receives an instant alert identifying which agent rejected an incoming borrower call, allowing them to follow up with the agent immediately and ensure the callback happens within the committed timeframe.

At the end of each month, the compliance team reviews the rejection log to identify patterns — agents who are frequently rejecting incoming calls, borrowers who are systematically rejecting outgoing calls, and accounts where rejection patterns align with eventual default.

**The Result**

* The collections team can now distinguish deliberate avoidance from genuine unavailability, enabling smarter and more proportionate follow-up for every account
* High-risk deliberate avoiders are identified and escalated before their accounts deteriorate further — often preventing defaults that would otherwise go undetected until it was too late
* Borrowers who reject calls are automatically switched to WhatsApp message outreach, increasing the chances of a response through an alternative channel
* Agents who reject incoming borrower calls are identified and held accountable, with automated customer acknowledgement sent in their place to protect the company's compliance posture
* The CRM builds a complete, timestamped rejection history for every borrower account — giving the legal and recovery team a documented record of deliberate avoidance if the account eventually moves to legal action
* Regulatory complaints from borrowers who felt their calls were ignored drop significantly because every rejected incoming call now triggers an automatic acknowledgement message

***

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

The Call Rejected Webhook is one of the most strategically significant webhooks available in DoubleTick — precisely because a rejection is not the same as a missed call. It carries intent. It tells you something specific about the person on the other end of that call. Businesses that treat rejections the same as missed calls are leaving a critical signal on the table. This webhook gives you the data to act on that signal intelligently — whether that means switching communication channels, escalating an account, holding an agent accountable, or simply sending an acknowledgement that preserves the customer relationship.

Set it up once, and every rejected call becomes a piece of information your business can act on — not just a failed attempt that disappears into a log.
