The Zendesk for Salesforce integration provides one-way data sync from Salesforce to Zendesk Support. This article describes how to set up two types of data sync:
- Salesforce accounts to Zendesk organizations — Zendesk organizations in Support are automatically created and updated when Salesforce accounts are created or modified.
- Salesforce contacts or leads to Zendesk users — Zendesk users in Support are automatically created and updated when Salesforce contacts or leads are created or modified.
Related articles:
Understanding the data sync process
A data sync is triggered when a mapped field is updated in an existing Salesforce record, or a new record is created. Any unmapped fields that are updated do not trigger the sync.
When a Salesforce record is created or changed, the syncing process determines whether to create a new record or update an existing record in Zendesk Support. This is done by comparing field values based on the defined criteria.
Once a successful match of existing records has been made, or a new record has been created in Support, the Salesforce and Support records are linked. This means that subsequent updates to the record in Salesforce don't use matching criteria but instead update the linked record in Support.
If more than one matching result is found, the sync cannot determine which record needs to be updated. Because this is a background process, the ongoing sync won't update records and logs an unsuccessful sync event.
If a Salesforce user updates a mapped field indirectly through a Salesforce flow, sales process, or Apex trigger, the field may not sync to Zendesk if the user who triggered the indirect update does not have edit permission to the mapped field.
A sync is triggered to Zendesk when records are created or updated to a mapped field using the Salesforce API.
Because data syncing is one-way, any changes applied in Zendesk are not reflected in Salesforce.
Salesforce accounts to Zendesk Organizations sync
The Salesforce account to Zendesk organization sync is a one-for-one sync that uses account name to organization name for matching records by default. However, not all Salesforce implementations adhere to this rule. If you have duplicate account names, you can change this to another unique account field. This might not be a suitable feature if you don't have unique account fields.
This data sync has the following limitations:
- Data sync consumes Salesforce streaming API governor limits. For example, if you have a large amount of data to be synced, this exceeds the governor limit, and data may not sync.
- Salesforce Person accounts are imported as Zendesk Organizations. If you'd prefer a Salesforce Person account to be added as a Zendesk user, you can perform a bulk import of users or use the Create user API with Salesforce-specific information.
Salesforce contacts or leads to Zendesk users sync
The sync from Salesforce contacts or leads to Zendesk users is one-for-one, based on unique email addresses. However, not all Salesforce implementations adhere to these rules, so consider whether this feature suits your needs.
This data sync has the following limitations:
- For security reasons, data sync will not sync a Salesforce contact to a Zendesk user if the Zendesk user is an agent or admin.
- Data sync consumes Salesforce streaming API governor limits. For example, if you have a large amount of data to be synced, this exceeds the governor limit, and data may not sync.
Setting up a data sync
Setting up a data sync requires several tasks in Salesforce and Zendesk Admin Center.
To set up data sync for your integration
- Set up the Zendesk for Salesforce integration.
- Configure Salesforce API settings and permissions for syncing.
- In Admin Center, configure sync settings for Salesforce accounts to Zendesk organizations and Salesforce contacts or leads to Zendesk users.
Configuring your Salesforce API settings and permissions
Before setting up a data sync, some Salesforce APIs settings and permissions must be enabled for data sync to be successful. The information in the following procedures is described for the Salesforce Lightning edition.
To enable the Salesforce API
- On the Salesforce Setup page, select Administration > Users > Profiles.
- Select System Administrator or the authenticated user's profile.
- Click System Permissions and select the API enabled
checkbox.
To set streaming API channel permissions
- On the Salesforce Setup page, select Administration > Users > Profiles.
- Select the user profile of the admin setting up the integration.
- Click Object Settings > Streaming Channels, and under
Object Permissions, select the Read checkbox.
To set PushTopic permissions
- On the Salesforce Setup page in the left sidebar, select Administration > Users > Profiles.
- Select the user profile of the admin setting up the integration.
- Click Object Settings > Push Topic, and click Edit.
- Under Object Permissions, select the Read checkbox, and click
Save.
To enable Streaming API
- On the Salesforce Setup page in the left sidebar, select Platform tools > User Interface > User Interface.
- Under Setup, select the Enable Streaming API checkbox.
Configuring Salesforce accounts to Zendesk Organizations sync
The following procedure explains setting up a sync so Zendesk organizations in Support are automatically created and updated when Salesforce accounts are created or modified.
To configure Salesforce accounts to Zendesk organization sync
- 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 Accounts to Organizations sync, click Configure.
- Select the Enable syncing checkbox, and configure the settings for which accounts and account fields are synced to Zendesk.
- In Sync filtering, configure conditional filters to define which Salesforce accounts are synced to Zendesk. For more information, see Understanding sync filtering.
- In Matching criteria, set the criteria for matching Salesforce accounts to Zendesk organizations. For more information, see Understanding matching criteria.
- In Field mapping, map which Salesforce account fields you want to populate with the Zendesk organization field. For more information, see Understanding field mapping.
- In Synced organization mapping, you can choose to map the Zendesk
organization to a Salesforce account. Select any standard or custom
Salesforce account field. This one-way sync is useful for displaying a
Zendesk user linked to a Salesforce account. Note: This mapping field is a place for Zendesk to send the Organization ID. Choose a field where you'd want to see this data written. It will overwrite any information that might have been there previously. The Salesforce integration only writes the Organization ID into the synced organization mapping field on the first successful sync. Subsequent syncs do not populate this field within Salesforce.
- In Zendesk external ID, select the checkbox if you want the external
ID to populate the Zendesk organization external ID field. This can only be
set to the Salesforce Account ID. Note: Any existing external ID values are overridden and cannot be reverted. This may impact other applications that rely on this field. This change is only applied when you click Save.
- Click Save to save your configuration. Confirmation of saved settings is displayed.
Configuring Salesforce contacts or leads to Zendesk users sync
The following procedure explains configuring a sync so Zendesk users in Support are automatically created and updated when Salesforce contacts or leads are created or modified.
To configure Salesforce contacts or leads to Zendesk user sync settings
- 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 Contacts/Leads to User sync, click Configure.
- Select the Enable syncing checkbox, and configure the settings for which contacts or leads and associated fields are synced to Zendesk.
- In Sync Type, select if you want Zendesk users to be created based on Salesforce contacts or leads. Note that you can only select one.
- In Sync Filtering, configure conditional filters to choose which Salesforce contacts or leads accounts are synced to Zendesk. For more information, see Understanding sync filtering.
- In Matching criteria, set the criteria for matching Salesforce contacts or leads to Zendesk users. For more information, see Understanding matching criteria.
- In Field mapping, map which Salesforce contact or lead fields you want to populate with Zendesk organization field. For more information, see Understanding field mapping.
- In Synced user mapping, you can choose to map the Zendesk user to a
Salesforce contact or lead. Select any standard or custom Salesforce contact
or lead field. This one-way sync is useful for displaying a Zendesk user
linked to a Salesforce contact or lead.Note: This mapping field is a place for Zendesk to send the User ID. Choose a field where you'd want to see this data written. It will overwrite any information that might have been there previously. The Salesforce integration only writes the User ID into the synced user mapping field on the first successful sync. Subsequent syncs do not populate this field within Salesforce.
- In Zendesk external ID, select the checkbox if you want the external
ID to populate the Zendesk user external ID field. This can only be set to
the Salesforce Contact ID. Note: Any existing external ID values are overridden and cannot be reverted. This may impact other applications that rely on this field. This change is only applied when you click Save.
- In General options, select the Send welcome email checkbox to send a welcome email to new users in Support. For more information, see Customizing the welcome email and the account verification email.
- Click Save to save your configuration. Confirmation of saved settings is displayed.
Understanding sync filtering
In the Data Sync > Sync Filtering section, you can filter which Salesforce accounts are synced to Zendesk or choose which Salesforce contacts or leads accounts are synced to Zendesk. You can control the sync by building conditional statements. If no filters are set, all accounts are in scope for syncing.
To create a sync filter condition, specify the field, the operator, and the value:
- Meet ALL of the following conditions: All conditions added to this section must be met to include the Salesforce record in the sync.
- Meet ANY of the following conditions: One or more conditions in this section must be met to include the Salesforce record in the sync.
Sync filtering has the following rules:
- All values are case-sensitive.
- Multiple values in a condition can be separated by a comma with no spaces.
- When using a Salesforce picklist field in the sync filter, the value must be the API name of the picklist options.
- The Account Record Type field in Salesforce is not supported.
- When a checkbox type field is used as a condition, enter a true or
false value.
The following Salesforce fields are not supported for filtering:
- Formula field
- Lookup field
- Long text area field
- Currency fields
Understanding matching criteria
In the Data sync > Matching criteria section, the criteria is set for matching Salesforce accounts to Zendesk organizations, or Salesforce contacts or leads to Zendesk users. When a record in Salesforce is created or changed, the syncing process checks whether a new organization or user record in Support should be created, or an existing organization or user record should be updated. This is done by comparing the values set in the matching criteria that you set. When a match is found, the corresponding fields are updated according to your field mapping settings.
The options in the Zendesk field drop-down vary according to the type of field you select in the Salesforce drop-down. Standard and custom fields are supported for matching.
Note:
- Only one matching criterion is supported.
- If more than one matching result is found, the sync won't be successful since it can't determine which record needs to be updated. In this case, ongoing sync won't update records and logs an unsuccessful sync event.
Understanding field mapping
The field mapping sections enable Salesforce fields to be mapped to Zendesk fields. Every Salesforce account, contact, or lead field should be mapped to a standard or custom Zendesk field. Mapped fields are updated during the sync.
The Salesforce data is the "source of truth" for mapped fields. If a mapped Zendesk field contains data upon sync, it is overwritten with the Salesforce data. If you don't want to overwrite data in Zendesk, don't map the field. The Tags, Email, and Phone fields are exceptions. These fields are appended with Salesforce values upon sync. Salesforce email addresses added to Zendesk during sync are added as secondary addresses.
When a multi-picklist Salesforce field is selected for mapping, a Mapped values link is displayed. The link opens a window to map multiple Salesforce fields to Zendesk fields.
In this instance, avoid mapping multiple Salesforce fields to a single field in Zendesk. Otherwise, only the last Salesforce field mapped will be synced.
The following Salesforce fields are not supported for mapping:
- Text area (long)
- Text area (rich)
- Text area (encrypted)
- Lookup field — Salesforce lookup fields cannot be mapped to Zendesk because the lookup fields values are stored in a related Salesforce object
- Record type ID
Salesforce accounts to Zendesk organizations field mapping
In Data Sync > Accounts to Organizations sync, the Field mapping section maps the Salesforce account fields you want to populate with Zendesk organization fields. This controls which field in the Salesforce account record is synced as its related organization name. By default, this is set to Account Name to Organization Name.
The drop-down options in the Zendesk field vary according to the type of field you select in the Salesforce drop-down. The following table shows which Salesforce field types can be mapped to Zendesk field types.
Salesforce field type | Text |
Drop-down |
Decimal |
Checkbox |
Date | Numeric |
ID | ✓ | |||||
String | ✓ | |||||
Phone | ✓ | |||||
Picklist | ✓ | ✓ | ||||
Currency | ✓ | ✓ | ||||
Boolean | ✓ | ✓ | ||||
Checkbox | ✓ | |||||
Date/Time | ✓ | ✓ | ||||
Number | ✓ | ✓ | ||||
Double | ✓ | ✓ | ||||
Date | ✓ | ✓ | ||||
Multi picklist |
✓ | |||||
✓ |
Salesforce contacts or leads to Zendesk users field mapping
In Data Sync > Contacts/Leads to users sync, the Field mapping section maps Salesforce contact or lead fields you want to populate with Zendesk user fields. This identifies which field in the Salesforce contact or lead account record is synced as its related user. By default, field mapping is set to Email to Email.
The drop-down options in the Zendesk field vary according to the type of field you select in the Salesforce drop-down. The following table shows which Salesforce field types can be mapped to Zendesk field types.
Salesforce field type | Text |
Drop-down |
Decimal |
Checkbox |
Date | Numeric |
ID | ✓ | |||||
String | ✓ | |||||
Phone | ✓ | |||||
Picklist | ✓ | ✓ | ||||
Currency | ✓ | ✓ | ||||
Boolean | ✓ | ✓ | ||||
Checkbox | ✓ | |||||
Date/Time | ✓ | ✓ | ||||
Number | ✓ | ✓ | ||||
Double | ✓ | ✓ | ||||
Date | ✓ | ✓ | ||||
Multi picklist |
✓ | |||||
✓ |
Checking your data sync setup
Use the following checklist to help check your data sync is setup correctly:
- Ensure you have the correct Salesforce API settings requirements for the integration.
- Confirm you have only connected one Salesforce account to one Zendesk account.
- Sync filter: Confirm you aren't using unsupported Saleforce fields such as Formula Field and Lookup field.
- Sync filter: Confirm you're using the correct syntax in the sync filter values. These are case-sensitive and must exactly match the Salesforce field value. If you're using a Salesforce picklist field for filtering, the value is the API name.
- Sync field mapping: Check the field mapping includes Name to Name. This is mandatory because organizations can't be created in Zendesk without a name.
- Sync field mapping: If you added or removed Zendesk dropdown field options or Salesforce picklist options, you may need to remove and remap the field to resolve sync errors or add new options.
- When testing the sync, did you make updates to the Salesforce fields that are mapped to Zendesk? Sync is only triggered when a mapped field is updated.
- If you have Validate user phone numbers enabled on the End users page in Admin Center, Zendesk verifies that all phone numbers synced from Salesforce use a valid international E.164 format. To avoid phone number validation errors in Zendesk Support, format phone numbers using the E.164 format in Salesforce, which includes the plus sign (+). For more information, see Why do phone numbers synced from Salesforce lose their country code?
101 comments
Dwight Bussman
HeyO Jason Wong
If a contact in SFDC belongs to a given account and you're syncing accounts from SFDC into Zendesk organizations, that relationship should be created in Zendesk when the contact syncs after the account sync has taken place.
There is some good documentation about account relationship syncing within https://support.zendesk.com/hc/en-us/articles/4408832217882#topic_fbc_clr_3tb
Please contact support if there are questions not covered by those articles or if you're seeing behavior that disagrees with what we've documented.
0
Daniel Clymore-Greene
Can I set a matching criteria from Salesforce based on the domain name of the organization in Zendesk? The interface allows me to map this field, but I'm not seeing it as an option in the matching criteria?
0
Dwight Bussman
HeyO Daniel Clymore-Greene
It's not currently possible to match based on the domain name field, as it's not something that's indexed for the search (on which that matching relies). It should be possible to sync a single SFDC field into multiple fields within Zendesk. As such, it should be possible to push it into a custom Organization field and then use that field for matching instead.
0
Daniel Clymore-Greene
Thanks Dwight Bussman. Is it possible to push the "Domains" name field that get's automatically added to orgs, into a custom Org field, and then use that custom field to match to Salesforce? I know I can have Salesforce push the field to Zendesk once matched, but the specific ask here is to find a way to utilize the domain name that comes in via email address and is automatically added to the ticket and respective org. In this way, ZD orgs would automatically be created and updated with the SF data sync without us having to manually create the ZD org every time a new customer inquires to ZD Support.
0
Dwight Bussman
heyO Daniel Clymore-Greene
The issue here is that there are contradictory goals that cannot both be fulfilled by the same field:
- Is responsible for users being automatically added to an org when their users are created in zendesk (when they reach out to Zendesk for the first time)
- Cannot be used for matching as it is not indexed for search
- does nothing in terms of users being added to orgs
- Can be used for sync-matching for the integration since custom org-fields are indexed for search
You should be able to set both fields (the system field as well as a custom field) from a single SFDC field as shown here:

