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 attempts to establish whether a new record in Support should be created, or if an existing record should be updated. 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 record and the Support record are linked. This means that subsequent updates to the record in Salesforce doesn't use matching criteria, but instead updates the linked record in Support.
If more than one matching result is found, the sync is unable to determine which record needs to be updated. Because this is a background process, the ongoing sync won't update any of the records, and logs an unsuccessful sync event.
A sync is triggered to Zendesk when records are created or updated to a mapped field, either in bulk or via the Salesforce API.
Since 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 one-for-one sync, and by default uses account name to organization name for matching records. However, not all Salesforce implementations adhere to this rule. So if you have duplicate account names, you can change this to another account field that is unique. This might not be the 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 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 if this feature is suitable for your needs.
This data sync feature 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
If you have multiple Salesforce contacts with the same email address which belong to different Accounts and you want to sync to a user in Zendesk, use the multiple organizations feature in Support. For more information, see Using the multiple organizations feature in the Salesforce integration.
Setting up a data sync
Setting up a data sync requires performing several tasks in Salesforce and the 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 / or 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 > Profile.
- 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 Push Topic permissions
- On the Salesforce Setup page in the left sidebar, select Administration > Users > Profile.
- 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.
Important: This is an advanced feature. Once data is synced from Salesforce to Zendesk, it is not reversible. We highly recommend that you test this feature first.
To configure Salesforce accounts to Zendesk organization sync
- In Admin Center, click the Integrations icon (
) in the left sidebar.
- In Salesforce, click Configure.
- Click the Data Sync side tab, and 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 Contact or Lead. Select from any standard and custom Salesforce Contact/Lead field. This is a one-way sync useful for displaying which Zendesk user is linked to a Salesforce Contact or Lead.
- In Zendesk external ID, select the checkbox if you want the external ID to populate the Zendesk organization external ID field. By default, this is mapped 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 the Integrations icon (
) in the left sidebar.
- In Salesforce, click Configure.
- Click the Data Sync side tab, and 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 Contact/ Lead Mapping you can choose to map the Zendesk User to a Salesforce Contact or Lead. Select from any standard and custom Salesforce Contact/Lead field. This is a one-way sync useful for displaying which Zendesk User is linked to a Salesforce Contact or Lead.
Note: If you change the mapped field, it will only be used for syncing after the change. Any previously updated syncs will not be updated to sync the ID to the new field.
- In Zendesk external ID, select the checkbox if you want the external ID to populate the Zendesk organization external ID field. By default, this is mapped 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.
- 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 apply a filter to choose 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 of the 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 of the 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 sync filter, the value must be the API name of the pick list options
- The Account Record Type field in Salesforce is not supported
- When a checkbox type field is used as a condition, enter a value of "true'" or "false"
The following Salesforce fields are not supported for filtering:
- Formula field
- Lookup field
- Long text area field
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 criteria is supported. Adding multiple matching criteria will be available in the future.
- 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 any records, and logs an unsuccessful sync event.
Understanding field mapping
The field mapping sections enable Salesforce fields to be mapped to Zendesk fields. You can map to standard and custom Zendesk fields. The mapped fields are updated during the sync.
The following Salesforce fields are not supported for mapping:
- Long text area field
- 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
- Number field
Salesforce Accounts to Zendesk organizations field mapping
In Data Sync > Accounts to Organizations sync, the Field mapping section maps 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 fields 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 > Accounts to Organizations sync, the Field mapping section maps Salesforce Contact or Lead fields you want to populate with Zendesk organization 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 fields 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:
- Check you have the right Salesforce API settings requirements when setting up the integration.
- Sync filter: Confirm you are not using any unsupported Saleforce fields such as Formula Field and Lookup field.
- Sync filter : Confirm you are using the correct syntax in the sync filter values. These are case sensitive and must exactly match the Salesforce field value. If you are 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.
- 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.
80 Comments
Thanks, Dwight Bussman. I'd be happy to get on a call to sort this out. Let me know the best way to connect. For timezone reference, I'm in California. My schedule is flexible. Feel free to look up my email address and contact me that way, as well, to coordinate.
I checked the article and it seems to be applicable only if you have trouble getting the API to work. We do have the API, it's just a matter of how to apply it to the right profiles.
Thanks!
Dwight Bussman
The fact that the SFDC-ZD integration is not honoring the Matching Criteria set for Account - Organizations sync is bothersome.
The fact that we need to contact ZD Support each time we need to re-match SFDC Accounts to ZD Orgs is a pain.
However the worst part is that ZD Support are not re-linking the Accounts-Orgs in a timely manner.
Can you please help me get the specific issues raised in ticket # 6042948 resolved ASAP?
Also, it would be great to have a quick-action-process to get these sync issues resolved quickly.
Thanks!
Jason Fouchier great, thanks I'll email you to arrange a time.
Marci Abraham thanks for the question, I should have better defined "other business systems". I am talking about other commonly used SaaS systems, unfortunately not proprietary systems. Examples being, JIRA, Adobe, Segment, Zoom, Stripe.
Marci Abraham I'm sure Dwight will do a wonderful job helping you with navigating the permissions/ settings. I'll be sure to take on the feedback after your call to see how we can improve our docs to cater to different versions.
Reuven Shelef I've had a look into the syncing/ matching ticket you've raised. I'll reply to you directly on there.
How do I establish a link between a ZD user and the Salesforce contact record when the ZD user is created first?
HeyO Melody Quinn
For readability's sake, I'm going to reply in that other thread. Thanks for the heads-up.
Hi, I am trying to set up Salesforce account-to-Zendesk user sync. Push Topic is not enabled in my org for the standard user profile. The Documentation refers to editing the Standard User profile, which is a standard Salesforce profile and can't be edited. Should I clone the Standard user profile? What name should the cloned profile have? Any other workaround?
talib raza - sorry for the confusing documentation. There's an open ticket with our docs team to clarify this better above. I believe it should refer to the profile of whatever user connected the integration (not necessarily the standard profile). Please let us know if this helps to clear things up. This article may help as well: https://support.zendesk.com/hc/en-us/articles/360053926013
Hello Everyone
I have a customer wanting to sync both Leads and Contacts from SF to Zendesk.
Considering they can only select one, does anyone have any best practices on how to work with this limitation?
Cheers, Chad
HeyO Chad Susa,
I'm not aware of a good workaround for this, but:
Are there any known issues with syncing contacts to users and having "Allow users to belong to multiple organizations" enabled for customers?
I have seen that having two Orgs for the same user caused the sync to fail or not occur. I disabled the "Allow users to belong to multiple organizations" option and there is no issue.
When only one org is allowed the sync will update the org, if different in SFDC vs ZD, and all other mapped fields will sync as well.
Having two orgs caused none of the fields to sync even though one of the orgs matched SFDC. Maybe the matching org needs to be the default but I have not tested further.
Justin Federico
For more information on the expected behavior when contacts belong to multiple accounts in SFDC and the "allow users to belong to multiple organizations" feature is enabled, please see https://support.zendesk.com/hc/en-us/articles/360055735814
I believe what you're describing is intended given the context in that article. If you find behavior that doesn't align with that documentation, please let us know!
We need to be able to map SF multi-picklist to ZD multi-select. This is critical to our reporting and use case for the integration. Is there any plans to allow for this in the future? We thought maybe we could use Explore to parse the data in the text field for multi-picklist, but apparently there isn't a way to do that.
We've hit a significant issue with SF data not flowing through to Guide's User Segments.
In SF we have an existing formula text field, which we need synced to a ZD dropdown field, so that the associated dropdown field Tags can then be used in the Guide User Segments. But I've read that these fields are a mismatch.
Is there a workaround to this?
I don't see why we can't set up the mapping so that an SF text value can be mapped to a known dropdown value? If it doesn't match, then ignore it.
Or, why we can't use text values in the User Segments?
Chad Smith I think its because formula updates can't be used to trigger Process, Flow or platform event. Dendesk - Salesforce user sync work on platform events.
talib raza - While you're correct that updates to formula fields don't trigger sync events within the salesforce streaming API, they can be forced to do so using a workaround as documented here: https://support.zendesk.com/hc/en-us/articles/360042438674
I suspect Chad's issue is more to do with the field-types: that our integration doesn't allow the mapping of text-field in SFDC into drop-down (similar to a pick-list) in Zendesk. This seems to be a deliberate omission on the part of our developers to insure value mappings align which would only be possible with a pick-list on the SFDC.
Dwight Bussman is correct.
We have existing SFDC fields which are obviously in use and will not be changed. It would be nice if ZD was able to better work with these fields. I don't see why a ZD dropdown field requires such strict association with an SFDC picklist?
This puts us at a significant disadvantage in Zendesk.
I'm having a bit of trouble with domain mapping. In Zendesk we have a number of organizations that have multiple domains associated with them. The data sync only allows for one to be mapped and will just overwrite vs add to the list.
Also, sync to domain allows for invalid formats. For example, we tested syncing SF account website sync we don't capture company domain and more often than not, the website domain matches their company email domain. We found that subdomain is NOT stripped from the url though and Zendesk will not associate users if it is in that format.
Not sure how to work around this. We could just not sync email domain but given we have many accounts and they are constantly being created, the manual upkeep is near impossible. Most SF contacts will be synced in the Contact Sync but we have plenty occurrences of non-contacts reaching out via email under their company domain.
Any potential solutions/workarounds?
HeyO Amber Barnes
While the data-sync only allows for the mapping of a single text-field, that field can contain multiple domains
for instance, this mapping in admin center:
and this field-value in SFDC:
results in this value in the org in zendesk:
As for the invalid-formats, you'll need to map a field that contains only the domain itself, not any of the surrounding https:// or trailing characters like /index.html - I believe the SFDC field may show that bare domain, but actually stores the full URL which includes invalid characters. You should be able to see what it's syncing over in the Salesforce Logs
In terms of a workaround, it may be possible to make a formula field which collects various other domain-fields (as we only allow you to map one). If you're going that route, I recommend this formula-field workaround to insure that changes to the formula field triggers a sync.
Please sign in to leave a comment.