
The Zendesk for Salesforce integration provides a sync of Zendesk tickets to Salesforce cases. This enables reporting on Zendesk tickets support analytics generated in Salesforce, and triggering other business workflows in Salesforce.
This article contains the following sections:
- 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
Related articles:
Recommendations before setting up
Ticket sync is an advanced feature and it is important to understand the behavior before setting it up in your production accounts. We recommend the following tasks:
- Test ticket syncing in your Salesforce and Zendesk sandbox accounts first before setting it up in your production account.
- If you are using the legacy integration, don't enable ticket sync in both integrations at the same time. This may cause duplicate records to be created in Salesforce. When you are ready to enable the new ticket sync, turn off this feature in the legacy integration first.
- If you have data sync enabled and you are testing with Salesforce sandbox and Zendesk production accounts, it is recommended to not enable Create if no match found in Ticket Organization Matching and Ticket Requester Matching since this may create duplicate organization records 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
Record types are used to implement a custom business process in Salesforce. It is not mandatory to create a record type. However, if you are using your Salesforce Case Object for another process, the record type ensures the Zendesk tickets are kept separate.
To create a Salesforce Record Type
- In Salesforce, click the Setup icon in the upper right, then click Object Manager
- In the Object Manager page, click Case.
- Click Record Types in the left navigation pane, and 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 Zendesk Admin Center, click the Integrations icon (
) in the left navigation pane.
- Next to Salesforce, click Configure.
- Click the Data Sync side tab, and in Ticket sync, click Configure.
- In Ticket sync package, click Install.
Configuring Zendesk tickets to Salesforce cases sync
Once the steps in the previous sections are completed, the ticket sync is enabled to allow mapping and syncing Zendesk fields to Salesforce cases.
To configure settings for sending tickets to Salesforce cases
- In your Zendesk Admin Center, select Integrations icon (
) in the left navigation pane.
- Next to the Salesforce Integration, click Configure.
- Click the Data Sync side tab, and in Ticket Sync, click Configure.
- Select the Enable syncing 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. 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.
- Target: (Salesforce Integration) Sync tickets to Salesforce
- Trigger: (Salesforce Integration) Sync tickets to Salesforce
Targets 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 in order for ticket sync to work.
To configure and activate the trigger
- In Support, click the Admin icon (
) in the sidebar, and under Business Rules, select 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, select the Inactive tab.
- Next to the (Salesforce Integration) Sync tickets to Salesforce trigger, click the More Options icon, and select Activate.
Standard field mappings
When the ticket sync package is installed, Zendesk creates and maps most of the standard ticket fields to Salesforce case fields as shown in the following table.
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_Requester_Email__c |
Organization ID | AccountId |
Organization Name | Zendesk_Support_Ticket_Organization_Name__c |
Brand Name | Zendesk_Support_Ticket_Brand_Name__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 |
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)
This is done by creating custom case fields in Salesforce first, and then mapping the ticket fields in the Admin Center.
To map custom Zendesk ticket fields to the Salesforce Case Object
- In Salesforce, click the Setup icon in the upper right, then click Object Manager
- In the Object Manager page, click Case.
- Click Fields & Relationships section in the left navigation pane, then click New.
- Select a Data Type for your new field, then click Next. In most cases Text, Text Area, or Number is appropriate. For Zendesk drop-down fields, a Text field is sufficient. Only the selected value is be synced.
- Enter a Field Label. It is preferred to match the Field Label to the Zendesk Custom Field Name.
- Complete the other mandatory fields, and click Save.
- Repeat steps 3-6 to create additional the custom fields.
- In Admin Center, go to the Salesforce integration, then 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, and 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 > Salesforce Integration > Configure > Data Sync Account to organization sync.

