Definition of Agent Response Time
Understanding how quickly your agents respond to customer inquiries is crucial for maintaining high service standards. By measuring Agent Response Time (ART), businesses can identify areas for improvement and ensure that human intervention is timely and effective, enhancing overa
Listen to an audio overview
A short, AI-generated podcast-style summary of this article.
Understanding how quickly your agents respond to customer inquiries is crucial for maintaining high service standards. By measuring Agent Response Time (ART), businesses can identify areas for improvement and ensure that human intervention is timely and effective, enhancing overall customer satisfaction.
Understanding the Context
There are three types of messages involved:
TYPE_USER_IN → message from the customer.
TYPE_BOT_OUT → response from the bot.
TYPE_AGENT_OUT → response from the live agent.
Agents can join a conversation already being handled by a bot. When an agent responds, the bot pauses its replies.
The objective is to determine:
"The time it takes for an agent to reply to a customer message that requires human intervention."
Core Definition of Agent Response Time
Agent Response Time (ART) is calculated as:
The time elapsed from the user’s last message needing a human reply to the agent’s first response.
Since bots may reply before an agent steps in, bot messages should be excluded when calculating ART.
This implies:
Measure only from the user’s message (TYPE_USER_IN)
To the subsequent agent reply (TYPE_AGENT_OUT)
Disregard any bot messages (TYPE_BOT_OUT) in between.
Rules for Accurate Measurement
Case | Description | Should Count as Response Time? |
|---|---|---|
User sends message → Agent replies directly | Standard case | ✅ Yes |
User sends message → Bot replies → Agent later joins | Agent took over after bot | ✅ Yes (start from user message, not bot) |
Bot sends proactive message → Agent replies | No user message triggered it | ❌ No |
Agent replies to another agent | Internal collaboration | ❌ No |
Agent replies after user message but after a long gap (bot paused, waiting for agent) | Still counts | ✅ Yes |
User sends multiple messages before agent replies | Use the last user message before the agent reply | ✅ Yes |
Algorithm / Logic Flow
To determine the agent response time, follow these steps:
For each TYPE_AGENT_OUT message:
Look backwards for the most recent TYPE_USER_IN message.
Disregard any TYPE_BOT_OUT or TYPE_AGENT_OUT messages in between.
Calculate the time difference:
ART = agent_out.timestamp - user_in.timestamp
Exclude:
If no prior TYPE_USER_IN is found.
If the last message before the agent reply was from another agent.
If the agent message is part of a quick succession (same agent continuing the conversation).
If an agent sends several messages consecutively, only the first message after the user's input is considered a "response."
Scenarios & Examples
Scenario A: Basic Case
Timestamp | Type | Message |
|
|---|---|---|---|
10:00:00 | TYPE_USER_IN | "Hi, I need help" |
|
10:00:05 | TYPE_BOT_OUT | "Hello! How can I assist you?" |
|
10:00:20 | TYPE_AGENT_OUT | "Hi John, I’ll help you with that." |
|
Agent Response Time = 10:00:20 − 10:00:00 = 20 seconds
✅ Counted — even though the bot replied first.
Scenario B: Bot Handles First, Then Agent Joins Later
Time | Type | Message |
|---|---|---|
11:00:00 | TYPE_USER_IN | "Can I get a refund?" |
11:00:03 | TYPE_BOT_OUT | "Please provide your order ID." |
11:00:10 | TYPE_USER_IN | "Order #12345" |
11:00:12 | TYPE_BOT_OUT | "Refund requests usually take 3 days..." |
11:00:40 | TYPE_AGENT_OUT | "Hi, I can confirm your refund has been processed." |
✅ Response time = 11:00:40 − 11:00:10 = 30 seconds (last user message before agent reply)
Scenario C: Agent Replies to Agent
Time | Type | Message |
|---|---|---|
12:00:00 | TYPE_AGENT_OUT | "Please handle this ticket." |
12:00:05 | TYPE_AGENT_OUT | "Sure, on it." |
❌ No response time recorded — internal agent-to-agent communication.
Scenario D: Multiple User Messages Before Agent
Time | Type | Message |
|---|---|---|
13:00:00 | TYPE_USER_IN | "Hello" |
13:00:05 | TYPE_USER_IN | "Is anyone there?" |
13:00:10 | TYPE_AGENT_OUT | "Yes, I’m here." |
✅ Response time = 13:00:10 − 13:00:05 = 5 seconds
(Use the latest user message)
Scenario E: User Message After Agent Is Already Active
Time | Type | Message |
|---|---|---|
14:00:00 | TYPE_AGENT_OUT | "Hello! How can I help?" |
14:00:05 | TYPE_USER_IN | "I need to change my email." |
14:00:10 | TYPE_AGENT_OUT | "Sure, I can do that." |
✅ Response time = 14:00:10 − 14:00:05 = 5 seconds

