Creating and using custom agents in Zendesk (EAP)

<body>
<p id="docs-hc-snippet" style="display: none;">After an adminturns onthe agent builder, they can create custom agents that use a combination of AI, user-defined procedures, and approved articles, tools, and custom actions to automate complex tasks and resolve customer issues. The procedures are simple step-by-step instructions that tell the custom agent what to do and how to perform the necessary tasks.</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="suite_all">
<table>
<tbody>
<tr>
<td>
<strong>All Suites</strong>
</td>
<td>Team, Growth, Professional, Enterprise, or Enterprise Plus</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 custom AI agents using simple procedures, approved articles, and actions to automate specific support tasks. Define clear step-by-step instructions, inputs, and outputs to guide the agent's workflow. Manage agents by editing, activating, deactivating, or deleting them as needed. Custom agents help streamline complex customer issue resolution by combining AI with your tailored processes and resources.</p>
</div>

<div class="body">

<div class="note">
<span class="notetitle">Note:</span> Custom agents are currently in an early access program (EAP). To participate, see
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10724212443802#topic_xk1_rcp_fjc" target="_blank">Joining the Custom Agents EAP</a>.</div>
<p class="p">After an admin <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10724212443802#topic_xk1_rcp_fjc" target="_blank">turns on</a> the agent builder, they can create
custom agents that use a combination of AI, user-defined procedures, and approved
articles, tools, and custom actions to automate complex tasks and resolve customer
issues. The procedures are simple step-by-step instructions that tell the custom agent
what to do and how to perform the necessary tasks.</p>
<div class="p">This article contains the following topics:<ul class="ul" id="topic_ktv_2hp_fjc__ul_kwb_23p_fjc">
<li class="li"><a class="xref" href="#topic_e4d_g3p_fjc">Creating custom agents</a></li>
<li class="li"><a class="xref" href="#topic_wk4_33p_fjc">Understanding procedures</a></li>
<li class="li"><a class="xref" href="#topic_yjb_rtb_lkc">Running custom agents</a></li>
</ul>
</div>
<div class="p">Related resources:<ul class="ul" id="topic_ktv_2hp_fjc__ul_sf3_ktb_lkc">
<li class="li"><a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10724212443802" target="_blank">Understanding custom agents in
Zendesk</a></li>
<li class="li"><a class="xref" href="https://support.zendesk.com/hc/en-us/articles/11198435677210" target="_blank">Editing and managing custom
agents</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_e4d_g3p_fjc">
<h2 class="title topictitle2" id="ariaid-title2">Creating custom agents</h2>
<div class="body">
<p class="p">Admins can create custom agents with user-defined procedures and access to specific
articles, tools, and custom actions. Custom agents should be task-oriented and
focused rather than generic.</p>
<p class="p">Admins can create a maximum of 100 custom agents per account. The procedures for each
agent shouldn't exceed 10,000 characters.</p>
<div class="p">
<strong class="ph b">To create a custom agent</strong><ol class="ol" id="topic_e4d_g3p_fjc__ol_ykm_s3p_fjc">
<li class="li"><span class="ph">In <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank">Admin Center</a>, click <img class="image" id="topic_e4d_g3p_fjc__image_cl2_lg1_s2c" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/icon_ai.png">
<strong class="ph b">AI</strong> in the sidebar, then select <strong class="ph b">Agent builder &gt; Custom agents</strong>.</span></li>
<li class="li">Enter a unique and identifiable <strong class="ph b">Name</strong> for the custom agent.</li>
<li class="li">Enter a <strong class="ph b">Description</strong> of the specific task the custom agent will
perform.</li>
<li class="li">Using simple, everyday language, enter <strong class="ph b">Procedures</strong> that describe what
the custom agent should do and how it should do those things.<p class="p">See <a class="xref" href="#topic_wk4_33p_fjc">Understanding procedures</a>.</p>
</li>
<li class="li">Insert relevant articles into the procedures.<ol class="ol" id="topic_e4d_g3p_fjc__ol_tmp_1lp_fjc" type="a">
<li class="li">Within the Procedures editor, click the insert icon (<img class="image" id="topic_e4d_g3p_fjc__image_dft_ndk_hjc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/agent_builder_insert_icon.png" width="16">) or enter a forward slash
(/) and select <strong class="ph b">Article</strong>.</li>
<li class="li">In the <strong class="ph b">Knowledge</strong> sidebar, click <strong class="ph b">Add article</strong> and enter
the <strong class="ph b">Article ID</strong>.</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
</ol>
<p class="p">The articles you add are referred to as <em class="ph i">approved</em> articles.
The Knowledge sidebar lists the approved articles, organized by their
help center category.</p>
</li>
<li class="li">Insert relevant inputs and outputs into the procedures. <p class="p">Data passed from
one of the actions, action flows, articles, or other custom agents can
be used as <em class="ph i">inputs</em> to the custom agent. At a minimum, a custom
agent must receive a <code class="ph codeph">Ticket ID</code> as an input. Input only
what your agent needs, and nothing extra.</p>
<p class="p">Data that your custom
agent can pass to other custom agents or action flows are
<em class="ph i">outputs</em>.</p>
<ol class="ol" id="topic_e4d_g3p_fjc__ol_c3m_rmp_fjc" type="a">
<li class="li">Within the Procedures editor, click the insert icon (<img class="image" id="topic_e4d_g3p_fjc__image_ozq_mdk_hjc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/agent_builder_insert_icon.png" width="16">) or enter a forward slash
(/) and select <strong class="ph b">Inputs</strong> or <strong class="ph b">Outputs</strong>.</li>
<li class="li">For each of the inputs or outputs, specify the following:<ul class="ul" id="topic_e4d_g3p_fjc__ul_kf4_vw1_lkc">
<li class="li">
<strong class="ph b">Name</strong>: A clear, identifying name for the input or
output. It helps if these are consistent across agents.</li>
<li class="li">
<strong class="ph b">Description</strong>: A brief description.</li>
<li class="li">
<strong class="ph b">Type</strong>: The data type for the input or output. Make
sure this is the actual data type, not just what it appears
to be.</li>
</ul>
</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
</ol>
</li>
<li class="li">Add <strong class="ph b">Actions</strong> (including the Zendesk actions and external actions from
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8855601898266" target="_blank">action builder</a>, as well as <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8013439366810" target="_blank">custom actions</a>), <strong class="ph b">Action
flows</strong>, and other <strong class="ph b">Custom agents</strong> you want the custom agent to
have permission to access.<p class="p">These resources can be inserted directly into
the custom agent's procedures using the insert icon (<img class="image" id="topic_e4d_g3p_fjc__image_t55_gdk_hjc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/agent_builder_insert_icon.png" width="16">) or a forward slash (/) or added
separately through the Actions and custom agents sidebar. </p>
<p class="p">If an
action, action flow, or other custom agent should be invoked or
performed at a specific point in the procedures, name it explicitly and
clearly state how it should be used. However, if when and how an action,
action flow, or custom agent should be used varies, you can add thse
resources to the custom agent and use plain language in the procedures
to describe what needs to be done; in this case, it would be up to the
custom agent to determine when and how to use the available actions,
action flows, and customa gents. </p>
</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
<li class="li">When you're ready to use the custom agent, click <strong class="ph b">Activate</strong>.<p class="p">At any
point, if you no longer need the custom agent or want to update it, you
can <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/11198435677210#topic_j4q_wgs_fjc" target="_blank">deactivate</a> it.</p>
</li>
</ol>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_wk4_33p_fjc">
<h2 class="title topictitle2" id="ariaid-title3">Understanding procedures</h2>
<div class="body">
<p class="p">Procedures should be written as though you're telling a human agent how to perform an
internal process. Format your procedures as a simple step-by-step breakdown of how
to perform the task or solve the customer's request. Be specific and use consistent
terminology throughout your procedure. </p>
<p class="p">Keep in mind that procedures define what a custom agent should do. If you want to
define how a custom agent should sound, you can include communication guidelines
that are specific to your use case.</p>
<p class="p">Procedures can be written in all <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408821324826#h_01H8Y4XESK886V2SA6E12WAZZ7" target="_blank">Zendesk Support languages</a>.</p>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested2" id="topic_ndy_ljp_fjc">
<h3 class="title topictitle3" id="ariaid-title4">Best practices for writing effective procedures for custom agents</h3>
<div class="body">
<div class="p">When creating procedures for a custom agent, follow these best practices:<ul class="ul" id="topic_ndy_ljp_fjc__ul_zr1_ybp_xcc">
<li class="li">
<strong class="ph b">Make custom agents specialists.</strong> Each custom agent should be
specialized to perform a specific task or job. You can give custom
agents access to each other to pass information between each other to
collaborate on a shared goal while each handles a specific scope of
work.</li>
<li class="li">
<strong class="ph b">Think in actions.</strong> Your custom agent uses actions to do things in
Zendesk and external systems. Be explicit about naming which action it
should perform at each step. For example, <code class="ph codeph">Use the Update ticket
action to set the priority.</code>
</li>
<li class="li">
<strong class="ph b">Write step-by-step and ensure each step is short and
easy-to-follow.</strong> Specify each step individually in the order the
agent should perform them, and phrase your steps as straightforward
commands tas if training a new employee on the process. </li>
<li class="li">
<strong class="ph b">Address the agent perspective.</strong> Procedures should be written as if
you’re talking to a human agent. If you copy existing content from
customer-facing help center articles, update them to reflect
agent-focused considerations and actions. </li>
<li class="li">
<strong class="ph b">Define your agent's outputs before writing procedures</strong>. Knowing the
outputs from an agent can shape the way you tell it to perform its task.
Outputs should be small and structured, and explicitly named in your
procedures.</li>
<li class="li">
<strong class="ph b">Specify where to find the information the custom agent needs.</strong><ul class="ul" id="topic_ndy_ljp_fjc__ul_qxf_y2s_fjc">
<li class="li">
<strong class="ph b">Add inputs and outputs</strong>. Inputs provide specific data the
custom agent needs. At a minimum, a custom agent must have a
<code class="ph codeph">Ticket ID</code> input. Outputs are data the
custom agent provides to other custom agents and action flows
when it can't complete a task itself. Use consistent naming for
inputs and outputs to aid in chainging together custom agents
and action flows.</li>
<li class="li">
<strong class="ph b">Add articles</strong> that address policy and processes directly
related to the custom agent's procedures. The custom agent
prioritizes these over general reasoning, so keep the list of
articles small.</li>
<li class="li">
<strong class="ph b">Add Zendesk actions, external actions, and custom actions</strong>
that provide information to the custom agent and can be used by
the agent to perform tasks. Give the agent access to individual
actions rather than an actino flow if the sequence and
combination in which they are used varies. Make sure to give the
agent access to all the actions it needs to finish the job
rather than handing it off whenever possible.<div class="note">
<span class="notetitle">Note:</span> The
availability of external actions depends on which external
services are <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8855601898266#topic_zcj_z5r_1hc" target="_blank">connected</a> to the
action builder.</div>
</li>
<li class="li">
<strong class="ph b">Add action flows</strong> that can be used by the custom agent.
For consistency, use an action flow rather than individual
actions if the steps must be performed in the same sequence
every time.</li>
<li class="li">
<strong class="ph b">Custom agents</strong> that can be called on by the agent. Custom
agents are highly specialized for specific tasks. Connect to
another custom agent to handle genuinely distinct jobs rather
than creating giant multi-purpose custom agents. </li>
</ul>
</li>
<li class="li">
<strong class="ph b">Include what to do with the information.</strong> Ensure the custom agent
knows what to do with the information provided by articles, actions,
action flows, inputs, and outputs.</li>
<li class="li">
<strong class="ph b">Provide context.</strong> When the agent has a decision to make, give it
enough background information to understand why the decision matters and
how to make it.</li>
<li class="li">
<strong class="ph b">Include examples.</strong> Demonstrate what "good" looks like for a step
and be very clear about what not to do. Examples are especially
important in situations where the right path is ambiguous.</li>
<li class="li">
<strong class="ph b">Be consistent with terminology.</strong> Always use the same terms for
your products and services. That is, avoid using different words to
refer to a single product or service. </li>
<li class="li">
<strong class="ph b">Include conditions if necessary.</strong> If you have different procedures
based on some condition (for example, subscribers vs. non-subscribers),
include that information in the procedure.</li>
<li class="li">
<strong class="ph b">Include the end response and outcome.</strong> Tell the custom agent how to
know when it has completed the tasks, such as an end response or
state.</li>
<li class="li">
<strong class="ph b">Specify what to do if it can't complete the task.</strong> Tell the agent
what to do if it can't complete the task, such as handing a task off to
a human, raising an escalation, or flagging something for review.</li>
<li class="li">
<strong class="ph b">Test and learn.</strong> If the custom agent isn’t doing what you want,
update the procedure to be clearer and more concrete.</li>
</ul>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title5" class="topic nested1" id="topic_yjb_rtb_lkc">
<h2 class="title topictitle2" id="ariaid-title5">Running custom agents</h2>
<div class="body">
<p class="p">After an admin creates a custom agent, it must be invoked by an action flow to
actually run.</p>
<div class="p">
<strong class="ph b">To create an action flow that runs a custom agent</strong><ol class="ol" id="topic_yjb_rtb_lkc__ol_lfs_3db_lkc">
<li class="li">
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8855601898266" target="_blank">Create</a> or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/9052312956570" target="_blank">edit</a> an action flow.</li>
<li class="li">Configure the action flow <strong class="ph b">Trigger</strong> to be the event and conditions that
should cause the custom agent to run.</li>
<li class="li">Click the <strong class="ph b">Add step</strong> icon (<img class="image" id="topic_yjb_rtb_lkc__image_q4w_c2b_lkc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/icon_action_flows_add.png" width="16">).</li>
<li class="li">(Optional) Add any steps necessary to gather inputs for the custom
agent.</li>
<li class="li">In the step sidebar, under <strong class="ph b">Zendesk actions</strong>, select <strong class="ph b">Hand off to
custom agent</strong>, and configure the step:<ul class="ul" id="topic_yjb_rtb_lkc__ul_ik2_g2b_lkc">
<li class="li">
<strong class="ph b">Label</strong>: A name for the step that is visible in the action
flow.</li>
<li class="li">
<strong class="ph b">Inputs</strong>: The data the custom agent needs. For example, the
<em class="ph i">Ticket_ID</em> from the action flow trigger.</li>
<li class="li">
<strong class="ph b">Error handling</strong>: Specify what the action flow should do if the
custom agent fails: stop the action flow, continue, or
branch.</li>
</ul>
</li>
<li class="li">Click <strong class="ph b">Save</strong> and then click <strong class="ph b">Activate</strong>.</li>
</ol>
</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/10724438136858-Creating-custom-agents-in-Zendesk-EAP",
"url": "https://support.zendesk.com/hc/en-us/articles/10724438136858-Creating-custom-agents-in-Zendesk-EAP",
"headline": "Creating and using custom agents in Zendesk (EAP)",
"description": "You can create and activate custom agents using user-defined procedures, approved resources, and actions to automate specific tasks and resolve customer issues through an action flow trigger.",
"articleSection": "Creating AI agents",
"datePublished": "2026-05-12T04:59:36+00:00",
"dateModified": "2026-09-01T17:38:18.704189+00:00",
"inLanguage": "en-US",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/10724438136858-Creating-custom-agents-in-Zendesk-EAP"
},
"author": {
"@type": "Organization",
"name": "Zendesk",
"url": "https://www.zendesk.com"
},
"publisher": {
"@type": "Organization",
"name": "Zendesk"
},
"isPartOf": {
"@type": "WebSite",
"name": "Zendesk Help",
"url": "https://support.zendesk.com/hc/en-us"
},
"about": {
"@type": "SoftwareApplication",
"name": "Zendesk"
}
}</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>