I love CRM.me and while I’m an advocate of social messaging I, like many people, find I’m still dependent on the advanced features and flexibility that an Exchange email system provides. Now thankfully, we can have the best of both worlds synchronizing email, contacts, calendars and tasks between CRM.me and our Microsoft Exchange mailboxes.
The CRM.me Exchange integration, powered by implicit sync, allows you to synchronize and manage the synchronization policy for all your users from one location. No client side installations. Another obvious benefit is that it provides 24 hour synchronization directly between CRM.me and your Exchange mail account whether accessed through Outlook, Web mail, or Active Sync on your smart phone.
Before we get into the nitty gritty here are a few FAQs:
Q. How does it work?
A. Once you install the Sync Gateway software, connections are set up to Exchange and CRM.me using service account information that you provide. It then manages synchronization of new or modified records on either system to ensure the data held in both is the most accurate and recent.
Q. What service accounts should I use to create the connectors to CRM.me and Exchange.
A. For CRM.me you must provide login details of a user account that is a member of the Super Administrator group. The Exchange service account used on the Exchange connector should have full delegate permissions or Impersonation privileges over all other Exchange mailboxes that you plan to sync.
Q. Where should I install the Sync Gateway software?
A. The Sync Gateway software should be installed on any machine that meets the minimum system requirements. We do not recommend installing this on the same server as Exchange, but instead on any Windows machine that can access both Exchange and your CRM.me instance.
Still Interested… ready for the nitty gritty?... well read on and I will explain the setup up in this article.
If a user is using both the Outlook plugin and Exchange integration then this can cause issues including synchronization loops that can corrupt data. If you have any questions about this then contact support@CRM.me
Before downloading and installing the Exchange Gateway server software it is important that you first read though the information in this article. Depending on your companies Exchange environment you may need to make preparations before jumping into the setup. Make sure that you also have your Exchange Gateway License key and Client ID ready in order to complete the install. Your License key and Client ID combo is provided by the CRM.me support team.
Need a License key?
The CRM.me Exchange Gateway server is available free for all CRM.me Pro customers. Before installing the the Exchange Gateway server don't forget to contact CRM.me support for your License key and Client ID combo. Submit a ticket or email us at support@CRM.me and we will provide you with the license key and client ID for your CRM.me instance!
2.1 Preparing for the installation
Before you install the CRM.me for Exchange Sync Gateway software, please make sure of the following:
- Your Exchange Server version and the machine you are installing the Sync Gateway are supported. See section 2.7 for supported platforms.
- The Exchange service account you will be using for Sync Gateway has been granted Impersonation privileges or Delegate Access permissions so that it can use Exchange Web Services (EWS) client applications to access other users' mailboxes. See section 2.2 on how to configure impersonation privileges or delegate access permissions.
2.2 Setting up Exchange Service Account
2.2.1 On-Premise Exchange Server
For on-premise Exchange (2007/2010/2013) server you need to setup an Active Directory user account with Impersonation privileges so that it can access and synchronize other users' mailboxes. To configure Exchange Impersonation, please review the following Microsoft articles:
- Exchange 2007: http://msdn.microsoft.com/en-us/library/bb204095%28v=EXCHG.80%29.aspx
- Exchange 2010: http://msdn.microsoft.com/en-us/library/bb204095.aspx
2.2.2 Exchange Online
To configure a service account with Impersonation privileges on Exchange Online/Office 365, please review the following Microsoft article:
Please note that for hosted Online, Impersonation is only available with the Midsize Business and Enterprise plans. If you are using the Small business plan, you’ll need to configure the account with Delegate Access permissions.
If you wish to set application impersonation manually using MS Powershell then you can do that too following the steps below:
- On your local computer, open Windows PowerShell and run the following command.
$UserCredential = Get-Credential
- In the Windows PowerShell Credential Request dialog box, type your Exchange Online user name and password, and then click OK.
- Run the following command.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
- Run the following command.
- Run the New-ManagementRoleAssignment cmdlet to add the permission to impersonate to the specified user. The following example shows how to configure Exchange Impersonation to enable a service account to impersonate all other users in an organization, you will need to replace the serviceAccount with the name of the account that will be granted the application impersonation role assignment.
New-ManagementRoleAssignment –Name:impersonationAssignmentName –Role:ApplicationImpersonation –User:serviceAccount
The following article contains useful information on the difference between the two:
2.2.3 Hosted Exchange Server / Delegate Access permissions
For hosted Exchange server (2007/2010), please follow the instructions of your Exchange hosting provider on setting up an account with Delegate Access permissions
2.3 Setting up a Shared Resources Mailbox (optional)
Shared resources mailbox allows you to create synchronization rules based on a global contact list which is configured under the shared resources mailbox. You can create the following rules:
- Synchronize emails sent to or received from any contact in the shared contact list.
- Synchronize appointments associated with any contact in the shared contact list or meetings in which any of the contacts in the shared contact list are defined as attendees.
- Synchronize tasks associated with any contact in the shared contact list.
2.4 Setting up Master Exchange Categories
To allow users to manually select which Exchange data will be synchronized with the CRM, you can create global Exchange categories which would be visible via Outlook to all users. This configuration can be as simple as a single category e.g.: “CRM.meCRM” which is just a global switch that be can be used to mark items (emails, contacts, appointment/meetings and tasks) for synchronization.
2.5 Supported Platforms
- Supported Microsoft Exchange Versions: Exchange 2007, Exchange 2010
- Supported Operating Systems: Microsoft Windows Vista, Windows 7, Windows 8, Windows Server 2008/2012
2.6 Installing the Pre-Requisites Components
Before installing the Sync Gateway, the installer will check the desktop for required components and install/upgrade any missing component:
- .Net Framework 4 client profile
- Microsoft Sync Framework 2.0 Core Components
- Microsoft SQL Compact Edition.
2.7 Installing Implicit Sync for Exchange
Fig. 1 - Welcome Screen
Click Next to continue. You will be prompted to select the installation folder. By default the installation folder will be set to: \Program Files\Implicit\Implicit SyncExchange. Choose Browse to select a different folder. Then click Next.
Fig. 2 - Installation Folder Screen
Next, the installer will prompt you to confirm the installation and start copying the files:
Fig. 3 - Confirm Installation Screen
Fig. 4 - Copy Files Screen
Upon completion of the installation, the installer automatically starts the gateways synchronization service.
3. Configuring Implicit Sync for Exchange
3.1 Activating License
Upon launching the configuration tool for the first time, you will be prompted to enter a license key. Your License key will be provided to you by CRM.me Support. If you do not have a license key then please contact support@CRM.me and request a license for the CRM.me Exchange integration:
Fig. 5 – Initial About Dialog
Click the “License” button and enter the License key and Client ID:
Fig. 6 – License Key Dialog
You can repeat the process any time you need to upgrade the license (e.g. add additional users). If you do want to add additional users to the license then please contact support@CRM.me and let us know how many licenses you need.
Once you have entered your key you will be able to begin configuring your Sync policy. The Sync policy is a set of rules that will govern how the Sync Gateway will behave for your users; it is broken down into tabs for each section. Let's continue by exploring each tab in sequence below.
3.2 Configuring Servers tab
Fig. 7 – Servers Tab
- Server – CRM Application name (extracted from the license, cannot be modified).
- User ID / Password – Specify a CRM.me account. This user account must be a member of the Super Administrators group in CRM.me.
Microsoft Exchange Server
- Enter the URL to your server Web Services page. This is typically constructed as follows: https://<Your Exchange server Name/IP Address>/EWS/Exchange.asmx
- Domain – Enter domain name
- User ID/Password – Name/Password of the service account with Exchange Impersonation / Delegate Access permissions (See section 2.2).
Shared Resources Mailbox (Optional)
User ID / Password – Name / Password of the shared resources mailbox (see section 2.3)
3.3 Configuring General Synchronization Options
To configure general synchronization options, click the Sync tab:
Fig. 8 – Sync Tab
The configurable parameters include:
- Run synchronization every N minutes - The checkbox turns on/off the actual synchronization. Un-checking the checkbox will put Sync Gateway on hold.
- User Accounts – See section 3.4.
- Synchronization priority – Select which entity should have priority in case a conflict is detected and the same item has been modified on both Exchange and in CRM.me.
- Removal option – Check the boxes if you allow deleted items on Exchange to be removed from CRM.me and vice versa.
- Log file – Should be used for troubleshooting purposes.
- Stop/Start service – You may stop and start Implicit Synchronization system service from within the configuration tool.
3.4 Configuring User Accounts
Click the Users button to select which user mailboxes will take part in the synchronization:
Fig. 9 – User Accounts
To select user accounts, click “Add” to manually select users from Active Directory user list or “Import” to import users from a CSV file.
Each user account is composed of:
- Exchange Mailbox Name
- SMTP Email Address
- CRM.me User Name
To select users from Active Directory, click Add
Fig. 10 – Active Directory User List
You can also import a user list from a CSV file. Each line in the CSV should be formatted as follows:
<Exchange Mailbox Name1>,<Exchange Email Address1>,<CRM User ID1>
<Exchange Mailbox Name2>,<Exchange Email Address2>,<CRM User ID2>
<Exchange Mailbox Name3>,<Exchange Email Address3>,<CRM User ID3>
Note: When you add users, each Exchange mailbox that you add will consume one user license. When you remove an Exchange mailbox you will free one user license per mailbox.
3.5 Configuring Email Upload
Fig. 11 – Email Upload Options
You may configure which emails should be uploaded:
- Upload / Do not upload email to CRM – Turn on/off email upload functionality
- Incoming Email - Turn on email upload of incoming email
- Outgoing Email - Turn on email upload of outgoing email
- Emails associated with Exchange Master Category List – Specify a list of global categories to be used for marking emails for upload (see section 2.4)
- Emails sent to or received from contacts in the global contact list – Click browse to select the contact folder under the shared resource mailbox which you have specified on the Servers tab
- Message body Format - Send Message body as Text or HTML
- Upload Attachments – Turn on attachments upload
- Attachments Size – Upload only attachments that are smaller than a specified size limit
- Attachments Type - Upload attachments of certain file types only (comma delimited list of file extensions)
3.6 Configuring Contacts Synchronization
Fig. 12 – Contacts Synchronization Options
You may configure which contacts should be synchronized:
- Synchronize / Do not synchronize contacts – Turn on/off contacts synchronization
- CRM Contacts to Exchange – Synchronize contacts from CRM to Exchange
- Exchange Contacts to CRM – Synchronize contacts from Exchange to CRM
- All Contacts in the contacts folder - Synchronize all contacts in the selected Exchange folder (The folder is specified on the Folders tab)
- Contacts associated with Exchange Master Category List – Specify a list of global categories to be used for marking contacts for synchronization (see section 2.4)
3.7 Configuring Calendars Synchronization
Fig. 13 – Calendars Synchronization Options
You may configure which appointments/meetings should be synchronized:
- Synchronize / Do not synchronize calendars – Turn on/off calendars synchronization
- CRM calendars to Exchange – Synchronize calendars from CRM to Exchange
- Exchange calendars to CRM – Synchronize calendars from Exchange to CRM
- All appointments/meetings in the calendar - Synchronize all calendar events in the selected Exchange calendar (The folder is specified on the Folders tab)
- Appointments/meetings associated with Exchange Master Category List – Specify a list of global categories to be used for marking calendar events for synchronization (see section 2.4)
- Appointments/meetings associated with global contacts or have attendees that are specified in the global contact list - Click browse to select the contact folder under the shared resource mailbox which you have specified on the Servers tab
3.8 Configuring Tasks Synchronization
Fig. 14 – Tasks Synchronization Options
You may configure which tasks should be synchronized:
- Synchronize / Do not synchronize tasks – Turn on/off tasks synchronization
- CRM tasks to Exchange – Synchronize tasks from CRM to Exchange
- Exchange tasks to CRM – Synchronize tasks from Exchange to CRM
- All tasks in the folder - Synchronize all tasks in the selected Exchange folder (The folder is specified on the Folders tab)
- Tasks associated with Exchange Master Category List – Specify a list of global categories to be used for marking tasks for synchronization (see section 2.4)
- Tasks linked to contacts that are specified in the global contact list - Click browse to select the contact folder under the shared resource mailbox which you have specified on the Servers tab
3.9 Configuring Folders
Fig. 15 – Configuring Exchange Folders
This tab allows you to specify the path for each type of folder under the Exchange mailbox. This is useful if you’re not synchronizing to the native Exchange mailbox folders: Inbox, Sent Items, Contacts, Calendar and Tasks. Otherwise leave them empty.
Once you have completed adjusting your policy click Save. Upon saving your changes the Sync Gateway service will restart and the changes will take effect.
Q. Emails in sub-folders do not sync to CRM.me
A. Implicit sync will only monitor the Incoming and outgoing email folders that you specify in the Folders tab of your sync policy (See Fig. 15). By default this will be your Inbox and Sent Items folders. Implicit sync will not archive any email held in other folders, including subfolders of the Inbox and Sent Items folders. So even if you categorize an email in a subfolder of your inbox to archive it this may not sync because that folder is not monitored by the implicitSync service.
Q. "The response received from the service didn't contain valid XML" message when verifying the Exchange Account connector
A. This message will appear if the Exchange Gateway is not able to connect to your Exchange server for any reason. This may be because the Server Url you have entered is incorrect or some other connection or firewall issue between the Exchange gateway host and the Exchange server.
Q. I am using Office365, what should I enter for the Exchange server Url?
A. All Office365 customers will connect to the same Exchange Server Url for EWS services. If you are setting up the Exchange Gateway for CRM.me to work with Office365 you will want to use the Exchange Server Url below:
Q. When I click the add users button I don't see any users to add?
A. You will only be able to add users automatically here if you have Exchange configured and working with Active Directory. Otherwise you can import the users using a simple CSV file, you can see how to do that in section 3.4 Configuring User Accounts of the CRM.me Exchange Integration Guide above.
You can download the Example Exchange Users.csv file at the bottom of this article that you can use as a template for adding your users and then import that using the Import button on the Exchange Users window. Remember that you will need to add a row in the csv for each individual user that will be synced. You can add/edit users later using the same method.