Organization matching options
The organization matching section contains the following configuration options:
- Create if no match checkbox: Select this checkbox if you want to create a new account in Salesforce when no match is found for the ticket's organization.
Note: It is recommended to not enable the Create if no match found checkbox if you have Account to Organization data sync enabled and you are testing with your Salesforce sandbox and Zendesk production accounts. This is to prevent duplicate organization records being created in Zendesk while testing.
-
Default Salesforce Account ID: If you opt to create new accounts unmatched ticket organizations, you can 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 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 > Salesforce > Configure > Data Sync Account to organization sync.
Ticket requester matching options
The ticket requester section provides the following configuration options:
- Create if no match checkbox: If no existing record is found for the match, select the checkbox to create a new Contact or Lead in Salesforce when no match is found for the ticket's requester.
Note: It is recommended that you do not enable Create if no match found checkbox if you are have Contact or Lead to User data sync enabled and you are testing this feature with your Salesforce sandbox and Zendesk production accounts. This is to prevent duplicate Organization and User records being created in Zendesk while testing.
- Default Salesforce contact/lead ID: If you opt to create new contacts for unmatched ticket requesters, you can enter an existing Contact or Lead as the default Contact/Lead for new Contacts if no user exists in Zendesk by entering the Salesforce Contact/ Lead ID.
19 Comments
What is the ETA on support for Ticket Comments?
Are there plans to support Salesforce Lookup fields?
Hi Jeff -
Apologies that the team working on the integration hasn't had a chance to get back to you yet. If you're available, they're doing a live Q&A on the new Salesforce integration for customers who have API rights tomorrow (11/21) at 12pm CT, which you could join and ask your questions in.
In the previous integration when the Ticket Requester Contact did not exist in Salesforce and Zendesk created it a Zendesk ID was added to the SF Contact record.
This does not appear to be the case in the new SF Sync.
We based several workflows off of this field. Is there another identifier to determine that this is a Zendesk created contact?
Jeff Callahan
1. We are still gathering feedback and requests for syncing ticket comments to cases. This was not a highly adopted feature in the previous integration. However, you can still view full ticket details and comments using Ticket View.
2. Lookup fields - are you asking about mapping Salesforce lookup fields to Zendesk for data syncing? We will continue to gather requests for this as well, however lookup fields may reference data that our sync does not support. The best workaround for this at the moment is to create a field in a supported object (Account or Contact/Lead) and use a trigger or process builder to update that field from the lookup field. Then map this field over to Zendesk.
3. We will be supporting syncing Zendesk User ID and Organisation ID to Salesforce. This will be available in upcoming releases in the next few weeks.
Anika Rani - thanks for the response.
1. It is problematic that we now have to sync to the Case Object. The irony here is that my Company has been pushing to switch to Service Cloud which I have been able to block so far. However if all of the ZD data will now be in the Case Object then the Data Migration piece is no longer an excuse.
2. I am looking to sync Lookup fields from SF Account to Picklist fields on the ZD org. The reason for this is that we have corresponding Picklists fields on the Tickets. When a User raises a Ticket from an Org where the Version Picklist is set to 1.25 (tag=v1.25) this will also set the corresponding field on the Ticket.
I got around this by creating a single SF formula field to transform/combine all of the Account Lookup values into a tag format. I then sync'd this to the Org tag field in ZD. The tags will sync and populate corresponding fields on Tickets. I also created individual SF fields to transform the lookup values into text and sync these with Text field on the ZD Org for Reference.
3. Glad to hear the ZD ID will be supported. Will there be a notification?
Hi Team Zendesk!
Re. ticket comments sync with Salesforce, where you've stated, "Note: Ticket comments are not currently supported." (found on this page, https://support.zendesk.com/hc/en-us/articles/360037607294, right after the header, Standard field mappings, at the end of the mapping table), could you please provide us with any thoughts/insights/ETA on When would the feature be available? And in the meantime, is there any recommended workaround/solution to sync them with Salesforce?
Ticket comments are highly valuable to our business and we really need them to be in sync with SF.Many thanks in advance and looking forward to your thoughts on this!
Best,
Taka
@taka
Thanks for your question and feedback.
We are gathering feedback and requests for syncing ticket comments to Cases. This will determine whether we support syncing comments and the ETA.
This was not a highly adopted feature in the previous integration and we found the most common use case for syncing tickets was for reporting and triggering workflows in Salesforce. Comments don't seem to be critical for this in the majority of the scenarios we see.
You can see full ticket details and comments in Salesforce using Ticket View. The difference here is that these are visible in Salesforce, but not stored in Salesforce.
I would love to learn more about the value of storing ticket comments in Salesforce and your use case for this. if you don't mind, I'll reach out to you directly? This is valuable feedback for us and we will consider supporting syncing of comments as we get more feedback on this.
Anika Rani
Facing this issue of "Failed to install Ticket Sync Package". Not sure if someone else is facing the same. Trying to get Tickets to sync with Case object in Salesforce.
Not only are ticket comments very important to us, but also attachments.
We are a software company and our product is highly customizable. Our customers can write their code and integrate with our product. Our customer support personells have Zendesk accounts but R&D don't. In many cases, our developers need to get involved and help support for troubleshooting and customizing codes. This requires them to read comments and download attachments sent from our customers.
With the current custom Zendesk object in Salesforce, we can have comments available for developers. We also have a Salesforce cron job to retrieve attachment info (file name, download url, etc) via Zendesk's REST API, and save them in another custom object that has lookup reference to the ticket object.
Please help me understand how we can keep this practice going, after migrating to the new Case object. Without comments being pushed to SF this could be a very big problem for us.
Thanks.
Hi! I've been having some issues with the new ticket sync. I have some New and Updated tickets that show the
"Message pushed to target
Anika Rani
Hi Anika,
Thank you very much for sharing your insights re. ticket comments sync with Salesforce.
Have a great day!
Best,
Taka
@Victor, I'm going to bring this into a ticket so our Customer Advocacy team can look into this further.
You'll receive an email shortly stating your ticket has been created.
Cheers!
I am experiencing the same issues as Victor.
The Ticket Sync worked with just default fields in the Custom ticket field mapping
I then added a Custom Ticket field to the Mapping and the sync stopped working.
I have since removed the Customer field however the Sync has not resumed.
Note I have both the Legacy SF Sync and the new SF Sync enabled. The Legacy sync is configured to sync tickets into the Zendesk managed Salesforce Object.
The ZD Ticket Events show that both triggers are firing however Tickets are only created for the sF Legacy Sync
I experienced a similar issue with the Account Sync.
Please advise how I can troubleshoot this
Not sure if this is related, but the sync stopped at the same time I deleted a test ticket in ZD
Murthy Tumuluri
If your package install is failing, please check:
1. The user authenticating to the integration has modify access to the Salesforce metadata API
2. Have you exceeded the number of fields allowed on the Case Object?
3. Check that the package install was actually successful by:
- seeing if any additional Zendesk fields were created on the Case Object
- checking the deployment status in Salesforce, is this successful or failed.
Based on your findings here we can resolve the issue. Please raise a ticket with us accordingly.
Thanks!
Victor Carreon
Zendesk triggers currently support tickets being created and updated, which means any update to the ticket will trigger the sync to Salesforce (assuming it also meets any other conditions). If you mark a ticket as Solved, this will sync to Salesforce. Can you please provide an example of a Ticket # marked as solved in Zendesk which did not arrive in Salesforce, on the ticket that Brett created for you.
Ping Lu
We do realise the importance of having comments visible to Salesforce users so your developers can still view ticket comments, by setting up and using Ticket View.
We will consider supporting attachments based on feedback of the new integration. Attachments were not a widely used feature in the previous integration and are not a common use case.
As a workaround, you could consider having the attachments URL loaded into a custom ticket field, and this URL field can be synced as a custom field to the Case Object.
I noticed the Zendesk Ticket ID is available on the Case object. There are a few fields we had in our legacy sync that we're hoping get updated: 1.The Organization ID & Last Sync Date fields to the Account Object 2. Zendesk Support User ID to Contact object 3.External ID populated on the Zendesk side that showed the Salesforce Account ID so our team knew the sync created the Organization in Zendesk.
Hi Anika,
Thanks a lot for coming back to me. The Ticket Views are helpful for displaying tickets related to contact, account or lead. Is there a centralized place for Salesforce users to search and/or show tickets, e.g. by Zendesk Id? Currently we have a custom Visual Force page for that purpose, and it is based on the Zendesk custom object. Are the Ticket Views based on a new External Object in SF that we can access via Apex codes, so as to create a similar page?
As for the attachments URL, I guess it will be saved in a custom field in Case object. As far as I understand, high level info of tickets will be saved in the Case Object, while details like comments are shown in the ticket view. Is there any way to link Case and the data behind the Ticket Views, and show everything in one place?
Thanks so much.
Please sign in to leave a comment.