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 using 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 limitation:
- 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 limitation:
- 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 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 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.
- 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 any standard or custom Salesforce Contact/Lead field. This one-way sync is useful for displaying a Zendesk user 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 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.
- Confirm you have only connected one Salesforce account to one Zendesk account.
- 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.
84 Comments
Hey Dwight Bussman,
Sounds great, and if it is deemed to be helpful information for others then I am A-Okay with the information being put out.
Thanks,
Jason
Laura Mercuro
I'm not sure if your problem is related to syncing data on Account (in SF) to Organization in Zendesk? Or if it's related to Contacts (in SF) or Leads (in SF) to Users in Zendesk? However, what type of value does this picklist contain? Zendesk writes this above in this article:
The following Salesforce fields are not supported for mapping:
Is it possible that the field type you're trying to map and sync is not supported in this case?
This is just a guess from my side. I know that our Salesforadmin sometimes need to create "invisible" fields that we map towards that is not any of the above types in order to solve it. However, we have yet not finalized the syncing part yet, but in test environment.
I hope your problem will be resolved, good luck!
Thanks for your response Emelie! Unfortunately, we are using all the correct fields that are supported. And more importantly some of the accounts in Zendesk are getting the data from SFDC through the sync, so I cannot pin point why the other accounts are failing (names are exact...I have checked 10+ times ;(). Thanks for the luck...I have since submitted a ticket and hope to get assistance.
~Laura
Hi Laura Mercuro
Do you see anything in the Salesforce Logs that might help to diagnose this?
If nothing shows therein, my next thought is that the field that's being changed might be a formula-field, which doesn't trigger a sync due to limitations of the salesforce streaming API. For a workaround that should help avoid this limitation, please see - https://support.zendesk.com/hc/en-us/articles/360042438674
If neither of these helps to resolve the issue, please reach out to our Support team to look into this more closely.
"Note: For Zendesk user records to be automatically mapped to their corresponding organizations upon a users sync, both Contacts / Leads to Users sync and Accounts to Organizations sync must be enabled."
Regarding this note, we are not seeing user records being mapped to the Orgs when they are created/updated in SFDC. We do have both the Contacts/Leads and Accounts syncing enabled.
Hi everyone, we have now released support from Multiple Organisations in data syncing. This means if you have multiple Contacts in Salesforce with the same email address but different Accounts, you can sync them to a single Zendesk user belonging to different Organisations (an organisation membership).
You can learn more about how this works here. No action is required for the integration to use multiple organisations. If this is enabled on your Support Account, we will syncing behaviour described.
Learn more about the Multiple Organisations feature in Zendesk here. This is a feature available only to Zendesk Professional and Enterprise plans.
Can you please Update the Screenshots provided in this Article as they are Old So please Update them so that it can help others too? I am talking about the Salesforce Profile and Object settings ss.
Thanks
Shubham Bhardwaj Our screenshots are for Salesforce Lightning. Can you please explain what isn't up to date with them and I'd be happy to do so, but I couldn't see anything out of date based on our Salesforce instance. Thanks!
NICE PROS
Thanks!
I am seeing that users created in ZD via the SFDC integration are not being associated with organizations. This process seems to be very hit or miss.
I have an organization that was created today, as I can see in the audit logs and one user that was created under that org. In SFDC I can see that the account has two (2) contacts listed and both were there when the account was created.
Does the sync only grab the first contract listed in SFDC for the account or should it be syncing all of the contacts on the account?
The results we are getting are that there are many tickets created by users that have no org association because the info is not being properly synced. This also happens when there is only one (1) contact listed on the account in SFDC so this doesn't seem like a rate limit or timing issue.
Periodic bulk updates, as suggest by ZD support, does not sound like a very good resolution to this issue.
Hi Justin Federico
There are a few different questions wrapped up herein, so I'd like to address them one at a time.
Does the sync only grab the first contact listed in SFDC for the account or should it be syncing all of the contacts on the account?
The syncing of an account does not trigger the syncing of any contacts within that account. The syncing of a record relies on one of its mapped fields being updated (either directly within SFDC, via the API, or via a workflow process/apex trigger).
The results we are getting are that there are many tickets created by users that have no org association because the info is not being properly synced.
This should only happen if a Contact is synced before the Account to which it belongs. Once an Account has successfully synced, any subsequent syncing of one of its contacts should add that user to the related organization within Zendesk.
I'm not sure about periodic bulk updates, but a one-time bulk-update to bring the two systems into alignment (insuring that all accounts have successfully synced) should help to prevent this issue going forward unless there are contacts being created prior to their accounts having synced ( as described above).
If you're seeing examples which disagree with the above, our Support team would be happy to look into these more closely.
Hey Dwight Bussman,
It looks like the account and contacts in question were created at the same time as they are usually created and synced to SFDC from another system. I would think that when created the contacts would sync as expected. Both were created but only one was associated with the Org.
Was this case considered by your dev team as to having Accounts and Contacts being created simultaneously in SFDC via another system?
The only mappings we have for Contacts are email and Nickname (added for testing). I am going to see if there are other mappings that would be beneficial for Contacts.
I am planning on doing a bulk update in the near term.
"The syncing of an account does not trigger the syncing of any contacts within that account." This sounds like a good enhancement opportunity!
Justin Federico
This sounds like a race-condition to me: multiple things happening simultaneously. In the case of your account/contacts, I suspect the associated contact happened to be created/processed after the account had successfully synced. Are you able to make a minor change to the nickname of the users who did not associate properly (adding a period or space character) to see if this successfully pulls them into the relevant org? This would support the race-condition hypothesis.
I'll reach out to our team to see if this could be handled more gracefully by our integration, but given the architecture as I understand it, this comes down to the order of these operations: it's not really possible for the integration to know the org to which users should be added until after that org has synced.
As for the enhancement opportunity on this, much as our team might like to do something along these lines, we are constrained by the limitations of the SFDC streaming API, and have developed our sync logic to rely on streaming events for records to sync.
Hopefully that helps to explain the behavior you're seeing!
Hello, Team.
Is there a way to map Zendesk User Id and Zendesk Org Id with Salesforce Contact and Account Object?
Harsharndeep
I'm not sure I follow the question. Do you mean
There is not a way to match based on that ID at this time.
This is a feature that our Developers are currently working on. Please follow this article to see when this feature is released.
Hello,
in the previous version of the Zendesk for Salesforce integration, I could map hidden fields from Salesforce to the appropriate Zendesk fields but in the new integration, it is suspended.
What other solution could you suggest to map also hidden fields from Salesforce into the Zendesk custom fields?
Thanks,
Tatevik
Hi Tatevik S
In the current integration, a field must be visible to the integrating SFDC user (the System Administrator (or similar profile) who connected the integration within Admin Center) in order to be accessible to the integration for syncing.
If one of the fields you're looking at is suspended, that may be due to the removal of support for the legacy integration package. If you'd like to apply for a temporary extension to migrate values from such legacy fields to custom fields not created by that managed package, please fill out this form: https://forms.gle/bhi5N6bxdUYjZMQY9
https://support.zendesk.com/hc/en-us/articles/360034751534/comments/360006619213
Hello, Dwight.
Yes, we would like to sync Zendesk User and Org Ids to the SFDC records.
If an Org is syncing with Salesforce Account, i would love to see the Zendesk Org Id on the SFDC record.
Same will go for Contact and Zendesk User Id.
Could you please share the link to the article as i couldn't find it.
Dear Dwight Bussman
thank you for your response.
when I make visible the field only for the System Administrator the sync worked.
I thought the sync should work as in the previous integration i.e. when field was hidden for all users.
Thanks,
Tatevik
Tatevik S - I believe it's expected that the field will need to be visible to the profile of the integrating user, but I don't think it needs to be present on the page layout. Hopefully that helps.
Harsharndeep - this very article is the one that should be updated when that feature becomes available.
Dwight Bussman
thanks for the help.
Tatevik
Question 1)
RE: accounts to orgs sync...
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.
Silly question perhaps, but HOW should this be tested? Is there a testing feature (such as a dry-run) on the SF or the Zendesk side, before running the process for real? Or are you talking about using a Zendesk sandbox?
Question 2)
We used to have accounts to orgs set up a long time ago (like...years). If we reinstitute this integration, are there any risks we should be aware of?
Question 3)
RE: "by default uses account name to organization name for matching records."
What if the name is not an exact match? For example, let's say we have an account called "University of Okobogee" in SF. In Zendesk, the name of the matching org is "University of Okobogee (UofO)". How does the integration handle this?
Another possible conflict: We append (EXP) to the name of our Zendesk orgs if the account is not renewed (i.e., it is expired). This helps agents quickly notice if they are serving a former customer and take appropriate action. So if the UofO were to expire, their account in Zendesk would be named "(EXP) University of Okobogee (UofO)"
Would this match to the "University of Okobogee" account in SF?
Thanks in advance! :)
Marci Abraham
If the current integration is also populating zendesk external ID and the first sync of that account with the current integration does not find the existing org (perhaps it's matching based on name and the name is changing in that moment), then it would attempt to create a new organization with an external ID which already exists. This sync attempt would fail, and could be seen in the integration logs, but would require manual correction, either by updating the old org's name to match the name the account is syncing over, or by deleting the old org in Zendesk to allow the new org to create properly.
After an account has synced, changing its name will update the name of the associated organization - the matching logic is only to set up that initial relationship between a given account/org (based on their IDs).
In your example - are you appending EXP within Zendesk or Salesforce? If you update the Zendesk org but it's already been synced with an account in Salesforce, the name of the org would get updated whenever next the account syncs from SFDC (losing the exp portion). If you update the name of the Account in Salesforce instead, that would push over to update the existing Zendesk org (provided it had previously synced with that org).
Hopefully this helps to answer your questions! Please feel free to reach out to our Support team directly if there's something I'm failing to describe properly.
Hi everyone, we're looking to interview some customers who are interested in:
- syncing other Salesforce objects to Zendesk (beyond Accounts and Contacts/ Leads)
- syncing other Salesforce products (like Marketing cloud) to Zendesk
- any other business systems you use, that would value from syncing to Zendesk
If you're interested in a 45 minute call to share your use case and have input into a solution that does this, please respond to this comment and I'll reach out to set up a time.
Thanks,
Anika
Hi Anika Rani,
I would be interested in a chat about this as I have recently had issues with not being able to sync some things properly.
Thanks,
Jason Fouchier
Hi Anika Rani when you refer to "other business systems" could that be our own proprietary systems, or are you talking about systems that are marketed widely to businesses?
Dwight Bussman Thanks so much for the response! It's very clear and answers all of my (current!) questions. Have a great day :)
I am having a terrible time following these data sync instructions. I have submitted a support ticket, but due to the holidays I'm sure it will take a while to get a reply.
Does anyone know how to do this in different versions of SF? We are on the "Enterprise Version" of SF, and every time I try to follow Zendesk instructions I find out the documentation is for a different version than what we have, and I get lost.
I am working with "permission sets" which can be applied to profiles. However, they apparently cannot be applied to the STANDARD user profile (per this SF documentation, which states "You can’t edit the object permissions on a standard profile."), which is exactly what the Zendesk documentation (on this page) says I'm supposed to do.
Since I can't follow the step by step, I need to understand more about what these permissions are supposed to accomplish. What is the purpose of giving those permissions to the "standard user"? Maybe something to do with giving the system permission to sync data? Because users with that profile don't need to have visibility into the syncing data nor should they be involved in it...
Edit: I do have a "permission set" called "Zendesk - Full Access" which has been assigned to a few users, and has push topics and streaming set to "read". But there is no way to apply this permission set to the "standard user" in Profiles. That profile is locked and cannot be altered.
Any help would be greatly appreciated!
Marci Abraham - sorry to hear about the issues you're seeing with this. I'd love to hop onto a call with you to look into this for your specific version of SFDC. It seems likely that we'll need to update our docs to account for these differences. Thanks for calling this out!
There's another permissions article: https://support.zendesk.com/hc/en-us/articles/360053926013 that may be helpful here, but again, it wasn't really written with various versions in mind and could likely be improved.
Please sign in to leave a comment.