Using external actions in action flows (EAP)


What's my plan?




All Suites
Growth, Professional, Enterprise, or Enterprise Plus







Note: Action builder is currently in an early access program (EAP). You can sign up for the EAP here.
Action builder provides an easy way to integrate Zendesk with external systems through action flows. This is accomplished by connecting to external systems and adding actions specific to those connected systems to your action flow. The steps associated with external systems are referred to collectively as external actions.
By connecting to these external systems, admins can automate workflows, improve collaboration, and maintain a seamless experience across multiple platforms. For example, you can define action flows that create a Jira issue based on a Zendesk ticket or create a Jira issue and then notify a Slack channel and update a Zendesk ticket with a link to the Jira issue.
Additionally, while many actions for the supported external systems have been pre-defined, admins can also create custom actions to define other external system tasks you want to include in your action flows.
This article contains the following topics:

Best practices for connecting to external systems
Connecting to an external system
Understanding what external actions are available


Related article:

Creating action flows (EAP)




Best practices for connecting to external systems

When connecting to external systems for use in action flows, the following best practices are recommended:

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.
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.
When managing credentials for API key-based tools, such as OpenAI, it's best to store keys in a secure vault or credential manager.





Connecting to an external system

Before you can include external actions in your action flows, you must connect to the external systems you intend to integrate with. Action flows support connections to the following external systems:

Confluence
Google Sheets
Jira
Microsoft Excel
Microsoft Outlook
Microsoft Teams
OpenAI
Salesforce
Shopify
Slack



To connect to an external system

In Admin Center, click Apps and integrations in the sidebar, then select Actions > Action flows.

Create or edit an action flow.
Open the step sidebar.
Under External actions, click the external system you want to connect to.
Click Connect.
Follow the external system's prompts to authenticate and complete the connection.

Note: 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.
Note the following details about authenticating with the external systems:


Confluence: Use Atlassian to authenticate the account.

Google Sheets: Use Google to authenticate the account. You'll log into a Google Workspace or Gmail account, and admin approval might be required in managed environments.

Jira: Use Atlassian to authenticate the account.

Microsoft Excel: Use Microsoft to authenticate the account. Depending on your organization's policies, you might need to authorize device or app access.

Note: To ensure the connection is successful, you must have a Microsoft tenant admin add the connector first.


Microsoft Outlook: Use Microsoft to authenticate the account. Ensure the account used for authentication has the necessary permissions to send and read emails.
The following scopes are required: Mail.Send and Mail.Read, Mail.ReadWrite.


Microsoft Teams: Use Microsoft to authenticate the account. You must use a service account when connecting to Microsoft Teams because it uses User Scopes. Authenticating with a personal account won't work properly.
The following scopes are required: ChannelMessage.Send, Chat.ReadWrite, ChannelMessage.Read.All, User.ReadBasic.All, User.Read.All, offline_access.


OpenAI: Use an API key to authenticate the account. The connection isn't confirmed until you test or use an action flow with OpenAI steps.

Salesforce: Use Salesforce to authenticate the account.

Shopify: Use the Shopify OAuth system to authenticate the account.

Slack: Use Slack to authenticate the account. To complete authentication, you must invite the Zendesk connector app:
/invite @Zendesk Connector


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 the connected system.






Understanding what external actions are available

Each supported system has unique action steps available for use within your action flows. An action flow can include multiple external actions across the supported systems. For more information about specific actions and examples of how you might use them, see:

Using Confluence actions
Using Google Sheets actions
Using Jira actions
Using Microsoft Excel actions
Using Microsoft Outlook actions
Using Microsoft Teams actions
Using OpenAI actions
Using Salesforce actions
Using Shopify actions
Using Slack actions


Note: If you don't see an external system listed that you want to use, you can create custom actions to define other external system tasks you want to include in your action flows. These are exposed in action builder as custom actions rather than external actions.



Using Confluence actions

Confluence action steps can be used to create, update, and add comments to Confluence pages.
The following actions are available:


Create page: Creates a new Confluence page with the specified title and text-based content.







Variables




Inputs

space_id, title, value



Output
Full metadata







Update page: Updates an existing Confluence page with specified text-based changes.







Variables




Inputs

space_id, title, value



Output
Full metadata







Create footer comment: Adds a comment to an existing Confluence page.







Variables




Inputs

page_id, value



Output

id, status








Search for a page: Search for a Confluence page by its title.







Variables




Inputs
title


Output

id, title












Using Google Sheets actions

Google Sheets action steps can be used to create spreadsheets and add data to a sheet created within the action flow, such as an AI-generated ticket summary, which can then be shared with other users.
The following actions are available:


Create spreadsheet: Creates a spreadsheet.







Variables




