Using Microsoft Excel 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 Microsoft Excel,
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_xnd_g1p_zgc__ul_jmk_zx4_zgc">
<li class="li"><a class="xref" href="#topic_uxz_t1p_zgc">Connecting Microsoft Excel to action builder</a></li>
<li class="li"><a class="xref" href="#topic_n4d_51p_zgc">Using Microsoft Excel actions in action flows</a></li>
<li class="li"><a class="xref" href="#topic_akg_wsq_chc">Recipe: Using an action flow to maintain a centralized incident log in Excel</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_uxz_t1p_zgc">
<h2 class="title topictitle2" id="ariaid-title2">Connecting Microsoft Excel 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_uxz_t1p_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 Microsoft Excel to action builder</strong><ol class="ol" id="topic_uxz_t1p_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">Microsoft Excel</strong>.</li>
<li class="li">Click <strong class="ph b">Connect</strong>.</li>
<li class="li">Use Microsoft to authenticate the account. <p class="p">Depending on your
organization's policies, you might need to authorize device or app
access.</p>
<div class="note note">
<span class="notetitle">Note:</span>
<ul class="ul" id="topic_uxz_t1p_zgc__ul_eyw_bbp_zgc">
<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">To ensure the connection is successful, you must have a
Microsoft tenant admin add the connector first.</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
Microsoft Excel.</p>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_n4d_51p_zgc">
<h2 class="title topictitle2" id="ariaid-title3">Using Microsoft Excel actions in action flows</h2>
<div class="body">
<p class="p">Microsoft Excel action steps can be used to create and update Excel workbooks and
worksheets as well as reading data from them. </p>
<div class="p">The following Excel actions are available:<ul class="ul" id="topic_n4d_51p_zgc__ul_t3m_py4_zgc">
<li class="li"><a class="xref" href="#topic_m51_lbp_zgc">Create workbook</a></li>
<li class="li"><a class="xref" href="#topic_evr_pbp_zgc">Create worksheet</a></li>
<li class="li"><a class="xref" href="#topic_ezr_rbp_zgc">Add row to sheet</a></li>
<li class="li"><a class="xref" href="#topic_fwt_tbp_zgc">Fetch row data</a></li>
<li class="li"><a class="xref" href="#topic_t3l_vbp_zgc">Update row</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested2" id="topic_m51_lbp_zgc">
<h3 class="title topictitle3" id="ariaid-title4">Creating a new Excel workbook</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Create workbook</em> action to create a new Excell workbook with a
specified name.</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_m51_lbp_zgc__table_sv2_gvj_jgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e222" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e224" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e222" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e224" style="text-align:left;vertical-align:top;"><code class="ph codeph">workbook_name</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e222" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e224" style="text-align:left;vertical-align:top;">
<code class="ph codeph">created_date_time</code>,
<code class="ph codeph">http_status_code</code>,
<code class="ph codeph">last_modified_date_time</code>,
<code class="ph codeph">web_url</code>, <code class="ph codeph">workbook_id</code>,
<code class="ph codeph">workbook_name</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title5" class="topic nested2" id="topic_evr_pbp_zgc">
<h3 class="title topictitle3" id="ariaid-title5">Creating a worksheet within a Excel workbook</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Create worksheet</em> action to create a new worksheet within an
existing workbook.</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_evr_pbp_zgc__table_f5t_nwj_jgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e302" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e304" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e302" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e304" style="text-align:left;vertical-align:top;">
<code class="ph codeph">workbook_id</code>,
<code class="ph codeph">worksheet_name</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e302" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e304" style="text-align:left;vertical-align:top;">
<code class="ph codeph">http_status_code</code>, <code class="ph codeph">id</code>,
<code class="ph codeph">name</code>, <code class="ph codeph">position</code>,
<code class="ph codeph">visibility</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title6" class="topic nested2" id="topic_ezr_rbp_zgc">
<h3 class="title topictitle3" id="ariaid-title6">Adding a row to an Excel worksheet</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Add row to sheet</em> action to append a new row to an existing
worksheet.</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_ezr_rbp_zgc__table_q1z_wwj_jgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e382" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e384" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e382" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e384" style="text-align:left;vertical-align:top;">
<code class="ph codeph">workbook_id</code>,
<code class="ph codeph">sheet_name</code>, <code class="ph codeph">values</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e382" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e384" style="text-align:left;vertical-align:top;">
<code class="ph codeph">address</code>, <code class="ph codeph">cell_count</code>,
<code class="ph codeph">column_count</code>,
<code class="ph codeph">column_hidden</code>,
<code class="ph codeph">column_index</code>,
<code class="ph codeph">http_status_code</code>,
<code class="ph codeph">row_count</code>, <code class="ph codeph">row_hidden</code>,
<code class="ph codeph">row_index</code>,
<code class="ph codeph">values</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title7" class="topic nested2" id="topic_fwt_tbp_zgc">
<h3 class="title topictitle3" id="ariaid-title7">Fetching data from a row in an Excel worksheet</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Fetch row data</em> action to retrieve values in a specific row based
on a row index.</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_fwt_tbp_zgc__table_ucb_3xj_jgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e482" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e484" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e482" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e484" style="text-align:left;vertical-align:top;">
<code class="ph codeph">spreadsheet_id</code>,
<code class="ph codeph">row_index</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e482" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e484" style="text-align:left;vertical-align:top;"><code class="ph codeph">row_data</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title8" class="topic nested2" id="topic_t3l_vbp_zgc">
<h3 class="title topictitle3" id="ariaid-title8">Updating a row in an Excel worksheet</h3>
<div class="body">
<p class="p">Use the <em class="ph i">Update row</em> action to update values in a specific row based on a
row index.</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_t3l_vbp_zgc__table_yjc_4xj_jgc" rules="all" summary="">
<colgroup>
<col>
<col>
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d52e550" style="text-align:left;vertical-align:top;"> </th>
<th class="entry cellrowborder" id="d52e552" style="text-align:left;vertical-align:top;">Variables</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d52e550" style="text-align:left;vertical-align:top;">Inputs</td>
<td class="entry cellrowborder" headers="d52e552" style="text-align:left;vertical-align:top;">
<code class="ph codeph">spreadsheet_id</code>,
<code class="ph codeph">header_row</code>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d52e550" style="text-align:left;vertical-align:top;">Output</td>
<td class="entry cellrowborder" headers="d52e552" style="text-align:left;vertical-align:top;">
<code class="ph codeph">address</code>, <code class="ph codeph">cell_count</code>,
<code class="ph codeph">column_count</code>,
<code class="ph codeph">column_hidden</code>,
<code class="ph codeph">column_index</code>,
<code class="ph codeph">http_status_code</code>,
<code class="ph codeph">row_count</code>, <code class="ph codeph">row_hidden</code>,
<code class="ph codeph">row_index</code>,
<code class="ph codeph">values</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title9" class="topic nested1" id="topic_akg_wsq_chc">
<h2 class="title topictitle2" id="ariaid-title9">Recipe: Using an action flow to maintain a centralized incident log in Excel</h2>
<div class="body">
<p class="p">The following example action flow adds data to a centralized incident log in
Microsoft Excel. Each time a Zendesk ticket is classified as an incident, the action
flow automatically adds a new row to the spreadsheet with the full incident details.
This allows the team to automate the tracking of trends, analization of impact, and
reporting on incident volume.</p>
<div class="p">Such an action flow would consist of the following steps:<ol class="ol" id="topic_akg_wsq_chc__ol_t2n_bxq_chc">
<li class="li">Add an action flow trigger with the following details:<ol class="ol" id="topic_akg_wsq_chc__ol_l2n_nwq_chc" type="a">
<li class="li">Click <strong class="ph b">Add trigger</strong>.</li>
<li class="li">In the step sidebar, under <strong class="ph b">Zendesk</strong>, click
<strong class="ph b">Tickets</strong>.</li>
<li class="li">Click <strong class="ph b">Properties</strong> and select <strong class="ph b">Ticket type changed</strong>.</li>
<li class="li">Click <strong class="ph b">Add condition</strong>.</li>
<li class="li">Under <strong class="ph b">Variable</strong>, select <strong class="ph b">Ticket type changed</strong> and
<strong class="ph b">Type</strong>.</li>
<li class="li">Set the <strong class="ph b">Operator</strong> to <strong class="ph b">Is</strong>.</li>
<li class="li">Under <strong class="ph b">Value</strong>, enter <strong class="ph b">Incident</strong>.</li>
</ol>
</li>
<li class="li">Add a step to look up ticket details:<ol class="ol" id="topic_akg_wsq_chc__ol_u1q_wcx_chc" type="a">
<li class="li">In the action builder, beneath the action flow trigger, click the
<strong class="ph b">Add step</strong> icon (<img class="image" id="topic_akg_wsq_chc__image_ls5_1xr_1hc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/icon_action_flows_add.png" width="16">).</li>
<li class="li">In the step sidebar, under <strong class="ph b">Zendesk actions</strong>, click <strong class="ph b">Look up
ticket</strong>.</li>
<li class="li">Under <strong class="ph b">Ticket ID</strong>, click into the field and then click
<strong class="ph b">Select a variable instead</strong>.</li>
<li class="li">Within the variable menu, select <strong class="ph b">Ticket type changed</strong> as the
step that output the variable you want to use, and then select
<strong class="ph b">Ticket ID</strong>.</li>
</ol>
</li>
<li class="li">Add a step to look up user details about the ticket requester:<ol class="ol" id="topic_akg_wsq_chc__ol_zjp_qdx_chc" type="a">
<li class="li">In the action builder, click the <strong class="ph b">Add step</strong> icon (<img class="image" id="topic_akg_wsq_chc__image_ox3_rdx_chc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/icon_action_flows_add.png" width="16">).</li>
<li class="li">In the step sidebar, under <strong class="ph b">Zendesk actions</strong>, click <strong class="ph b">Look up
user</strong>.</li>
<li class="li">Under <strong class="ph b">User ID type</strong>, select <strong class="ph b">Zendesk user ID</strong>.</li>
<li class="li">For <strong class="ph b">User ID</strong>, click <strong class="ph b">Add variable</strong>.</li>
<li class="li">Within the variable menu, select <strong class="ph b">Look up ticket</strong> as the step
that outputs the variale you want to use, and then select
<strong class="ph b">Requester ID</strong>.</li>
</ol>
</li>
<li class="li">Add a step to lookup details about the ticket requester's organization:<ol class="ol" id="topic_akg_wsq_chc__ol_wxc_k2x_chc" type="a">
<li class="li">In the action builder, click the <strong class="ph b">Add step</strong> icon (<img class="image" id="topic_akg_wsq_chc__image_xxc_k2x_chc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/icon_action_flows_add.png" width="16">).</li>
<li class="li">In the step sidebar, under <strong class="ph b">Zendesk actions</strong>, click <strong class="ph b">Look up
organization</strong>.</li>
<li class="li">Under <strong class="ph b">Organization ID type</strong>, select <strong class="ph b">Zendesk organization
ID</strong>.</li>
<li class="li">For <strong class="ph b">Organization ID</strong>, click <strong class="ph b">Add variable</strong>.</li>
<li class="li">Within the variable menu, select <strong class="ph b">Look up user</strong> as the step
that outputs the variale you want to use, and then select
<strong class="ph b">Organization ID</strong>.</li>
</ol>
</li>
<li class="li">Add a step that adds a row to an Excel spreadsheet with the information you
collected for the ticket, user, and organization:<ol class="ol" id="topic_akg_wsq_chc__ol_jhh_52x_chc" type="a">
<li class="li">In the action builder, click the <strong class="ph b">Add step</strong> icon (<img class="image" id="topic_akg_wsq_chc__image_lqs_52x_chc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/icon_action_flows_add.png" width="16">).</li>
<li class="li">In the step sidebar, under <strong class="ph b">External actions</strong>, click
<strong class="ph b">Microsoft Excel</strong> and then select <strong class="ph b">Add row to
sheet</strong>.</li>
<li class="li">Select the Excel sheet's <strong class="ph b">Workbook ID</strong> and <strong class="ph b">Sheet
name</strong>.</li>
<li class="li">Under <strong class="ph b">Row values</strong>, use variables from the previous steps to
capture the details you want about the ticket, user, and
organization associated with the incident. Enter the data in the
order the columns appear in the sheet, separating each column's
value by a comma.<p class="p">For example, this might include the ticket's ID,
subject, and date created; the ticket requester's name; the
organization's name, and more. </p>
</li>
</ol>
</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
<li class="li">Click <strong class="ph b">Test</strong> to <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/9052312956570#topic_uyj_qsw_3fc" target="_blank">test the action flow</a>.</li>
<li class="li">Click the options menu (<img class="image" id="topic_akg_wsq_chc__image_lg5_yjx_chc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/options-menu-icon-small.png">) and select <strong class="ph b">Activate</strong> to begin using the
action flow to automatically log incident tickets in your Excel
spreadsheet.</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/9840801141274",
"url": "https://support.zendesk.com/hc/en-us/articles/9840801141274-Using-Microsoft-Excel-actions-in-action-flows",
"headline": "Using Microsoft Excel actions in action flows",
"description": "You can connect Microsoft Excel to an action builder to automate creating, updating, and reading Excel workbooks and worksheets within action flows for centralized data management.",
"articleSection": "Extending Zendesk",
"datePublished": "2025-10-17T17:41:18+00:00",
"dateModified": "2025-12-10T15:44:54+00:00",
"inLanguage": "en-US",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/9840801141274"
},
"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>