Integrating Sage CRM with Office 365 Exchange Online

The Sage CRM Blog

Articles of general interest about Sage CRM, the community, add-ons and general news!

Integrating Sage CRM with Office 365 Exchange Online

  • Comments 23
  • Likes

I was prepping for the NA Sage Summit 2011 which was taking place in Washington, DC just over a week ago and I wanted show off the power and simplicity behind the Sage CRM Exchange Integration that was just recently released in Sage CRM v7.1. Plus, I thought it would be great to send out appointments to the audience during the Sage CRM v7.1 overview sessions and see their responses synch back into the system.

Now, we generally demo the Exchange Integration by setting up a SBS environment on a separate laptop, virtual machine or even a remote desktop session to a live environment but for Summit I decided to try Office 365 as I had read that the Exchange offering included the ApplicationImpersonation management role which is necessary for the integration.

The setup of Office 365 and the integration to Sage CRM v7.1 was very straight forward, but I did run into a couple of head scratching moments during the process  that I thought I would share…

Office 365 Setup

1. Sign up for an Office365 account: (http://www.microsoft.com/en-ie/office365/free-trial/small-business.aspx)

2. Sign in (http://login.microsoftonline.com) to the account, and create a number of user mailboxes. For the purpose of this example I set up the following users:

admin@mydomain.onmicrosoft.com (Admin account created during the initial setup)
mayes@mydomain.onmicrosoft.com
dolanw@mydomain.onmicrosoft.com

3: Once your users have been set up, we need to create a user that has the ApplicationImpersonation role. This will allow this the Sage CRM Exchange integration to edit data changes in these users' mailboxes. First of all, we create the new user account, as with the earlier users. For this example, we'll create a mailbox with the following name:

crmuser@mydomain.onmicrosoft.com

It used to be the case that you needed to set the "Automatically process requests and responses from external senders" option on each user's mailbox. This is no longer the case. Instead, you need to assign the ApplicationImpersonation role to the CRM user. This can be done from within the Exchange Online administrator settings.

To do this, select the Permissions option from the menu on the left hand side. Next, select the Admin Roles option, then the + symbol to add a new role.

A new dialog box will open, and you'll be prompted to add a name for your role group. We'll call ours "CRM Impersonation".

Under the Roles menu, select the + icon to select an RBAC role. Select the ApplicationImpersonation role, then hit Add, then OK.

Finally, in the Members area, select the + icon to add a user account. We'll add the CRM user account that we've just created. Hit Save when you're done.

The role assignment area is one that has changed frequently in Exchange Online. If you run into problems allowing an impersonated user access over your Exchange user mailboxes, you can check out the permissions using Powershell. There's a description of how to do this in KBA 492-16618 on this site.

5: The next step is to take note of the endpoint URL that will be used to interact with Exchange Online's web services API. Previously, you would have had to take note of which server cluster (or "pod") you were connecting to. This has now been standardised to a single URL:

https://outlook.office365.com/EWS/Exchange.asmx


Sage CRM Setup

1. Log on to SageCRM as Admin and to go Administration > System > System Behaviour > Set ‘Use Exchange Server Integration’ to ‘Yes’.

2. Go to Administration > Email and Documents > Exchange Server Integration > Connection Management > Pop in your EWS URL and credentials

Exchange Web Service URL: https://outlook.office365.com/EWS/Exchange.asmx
Exchange Server User Name: crmuser@mydomain.onmicrosoft.com

Domain: <blank>
Password: ********

Side Note: Here is a great little tool that you can use to test out your EWS connection -  https://www.testexchangeconnectivity.com/Default.aspx

3. Go to Administration -> E-mail and Documents -> Exchange Server Integration -> Connection Management -> User Mailbox Management and select the email account that you wish to synchronize with.

 

4. Go to Administration -> E-mail and Documents -> Exchange Server Integration -> Synchronization Management  and Enable the synchronization.

  

That is it!

You should now be able to create appointments from within Sage CRM and see the meeting invites go out to other Sage CRM Users and any external attendees you add to the appointment. I have to say that the flexibility of having my local installation of Sage CRM on my laptop integrated with my exchange account online was fantastic!

Now you are probably wondering about the rest of the Office 365 offerings and support for them. We have not officially tested Office 365 so we still need our QA crew to give it a once over but here are some of our preliminary thoughts.

Office Professional Plus – As a desktop application paid for via a monthly subscription should allow users to use all the Officey functionality that is currently in Sage CRM v7.1 (Mail Merge, Export to Excel, Outlook Integration).

Exchange Online – Now Exchange Online has been out in the market for a while now but it is important to note that the BPOS Exchange Online offering did not allow administrators to access or set the ApplicationImpersonation management role.  Thankfully, Office365 has now been released and the Exchange offering packaged up with it does include the ApplicationImpersonation user role.  So far so good.

SharePoint Online – We do not integrate or support this and it is not currently on the roadmap.

Lync Online – We do not integrate or support this and it is not currently on the roadmap.

Office Web Apps - We support Outlook Web App as far as the Exchange Integration is concerned in that meetings etc. created via OWA can sync to Sage CRM.  Our Outlook Plug-in however doesn’t integrate with Outlook Web App.

Office 365 has been officially supported within Sage CRM since the release of 7.1 SP1.

Footnote: This blog post has been updated by other Sage CRM team members since it was originally published. The Exchange Online platform is actively modified by Microsoft, so we will endeavour to keep this article up to date, in so far as is possible. Further detail regarding the handling of the ApplicationImpersonation role is available in knowledgebase article 492-16618.

Comments
  • Gina, your post couldn't have come at a better time.  I'd never have figured out how to come up with the web services URL, and the Automatic Processing tip is also a big help.  The only piece we're missing is how to know / configure the ApplicationImpersonation in Microsoft's hosted environment.  Might I ask what "level" your subscription was set to, or if there are any other tid-bits you might have regarding this role?

    Thanks again.

    - Graham

  • Sorry, perhaps I should have added this to clarify: in CRM, we can create the connection, but we're stuck when we go to enable mailbox users.  So my assumption is that the Exchange/Domain Admin account we're using doesn't have ApplicationImpersonation role membership - plus in Microsoft's hosted set (we're using 'P1'), this role doesn't appear as an option we can assign, nor do the cmdapplets allow it.  I don't fully understand  all of this and my terminology might be off a bit (I was working with my client's IT guy), but I'm pretty sure the problem is with assigning ApplicationImpersonation role membership to our Exchange Admin user.

  • Gina, we're all set.  The problem was that the hosted environment we were testing with used different email addresses (domains) than our production CRM system.  Once I updated the CRM User's email addresses with the correct domain, we were able to sync just fine.  Whew - thanks again for posting the article - very helpful!

    - Graham

  • Glad to here that you got that all sorted out Graham!

    One additional trick is to ensure that you log onto the admin@mydomain.onmicrosoft.com Inbox so that the Admin mailbox is created before you attempt to setup the Sage CRM side of things.

  • Hi Gina,

    Do you know where on the Roadmap Office365 is for offical support?

  • Gina,

    We're trying to set this up but are getting an error when creating the connection. At the stage of The Sync Engine is checking to see if the Exchange Web Service is available it fails saying:

    The Exchange Server connection could not be saved as the Sync Engine was unable to contact the Exchange Web Service. Please Refer to the Exchange Server Integration chapter of the System Administration Guide for information on possible causes of the unavailability of the Exchange Web Service.

    I have entered my EWS URL as pod510xx.outlook.com/.../Exchange.asmx and used my Outlook365 admin username and password for the credentials. Any ideas? I'm working with our Sage Partner on this but any feedback I can get would be helpful.

  • Hi Darrel

    Did you ever get this sorted as I get the same error at the point of "The Sync Engine is attempting to create the connection to the Exchange Server"

  • I was able to get connected to Outlook 365. But I can't get a connection to the Sync Engine either.

  • Hi all,

    For those who are facing problem to connect to Exchange.

    For enabling impersonation

    exchws.wordpress.com/.../activate-user-impersonation-in-office-365-for-exchange-online

    If you are using proxy

    community.sagecrm.com/.../how-to-troubleshoot-refused-connection-by-exchange-web-service-at-office-365.aspx

  • I get the same error at the point of "The Sync Engine is attempting to create the connection to the Exchange Server"

    I have tested using EWS login etc using www.testexchangeconnectivity.com/Default.aspx and all is OK.

    Any help will be appreciated.

  • Hi,

    Did anyone actually get Office 365 connected up to CRM, I'm getting sync engine error as above.

    Thanks

    Mick

  • I am getting the same error, any more inputs?

  • I was able to resolve this, thanks to Naved's inputs above -

    For enabling impersonation

    exchws.wordpress.com/.../activate-user-impersonation-in-office-365-for-exchange-online

  • Thanks Yogesh.   I found that mine started working only after adding Application Impersonation as well.

  • @BinkkleyData - Thanks. Neeed more help though. While the above post helped me to integrate Tasks, Appointments, Contacts between Exchange and Sage CRM, I am still not able to send mails from CRM. Here is the detailed description of this problem if you want to look at community.sagecrm.com/.../8077.aspx