Inputs
spreadsheet_title


Output

spreadsheet_id, sheet_title,







Create a new sheet: Adds a sheet to a spreadsheet. Includes the option to specify column headings and an initial row of data.







Variables




Inputs

spreadsheet_id, sheet_title



Output

spreadsheet_id, sheet_title








Append row: Adds a row to a sheet previously created within the action flow.







Variables




Inputs

spreadsheet_id, sheet_title, values



Output

spreadsheet_id, sheet_title, values












Using Jira actions

Jira action steps can be used to automatically create and update Jira issues based on tickets. For example, you could automatically create Jira issues for bugs reported in Zendesk tickets, check a Jira issue's status before closing a Zendesk ticket, update Jira issue assignment based on ticket assignment, or move a Jira issue from one status to another when a ticket is being worked.
The following actions are available:


Create issue: Creates a new issue in the connected Jira project.







Variables




Inputs

project_id, summary, issue_type_id, assignee_id, priority_id, description, labels



Output

id, key, self








Get issue: Retrieves details about an issue.







Variables




Inputs

issue_id or issue_key



Output
Full issue metadata







Edit issue: Update a Jira issue's details, including summary, assignee, and description.







Variables




Inputs

project_id, summary, issue_type_id, assignee_id, priority_id, description, labels



Output

id, key, self








Transition issue: Changes a Jira issue's workflow status. For example, "In progress" when work begins.







Variables




Inputs

issue_id or issue_key, transition_id



Output
none











Using Microsoft Excel actions

Microsoft Excel action steps can be used to create and update Excel workbooks and worksheets as well as reading data from them.
The following actions are available:


Create workbook: Creates a new Excel workbook with a specified name.







Variables




Inputs
workbook_name


Output

created_date_time, http_status_code, last_modified_date_time, web_url, workbook_id, workbook_name








Create worksheet: Creates a new worksheet within an existing workbook.







Variables




Inputs

workbook_id, worksheet_name



Output

http_status_code, id, name, position, visibility








Add row to sheet: Appends a new row to an existing worksheet.







Variables




Inputs

workbook_id, sheet_name, values



Output

address, cell_count, column_count, column_hidden, column_index, http_status_code, row_count, row_hidden, row_index, values








Fetch row data: Retrieves the values in a specific row based on a row index.







Variables




Inputs

spreadsheet_id, row_index



Output
row_data







Update row: Updates the values in a specific row based on a row index.







Variables




Inputs

spreadsheet_id, header_row



Output

address, cell_count, column_count, column_hidden, column_index, http_status_code, row_count, row_hidden, row_index, values












Using Microsoft Outlook actions

Microsoft Outlook action steps can be used to send, reply to, forward, and search for emails in Microsoft Outlook. These steps use the Microsoft Graph API to provide secure and reliable email automation, streamlining communication, reducing manual email handling, and improving response times.
The following actions are available:


Find email: Retrieves an email based on the email's subject or sender details for further use in the action flow.







Variables




Inputs

subject, from



Output

body, categories, change_key, conversation_id, conversation_index, created_datetime, from_address, from_name, has_attachments, id, internet_message_id, is_delivery_receipt_requested, is_draft, is_read, is_read_receipt_requested, last_modified_datetime, parent_folder_id, received_datetime, replyTo_address, replyTo_name, sent_datetime, subject, web_link








Forward email: Forwards an existing email to a specified recipient.







Variables




Inputs

to_email, subject, body, content_type, cc_emails, bcc_emails, save_to_sent_items



Output
email_id







Reply to email: Sends a reply to an existing email using the email ID.







Variables




Inputs

to_email, subject, body, content_type, cc_emails, bcc_emails, save_to_sent_items



Output
none







Send email: Send a new email to a specified recipient with a subject and body.







Variables




Inputs

to_email, subject, body, content_type, cc_emails, bcc_emails, save_to_sent_items



Output
none











Using Microsoft Teams actions

Microsoft Teams action steps can be used to send updates and notifications from Zendesk to Microsoft Teams. This allows for automated actions, such as posting messages to channels or individuals and adding reactions to messages. Automating interactions in Microsoft Teams can streamline collaboration and keep teams aligned without needing to leave their primary workspace.
The following actions are available:


Add reaction to channel message: Adds an emoji reaction to a message in a channel.







Variables




Inputs

external_id, team_id, channel_id, message_id, reaction



Output
none







Add reaction to direct message: Adds an emoji reaction to a direct message.







Variables




Inputs

external_id, message_id, reaction



Output
none







Look up thread: Retrieves a thread of messages from a channel or direct message.







Variables




Inputs

external_id, team_id, channel_id, message_id



Output
messages







Look up user: Retrieves data about a user in Microsoft Teams for further use in the action flow.







