Metrics and attributes for omnichannel engagements

<body>
<div class="article-banners">
<div id="docs-wmp-link">
<a href="https://support.zendesk.com/hc/en-us/articles/5411234991258-plan" rel="noopener" target="_blank">What's my plan?</a>
</div>
<div class="article-banner" id="suite_pee">
<table>
<tbody>
<tr>
<td>
<strong>All Suites</strong>
</td>
<td>Professional, Enterprise, or Enterprise Plus</td>
</tr>
</tbody>
</table>
</div>
<div class="article-banner" id="support_with_explore_pe">
<table>
<tbody>
<tr>
<td>
<strong>Support with</strong>
</td>
<td>Explore Professional or Enterprise</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">Verified AI summary <span id="up-triangle">◀</span><span id="down-triangle">▼</span></p>
<p id="docs-ai-summary-content">The omnichannel engagements dataset helps you track and analyze agent interactions across channels. It provides metrics like engagement duration and wait times, and attributes such as engagement start and end reasons. This data allows supervisors to generate detailed reports on ticket interactions, helping you understand agent performance and customer engagement dynamics without needing to navigate complex workflows.</p>
</div>
<div class="body">
<p class="p">The omnichannel engagements dataset contains metrics and attributes that relate to when
an agent is interacting with a customer within one channel. Supervisors can use this
information to create reports that give them an in-depth look at which tickets agents
have interacted with, on which channel, for how long, and why the interaction started or
ended.</p>
<p class="p">This article contains the following topics:</p>
<ul class="ul" id="Explore_metrics_omnichannel_engagements__ul_lbw_3k3_2fc">
<li class="li"><a class="xref" href="#topic_yg3_bb3_2fc">What is an engagement?</a></li>
<li class="li"><a class="xref" href="#topic_cvy_hb3_2fc">Omnichannel engagement metrics</a></li>
<li class="li"><a class="xref" href="#topic_prx_sb3_2fc">Omnichannel engagement attributes</a></li>
<li class="li"><a class="xref" href="#topic_zwf_fm3_2fc">Engagement start and end reasons</a></li>
</ul>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_yg3_bb3_2fc">
<h2 class="title topictitle2" id="ariaid-title2">What is an engagement?</h2>
<div class="body">
<p class="p">Engagements represent individual legs of agent interactions in the overall ticket
lifecycle. Metrics start getting measured when an agent interacts with a ticket or,
for messaging, with active conversations that have had an end-user reply in the last
10 minutes. </p>
<div class="p">In this section, you'll learn about how engagements work in Zendesk analytics:<ul class="ul" id="topic_yg3_bb3_2fc__ul_dvb_pk3_2fc">
<li class="li">
<strong class="ph b">Retention period for open engagements:</strong> Ongoing engagements can be
stored for only 14 days. This means that if an engagement started longer
than 14 days ago but has not ended, that engagement will not be recorded for
the engagement reports. To address this, consider managing your ongoing
workflows with <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/7043034053658-Automatically-releasing-agent-capacity-for-messaging-conversations" target="_blank">auto-release capacity setting.
</a>
</li>
<li class="li">
<strong class="ph b">Agent activities that can be reported as an engagement:</strong> Engagement
reporting relies on <a class="xref" href="https://developer.zendesk.com/api-reference/agent-availability/agent-availability-api/work_items/" target="_blank">work items</a> taking up capacity for
any given agent across channels. For customers with omnichannel routing
enabled, this changes how engagements are reported. For example:<ul class="ul" id="topic_yg3_bb3_2fc__ul_zw5_2l3_2fc">
<li class="li">When <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4828787357210-Managing-your-omnichannel-routing-configuration#topic_glj_pmr_wbc" target="_blank">inactive conversations count
towards agent capacity</a><p class="p" dir="ltr">When this setting is
enabled, messaging engagements will remain open and continue to
count towards key metrics such as engagement duration.</p>
</li>
<li class="li">When <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/5924725590682-About-channel-switching-logic-in-the-ticket-composer" target="_blank">agents switch channels from the
composer</a>, only select channel changes can be detected:<ul class="ul" id="topic_yg3_bb3_2fc__ul_br5_kk3_2fc">
<li class="li" dir="ltr">From messaging to voice</li>
<li class="li" dir="ltr">From email to voice</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="p" dir="ltr">The following workflows cannot be tracked:<ul class="ul" id="topic_yg3_bb3_2fc__ul_cr5_kk3_2fc">
<li class="li" dir="ltr">From messaging to email (unless the agent has <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8009788438042" target="_blank">ended the messaging conversation</a>
and the admin has the "transform to email" setting enabled).</li>
<li class="li" dir="ltr">From voice to email</li>
</ul>
</div>
<p class="p" dir="ltr">For these workflows, the following channel engagement will continue
counting towards the latest engagement detected.</p>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_cvy_hb3_2fc">
<h2 class="title topictitle2" id="ariaid-title3">Omnichannel engagement metrics</h2>
<div class="body">
<p class="p">This section lists and defines all of the engagement metrics available.</p>
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_cvy_hb3_2fc__table_lvb_wl3_2fc" rules="all" summary="">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody class="tbody">
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Metric</strong></td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Definition</strong></td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Calculation</strong></td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement duration</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Time from the start of engagement to the end of
engagement.</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">VALUE(Engagement End time - Engagement Start
time)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement - Offer time to agent</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Time from when the ticket was offered to the agent that
eventually accepted the assignment to when the agent accepted the
assignment. </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">VALUE(Latest accepted time - Latest offered
time)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement - Assignment to first reply</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Time from assignment to agent’s first response. This
will exclude offer state and engagements outside of business hours.
If a ticket is reopened, this counts as a new assignment. </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">VALUE(Agent first message time - Ticket assignment
time)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Agent messages</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Number of messages sent by an agent during an
engagement.</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">COUNT(Agent interactions)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement - Average requester wait time </td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">The average time between an end user response and the
agent’s reply during the engagement. </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">SUM(Total Response Time on Active Assigned
Conversation) / COUNT(Agent replies on Active Assigned
Conversations)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement - Longest requester wait time</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">The longest time between an end user response and the
agent’s reply during the engagement. </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;"> MAX(Response Time on Active Assigned
Conversations)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement start reason</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">The reason an engagement started. </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement end reason</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">The reason an engagement ended. </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Ticket status - Start of engagement</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">The status assigned to the ticket at the start of the
engagement.</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">Ticket status - End of engagement </td>
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">The status assigned to the ticket at the end of the
engagement.</td>
<td class="entry cellrowborder" dir="ltr" style="vertical-align:top;">N/A</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested1" id="topic_prx_sb3_2fc">
<h2 class="title topictitle2" id="ariaid-title4">Omnichannel engagement attributes</h2>
<div class="body">
<p class="p" dir="ltr">This section lists and defines all the engagement attributes available.</p>
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_prx_sb3_2fc__table_nvb_wl3_2fc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<tbody class="tbody">
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Attribute</strong></td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Definition</strong></td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement ID</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The system ID of the engagement. </td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Ticket ID</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The system ID of the ticket. </td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Agent ID</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The ID of the agent.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Channel </td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The channel through which the agent and end user are
interacting. Values are messaging or support.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Group ID</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The ID number of the group.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Requester ID</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The ID number for a ticket's requester.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement start reason</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The reason an engagement started. See <a class="xref" href="#topic_z3t_hm3_2fc">Engagement start reasons</a>.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Engagement end reason</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The reason an engagement ended. See <a class="xref" href="#topic_etw_3m3_2fc">Engagement end reasons</a>.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Ticket Status - Start</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The ticket’s status at the start of the
engagement.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Ticket Status - End</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The ticket’s status at the end of the
engagement.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Start Time of engagement</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Timestamp of when the engagement started</td>
</tr>
<tr class="row">
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">End Time of engagement</td>
<td class="entry cellrowborder" dir="ltr" style="vertical-align:top;">Timestamp of when the engagement ended</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title5" class="topic nested1" id="topic_zwf_fm3_2fc">
<h2 class="title topictitle2" id="ariaid-title5">Engagement start and end reasons</h2>
<div class="body">
<p class="p" dir="ltr">The engagements dataset provides engagement start and end reason attributes
to show how and why an interaction with an agent started and ended. </p>
</div>
<div aria-labelledby="ariaid-title6" class="topic nested2" id="topic_z3t_hm3_2fc">
<h3 class="title topictitle3" id="ariaid-title6">Engagement start reasons</h3>
<div class="body">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_z3t_hm3_2fc__table_pvb_wl3_2fc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<tbody class="tbody">
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Reason</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Event</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Routing assignment accepted</td>
<td class="entry cell-norowborder" style="vertical-align:top;">This happens when:<ul class="ul" id="topic_z3t_hm3_2fc__ul_qvb_wl3_2fc">
<li class="li" dir="ltr">The agent has been assigned a ticket from the
routing engine.</li>
<li class="li" dir="ltr">The agent accepts an offered assignment.</li>
<li class="li" dir="ltr">The agent accepts an offered assignment from a
group or a queue transfer.</li>
</ul>
</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Assigned</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The agent as a sole agent in a group is assigned a
ticket.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Manual assignment</td>
<td class="entry cell-norowborder" style="vertical-align:top;">
<p class="p" dir="ltr">This happens when:</p>
<ul class="ul" id="topic_z3t_hm3_2fc__ul_rvb_wl3_2fc">
<li class="li" dir="ltr">The agent manually assigns themselves a new
ticket.</li>
<li class="li" dir="ltr">A supervisor manually assigns the agent a new
ticket. </li>
</ul>
</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Reopened</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The agent changes the status from Pending, On-hold,
or Solved to Open. </td>
</tr>
<tr class="row">
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">Transferred</td>
<td class="entry cellrowborder" dir="ltr" style="vertical-align:top;">The agent is a recipient of a transferred messaging
ticket.</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title7" class="topic nested2" id="topic_etw_3m3_2fc">
<h3 class="title topictitle3" id="ariaid-title7">Engagement end reasons</h3>
<div class="body">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_etw_3m3_2fc__table_svb_wl3_2fc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<tbody class="tbody">
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Reason</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Event</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Inactivity timeout</td>
<td class="entry cell-norowborder" style="vertical-align:top;">The messaging ticket becomes inactive when an end user hasn’t
sent a reply in the last 10 minutes.<div class="p">
<div class="note note">
<span class="notetitle">Note:</span> If you've turned on omnichannel routing, and <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4828787357210-Managing-your-omnichannel-routing-configuration#topic_glj_pmr_wbc" target="_blank">messaging activity
routing</a> is turned on, the engagement will not
end when the ticket becomes inactive. </div>
</div>
</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Agent closed conversation</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The agent ends the messaging session. This is only
available when you <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8009788438042-Allowing-agents-to-end-messaging-sessions" target="_blank">allow agents to end messaging
sessions</a>.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Transferred</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The agent transfers the ticket to another agent or
group.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Ticket status updated - Pending/On Hold</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">The agent changes the status from Open to Pending
or On-hold.</td>
</tr>
<tr class="row">
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">Ticket status updated - Solved</td>
<td class="entry cellrowborder" dir="ltr" style="vertical-align:top;">The agent changes the status from Open to
Solved.</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script id="ai-summary-script">
//<![CDATA[
const ai_summary_style = document.createElement('style');
ai_summary_style.innerHTML = `#styled-article-body{padding:0 0 0}#article-body #docs-ai-summary{background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 6px;margin-bottom:16px}#article-body #docs-ai-summary #docs-ai-summary-toggle{font-size:.9em;font-weight:700;margin-bottom:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}#article-body #docs-ai-summary #docs-ai-summary-toggle #up-triangle{margin-left:auto;padding-right:10px;display:none}#article-body #docs-ai-summary #docs-ai-summary-toggle #down-triangle{margin-left:auto;padding-right:10px}#article-body #docs-ai-summary #docs-ai-summary-content{font-size:.9em;padding-left:25px;padding-right:25px;margin-bottom:12px}`;
document.head.appendChild(ai_summary_style);

const toggleAISummary = () => {
const summary = document.getElementById("docs-ai-summary-content");
const upTriangle = document.getElementById("up-triangle");
const downTriangle = document.getElementById("down-triangle");
if (summary.style.display === "none") {
summary.style.display = "block";
upTriangle.style.display = "none";
downTriangle.style.display = "inline";
} else {
summary.style.display = "none";
upTriangle.style.display = "inline";
downTriangle.style.display = "none";
}
};

document.getElementById("docs-ai-summary-toggle").addEventListener("click", toggleAISummary);
//]]>
</script>
</body>