The Zendesk for Salesforce integration syncs Zendesk tickets to Salesforce cases, enabling ticket reporting and business workflows in Salesforce. When the ticket sync package is installed, Zendesk maps most of the standard ticket fields to Salesforce case fields.
You can also display a view of Zendesk tickets on a Salesforce Case page. See Setting up Ticket View in Salesforce.
This article contains the following sections:
- Important considerations
- Recommendations before setting up
- Setting up ticket sync
- Creating a Salesforce case record type
- Installing the ticket sync package in Admin Center
- Configuring Zendesk tickets to Salesforce cases sync
- Configuring and activating Zendesk triggers
- Standard field mappings
- Custom field mappings
- Configuring organization matching
- Configuring ticket requester matching
- Checking if ticket sync has successfully installed
- Checking your ticket sync setup
Related articles:
Important considerations
- Zendesk ticket attachments do not sync to Salesforce.
- Closed tickets do not sync to Salesforce. If a ticket has not synced and is already closed, you'll need to find an alternate method of creating a corresponding case within Salesforce, such as the Salesforce API.
Recommendations before setting up
Ticket sync is an advanced feature, and it's important to understand the behavior before setting it up in your production accounts. We recommend the following tasks:
- Test ticket sync in your Salesforce and Zendesk sandbox accounts before setting it up in your production account.
- If you have data sync enabled and you are testing with Salesforce sandbox and Zendesk production accounts, it's recommended to disable Create if no match found in Ticket Organization Matching and Ticket Requester Matching to prevent duplicate organization and user records in Zendesk.
Setting up ticket sync
Setting up ticket sync requires performing a number of tasks to the Salesforce case object, Zendesk triggers, and in the Zendesk Admin Center.
To set up ticket sync from Zendesk to Salesforce
Creating a Salesforce case record type
To create a Salesforce record type
- In Salesforce, click the Setup icon in the upper right.
- Click Object Manager.
- On the Object Manager page, click Case.
- Click Record Types in the left navigation pane.
- Click New in the upper right of the page.
- Follow the steps on the Salesforce page to create a record type. It is
recommended to name your Record Type Label: Zendesk Ticket
Sync.
Installing the ticket sync package in Admin Center
The ticket sync package creates standard Zendesk ticket fields in the case object and maps them to standard case fields.
For the ticket sync package to create case fields, the authenticated user must have permission to modify the Salesforce metadata API.
To install the ticket sync package
- In Admin Center, click
Apps and integrations in the sidebar, then select Integrations > Integrations.
- On the Integrations page, click Salesforce.
- Click the Data sync tab.
- In Ticket sync, click Configure.
- In Ticket sync package, click Install.
Configuring Zendesk tickets to Salesforce cases sync
After the steps in the previous sections are completed, the ticket sync is enabled to allow mapping and syncing of Zendesk fields to Salesforce cases.
To configure settings for sending tickets to Salesforce cases
- In Admin Center, click
Apps and integrations in the sidebar, then select Integrations > Integrations.
- On the Integrations page, click Salesforce.
- Click the Data sync tab.
- In Ticket sync, click Configure.
- Select the Enable ticket sync checkbox, and configure the settings for sending Zendesk tickets to Salesforce cases.
- In Record type, enter the Record type ID created earlier. You can find
the Record type ID in your Salesforce
account by clicking the Setup icon, then Object Manager >
Case > Record Types, and clicking on the record type to
find the ID in the URL.
- In Custom ticket field mapping, map Zendesk ticket fields with the
Salesforce case fields you want populated. Standard field mapping is provided
and the ability to customize mapping.Note: You must map all required Salesforce case fields. If a required field is not mapped, the sync will fail. Drop-down fields mapped to picklists must have all possible values from Zendesk mapped to options in Salesforce. For more information, see Standard field mappings and Custom field mappings.
- In Organization matching, configure how Zendesk organizations are synced to Salesforce accounts. For more information, see Configuring organization matching.
- In Ticket requester matching, configure how Zendesk ticket requesters are synced to Salesforce contacts or leads. For more information, see Configuring ticket requester matching.
- Click Save.
- Webhook: (Salesforce Integration) Sync tickets to Salesforce
- Trigger: (Salesforce Integration) Sync tickets to Salesforce
Webhooks are used to send notify external applications when a ticket is created or updated. Triggers are business rules that are defined in Zendesk.
Configuring and activating Zendesk triggers
Zendesk triggers are created from conditions and actions. They run immediately after Zendesk tickets are created or updated.
By default, the Salesforce trigger is inactive. The trigger conditions must be reviewed and the trigger activated for ticket sync to work.
To configure and activate the trigger
- In Admin Center, click
Objects and rules in the sidebar, then select Business rules > Triggers.
- Find the (Salesforce Integration) Sync tickets to Salesforce trigger, and
click the trigger name to edit it.
- Modify the trigger conditions as needed. Use the conditions as a filter to set which tickets should be sent to Salesforce. Do not rename the trigger.
- Click Save to save your trigger settings.
- On the Triggers page, set the Status to Inactive.
- Hover your mouse over the (Salesforce Integration) Sync tickets to
Salesforce trigger to display the options menu icon (
) and select Activate.
Standard field mappings
Zendesk Ticket Field | Salesforce Case Field |
Type | Type |
Priority | Priority |
Status | Status |
Zendesk Ticket ID | Zendesk_Support_Ticket_ID__c |
Subject | Subject |
Description | Description |
Requester ID | ContactId |
Requester Name | Zendesk_Support_Ticket_Requester_Name__c |
Requester Email | Zendesk_Support_Ticket_Requester_Email__c |
Organization ID | AccountId |
Organization Name | Zendesk_Support_Ticket_Organization_Name__c |
Brand Name | Zendesk_Support_Ticket_Brand_Name__c |
Zendesk Assignee | Zendesk_Assignee__c |
Assignee Name | Zendesk_Support_Ticket_Assignee_Name__c |
Assignee Group | Zendesk_Support_Ticket_Group_Name__c |
Tags | Zendesk_Support_Ticket_Tags__c |
URL | Zendesk_Support_Ticket_URL__c |
Ticket form name | Zendesk_Support_Ticket_Form_Name__c |
Date/Time created | Zendesk_Support_Ticket_Created_At__c |
Date/Time updated | Zendesk_Support_Ticket_Updated_At__c |
Date/Time solved | Zendesk_Support_Ticket_Solved_At__c |
Date/Time initially assigned | Zendesk_Support_Ticket_Initial_Assigned__c |
Resolution time (calendar) | Zendesk_Support_Ticket_Resolution_Cal__c |
Resolution time (business) | Zendesk_Support_Ticket_Resolution_Bus__c |
Comment | Ticket comments are not synced to a case field. However, you can set up Ticket View in Salesforce cases to view ticket comments. See Setting up Ticket View in Salesforce. |
Custom field mappings
- Requester wait time (calendar)
- Requester wait time (business)
- Agent wait time (calendar)
- Agent wait time (business)
- On-Hold time (calendar)
- On-Hold time (business)
- First Reply time (calendar)
- First Reply time (business)
If you'd like to sync custom fields, you can set up custom field mapping. Custom field mapping enables Zendesk ticket fields to be mapped to fields on the Salesforce Case object (either a system field or a custom field). This mapping takes place in the Zendesk Admin Center within the Ticket Sync settings.
The table below shows which Zendesk field types can be mapped to Salesforce field types for ticket sync.
- Multi-line
- Credit card
- Regex
- Lookup relationship
Mapping a multi-select Zendesk field will cause errors whenever that field has a value. Do not map multi-select fields to sync to Salesforce.
- EncryptedString
- ID
- MultiPicklist
- Percent
- Reference
- TextArea
- URL
Case Origin picklist fields in Salesforce cannot be mapped.
To map custom Zendesk ticket fields to the Salesforce Case object
- In Salesforce, click the Setup icon in the upper right.
- Click Object Manager.
- On the Object Manager page, click Case.
- Click Fields & Relationships in the left navigation pane, then click
New.
- Select a Data Type for your new field, then click Next. See table
above for which field types can be mapped between Zendesk and Salesforce.Note: When mapping a drop-down field in Zendesk to a text field in Salesforce, the tag values will show, not the field values. For more information on how tags work with custom ticket fields, see Understanding custom ticket fields, tags, and business rules.
- Enter a Field Label. It is preferred to match the Field Label to the Zendesk Custom Field Name.
- Complete the other mandatory fields, then click Save.
- Repeat steps 4-7 to create additional custom fields.
- In Admin Center, click
Apps and integrations in the sidebar, then select Integrations > Integrations.
- In Salesforce integration, click Configure > Data sync > Ticket sync > Configure > Custom ticket field mapping. The custom case fields previously created appear in the Salesforce fields.
- Map your Zendesk fields to Salesforce fields, then click Save.
After mapping, when a ticket is sent into Salesforce, custom field data is automatically populated according to the field mappings.
Configuring organization matching
When configuring ticket sync, there are two options for setting the matching criteria for organizations:
- If your Account to Organization data sync is disabled, use default matching criteria and field mappings. The default matching criteria is Organization Name to Account Name. By default, when Zendesk sends ticket information to Salesforce, if an exact email match is not found between the ticket’s organization and account, a new account is created in Salesforce.
- If your Account to Organization data sync is enabled, the custom matching criteria configured is used to match the ticket’s organization with Salesforce accounts. You can view your custom matching criteria in Admin Center > Integrations > Integrations > Salesforce, then navigate to > Configure > Data sync >Ticket Sync > Configure. See Organization syncing options.