Variables




Inputs

external_id, user_id



Output

display_name, email, real_name, user_id








Post message to channel: Sends a message to a specified channel in Microsoft Teams.







Variables




Inputs

external_id, team_id, channel_id, message



Output
id







Post direct message: Sends a message to a specified user in Microsoft Teams.







Variables




Inputs

external_id, message



Output
id











Using OpenAI actions

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.
GPT 5.0 is supported for all of the OpenAI steps. This enhances automation capabilities by providing better contextual understanding and more natural responses.
The following actions are available:


Analyze sentiment: Detects the emotional tone.







Variables




Inputs

model, text



Output
sentiment







Summarize text: Condenses large quantities of text into a brief summary.







Variables




Inputs

model, text



Output
summary







Extract keywords: Identifies main topics or entities. These can then be used as tags for tickets.







Variables




Inputs

model, text



Output
keywords







Send prompt: A custom prompt and response from the OpenAI API.
For example, a prompt might be:
Analyze this ticket and categorize it into one of the following: Billing, Technical Issue, Feature Request, Bug Report, General Inquiry.
Ticket:[description]
where [description] is replaced with a value by clicking Add variable.








Variables




Inputs

model, text



Output
content











Using Salesforce actions

The Salesforce action steps can be used to automate many of the actions an agent might take as they work tickets. For example, you can use the Salesforce actions in action flows to automatically create new leads or other Salesforce objects when a user contacts you, automatically add notes to a Salesforce record after a customer interaction, clean up duplicated data, look up Salesforce contact data prior to sending a Slack message or creating a Jira issue, automatically convert highly rated leads identified by AI scoring models, and more.
The Salesforce actions can be used with the following Salesforce objects: leads, contacts, accounts, opportunities, cases, and campaigns. The following actions are available for each of these objects:


Create record: Adds a new record to an object.







Variables




Inputs

name, phone, description



Output
id







Update record: Changes field values for an existing record.







Variables




Inputs

name, phone, description



Output
id







Delete record: Removes a lead or case from Salesforce.







Variables




Inputs
object_id


Output
none







Find record: Searches for a record based on identifying information, such as an email address or ID. The inputs and output vary by object.







Variables




Inputs



Accounts: name, phone, description


Leads: first_name, last_name, email


Contacts: first_name, last_name, email


Opportunities: name


Cases: case_number


Campaigns: name





Output



Accounts: id, name


Leads: Full lead metadata

Contacts: Full contact metadata

Opportunities: Pipeline metadata

Cases: Case metadata

Campaigns: id, name, status










Convert lead to opportunity: Transforms a lead into an opportunity.







Variables




Inputs

lead_id, account_id



Output
opportunity_id











Using Shopify actions

Shopify action steps make it possible to automatically populate customer information and order details when handling tickets, cancel tickets, and issue refunds without leaving Zendesk.
The following actions are available:


Search order: Retrieves details of a Shopify order using an email address, order ID, or order date.







Variables




Inputs
query


Output
orders







Cancel order: Cancels the order in Shopify. Includes options to issue a refund, restock items, and notify the customer.







Variables




Inputs

order_id, reason, refund



Output
none







Create refund: Initiates a full refund process in Shopify. You can choose whether to notify customers.







Variables




Inputs

order_id, notify_customer, notes



Output

amount, id












Using Slack actions

Slack action steps can be used in action flows to streamline communication and make sure users know about other things being performed by action flows. For example, you can send messages to channels and individual users alerting them of new tickets or Jira issue assignments, post AI-generated summaries of tickets into a Slack thread, escalate direct messages to public channels for broader visibility, add reactions to automatically acknowledge messages, or extract message details for analysis and reply with AI-generated content.
The following actions are available:


Post message to channel: Send a message to a public or private channel.







Variables




Inputs

channel, message



Output

channel, ts, ok








Send direct message: Send a message to a specific user.

Note: Although Slack supports DMs with up to 9 other individuals, this step only supports sending a direct message to a single individual.







Variables




Inputs

email, message



Output
Full message data







Reply to message thread: Post a reply to a message in a thread. This step can create a thread or reply within an existing thread.







Variables




Inputs

email, message



Output
None







Fetch thread messages: Retrieves all messages in a thread.







Variables




Inputs

channel, thread_ts, reply_ts



Output
messages







Add reaction: Adds a specified emoji reaction to a message.







Variables




Inputs

channel, name, timestamp



Output
success







Fetch message: Retrieves message content and metadata.







Variables




Inputs

channel, timestamp



Output

text, user








Find user: Retrieves a Slack user so that they can be used later in the action flow.







Variables




Inputs
user_id


Output

display_name, email, real_name, user_id











