How to use Call Rejected Webhook

Treat an Explicit Rejection Very Differently From a Missed Call — and Respond With the Right Action Every Time

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.


What Is the Call Rejected Webhook?

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.


When Does This Webhook Trigger?

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.


Step-by-Step Setup Guide

Step 1: Open Webhooks in DoubleTick

  1. Log in to your DoubleTick account

  2. Go to Settings

  3. Click on Webhooks

Step 2: Create a New Webhook

  1. Click New Webhook

  2. Give it a clear name — for example: Call Rejection Tracker

Step 3: Get Your Webhook URL

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

Step 4: Fill in Webhook Details

  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

Step 5: Choose the Event

  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.


How to Test It

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


What Data Do You Receive?

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.


Real-Life Business Use Case

A Loan Collections Team Using Call Rejections to Identify Deliberate Avoidance and Escalate Intelligently

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


Summary

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.

Last updated