Creatio development guide
PDF
This documentation is valid for Creatio version 7.11.0. We recommend using the newest version of Creatio documentation.

Synchronizing contacts with MS Exchange

Glossary Item Box

General information

Integration with various entities of MS Exchange via EWS protocol (Exchange Web Service) is supported by the Sync Engine synchronization mechanism. This article describes synchronization of contacts between bpm'online and MS Exchange. The task synchronization algorithm is no different from that described in the article about Sync Engine synchronization. The process runs in three stages: 

  1. Retrieving changes from MS Exchange and applying them
  2. Retrieving changes from bpm'online and applying them
  3. Creating new contacts from bpm'online in MS Exchange.

Integration classes

As described in the "Bpm'online synchronization with external storages" article, to implement integration using this mechanism, a class is required that implements the logic of working with external storage (RemoteProvider heir) and a class that implements the IRemoteItem interface, which is an instance of the synchronization element (in our case — MS Exchange contact).

Fig. 1. RemoreProvider hierarchy schema

Fig. 2. RemoteItem hierarchy schema

The following classes are used for contact synchronization:

  • The ExchangeContactSyncProvider class is the service provider for the MS Exchange external storage. This class implements the logic of selecting data and saving changes in bpm'online and MS Exchange.
  • The ExchangeContact class implements the IRemoteItem interface. The logic of filling in data in the corresponding systems is implemented in it.
  • The ExchangeAddressDetailsSynchronizer class contains methods for converting contact addresses.
  • The ExchangeEmailAddressDetailsSynchronizer class contains methods for converting contact email addresses.
  • The ExchangePhoneNumbersDetailsSynchronizer class contains methods for convertingcontacts phones.

The logic of filling in details is located in separate classes, as there are significant differences in the formats of data storage in bpm'online and MS Exchange. Additional conversion is required.

Synchronized data

The correspondence of bpm'online objects to the Contact MS Exchange class fields is shown on table 1.

Table 1. The correspondence of bpm'online objects to the Contact MS Exchange class fields

Bpm'online object Object field The Contact MS Exchange class field
Contact Name DisplayName
Surname Surname
GivenName GivenName
MiddleName MiddleName
Account CompanyName
JobTitle JobTitle
Department Department
BirthDate Birthday
SalutationType TitleTag
Gender GenderTag
ContactCommunication Number The PhoneNumbers collection values
CommunitactionType The PhoneNumbers collection value key
ContactAddresses City The PhysicalAddresses collection element City field
Country The PhysicalAddresses collection element CountryOfOrigin field
Region The PhysicalAddresses collection element State field
Address The PhysicalAddresses collection element Street field
Zip The PhysicalAddresses collection element PostalCode field
AddressType The PhysicalAddresses collection value key

The correspondence of communication types is shown in Table 2.

Table 2. The correspondence of communication types of bpm'online to MS Exchange

Bpm'online communication type MS Exchange communication type
Email EmailAddress1, EmailAddress2, EmailAddress3
WorkPhone BusinessPhone, BusinessPhone2
HomePhone HomePhone
MobilePhone MobilePhone

The correspondence of addresses is shown in Table 3.

Table 3. The correspondence of addresses of bpm'online to MS Exchange

Bpm'online address type MS Exchange address type
HomeAddress Home
BusinessAddress Business

Logic of selecting data for synchronization

To select changes to the list of contacts selected for MS Exchange folder synchronization, use the following terms: select contacts for MS Exchange, which were modified after the last contact synchronization or an MS Exchange contact, which was not marked as synced. The contacts which were modified have corresponding contacts in bpm'online. The updated changes are applied in the corresponding system.

When you select bpm'online contacts for synchronization, select the following:

  • contacts that have the current user as an author
  • contacts with a date of last modification that does not correspond to the date of the last synchronization.
  • contacts that were not used on the first step of synchronization

User settings also affect the rules for selecting new contacts in bpm'online. Three settings are available:

  1. Synchronize employees contacts. When you select this setting, the "Contact type" filter will be added to the request, and only the "Employee" type contacts will be synchronized.
  2. Synchronize customers contacts. When you select this setting, the "Contact type" filter will be added to the request, and only the "Customer" type contacts will be synchronized.
  3. Sync contacts from certain groups. When you select this setting, the selected contact group filters will be added to the request.

Additional features

Binding contact and account

If an MS Exchange contact has the CompanyName field filled in, then there are three possible options for filling in the [Account] lookup field:

  1. Always bind. If a nonexistent account is set, it will be created. This is the default option.
  2. Bind, if an account exists. Same as above, but nonexistent accounts are not created.
  3. Never bind. The [Account] field will not be filled in during synchronization.

Using the advanced contact keys in external storage

A situation may occur when there is a large number of MS Exchange contacts and of them will receive the same ID. As a result, synchronization may not correctly identify the appropriate contact in bpm'online. To work around this situation, there are advanced external keys, which can be enabled by the [Use composite IDs for MS Exchange synchronized contacts] setting. Setting code - UseComplexExchangeContactId. After enabling it, you may need to resynchronize.

© bpm'online 2002-2018.

Did you find this information useful?

How can we improve it?