Zendesk and Salesforce have fundamental differences in the way they store users. In Zendesk, each user must have their own unique email address. This is not required for Salesforce contacts.
To overcome this difference, and to make it possible to sync multiple Salesforce contacts that share a single email to Zendesk Support, the integration uses a feature called multi-organization.
With multi-organization, separate Salesforce contacts that share the same email address, but belong to different accounts, can be connected in Zendesk Support to a single user belonging to multiple organizations.
Before getting started, make sure you’re familiar with how Zendesk Support manages multiple organizations, and decide if you want to use the feature. See Enabling multiple organizations for users for more information.
This article contains the following topics:
- Understanding the multi-organization syncing process and its elements
- Using bulk sync auto-matching with multi-organization
- Sending tickets to Salesforce
- Viewing tickets in Salesforce via VisualForce pages
- Warning logs
Understanding the multi-organization syncing process and its elements
Enabling the multiple-organization feature in Zendesk impacts both ongoing and bulk syncing, as well as sending tickets to Salesforce.
How Zendesk Support and Salesforce users, contacts, leads, accounts, and organizations correspond to one another, and how they are synced when there is overlapping information, can be complicated.
- Accounts in Salesforce are called Organizations in Zendesk.
- A Valid Account in Salesforce is one that is linked to a Zendesk Support Organization
- Contacts and Leads in Salesforce are called Users in Zendesk.
- In Salesforce, when multiple contacts/leads share an email address, the first one linked to an account is considered the syncing record.
The syncing record is an important concept for understanding how multi-organizationsyncing works. It is the main Salesforce record, when multiple contacts/leads share a single email address, and referred to by a Zendesk user account during syncing.
The syncing record:
- Is usually the first record among a group of records sharing an email address that is processed by our syncing mechanism.
- Is identified during a sync when the Salesforce record has updated fields.
- Updates its corresponding Zendesk user entry during a sync, when changes have been made to its user fields in Salesforce.
Any other Salesforce contacts/leads that share an email address with the syncing record are called Duplicate records.
When creating new records in Zendesk during bulk sync, if duplicate Salesforce contact/lead records are pushed to Zendesk for creation, only the first record will be identified as the syncing record. The rest of duplicates will be used to set new organizational membership for the user in Zendesk. This depends on whether multi-organization support is enabled in Zendesk and will be linked to the Zendesk user created by the syncing record.
When identifying the syncing record, records with linked accounts that are synced with a Zendesk organizations have priority over records without a linked account or records with a linked account but the account is not synced with a Zendesk organization
The syncing process, multi-organization enabled vs. disabled
When multi-organization syncing is ENABLED:
- Separate Salesforce Contacts/Leads can share an email address, while maintaining independent Contact/Lead entries, and memberships in separate Accounts. However, in Zendesk, these Contacts/Leads with a shared email address are combined into a single User, defined by the Contact/Lead syncing record (see above), with that single user belonging to multiple Organizations.
When multi-organization syncing is DISABLED:
- Separate Salesforce Contacts/Leads can share an email address, while maintaining independent Contact/Lead entries, and memberships in separate Accounts. However, in Zendesk, these Contacts/Leads with shared email addresses cannot be combined into a single User; instead, first Contact in Salesforce updates the corresponding User in Zendesk, and the second Contact in Salesforce is ignored.
The following table shows the different actions when multi-organization syncing is enabled and disabled:
|Action||Organization Enabled||organization DISABLED|
|Syncing record that is linked to a valid account into a Support user that is not a member of any Org||User fields will be synced and organization member ship (primary) will be set||User will be updated and linked to the organization|
|Syncing record without valid account into a user not a member of an org||User fields will be synced||User fields will be synced|
|Duplicate record with valid account||User fields won't be synced, but a new organization membership will be added||User fields will not be synced|
|Duplicate record without valid account||User fields will not be synced||User fields will not be synced|
A sample organization syncing scenario
The following scenarios may help you understand what happens during syncing when organization support is enabled:
- Account A is created in Salesforce. Account A includes a contact, Contact 1, with the email address email@example.com.
- A sync is performed with Zendesk, and the following occurs:
- Account A creates Organization A in Zendesk.
- Contact 1 creates User 1 in Zendesk, with the email address firstname.lastname@example.org.
- In Zendesk, User 1 is added as a member of Organization A.
- In Salesforce, another account, Account B, is created. Account B includes a contact, Contact 2, with the email address email@example.com - the same email address used by Contact 1.
- A sync is again performed with Zendesk, and the following occurs:
- Account B creates Organization B in Zendesk.
- User 1 is added as a member to Organization B, and retains their membership in Organization A.
- User fields for User 1 are NOT updated in Zendesk.
- In Zendesk, an agent updates the user fields for User 1.
- A bulk sync is performed, and the following occurs:
- Contact 1 is updated in Salesforce with the changes made to User 1 user fields in Zendesk.
- Contact 2 is NOT updated in Salesforce.
Knowing whether multiple organization functionality is enabled
The Zendesk for Salesforce integration automatically detects whether multiple organizations are used in your linked Zendesk instance and takes advantage of it if available. When the multi-organization feature is enabled in Zendesk Support, you’ll see a message on both the Contact/Lead mapping page and the Bulk Sync page:
Using bulk sync with multi-organization
Bulk sync auto matching follows the same logic as ongoing sync -- it will identify the syncing record if the same email already exists in Support. The syncing record will be used to create/update the Zendesk user and, depending on whether the multi-organization feature is enabled in Zendesk.
In the event of multiple contacts/leads that share the same email address are identified as syncing record, only one of them will be used to create/update the Zendesk record.
Due to Zendesk using email as the unique identifier of a user, an email address will be the default bulk sync auto matching criteria for contacts and leads and can not be removed. However, users can still add two other matching criteria.
Duplicate records with email address same as the syncing record will be linked to the user created by the syncing record, however it will not be used to sync the fields in the Zendesk user.
Sending tickets to Salesforce
When sending tickets to Salesforce, a ticket will be linked with Account and Contact in Salesforce depending on whether the ticket requester (user) and ticket requester’s Support organization is synced in Salesforce.
Linking with an account
If the ticket requester's organization is linked to a Salesforce account, that account will be linked to the ticket. If the ticket requester's organization is not linked to any Salesforce account, the organization’s name will be used to query Salesforce, if an account with the same name can be identified, that account will be linked to the ticket.
Linking with a contact
Ticket will be assigned to the contact that has the same relationship to account as the ticket requester’s relationship to its organization. If no such contact can be found email address will be used to query Salesforce for the contact, if more than one contact with the same email address found in Salesforce, no contact will be linked to the ticket and a warning will be created in the log.
Viewing tickets in Salesforce via VisualForce pages
Tickets viewed in Salesforce Account/Contact/Lead show, by default, tickets belonging to the linked organization and user. With multi-organization membership, records are filtered out according to the membership organization.
The Account page:
Shows all tickets that belongs to the linked Zendesk organization
The Contact page:
- If contact does not have linked account:
- Shows all tickets belonging to the synced Zendesk User.
- If contact has linked account but the account is not synced with any Zendesk Organization:
- Shows all tickets belonging to the synced Zendesk User.
- If contact has linked account and the account is synced with a Zendesk Organization:
Shows all tickets belonging to the synced Zendesk User that relate to the linked Zendesk Organization.
The Lead page:
- If lead does not have linked account:
- Shows all tickets belonging to the Zendesk User.
- If lead has linked account but the account is not synced with any Zendesk Organization:
Shows all tickets belonging to the Zendesk User.
- If lead has linked account and the account is synced with a Zendesk Organization:
- Shows all tickets belonging to the Zendesk User and related to the linked Zendesk Organization.
When a duplicate record is found during syncing or ticket-sending, a warning message appears in the Zendesk log.
Note that warnings are logged regardless of the user’s log level settings in Zendesk settings page.
You may see warnings in the following situations:
- Ticket Sending: When ticket is sent to Salesforce, the ticket is linked to a Contact record based on the ticket’s requester id or email. If more than a single record is found with these fields matching, a warning will be logged that duplicate contact records were found for the ticket.
- Ongoing Sync: Ongoing sync creates a log with Functionality equals "Ongoing Sync" when: (1) a syncing record fails to commit changes to Zendesk Support, and (2) a Salesforce record with a duplicate email address is updated or create, in which case no data is propagated to Zendesk Support. For the former, an error message is created, and for the latter, a warning message.
- Bulk Sync: Only one contact/lead record will be matched and synced to a Zendesk User. Other records with the same email are considered duplicates. Organization membership will be set if the feature is enabled and warnings would be created for these duplicates after a bulk sync run.