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.

Admin Functions

Outlook Exchange


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)
  • Composer
  • 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.

"league/oauth2-client": "^2.0",
"microsoft/microsoft-graph": "1.0.*"
  • Change of the doctrine version may be necessary:
"doctrine/dbal": "2.4.2"
  • Save file and run command

"composer install" (if composer is installed globally)


"php7.2(or your PHP version) composer.phar install" (if composer is installed in the root directory of the project)

Module Installation

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 ../#clearCache.


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 ../#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 ../#Role.


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")

User Functions

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 ../#Preferences


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 ../#OutlookHistory

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

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.

Together with the EspoCRM Outlook Connector for Outlook Exchange Server you receive:


Do you have special requests? We are happy to adapt the module to your needs! Our services are billed at an hourly rate of EUR 45 net.


You get the updates (without installation) for 12 months after your purchase at no extra charge.


We offer free support during the first 3 months after purchase. After this period, we will charge you EUR 45 net per hour.

Contact us now

Contact us

Contact person

  • Oleksandr Zinchenko
  • CEO
  • +49 (941) 206 026 10

Why we

  • Request and offer cost you nothing
  • We advise and listen carefully
  • Top value for money
  • Transparency and realistic cost estimates
  • Use of modern technologies
  • Long-term support