EspoCRM Outlook Connector for Outlook Exchange Server
The EspoCRM Outlook Connector for Outlook Exchange Server allows bidirectional synchronization of calendar events such as: tasks, meetings, and calls between EspoCRM and Outlook Exchange Server. The synchronization is performed at the scheduled time (time interval) by running the scheduled cron jobs in EspoCRM.
In order to use this module for synchronization events between EspoCRM and Outlook Exchange Server, you will need:
- PHP 7.1
- cURL with NTLM support (7.23.0+ recommended)
- Exchange Server 2007 or later
Also you have to install PHP Exchange Web Services library (php-ews) and HTML DOM parser. You can do this with the following commands:
composer require garethp/php-ews composer require sunra/php-simple-html-dom-parser
Install and set up composer
professional support may be required.
- Install composer. For more information go to https://getcomposer.org/doc/00-intro.md. Example of composer.json by EspoCRM core team you can find here https://github.com/espocrm/espocrm/blob/master/composer.json
- Add the following lines into block “require” of composer.json:
"league/oauth2-client": "^2.0", "microsoft/microsoft-graph": "1.0.*"
- Change of the doctrine version may be necessary:
To install the module, go to the admin panel EspoCRM
../#Admin/extensions. Choose the module archive and click on the button “Upload”.
After installing module, please rebuild the system
../#Admin/rebuild, empty the server cache
../#admin/clearCache and local cache
Enable synchronization in EspoCRM
After installing the module, go to
..#Admin/integrations/name=ExchangeServer and set the value to “Enabled” to enable synchronization.
Setting Up the Default Synchronization Rules
Admin can set up the default (standard) synchronization rules in
../#Admin/integrations/name=ExchangeServer for all users.
For further description see "Setting Up the Synchronization Rules".
Important! The settings specified in the admin area are the default settings for all users. If you need to change some specific setting for a particular user, you can do this in the user preferences
By default users have access to their own preferences and can override the default synchronization settings, but in this module admin can change user's access to his preferences, see "Update User Access Rights to their Preferences" for further information.
Configure the synchronization schedule
After the module installation, the data entry for automatic synchronization of each event type is created in the admin area
../#ScheduledJob. Here you can specify the frequency for each synchronization.
Manual synchronization start
Normally, ScheduledJobs are set up for synchronization (see above), but sometimes it is necessary to manually start synchronization for a specific entity. To do this, you can select a synchronization direction (“To Espo”/“To Outlook”) and the event type to be synchronized (“Meeting”/“Call”/“Task”) on the
../#Admin/integrations/name= ExchangeServer page and click on the “Synchronize” button.
Update User Access Rights to their Preferences
By default all (non-admin) EspoCRM users always can see and edit their own Preferences at the page
../#Preferences and admin cannot change this.
Our module allows the EspoCRM admin to set up for any role the access rights to his/her own preferences or separate preference fields using the standard ACL tool
This was done because the following synchronization settings can be done by either admin or the account owner (usual user) himself at their preferences page:
- Binding EspoCRM and Outlook accounts by the e-mail address (see "Binding EspoCRM and Outlook accounts").
- Set up Synchronization Rules (see "Set up Synchronization Rules")
Binding EspoCRM and Outlook accounts
Admin can forbid the users to access this setting, see "Update User Access Rights to their Preferences" for more information.
In order to be able to synchronize, after completing the settings in the admin panel, each individual EspoCRM user should be associated to his Outlook account.
To do this, Admin or the user himself should go to his user settings
../#Preferences and activate the checkbox “Enable synchronization”. After that user must enter the server, username and password of his Exchange account. Also user must specify the interval of time (starting date and ending date) within which the events should be synchronized.
You can test the connection.
Setting Up the Synchronization Rules*
*Admin can forbid the users to access this setting, see "Update User Access Rights to their Preferences" for more information.
Users can set up the synchronization rules at their preferences page
Options for the direction of synchronization of each event type:
- Disable - the synchronization is deactivated;
- Espo to Outlook - the synchronization of events runs in one direction, from EspoCRM into Outlook;
- Outlook to Espo - the synchronization of events runs in one direction, from Outlook into EspoCRM;
- In both directions - the synchronization of events is bidirectional. If you select the synchronization direction “In both directions” option, you can specify the priority of the synchronized values (for situations when between two synchronizations the same event field in both EspoCRM AND in Outlook has been changed).
Options of synchronization priority are:
- From Espo - prioritized is the data transferred from EspoCRM;
- From Outlook - prioritized is the data transferred from Outlook;
- By a newest date - prioritized is the data that was modified later;
Events are synchronized between EspoCRM and Outlook along with their participants. For Outlook fields Name+Email are sufficient, and these are not mandatory fields. In EspoCRM, every event participant must have a data entry: either as contact, or as lead, or as user. So when an event participant comes with email address from Outlook, EspoCRM checks if this address already exists in the user list. If not - the contacts list and then the leads list will be checked. If user comes without e-mail address or his e-mail address was not found in the above 3 lists, a new contact OR a new lead will be created in EspoCRM (configurable).
Options of participant types automatically created in EspoCRM:
- Contact - the missing participant of the event is created as a new contact in EspoCRM;
- Lead - the missing participant of the event is created as a new lead in EspoCRM (recommended). He can later be manually converted to Contact.
Viewing Synchronization History and Reverting Event Updates
After connecting and configuring the synchronization, the synchronization of the events between the two platforms takes place depending on the set synchronization direction and priority for each event type (“Meeting”/“Call”/“Task”).
After the event is created, events are synchronized based on the configured schedule. When using unidirectional synchronization from one system to another, the events must always be managed (created, modified, and deleted) in the platform from which the events are synchronized.
In Espo, you can see the history of synchronization and, if necessary, restore the changed values.
To see the complete synchronization history for all events, open the link
To see the exact changes of a specific event during synchronization, open a “System updated ..” time entry in the stream of this event.
After opening a specific change during synchronization, you can see the field that was updated during synchronization, the direction of synchronization, the type of change (create / update) and its old and new value.
Note: Changes to attachments are not presented here.
With “Revert” you can undo the changes made by the specific synchronization and restore the previous values.
Individual (de) activation of synchronization for specific events
The synchronization of the supported events is active by default. But it can be individually deactivated for each specific event (as well as activated again later). To do this, you can switch the “Synchronize with Outlook” checkbox at the event page.
When syncing tasks, the attachments added to these tasks are also synced. Sync history does not specify changes made to attachments.
Event reminders are also synchronized. Depending on the nature of the event, a reminder will be sent either as a notification of the event start date (for Calls, Meetings) or as a notification of event due date (for Tasks). Since in EspoCRM any number of reminders is possible, and in Outlook - only 1, only the first reminder is sent from EspoCRM to Outlook during the synchronization.