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 steps specific to those connected systems to your action flow. The steps associated with external systems are referred to collectively as external steps.
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 steps for the supported external systems have been pre-defined, admins can also create actions to define other external system tasks you want to include in your action flows.
Best practices for connecting to external systems
- All external steps 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
- Confluence
- Google Sheets
- Jira
- Microsoft Excel
- OpenAI
- Salesforce
- Shopify
- Slack
- 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 steps, 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 steps 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: When connecting to Atlassian Confluence, you must use the Atlassian sign-in system 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 tennant admin add the connector first.
- 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 steps available for the connected system.
Understanding what external steps are available
- Using Confluence steps
- Using Google Sheets steps
- Using Jira steps
- Using Microsoft Excel steps
- Using OpenAI steps
- Using Salesforce steps
- Using Shopify steps
- Using Slack steps
Using Confluence steps
Confluence steps can be used to create, update, and add comments to Confluence pages.
-
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 steps
Google Sheets 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.
-
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 steps
Jira 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.
-
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
orissue_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
orissue_key
,transition_id
Output none
Using Microsoft Excel steps
Microsoft Excel steps can be used to create and update Excel workbooks and worksheets as well as reading data from them.
-
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 OpenAI steps
The OpenAI steps in action flows 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.
-
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:
where [description] is replaced with a value by clicking Add variable.Analyze this ticket and categorize it into one of the following: Billing, Technical Issue, Feature Request, Bug Report, General Inquiry. Ticket:[description]
Variables Inputs model
,text
Output content
Using Salesforce steps
The Salesforce steps make it possible to automate many of the actions an agent might take as they work tickets. For example, you can use the Salesforce steps 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.
-
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
-
Accounts:
-
Convert lead to opportunity: Transforms a lead into an opportunity.
Variables Inputs lead_id
,account_id
Output opportunity_id
Using Shopify steps
Shopify steps in action flows make it possible to automatically populate customer information and order details when handling tickets, cancel tickets, and issue refunds without leaving Zendesk.
-
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 steps
Slack 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.
-
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