Organization syncing options
The organization syncing section provides the following configuration options:
- Sync to existing Accounts syncs the organization to the existing Salesforce account based on the matching criteria.
-
Sync to existing Accounts and create if no match lets you map the
Zendesk organization ID to a Salesforce account field. You can select from
any standard and custom Salesforce account fields. This one-way sync is
useful for displaying which Salesforce account is linked to a Zendesk
organization.
If you have required fields on the Salesforce account for creation, those fields need to be populated from the Zendesk organization by mapping them in the Accounts to Organizations sync page.
-
Salesforce default Account lets you enter an existing account as the
default account in Salesforce if no organization exists in Zendesk. Setting
a default account prevents orphaned accounts from being created.Note: The Organization field in Salesforce does not inherit the account of the contact in the Requester field. This Organization field only populates based on the organization information present on the ticket within Zendesk.
Configuring ticket requester matching
When configuring ticket sync, there are two options for setting the matching criteria for the ticket requester:
- If your Contact or Lead to User data sync is disabled, use default matching criteria and field mappings. By default, when Zendesk sends ticket information to Salesforce, and an exact email match is not found between the ticket requester and a contact, a new contact is created in Salesforce.
- If your Contact or Lead to User data sync is enabled, the custom matching
criteria configured is used to match the ticket requester with Salesforce
contacts or leads. You can view custom matching criteria in Admin Center >
Integrations > Integrations > Salesforce, then select Configure
> Data Sync > Ticket Sync> Configure.
Requester syncing options
The ticket requester section provides the following configuration options:
- Sync to existing Contacts/Leads syncs the requester to the existing Salesforce contact or lead based on the matching criteria.
-
Sync to existing Contacts/Leads and create if no match lets you map
the ticket requester's user ID to a Salesforce contact or lead field. Select
from any standard and custom Salesforce contact or lead field. This one-way
sync is useful for displaying which Salesforce contact or lead is linked to
a Zendesk user.
If you have required fields on the contact or lead for creation, they must be populated from the Zendesk user by mapping them in the Contacts/Leads to Users sync page.
- Salesforce default Contact/Lead lets you enter an existing contact or lead as the default contact or lead for new contacts if you opt to create new contacts for unmatched ticket requesters and no user exists in Zendesk. Enter the Salesforce contact or lead ID in the provided field.
Checking if ticket sync has successfully installed
- Go to Salesforce > Setup > Deployment
Status.
- Check for a deployment time for when you installed the package to see if the deployment was successful or failed. If the deployment failed, Salesforce will provide you with detailed errors. Review the errors and resolve them. If you cannot resolve them, contact Zendesk Support and provide a screenshot of the error.
- Go to Salesforce > Object Manager > Case >
Fields & Relationships. Check if additional case fields were
created in your Salesforce Case object, as shown below for each standard
Zendesk ticket field.
- Once you have confirmed steps 2 and 3 were successful, continue with setting up ticket sync.
Checking your ticket sync setup
Use the following checklist to check your data sync is set up correctly:
- Confirm you have activated the Salesforce trigger in your Support settings.
- Confirm the trigger JSON body has not been edited and is as shown below. Any
change to the JSON body causes the sync to
fail.
{"ticket_id": {{ticket.id}}, "salesforce_org_id": "YOUR_SFDC_ORG_ID"}
- Confirm you have entered the correct Record Type ID. If the Record Type ID is incorrect, the sync will fail. Note: Record Type ID is not your Salesforce Org ID.
- Confirm that all required Salesforce case fields are included in custom ticket field mappings. If you do not map all required fields, the sync will fail.
43 comments
Harsharndeep Dhillon
Hello, Team.
We have field called API Source on Contact object which captures the source of origin of contact like if the contact is created through Pardot, API Source will be mapped to Riva (Pardot) etc.
We have been using ticket sync and we have selected the option of matching existing contacts and create new contact if no match is found.
Is there any specific field to identify and can be used to update our API Source field?
Thank you!
0
Dwight Bussman
HeyO Harshmandeep,
When syncing tickets to SFDC cases which create a Contact, the fields set for contact-syncing are set using the values in Zendesk (like a reverse-sync, but only for creation).
To that end, if you'd like to populate that API Source field in the newly-created Contact, you'd need to have that field mapped and a value present on the Zendesk user to sync over at the moment of creation.
Alternately, perhaps there's a way to programmatically populate that field exclusively within SFDC when created via the Zendesk integration. This would involve custom coding within Salesforce if it's not being done via the field-mapping I mentioned above. If you'd like to pursue this path, I recommend reaching out to your Salesforce Admins to explore whether an apex trigger/workflow process might accomplish this.
0
Technical Support
If Zendesk_Ticket_View were able to be placed on a Lightning Record Page for Case opening to the detail of the Zendesk Ticket based on the related Case.Zendesk_Support_Ticket_ID__c, then it would be a good substitute for the lack of Zendesk Comment synchronization.
If I put a Zendesk_Ticket_View on the Case Lightning Record Page, no Zendesk Tickets are shown in the list. My assumption is that it was only designed to go on the Account Lighting Record Page.
0
Dwight Bussman
Yep - per the article "Setting up Ticket View in Salesforce" the Ticket View will only work from the Account, Contact, Lead, or Opportunity pages. It is not designed to work from the Case page.
0
Technical Support
Right - which is problematic. It means you cannot see ticket comments from within the Case page. You have to jump to Account scroll to the Zendesk Ticket View, find the ticket in the list then click on it to see the comments.
It's a lot of steps - not easily navigated quickly.
0
Dwight Bussman
Ah - now I think I understand. I'll definitely share that feedback with the team that build the integration. My understanding is that they'd intended folks to use the Cases more for reporting purposes, and the Ticket View (from the aforementioned 4 objects) for looking into comments.
Given that each ticket has a unique ID that's stored in a hidden case-field, I suspect it'd be possible to modify the ticket view to embed within the case-page and look up its ticket counterpart based on this field.
Thanks for the feedback!
0
Tal Admon
+1 for having the ticket view in Case records.
Great suggestion, Nate!
0
Dan Heintzelman
Not sure if this is any use to anyone, especially you, Nate, but I created a formula filed in Salesforce that concatenates my Zendesk Domain with the ticketID that get's synced in, so that if I want to pull up Zendesk directly from the case record, I can do that from a report, or from a list view. First screen shows you what it looks like.
Type is a "Formula" field that returns TEXT.
The Formula looks like this:
HYPERLINK("https://{yourdomainhere}.zendesk.com/agent/tickets/" + Zendesk_Support_Ticket_ID__c ,"#" + Zendesk_Support_Ticket_ID__c + ": Click to open in Zendesk" , '_blank')
The current Zendesk/Salesforce Case Viewer component we use on the account object for viewing a collection of cases and their statuses, but we don't really interact with them there because it is a bit clunky. SF reporting is so powerful though so it's really easy for us to look at our cases from a report then use the link to open them (from a management perspective). I'd like to see the integration evolve to either having the option to sync ticket comments (as mentioned previously) or as @... has said, a viewer on the case object, but maybe it would work better as a canvas/iframe into the actual ZD viewer.
0
Dave Dyson
Hi Dan, thanks for the tip! Would you mind posting this to our User Tips & Tricks topic? That way more users might find it.
1
Anika Rani
Excited to share that today we have released support for Ticket View in Salesforce Cases. This allows you to see full Zendesk Ticket details in a Case record, including the ticket comment history.
Refer to section Setting up Ticket View in Salesforce Cases in this article to get this setup.
0
Jacob Clarke
Are you able to see ticket details/comments within the salesforce case without a zendesk license? For example if a leader on another team who does not use zendesk wanted to view a ticket within salesforce (would the ability to edit) would they be able to?
0
Dave Dyson
If when the Salesforce integration is set up, it's set to "Install for all users", then all Salesforce users should be able to view tickets: Setting up the Zendesk for Salesforce integration
In order to create or edit tickets, Salesforce users will need to enter Zendesk agent credentials: Adding Zendesk credentials to create and edit tickets
Hope that helps!
0
Caroline Åserød
We have set up the ticket sync and ticket view on case. But when the tickets sync, the owner of the ticket is automatically set to me i Salesforce, I guess because I was the one setting up the sync. We want the owner of the ticket in Zendesk to be the owner of the synced case i Salesforce. Is there an easy solution to this?
0
Jacob Clarke
@... Thank you for the note! Just confirming that all users can not only see the ticket but also the ticket thread. We recently implemented Ticket view and realized non zendesk users can't view or drill down into the ticket details.
0
Dwight Bussman
Jacob Clarke - what you're describing is a bug that's currently under investigation by our developers. If you don't already have a ticket, please contact our support team and they can link your ticket to the Dev investigation so that you're informed when a fix is released.
0
Jacob Clarke
Dwight Bussman Zendesk asks each user to authenticate their license before viewing drill down information within ticket view. Are you saying that the authentication requirement is a bug and the intention for ticket view is for all SFDC users to be able to see all ticket data?
I just want to make sure that if we opt into using Ticket Sync over Ticket view that all SFDC users will be able to see the contents of the ticket (more than just the ticked id, Subject, status, and dates)
0
Dwight Bussman
Jacob Clarke - correct: the expected behavior of the ticket view is to be visible to all SFDC users regardless of whether they have Zendesk credentials linked. The ability to create/edit tickets from that view is the only portion that should require linking one's zendesk user, as documented here: https://support.zendesk.com/hc/en-us/articles/4408828317082#topic_nd4_c1r_pjb
The biggest upside of the ticket sync over the ticket view is that you would also have the ability to report on tickets (cases) within Salesforce. It also allows for the creation of custom business logic within SFDC based on updates to Case objects.
The potential downsides of the ticket sync compared to the ticket view are:
0
Dwight Bussman
HeyO Jacob Clarke - apologies for the double-messaging - I replied too quickly this morning. In reviewing comments from our developers after posting the above, it appears they have released a fix for this issue which should return to the expected behavior: anyone who has access to the ticket-view should be able to drill in to view ticket details. Please let us know if you're seeing otherwise.
0
Jeff
After installing the Zendesk for Salesforce app and the ticket sync package, I created custom fields for 'first reply time (bus)' and 'first reply time (cal)' but these fields have not shown up in Zendesk. It has been over 24 hours. How do I get these fields to sync?
0
Dwight Bussman
heyO Jeff - those fields should sync automatically, no need to map them within the settings page.
0
Jeff
Thanks, Dwight. I figured out the issue was the data format in SFDC. I had the field as a date field but it needed to be text. It's working as expected now.
0
Dwight Bussman
Ah - excellent. Thanks for closing the loop on this.
1
Mandy Major
Has something changed within this sync? We have found a couple instances of tickets syncing to the incorrect SFDC org. Upon investigation, it appears the integration is not respecting capitalization in Account ID matching
I've been able to fix the records manually in SFDC, but when the Zendesk ticket gets updated, it reverts back to the wrong SFDC account.
1
Reuven Shelef
Dwight Bussman
Something is wrong with the Ticket Sync configuration. Clicking the SAVE button doesn't work.
Please see attached screenshot and advise. Contacted Support a week ago (ticket # 10521639) - no one seems to be doing anything about it.
0
Dwight Bussman
HeyO Reuven Shelef
I see you've already got a ticket open with our support team on this issue. I'll see that someone reaches out to you within that ticket shortly.
1
Clem Wilson
Hello, I can't find any documentation actually for setting up Ticket View in Salesforce Cases as mentioned above. The link takes me to a page on doing a data sync, which is very different from Ticket View. Can you please direct me to the documentation specifically for ticket view in salesforce cases?
thank you!
1
Orlando C
Hi Clem Wilson,
I took over the support request that you opened for this inquiry. To avoid confusion, I will be merging this to the already existing support request and we can continue our conversation form there.
Thanks!
0
Orlando C
This request was closed and merged into request #10696444 "Conversation: Setting up ticket ...".
0
Dave Jensen
We recently added a bunch of new fields into our Zendesk/SFDC instances and just set up the mapping rules for the ticket sync. It is successfully syncing now, however I'm wondering if there is some trick we can use to mass sync tickets (similar to these steps for mass syncing from the Account/Organization level). I'm hoping we can do something to mass update tickets from our Zendesk instance without needing to wait for a ticket to be updated in ZD and cause our triggers to fire and send the synced data to SFDC.
0
Dwight Bussman
HeyO Dave Jensen
I've seen other customers tackle this with an automation with the following conditions:
performing the action of adding that sync_me_to_sfdc tag.
This would fire on 1k tickets per hour until all non-closed tickets have had that tag added. The act of adding a tag should be sufficient to push the tickets over unless the default trigger conditions have been changed.
Alternately, you could bulk-update tickets to add a tag/comment like "syncing to salesforce"
0