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
Log in to your DoubleTick account
Go to Settings
Click on Webhooks
Step 2: Create a New Webhook
Click New Webhook
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:
Open a new tab and go to Bot Studio
Click Create New Bot
Set the trigger to On Webhook
Copy the webhook URL that appears
Step 4: Fill in Webhook Details
Go back to the Webhooks page
Paste the webhook URL
Select your API Number (your WABA/WhatsApp Business number)
Click Continue
Step 5: Choose the Event
Select Call Rejected from the event list
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:
Call your WhatsApp Business number from a test customer number
On the DoubleTick agent's screen, explicitly decline the call
Go to Bot Studio → Capture Response → View Response Data
To test an outgoing call rejection:
Initiate an outgoing call from DoubleTick to a test number
On the receiving end, explicitly decline the call
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:
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:
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