Configure the connector for Salesforce
With the connector for Salesforce in Dynamics 365 Contact Center, organizations can use omnichannel capabilities to engage with customers without having to give up their investments in non-Microsoft customer relationship management (CRM) solutions.
The omnichannel add-in uses data connectors to work with non-Microsoft CRM solutions. The connector for Salesforce helps bring contact and account data from Salesforce into Dataverse.
Prerequisites
- Access to the Salesforce instance
- System administrator role for Dynamics 365 Contact Center and Salesforce
- License for Dynamics 365 Contact Center
- Salesforce license to access change data capture
Note
We also recommend that you complete the following steps:
- Before you set up the connector, back up the existing data in the
Contact
andAccount
tables in Dataverse. In this way, you can do a rollback if any data issues occur. - For optimal performance, limit the data size to 10 gigabytes (GB). In addition, make sure that your limit on Salesforce API requests is sufficient to support your data synchronization needs.
Configure the data connector
Important
After you configure the data connector and sync it from the Salesforce instance, we recommend that you don't make any changes to the synced data in Dataverse, because those changes aren't synced back to Salesforce. If you must update the data, update it only in Salesforce.
In Contact Center admin center, in the site map, under Agent experience, go to Workspaces. Then, for Data synchronization from external CRMs, select Manage. Alternatively, on the home page, under CRM connection wizard, select Open.
On the Data synchronization from external CRMs page, select New.
On the Create a CRM connector page, select Salesforce, and then select Next. If you're connecting to Salesforce for the first time, the Connection Setup dialog displays a Sign in button. Otherwise, the dialog displays an ellipsis (…) button that you can use to sign in.
Note
The system redirects you to Power Apps to connect to your Salesforce instance. Dynamics 365 uses the connection to sync data.
Follow these steps:
Select the option that is shown, and then select Add new connection.
In the dialog box that appears, select the Salesforce environment and Salesforce API version, and then select Sign in.
On the Salesforce sign-in page, use the Salesforce user credentials to sign in. Complete the multifactor authentication if it's required.
In the Allow Access dialog box that appears, select Allow.
In the Connection Setup dialog box, a green check mark indicates a successful connection to the Salesforce instance.
Select Create.
On the Add Third party CRM connector page, select I agree to share connector permissions, and then select Next.
The Enable salesforce permissions page lists steps that you must complete in Salesforce. Sign in to the Salesforce instance that opens on a new tab, and then complete the steps that are listed. When you're finished, go to the setup page in Contact Center admin center, and select the checkbox that indicates that you completed the steps in Salesforce.
Select Next.
On the Choose tables to sync page, select the
Contacts
andAccounts
tables that you want to sync. To maintain the relationship about the linked data between the records, we recommend that you select both tables.Select Next.
For each table that you selected, in the Column mapping section, map the source and destination columns. You can also update the predefined mappings according to your business needs. The source column shows only fields that have a compatible data type.
Select Next.
On the Teams permissions page, select the Teams permission. The Team ID is used to write data to Dataverse. Therefore, it must have read and write permissions on the selected tables. Otherwise, data synchronization fails. Learn more in Teams in Dataverse.
On the next page, review the mappings for each table that you selected. You can go back and change settings as you require.
Select Create.
If the connection is successful, a message appears on the Summary page.
Select the checkbox to activate the connector and data synchronization, and then select Done. You can view the synchronization status on the Data synchronization from external CRMs page.
Data types supported in Dataverse
Dataverse supports the following data types. It doesn't support the Virtual and EntityName data types.
Dataverse columns of attribute type | Salesforce columns of data type type |
---|---|
Boolean | boolean |
Integer, BigInt | integer |
Integer, BigInt, Decimal, Double, Number | number |
String/Memo | string: date. datetime Note: ID and reference aren't accepted. |
Uniqueidentifier, Lookup, Owner, Customer | string with data type: ID, reference |
DateTime | string with data type: date, datetime |
Predefined data mappings
The following table shows the predefined data mappings for the Contact
table.
Salesforce field name | Dataverse field name |
---|---|
AssistantName | AssistantName |
AssistantPhone | AssistantPhone |
Birthdate | BirthDate |
GUID from SF Id (transformed data) | ContactId |
Department | Department |
Description | Description |
EMailAddress1 | |
Fax | Fax |
FirstName | FirstName |
LastName | LastName |
MobilePhone | MobilePhone |
Salutation | Salutation |
Phone | Telephone1 |
The following table shows the predefined data mappings for the Account
table.
Salesforce field name | Dataverse field name |
---|---|
GUID from SF AccountId (transformed data) | AccountId |
AccountNumber | AccountNumber |
Description | Description |
Fax | Fax |
Name | Name |
NumberOfEmployees | NumberOfEmployees |
Sic | SIC |
Phone | Telephone1 |
TickerSymbol | TickerSymbol |
Manage the data connector
This section lists the actions that you can perform by using the selected connector.
Activate or deactivate the connector.
View diagnostic details.
Edit the details of the connector:
- Data tables: Update the tables that you want to sync.
- Field mappings: Update the column mappings. Use the Reset option to reset the mappings to the out-of-box defined mappings.
- Data access permissions: Update the Teams ID that is used to write the data to Dataverse.
Note
If you add new tables or mappings, the data for the existing tables and mappings is also synced. If a table or mapped field is removed, the data remains in Dataverse, and only new data isn't synced.