Creating exact text-match AI insights rating categories

<body>
<p id="docs-hc-snippet" style="display: none;">Exact text-match categories useautoscoringto identify specific keywords or phrases and evaluate whether responses meet your quality standards.</p>
<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="addon_zqa">
<table>
<tbody>
<tr>
<td>
<strong>Add-on</strong>
</td>
<td>Quality Assurance (QA) or Workforce Engagement Management (WEM)</td>
</tr>
</tbody>
</table>
</div>

</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">Summary: <span id="up-triangle">◀</span><span id="down-triangle">▼</span></p>
<p id="docs-ai-summary-content">You can create exact text-match AI insight rating categories to autoscore agent or client messages based on specific keywords or phrases. Use them to set thumbs up, thumbs down, or N/A scoring, choose matching conditions like contains or is, and add the category to scorecards. Admins and workspace managers can create up to 20 per account.</p>
</div>

<div class="body">

<div class="p">
<div class="note fastpath">
<span class="fastpathtitle">Location: </span> Zendesk QA &gt; Settings &gt; AI</div>
</div>
<p class="p" dir="ltr">Exact text-match categories use <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/7043669430426#topic_wsw_cly_ydc" target="_blank">autoscoring</a> to identify specific keywords or phrases
and evaluate whether responses meet your quality standards.</p>
<p class="p" dir="ltr">Admins and workspace managers can create exact text-match custom rating
categories.</p>
<p class="p" dir="ltr">You can create up to 20 exact text-match AI insights per account. When you reach
this limit, you must either mark one as inactive or delete it before you can create or
activate more.</p>
<p class="p" dir="ltr"><strong class="ph b">To create an exact text-match category</strong></p>
<div class="p">
<ol class="ol" id="topic-1__ol_kj4_k55_lfc">
<li class="li" dir="ltr"><span class="ph">In <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408838272410" target="_blank">Quality assurance</a>, click your profile icon in the top-right
corner.</span></li>
<li class="li" dir="ltr"><span class="ph">Click <strong class="ph b">Settings</strong>.</span></li>
<li class="li" dir="ltr"><span class="ph">In the sidebar under <strong class="ph b">Account</strong>, click <strong class="ph b">AI</strong>.</span></li>
<li class="li">Click <strong class="ph b">Create AI insight</strong>.</li>
<li class="li">Select the <strong class="ph b">Exact text-match</strong> AI insight type.<p class="p"><img class="image" id="topic-1__image_nym_dy3_yfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/zqa_ai_text_match.png" width="800"></p>
</li>
<li class="li">Enter an <strong class="ph b">AI insight name</strong> and <strong class="ph b">Description for reviewers (optional)</strong>. This is
displayed when hovering over a category name while rating a conversation. </li>
<li class="li">Under <strong class="ph b">If </strong>, select if you want to search only the <strong class="ph b">Agent message</strong>, the
<strong class="ph b">Client message</strong> or <strong class="ph b">Any message</strong>.</li>
<li class="li">Select the operator (default: <em class="ph i">contains</em>) and enter one keyword or phrase per row
that you want to score automatically if they occur in messages. See <a class="xref" href="#topic_gss_cyf_zfc">Exact text-match conditions</a>.<p class="p">You
can:</p>
<ul class="ul" id="topic-1__ul_dcy_lks_bgc">
<li class="li">Click <strong class="ph b">Add row</strong> for each additional keyword or phrase you want to autoscore in
this category.</li>
<li class="li">Click <strong class="ph b">Add condition</strong> to specify more complex keywords and phrases. </li>
<li class="li">Enter '/' to add the variable {..}. You can use this dynamic content placeholder
{..} to represent any name. For example, “Hello {··}!”</li>
</ul>
</li>
<li class="li">Under <strong class="ph b">Then score</strong> and <strong class="ph b">Otherwise score</strong>, select how you want to automatically
rate the agent. For example, if the text does not include “let’s schedule a demo,” the
agent receives a negative (<img class="image" id="topic-1__image_nj4_k55_lfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/zqa_thumbs_dowm.png" width="22">) score for this category. Otherwise, you can choose
to score them positively (<img class="image" id="topic-1__image_oj4_k55_lfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/zqa_thumbs_up.png" width="22">) or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8875998154906#topic_ufd_t3n_zfc" target="_blank">use "N/A" if unsure</a>.</li>
<li class="li">Select <strong class="ph b">Use as a category on a scorecard</strong>.</li>
<li class="li">Click <strong class="ph b">Create category</strong>.</li>
<li class="li">After creating it, you must <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/7043760215194" target="_blank">add the category to your scorecards</a> to start using it. </li>
</ol>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_gss_cyf_zfc">
<h2 class="title topictitle2" id="ariaid-title2">Exact text-match conditions</h2>
<div class="body">
<p class="p">You can add multiple rows and use the following conditions for complex findings:</p>
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_gss_cyf_zfc__table_aw4_hyf_zfc" rules="all" summary="">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<tbody class="tbody">
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Condition name</strong></td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Condition type</strong></td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Search query example</strong></td>
<td class="entry cell-norowborder" style="vertical-align:top;">
<strong class="ph b">Do you get a thumbs up as a result for this conversation
message?</strong><p class="p"><strong class="ph b">"Thank you for contacting Acme Corporation, how can I help you
today?"</strong></p>
</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="2" style="vertical-align:top;">is</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">is any of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Thank you for contacting"</p>
<p class="p" dir="ltr">"how can I help you today?"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">No, because we look for entirely equal matches.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">is all of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Thank you for contacting Acme Corporation, how can I help you
today?"</p>
<p class="p" dir="ltr">"how can I help you today?"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">No, although the first query matches, the second does not.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="2" style="vertical-align:top;">contains</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">contains any of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Thank you for contacting us”</p>
<p class="p" dir="ltr">“how can I help you today?"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Yes, because the second query is part of the message.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">contains all of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Thank you for contacting”</p>
<p class="p" dir="ltr">“how can I help you today?"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Yes, because both queries are part of the message.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="2" style="vertical-align:top;">is not</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">is not any of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Thank you for contacting us”</p>
<p class="p" dir="ltr">“we are unavailable today?"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Yes, because neither of these queries are an exact match of the
message.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">is not all of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Our business is closed"</p>
<p class="p" dir="ltr">"Please contact us tomorrow"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">Yes, because none of these queries are an exact match of the
message.</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="2" style="vertical-align:top;">does not contain</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">does not contain any of</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">"Our business is closed"</p>
<p class="p" dir="ltr">"how can I help you today?"</p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">No, because the second query is part of the message.</td>
</tr>
<tr class="row">
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">does not contain all of</td>
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">"Thank you for contacting” “how can I help you today?"</td>
<td class="entry cellrowborder" dir="ltr" style="vertical-align:top;">No, because both queries are part of the message</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script id="docs-schema-markup" type="application/ld+json">{
"@context": "https://schema.org",
"@type": "TechArticle",
"@id": "https://support.zendesk.com/hc/en-us/articles/9302967236890",
"url": "https://support.zendesk.com/hc/en-us/articles/9302967236890",
"headline": "Creating exact text-match AI insights rating categories",
"description": "You can create exact text-match AI insight categories that auto-score messages by keywords or phrases, configure the search scope and conditions, and add the category to scorecards.",
"articleSection": "Using AI in Zendesk QA",
"datePublished": "2025-05-27T13:17:58+00:00",
"dateModified": "2026-07-13T15:06:44.374042+00:00",
"inLanguage": "en",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/9302967236890"
},
"author": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"publisher": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"isPartOf": {
"@type": "WebSite",
"name": "Zendesk Help",
"@id": "https://support.zendesk.com/hc/"
},
"about": {
"@type": "SoftwareApplication",
"name": "Zendesk",
"@id": "https://www.zendesk.com",
"softwareAddOn": {
"@type": "SoftwareApplication",
"name": "Quality Assurance",
"@id": "https://support.zendesk.com/hc/en-us/sections/6999625340058"
}
}
}</script><script id="fast-path-script">
//<![CDATA[
const fast_path_style = document.createElement('style');
fast_path_style.innerHTML = `#article-body .fastpath{font-size:.9em;background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 8px;margin-bottom:16px}#article-body .fastpath::before{content:none!important}`;
document.head.appendChild(fast_path_style);
//]]>
</script><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>