Using OpenAI actions in action flows

<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_gpee">
<table>
<tbody>
<tr>
<td>
<strong>All Suites</strong>
</td>
<td>Growth, Professional, Enterprise, or Enterprise Plus</td>
</tr>
</tbody>
</table>
</div>
<div class="article-banner" id="support_all">
<table>
<tbody>
<tr>
<td>
<strong>Support</strong>
</td>
<td>Team, Professional, or Enterprise</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="body">
<div class="p">By connecting the <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8855513857306" target="_blank">action builder</a> to external systems, such as OpenAI, admins
can integrate Zendesk with external systems in automated workflows, improving
collaboration and maintaining a seamless experience across multiple platforms.<div class="note note">
<span class="notetitle">Note:</span> The
steps associated with external systems in action flows are referred to collectively
as <em class="ph i">external actions</em>.</div>
</div>
<div class="p">This article contains the following topics:<ul class="ul" id="topic_s5r_g4w_zgc__ul_omj_bj4_zgc">
<li class="li"><a class="xref" href="#topic_pcg_m4w_zgc">Connecting OpenAI to action builder</a></li>
<li class="li"><a class="xref" href="#topic_chy_m4w_zgc">Using OpenAI actions in action flows</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_pcg_m4w_zgc">
<h2 class="title topictitle2" id="ariaid-title2">Connecting OpenAI to action builder</h2>
<div class="body">
<p class="p">Before you can include external actions in your action flows, you must connect the
action builder to the external system.</p>
<div class="p">When connecting to external systems for use in action flows, the following best practices are recommended:<ul class="ul" id="topic_pcg_m4w_zgc__d8e13">
<li class="li">All external actions performed by an action flow are attributed to the user who connected the external system. Therefore, it is a best practice to use a dedicated service account rather than personal credentials when connecting to each external system.</li>
<li class="li">All integrations request access to necessary scopes. However, it's important that you review and validate the scopes before authorizing the connection to the external system.</li>
<li class="li">When managing credentials for API key-based tools, such as OpenAI, it's best to store keys in a secure vault or credential manager.</li>
</ul>
</div>
<div class="p">
<strong class="ph b">To connect action builder to OpenAI</strong><ol class="ol" id="topic_pcg_m4w_zgc__ol_psh_lk4_zgc">
<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" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_apps_integrations_icon.png">
<strong class="ph b">Apps and integrations</strong> in the sidebar, then select <strong class="ph b">Actions &gt; Action
flows</strong>.</span></li>
<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">Open the step sidebar.</li>
<li class="li">Under <strong class="ph b">External actions</strong>, click <strong class="ph b">OpenAI</strong>.</li>
<li class="li">Click <strong class="ph b">Connect</strong>.</li>
<li class="li">Use an <a class="xref" href="https://platform.openai.com/api-keys" target="_blank">API key</a> to authenticate the account. <div class="note note">
<span class="notetitle">Note:</span>
<ul class="ul" id="topic_pcg_m4w_zgc__ul_syk_t4w_zgc">
<li class="li">The connection isn't confirmed until you test or use an action
flow with OpenAI steps.</li>
<li class="li">All external actions performed by an action flow are attributed
to the user who connected the external system. Therefore, it is
a best practice to use a dedicated service account rather than
personal credentials when connecting to each external
system.</li>
</ul>
</div>
</li>
</ol>
</div>
<p class="p">After you've connected to the system, you'll see an indicator that it's connected and
details about the instance you're connected to, as well as the actions available for
OpenAI.</p>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_chy_m4w_zgc">
<h2 class="title topictitle2" id="ariaid-title3">Using OpenAI actions in action flows</h2>
<div class="body">
<p class="p">The OpenAI action steps make it possible for you to provide things such as
AI-generated summaries of long tickets to agents, identify negative emotional tones
in tickets so they can be routed to specialized teams, extract keywords that can be
used as ticket tags, and use tailored AI models to analyze customer messages.</p>
<p class="p">GPT 5.0 is supported for all of the OpenAI steps. This enhances automation
capabilities by providing better contextual understanding and more natural
responses.</p>
<div class="p">The following OpenAI actions are available:<ul class="ul" id="topic_chy_m4w_zgc__ul_qg4_w4w_zgc">
<li class="li"><a class="xref" href="#topic_zf5_w4w_zgc">Analyze senitment</a></li>
<li class="li"><a class="xref" href="#topic_igy_x4w_zgc">Summarize text</a></li>
<li class="li"><a class="xref" href="#topic_omk_y4w_zgc">Extract keywords</a></li>
<li class="li"><a class="xref" href="#topic_sgx_y4w_zgc">Send prompt</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested2" id="topic_zf5_w4w_zgc">
<h3 class="title topictitle3" id="ariaid-title4">Analyzing sentiment</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Analyze sentiment</em> action to detect the emotional tone of text.</p>
<p class="p">This action has the following inputs and outputs:</p>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_zf5_w4w_zgc__table_sdp_wrz_hgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e217" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e219" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e217" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e219" style="text-align:left;vertical-align:top;">
<code class="ph codeph">model</code>, <code class="ph codeph">text</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e217" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e219" style="text-align:left;vertical-align:top;"><code class="ph codeph">sentiment</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title5" class="topic nested2" id="topic_igy_x4w_zgc">
<h3 class="title topictitle3" id="ariaid-title5">Summarizing text</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Summarize text</em> action to conense large quanities of text into a
brief summary.</p>
<p class="p">This action has the following inputs and outputs:</p>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_igy_x4w_zgc__table_pgk_yrz_hgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e285" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e287" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e285" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e287" style="text-align:left;vertical-align:top;">
<code class="ph codeph">model</code>, <code class="ph codeph">text</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e285" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e287" style="text-align:left;vertical-align:top;"><code class="ph codeph">summary</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title6" class="topic nested2" id="topic_omk_y4w_zgc">
<h3 class="title topictitle3" id="ariaid-title6">Extracting keywords</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Extract keywords</em> action to identify main topics or entities. These
can then be used as tags for tickets.</p>
<p class="p">This action has the following inputs and outputs:</p>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_omk_y4w_zgc__table_w2z_yrz_hgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e353" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e355" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e353" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e355" style="text-align:left;vertical-align:top;">
<code class="ph codeph">model</code>, <code class="ph codeph">text</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e353" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e355" style="text-align:left;vertical-align:top;"><code class="ph codeph">keywords</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title7" class="topic nested2" id="topic_sgx_y4w_zgc">
<h3 class="title topictitle3" id="ariaid-title7">Sending a prompt</h3>
<div class="body">
<div class="p">Use the <em class="ph i">Send prompt</em> action to define a custom prompt and response from the
OpenAI API. For example, a prompt might be:
<pre class="pre codeblock"><code>Analyze this ticket and categorize it into one of the following: Billing, Technical Issue, Feature Request, Bug Report, General Inquiry.
Ticket:<em class="ph i">[description]</em></code></pre>where
<em class="ph i">[description]</em> is replaced with a value by clicking <strong class="ph b">Add
variable</strong>.</div>
<p class="p"><img class="image" id="topic_sgx_y4w_zgc__image_dg2_lcm_nfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/action_flow_openai_prompt_step.png" width="300"></p>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_sgx_y4w_zgc__table_ysz_zrz_hgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e433" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e435" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e433" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e435" style="text-align:left;vertical-align:top;">
<code class="ph codeph">model</code>, <code class="ph codeph">text</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e433" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e435" style="text-align:left;vertical-align:top;"><code class="ph codeph">content</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</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/9841067063834",
"url": "https://support.zendesk.com/hc/en-us/articles/9841067063834-Using-OpenAI-actions-in-action-flows",
"headline": "Using OpenAI actions in action flows",
"description": "You can connect an external AI system to automate workflows by integrating AI-generated text analysis and summarization actions into your action flows using API key authentication.",
"articleSection": "Extending Zendesk",
"datePublished": "2025-10-17T19:14:40+00:00",
"dateModified": "2025-12-10T15:50:21+00:00",
"inLanguage": "en-US",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/9841067063834"
},
"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"
}
}</script>