Please feel free to contact our support team if you're having difficulties syncing into multiple fields as shown above.
0
Daniel Clymore-Greene
Dwight Bussman Understood, but what I'm wondering is if I can set the "2.Custom Org Field" from the "1.Default System Domains" field. Is that possible?
0
Dwight Bussman
0
John Tieu
Hi,
I can't seem to get the integration to update the user's Zendesk organization when their related contact account is changed in Salesforce. Is this because the integration can't use lookup fields? Is there a workaround for this as having a Zendesk user under a different org than their related Salesforce account will become a major issue for us.
2
Jhan
0
David Gillespie
Hello everyone!
We appreciate your feedback on this topic and would love to hear more directly from you live. Please join us on September 12th at 5PM CDT for our PM Roundtable on our Salesforce integration.
It’ll be an open discussion on what is and isn’t working for you on with the Salesforce integration built by Zendesk. We're collecting feedback at the moment to help inform a new roadmap of improvements across the integration. So please bring those questions, concerns and use cases because we want to hear from you!
The link to register can be found here, we’d love to see you all there.
Cheers,
David
0
David Gillespie
Hi Everyone,
Following up on this thread after our PM Roundtable on the Salesforce Integration. Just wanted to stay another big thank you for providing feedback in this area.
In case you missed the PM Roundtable session, please find the deck, recording, and follow up article. Thank you again for your feedback!
Cheers,
David
0
Paul Spencer
Hi,
Is there a way to force a sync for all organisation data from Salesforce to ZD?
We have had the integration in place for a few years now and I have added a new field to sync but of course this will only sync new or updated org's, I would like to refresh the info in ZD with the info in SFDC?
Thanks
Paul
0
Dwight Bussman
HeyO Paul Spencer - We've got this article on how to push a large volume of records : https://support.zendesk.com/hc/en-us/articles/4408834863386
If that isn't quite what you're after, I would encourage reaching out to our support folks to discuss further.
0
Paul Spencer
Thanks for that Dwight Bussman, it's not quite what I'm after, as I'm not an admin of SFDC I don't think I would have permissions. I was hoping that maybe you guys had developed something in the background.
I'll try reaching out to support and see if they have any ideas.
Thanks again,
Paul
0
Dwight Bussman
Ah - If by "reaching out to support" you mean Zendesk's support folks, I suspect our support team will give a similar answer: there isn't currently a way for our integration to "pull" a large volume of records from SFDC - they'd need to be "pushed" via an update to one of their mapped fields as documented in that article. I'm not aware of a good method for batch-update of records within SFDC without leveraging the API, but perhaps some SFDC admins know additional tricks for that kind of action.
0
Ankush Khurana
Is there any alternate/workaround to sync a Lookup field from SFDC Account Object to a Zendesk Organization field?
0
Dwight Bussman
Ankush Khurana - I recommend reviewing the steps outlined in this article: https://support.zendesk.com/hc/en-us/articles/4408823748890-Salesforce-Syncing-lookup-field-information-to-Zendesk-Support
While it's not possible to directly map a lookup field, it recommends making a Formula Field to output the relevant value from the record referenced in the lookup field (often name, but use case may dictate some other piece of information).
Note: if you're mapping a formula field for syncing, changes to that formula field will not trigger the sync unless you follow a workflow similar as the one described here: https://support.zendesk.com/hc/en-us/articles/4408823413658
0
Jason Wong
I am wondering if I can get clarification on this statement from the guide notes above.
How is the organization in Zendesk linked to Salesforce, is it the Synced organization mapping section of the configuration? I'm noticing that I am getting failures in the logs for id exists already, I wonder if it's because there is no link between the two systems that identifies that this record is already there and only needs an update not a creation.
0
Dwight Bussman
heyO Jason Wong
We elaborate on that linkage a bit more within https://support.zendesk.com/hc/en-us/articles/4935435219098-Salesforce-data-sync-error-Name-or-Email-has-already-been-taken
If you contact our support team, we can look into your specific errors more closely to discuss with specific examples the links that exist, how they came to be, as well as some possible options for fixing them.
0
Jason Wong
I am receiving this type of error message.
"message": "Fail State with Cause: Contact ID 0033400001rCgXDAA0 failed to sync :: Record validation errors :: Failed to create/update Zendesk record :: details: map[external_id:[map[description:External 0033400001rCgXDAA0 has already been taken error:DuplicateValue]]]."
I would expect that it would only attempt an update and not a create. Part of this is if the Account Name changes but there is already an external id that is mapped to the SFDC record where this causes confusion I believe.
0
Halomi Sukhbaatar
Hi there,
I'm having issues with 2 way sync, SalesForce is back-syncing to Zendesk.
How do I make this one way sync only Zendesk feeds the data?
0
Tony
I think by disabling the option in system permission as shown in this article.
Best,
0
Dwight Bussman
Halomi Sukhbaatar - The data sync in this article has been designed so that Salesforce pushes to Zendesk when an account/contact/lead is updated in SFDC. Changing an Organization/User in Zendesk will not update the corresponding record in SFDC. The only portion of this sync which changes the Salesforce record is the setting for Synced organization mapping:
in the case of the Account Sync
(or Synced User Mapping in the case of Contact/Lead Sync)
If a field is designated here, the first successful sync of a record will set that field to the record ID of the Zendesk Organization (or User).
0
Colin Hutzan
Hello!
We have the integration set up to sync SalesForce accounts to ZenDesk organizations based on the name.
I noticed in testing things out that the name for one customer was a bit different in SalesForce than ZenDesk, so I changed the ZenDesk name because SalesForce account names are already integrated to a different application for contracting and cannot be changed.
My question is - will a sync occur again automatically to find a match between the names? If so, how often does that happen? If not, how can I force one to happen?
We might find naming inconsistencies here and there and based on what I read above, the sync is one way so a change in ZenDesk will not update SalesForce. However, I also ready that the sync looks for matches - it seemed like, though not explicitly stated - that happens periodically.
Please help!
0
Colin Hutzan
Oh hey Dwight Bussman!!
Your comment above actually answers my question partially. So my question as to how to force a sync remains. You mentioned that an account record being updated in SF will push a sync to ZenDesk. So, for example, could I just update some field in an account record in salesforce, change it back, and then a sync will happen? What do I need to do to force an account match with the integration after updating the name of an organization in ZD - so that a match happens and corresponding tickets show up via the integration in SF?
0
Dwight Bussman
heyO Colin Hutzan
In order to trigger the sync a few things must be true:
In terms of how the account matches for that sync, that depends on whether an account has successfully synced before.
Here's a general description of the two paths:
If an account has never successfully synced, the integration uses the matching criteria to try to find a single matching organization in Zendesk. If no match is found, the integration attempts to create a new organization. If one match is found, the integration syncs the account to update that organization. If multiple matches are found, the integration logs an error to the integration logs because it's unable to resolve this conflict.
If an account has successfully synced previously (and the related organization still exists), the integration will update that same organization (regardless of whether it still matches based on the matching criteria) because it has a record of that "sync relationship". This means that if you're matching based on name and an account called Company A syncs over, linking it to an organization called Company A. If that account's name later changes to Spiffy Company A, the pre-existing "sync relationship" means that the Company A organization would be updated to have that name (assuming there is not already a different organization with that name)
I'd be happy to discuss this in a ticket/on a call if I'm failing to describe the above sufficiently well.
0
Colin Hutzan
Hey Dwight Bussman, thank you.
Our integration is set up to match organization name with account record name.
Since that is a mapped field, I just went and edited the SalesForce organization name, then changed it back (so it matches the ZenDesk organization name again, the one that I had changed earlier).
We have no sync filtering.
This situation is where there was never a successful sync with this account because the account name was slightly different from the organization name in ZenDesk. I've now trued that up by changing the ZenDesk organization name to match the account name in SalesForce. We cannot edit SalesForce account names as they are integrated to other systems already.
How do I now make sure the account match happens and tickets populate properly?
We can certainly have a call! We have another item to follow up on anyway :)
Book time with Colin Hutzan
0
Dwight Bussman
Now that account name matches the organization name, you should be able to trigger the sync by changing any other mapped field. I recommend having a checkbox field or something similarly innocuous so that you can trigger the sync at will (either individually, or in large batches as documented in this article).
Please feel free to reach out if there's something else on which we need to follow up from our previous conversation. I'll try to keep an eye out for your ticket, but if you reference our earlier conversation / this thread, whoever grabs it will route it appropriately.
0
Soumitra Joshi
Accounts to Organisation Sync Question -
When testing the sync, did you make updates to the Salesforce fields that are mapped to Zendesk? Sync is only triggered when a mapped field is updated.
Is there a limit to how many records can be updated at the same time? I ran into an issue when updating 217 account records at the same time gave an error and it updated only a few. Is there a count limit when making these updates?
0
Dwight Bussman
Soumitra Joshi
Our integration should be able to "throttle" those updates so they all attempt to sync into Zendesk.
I'd recommend reviewing the integration logs to see if there sync failures therein.
I've seen customers update tens of thousands of accounts using the "batch update" method documented here: https://support.zendesk.com/hc/en-us/articles/4408834863386
0