Friday, 8 November 2013

Dynamics CRM 2013 Configuring Exchange Syncronization

With Dynamics CRM 2013 the Asynchronous service now provides server-side Exchange Synchronization allowing users to:

  • Synchronize contacts, tasks and appointments 
  • Process outgoing emails
  • Process incoming emails
    • Automatically tracking emails based on Correlation rules (smart matching or/and tracking token)
All this without the need for the CRM Outlook client.

In the past appointments could only be synchronized with the CRM Outlook client installed and configured, if you booked an appointment with multiple people the appointment would only appear in other users Outlook Calendar if those same users had the CRM client installed and synchronizing with CRM. With Exchange Synchronization you eliminate this need for the CRM client, appointments created by you that require multiple people get directly written to their exchange profile so you automatically get an appointment alert to accept or decline.

On this article I will walk-through how to set up Exchange synchronization with Dynamics CRM 2013, here is an overview of the steps:
  1. Set up an IIS self-signed certificate
  2. Configure Exchange Impersonation 
  3. Create and configure a CRM 2013 Exchange profile
  4. Configure User Mailboxes
  5. Configure CRM global Email Settings
  6. Test synchronization
  7. Design Overview
  8. known issues
  9. Summary and References
Before we start configuring CRM 2013 with exchange we need to have in-place HTTPS. We just need a self-signed certificate generated by IIS to get us going.

1. Self-signed Certificate
To generate the certificate open IIS and highlight the server name and double click Certificates


















On the right-hand side click on Self-signed certificate






Give it a Name (I call it MyCertificate) leave Personal and click OK



















You should see the certificate listed on the list:












Next step is to bind the Dynamics CRM website to HTTPS (443)

Highlight the Dynamics CRM web site under sites and on the right-hand side chose Bindings. The below window opens and on the type field you choose HTTPS  this will enable the SSL certificate field to choose a certificate and we choose the MyCertificate, click OK



















2. Exchange Account Impersonation
Before we start Configuring profiles in CRM we want to make sure CRM service account has impersonation rights on the Exchange side to do this we run the following PowerShell command:

Exchange 2010
New-ManagementRoleAssignment -Name "" -Role:ApplicationImpersonation -User ""

For example: New-ManagementRoleAssignment -Name "CRM ExServiceAcc" -Role:ApplicationImpersonation -User crm13.service

Exchange 2007
Get-MailboxServer "" | Add-AdPermission -User "" -AccessRights ExtendedRight -ExtendedRights ms-Exch-EPI-May-Impersonate, ms-Exch-EPI-Impersonation

The second PowerShell command requires the Distinguished Name (DN) of the Microsoft Client Access Server (CAS).

To enable impersonation rights on a single Microsoft CAS server use the following command:

Get-ClientAccessServer -Identity "" | Add-AdPermission -User "" -ExtendedRights ms-Exch-EPI-Impersonation


3. Configuring CRM Exchange Profile
With the https binding in-place navigate to CRM using https://server/organization and settings > Email Configuration















Click on Email Server Profiles and then New Exchange Profile:













Fill in the details as per the below screenshot, you could use auto-discovery if it's working okay for you, I have tested in my environment and worked perfectly. The service account we specified has been given server-wide impersonation.
I've named the profile UK Mailboxes if you have users across different countries and exchange servers located on these sites you should create multiple profiles with the corresponding Exchange servers.






































Leave the Advanced settings as they are:
















Navigate to Mailboxes and on the Ribbon choose Add Existing Mailbox, by default every user created or imported during an organization import it's automatically generated a mailbox in the system, so when you click add existing mailbox the system will list all available user accounts.
































































4. Configuring Mailboxes
At this stage we have created an Email Server Profile and added 2 mailboxes, lets double click on one of the mailboxes:

Change the:
Server Profile: UK Mailboxes (the profile we just created)

Incoming Email: Server-Side Synchronization or Email Router
Outgoing Email: Server-Side Synchronization or Email Router

Note: on the configuration test results you should see Not Run instead of Success the screenshot was taken after the configuration was completed


Approve the Email and then click on Test & Enable Mailbox:





























You then get the following alert message on the mailbox profile:








Click on Alerts and in a few seconds you will see the following messages coming up:
























This means all checks completed successfully and you ready to test it in Outlook. If you look back at the Mailbox General tab you should now see the Configuration test results as Success.

During this test a test email is sent to your Inbox:
This is a test message to check the outgoing email configuration for [User].


5. CRM Global Email settings
Before we start the Outlook test, lets first look at the CRM Global Email settings navigate to: Settings > Administration > System Settings

Go to the Email Tab, on this section there are a number of important settings that you should think from a design phase rather than implementation.

Configure email processing:
here you define which default method you want to process users email as it says if you choose Server-Side it will block Email Router. As we want to test server-side synchronization choose server-side instead of Email router.

Configure default synchronization method:
This will define users profile preferences and this is very important from a design perspective because will avoid duplicating work. If all your users are in UK you can default a server profile to UK Mailboxes, if you have users across different countries you could still define a default Email Server Profile using auto-discovery and then workout manually any specific users that require a manual Server Profile.

On the incoming, outgoing email and appointments, contacts and tasks default this to Server-Side synchronization or Email Router this will make sure it can use both.
















Below you define if you should only process emails for approved users, this means if email processing is not a sensible subject in your implementation then I would recommend you untick this boxes because it removes an extra click on the configuration steps as we have seen above.







Configure email correlation, by default both tracking token and smart matching are enabled this is a business requirements rather than a performance or optimization issue. The tracking token will add a token CRM:Number to the emails subject which get processed by CRM and smart matching will be more transparent to users and attempt to use a matching pattern to find emails that should be tracked in CRM.

Note: Using a tracking token will be more efficient than smart matching but at a cost of being less transparent to users.



















6. Test Synchronization
You ready to test the exchange synchronization create one appointment in CRM and include as required yourself and another CRM user fill in the other details and SAVE in a few minutes if all works well a meeting request is received in Outlook by all users.
























To test sending emails confirm that on the Configure Email processing in the Global email settings is set to server-side synch, send an email to someone from CRM and ask that person to reply back, you should see the email tracked automatically in CRM.


7. Design Overview
On the design overview I just want to share a high-level diagram on the possible design routes for server-side synchronization.





















The above diagram illustrates a possible scenario where there is a main office Lisbon and all other 3 branch offices have CRM users but out of the 3 only 2 offices use their own Exchange server. In CRM you define 3 Email Exchange Server Profiles:


  • Default Exchange Profile configured with Lisbon Exchange server
  • New-York CRM Profile configured with New-York Exchange Server
  • London CRM Profile configured with a London Exchange server

The Default Exchange server profile it's applied to all users mailboxes so you only have to apply manually Exchange profiles on users mailboxes in London and New-York. Toquio and Lisbon will both default to the default Exchange profile which points at Lisbon.

8. Known issues
While testing the server-side synchronization I found that some mailboxes didn't get processed though the Test configuration results passed successfully. Enabling logging on the Asynchronous servers I found the below error; this has been logged with Microsoft and currently being investigated so if you do find yourself unable to test the server-side synchronization bear in mind this could apply to your mailbox create a new user with a brand new mailbox to test your CRM configuration.

When this happens you may see the following error message:







On the Asynchronous service logs we found:

>Exception occurred while retrieving folder data from exchange server. Exception: Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: s

Server stack trace:
   at System.Convert.FromBase64String(String s)
   at Microsoft.Exchange.WebServices.Data.MapiTypeConverter.<.cctor>b__14(String s)
   at Microsoft.Exchange.WebServices.Data.MapiTypeConverterMapEntry.ConvertToValue(String stringValue)
   at Microsoft.Exchange.WebServices.Data.ExtendedProperty.TryReadElementFromXml(EwsServiceXmlReader reader)
   at Microsoft.Exchange.WebServices.Data.ComplexProperty.InternalLoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName, Func`2 readAction)
   at Microsoft.Exchange.WebServices.Data.ComplexProperty.LoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName)
   at Microsoft.Exchange.WebServices.Data.ExtendedPropertyCollection.LoadFromXml(EwsServiceXmlReader reader, String localElementName)
   at Microsoft.Exchange.WebServices.Data.ComplexPropertyDefinitionBase.InternalLoadFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
   at Microsoft.Exchange.WebServices.Data.ComplexPropertyDefinitionBase.LoadPropertyValueFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
   at Microsoft.Exchange.WebServices.Data.PropertyBag.LoadFromXml(EwsServiceXmlReader reader, Boolean clear, PropertySet requestedPropertySet, Boolean onlySummaryPropertiesRequested)
   at Microsoft.Exchange.WebServices.Data.EwsServiceXmlReader.ReadServiceObjectsCollectionFromXml[TServiceObject](XmlNamespace collectionXmlNamespace, String collectionXmlElementName, GetObjectInstanceDelegate`1 getObjectInstanceDelegate, Boolean clearPropertyBag, PropertySet requestedPropertySet, Boolean summaryPropertiesOnly)
   at Microsoft.Exchange.WebServices.Data.GetItemResponse.ReadElementsFromXml(EwsServiceXmlReader reader)
   at Microsoft.Exchange.WebServices.Data.ServiceResponse.LoadFromXml(EwsServiceXmlReader reader, String xmlElementName)
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ParseResponse(EwsServiceXmlReader reader)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsServiceXmlReader ewsXmlReader)
   at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(IEwsHttpWebResponse response)
   at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalLoadPropertiesForItems(IEnumerable`1 items, PropertySet propertySet, ServiceErrorHandling errorHandling)
   at Microsoft.Crm.Asynchronous.EmailConnector.MonitoredExchangeService.LoadPropertiesForItems(IEnumerable`1 items, PropertySet propertySet)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
   at Microsoft.Crm.Asynchronous.EmailConnector.ExchangeSyncSteps.LoadPropertiesForItemsStep.LoadPropertiesForItemsDelegate.EndInvoke(IAsyncResult result)
   at Microsoft.Crm.Asynchronous.EmailConnector.ExchangeSyncSteps.LoadPropertiesForItemsStep.EndRequest(IAsyncResult response)

   at Microsoft.Crm.Asynchronous.EmailConnector.ExchangeSyncSteps.ExchangeSyncAsyncRemoteStep`2.AfterCall()


9. Summary & References
Hope you have enjoyed this article please leave your feedback.




71 comments:

  1. Hi Nuno,

    We are seeing a similar error in calendar sync to the one you describe in section 8, but ours appears to be timezone related - see http://pastebin.com/hQ1qLBMY

    How did you report your issue to Microsoft? Have they come back with a solution yet?

    Regards,
    Edward

    ReplyDelete
    Replies
    1. Hi Edward,

      Did you get to the bottom of your issue? We are having the exact same error message relating to timezones here, I notice in the error that it isn't being passed a string id for the timezone however it looks like its trying to use userid 00000000-0000-0000-0000-000000000000

      Paul

      Delete
    2. Hi Edward and Paul,
      Could you attempt a mailbox repair, and let me know if it was successful?
      http://technet.microsoft.com/en-us/library/ff625221(v=exchg.141).aspx

      Regards
      Nuno

      Delete
    3. Hi Nuno,

      Unfortunately a mailbox repair doesn't appear to do anything - we're still not able to sync calendar events. I have opened a case with Microsoft and they are looking into it. I'll let you know when I have any news.

      Regards
      Edward

      Delete
    4. Were any of you able to find a solution to this problem?

      Thanks,

      Mike

      Delete
    5. Hi Michael,
      Microsoft is still investigating my issue. I'll keep you posted when I have more information.

      Delete
    6. Hi

      I Think I've sort of solved the problem, I hade the exact same problem as described. What I did was I cleaned up some old calendar items. I added the column Outlook Version as a field in the view, I used the List view. I removed all calendar items with version 12.0 (old Exchange version), I also removed all old calendar items ut to version 14.2Ex (not shure if you need to go ut to this version, just test).

      Then the sync started to work. My guess is that old Calendar items stored with a old Exchange version doesn't have all the required fields (like the Regional field).

      Still Think that this is a bug in CRM that needs to be fixed.

      /K1

      Delete
    7. Hi K1,
      Thanks for your update, hope helps someone. In my case the issue ins not the calendar but some odd attribute on the mailbox which Microsoft is still trying to figure out which one is it.

      Delete
    8. if you are Facing hotmail account problem Contact Hotmail Outlook Support Nz to solve all Hotmail/Outlook account related issue, call at: +64-9-28-062-35

      Delete
  2. Hi Edward,
    That's interesting. I've logged it via the Microsoft premier support premier.microsoft.com.
    The issue has been escalated so far, I'll let you know when I hear from them.

    did you try with a brand new user mailbox?

    Regards
    Nuno

    ReplyDelete
    Replies
    1. Hi Nuno,

      We are only seeing the issue with some mailboxes. Mine does not work, but one of my colleagues has no trouble with it. We can't see any obvious difference between the two accounts/mailboxes. I did try creating a brand new user, and that worked as well. Not sure what to make of that yet.

      Regards,
      Edward

      Delete
  3. This comment has been removed by the author.

    ReplyDelete
  4. In step 2 you refer to the "CRM Service Account". WHICH service account are you referring to?

    Thanks,

    Bill

    ReplyDelete
    Replies
    1. Hi Bill,
      This is the service account that has impersonation rights in Exchange which you configure in the CRM Exchange Profile, this account will impersonate users permissions to access their mailbox items, contacts, emails, appointments etc... You can see that on the exchange profile screenshot under credentials I've specified crm13.service account, I would recommend a dedicated service account just for exchange sync.

      I will amend the text to be more clear which service account I'm referring to. Thanks for your feedback.

      Delete
    2. This is clear. Thanks for the answer. One issue I'm running into. I didn't do a self-signed certificate, but instead requested an SSL cert from GoDaddy.com. I installed this successfully on the CRM server; however, when I test an email account, I get an error stating that "The email message "Test Message" cannot be sent because a server certificate required to connect to the email server using SSL could not be validated.". Does anything need to be done on the Exchange side to elminate this error?

      Delete
    3. Hi Bill,
      You want to check if you need a CA certificate from GoDaddy that needs installing on the Trusted root CA store. let me know if you need help email me on: nuno.m.costa@gmail.com

      Delete
    4. Bill what was your resolution, I also have an SSL cert and am having the same issue?

      Delete
    5. Hi Bill/Nuno/Russ,

      Did anyone get to solve the SSL issue. We also have the same issue and taking a long time. Any guidance to solve the issue would be appreciated.

      Delete
  5. Hi Nuno, do you do consultancy work

    ReplyDelete
    Replies
    1. Hi,
      Yes I do, please send me an email to: nuno.m.costa@gmail.com.
      Regards
      Nuno

      Delete
  6. Hi Guys - I too am having the same issue - has anyone heard from Microsoft. Has anyone got a fix? - any resonses will be greatly appreciated.

    ReplyDelete
  7. Case logged with MS - fingers crossed

    ReplyDelete
  8. Hi Nuno,
    can I create server profile with an external exchane server on different AD domain?
    Thanks
    Michele

    ReplyDelete
    Replies
    1. Hi Michelle,
      If the account can reach and authenticate against the server then I would be confident it would work fine though I haven't tested in that particular scenario. Let me know how you get on.
      Thanks
      Nuno

      Delete
  9. Great article about a very useful feature of CRM 2013 as our users have been crying out for server side sync as the managers are often out of the office so their Outlook isn't always on. Thanks for writing

    ReplyDelete
    Replies
    1. Hi Scott, many thanks for your commends. Let me know if you need assistance.
      Thanks
      Nuno

      Delete
  10. Hi Guys, any update on when the server-sync is available for CRM 2013 online?

    ReplyDelete
  11. Very Handy Article, Question, when using server side sync, should emails created in web interface sync to sent items in outlook. currently this isn't happening. The email sends fine but doesn't land in outlook sent items.

    ReplyDelete
    Replies
    1. Hi Travis, I've tested on my side and is the same, I think this is by design and not expected to be tracked on the sent items. Tried to reply to your email but bounced back saying gmail is blacklisted.
      Regards
      Nuno

      Delete
  12. Very nice and elegant article

    ReplyDelete
  13. Anyone tried to sync Lotus Notes via server side?

    ReplyDelete
  14. We are having the same issues with existing mailboxes. Users with newer mailboxes are able to sync. Any word back?

    ReplyDelete
  15. Thank you for this article. I used to successfully migrate from our old E-Mail router to the new Server-Side Synchronization.

    This might be obvious, but would you what security roles are required to sync tasks, appointments, etc. Some of our mailboxes fail at this stage, and giving maximum privileges resolves the issue.

    Thanks in advance for any advice!

    ReplyDelete
  16. HI I am getting error when I tried first Powershell command on 2007 that command cannot take input pipeline

    ReplyDelete
  17. Thank you for the detailed step by step for installing Dynamics CRM. After setting up the email server profile I ran the test and enable mailboxes command. But I keep getting the following error " One or more mailboxes associated to the email server profile XXXXXXXXXX have been disabled for receiving email because a server certificate that is required to connect to the email server using SSL could not be validated. Make sure that a valid certificate is installed for Microsoft Dynamics CRM to connect to the email server. Then, enable the mailboxes for receiving email."

    I would appreciate any assistance. I've been struggling with the error for the past week. Everything else (except email) is working great.

    ReplyDelete
    Replies
    1. Hi Masri,
      Please feel free to contact my via email: nuno.m.costa@gmail.com and I'll be happy to help you.

      Regards
      Nuno

      Delete
    2. HI Nuno.
      I sent u an email regarding this case.

      Would appreciate your help.
      Regards, Frank.

      Delete
    3. Hi Masri
      Were you able to resolve your certificate issue?
      I am having exactly the same error message.
      I have been trying to resolve this for over a week.
      Any help would be greatly appreciated.
      Thanks
      Dan Plouffe

      Delete
  18. Hi Nuno,

    Thanks much for the article. Could you please update Step 2 to include Exchange 2013? I'm a bit stuck at the moment and that would help tremendously.

    Thanks!

    ReplyDelete
    Replies
    1. Hi Christopher,
      Thanks for your comments. I have recently helped a client with Exchange 2013 and configuring impersonation was similar to 2010. What error you getting? Feel free to contacting me by email.
      Regards
      Nuno

      Delete
  19. Hello Nuno
    Ever been able to stop invitations being sent when appointments have a Contact in the Required field? My client doesn't want the invitations to leave, but does want the users to add the Contact(s) as Required on the appointments for visibility.

    With Outlook client sync this was fine as the appointment records syncd from CRM didn't actually get sent. The Email Router method historically, and now Server-side Sync, automatically send the invitation to any Required parties without anywhere I can see to intervene.

    I had considered an Exchange rule to trap and block these at point of delivery but that seems overkill.

    Anyone found ways around this?

    Thanks

    ReplyDelete
    Replies
    1. I'd be curious as to how you solved this. We just tell the users to leave Regarding at the Customer and put Required as blank to make sure the customer does not get notified.

      Delete
    2. This is tricky. Had the same requirement for a Customer. We solved it by moving all external Contacts to separate manual intersect entity with a plugin. Tricky but it worked.

      Delete
    3. We solved this by adding a tag identifier to the Subject of every CRM appointment where we wanted to prevent the meeting invitation. Then configuring an Exchange Transport Rule hooking onto that subject where it is a calenaring object, with the rule re-routing the invitation email to a quarantine inbox. So it never left the email platform.

      Simple plugin with conditional rules over the Required and Optional attendees, which updates the subject field did it.

      This allowed us to keep the contacts as contact records with the primary emailaddress still set.

      Delete
  20. Nuno, thank you very much for posting this tutorial. It is VERY helpful. The one question I have is regarding the second power shell command in step 2. You wrote:

    Get-ClientAccessServer -Identity "" | Add-AdPermission -User "" -ExtendedRights ms-Exch-EPI-Impersonation

    Is the CAS the Exchange server or the CRM server? I'm also assuming the User is the same as in step one. CRM13.Service? Can you please clarify that command. The example for the first command was very helpful.

    Thank you in advance for your assistance.

    ReplyDelete
  21. Hi there,

    has anyone experience performance issues after configuring server-side sync, like time-out on different activities or blocking processes in the database?

    Thanks

    ReplyDelete
    Replies
    1. Hi Juan,

      I haven't, because I'm using CRM Online, but if you are using On Premise, consider what the Microsoft Dynamics CRM Online Spring ’14 release notes say here http://www.microsoft.com/en-us/dynamics/crm-customer-center/readme.htm#_Server-side_Synchronization_Known_1

      Every enabled mailbox runs server-side synchronization on the CRM Async server periodically, so ensure you have proper testing and hardware
      Please ensure you have enough testing and hardware for CRM on-premises and Exchange Server on-premises before using server-side synchronization in your day-to-day environment.
      The load and performance impact of server-side synchronization highly depends on the:
      · Number of enabled mailboxes
      · Load of user usage (daily or peak) on emails, appointments, contacts, and tasks
      · Load on the Exchange server and Async server (such as workflows, etc)
      · Optimization of the SQL servers
      · Data topology of the Exchange server
      · Hardware specification and Internet connection of the environments.

      Hope it helps!!

      Delete
  22. Hi,

    I was trying to set it up following your instructions. I am using self-signed certificate, but getting following error:




    DCLabExch


    One or more mailboxes associated to the email server profile DCLabExch have been disabled for receiving email because a server certificate that is required to connect to the email server using SSL could not be validated. Make sure that a valid certificate is installed for Microsoft Dynamics CRM to connect to the email server. Then, enable the mailboxes for receiving email.

    When I check event logs, I also see this error:

    WebHost failed to process a request.
    Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/20800246
    Exception: System.Web.HttpException (0x80004005): There was no channel actively listening at 'https://xxxxxxxx/PRMLab/xrmservices/2011/OrganizationData.svc/msdyn_PostConfigSet?$select=msdyn_EntityName,statecode&$filter=msdyn_EntityName eq 'mailbox''. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening. ---> System.ServiceModel.EndpointNotFoundException: There was no channel actively listening at 'https://dclabcrm02.dclab.com/PRMLab/xrmservices/2011/OrganizationData.svc/msdyn_PostConfigSet?$select=msdyn_EntityName,statecode&$filter=msdyn_EntityName eq 'mailbox''. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening.
    at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
    at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)
    Process Name: w3wp
    Process ID: 4264

    ReplyDelete
    Replies
    1. Hi Chixcancode,

      Did you get to solve the SSL issue. We also have the same issue and taking a long time. Any guidance to solve the issue would be appreciated

      Delete
  23. I configured server-side Synchronization between CRM 2013 SP1 (italian) and Exchange 2010 SP3 RU6.

    All mailboxes at the begin seem to work correctly and tests are passed successfull. After few minutes i receive this alert error multiple times:

    Appointments, contacts and tasks for the mailbox Enzo ... couldn't be synchronized. The owner of the associated email server profile ...xxx... has been notified. The system will try again later.

    The whole article with logs is posted on https://community.dynamics.com/crm/f/117/t/139539.aspx

    Please if anyone has some information, you write me..

    Thank you in advance

    ReplyDelete
    Replies
    1. 1. Enzo you should firstly check the security role permissions to include those below.. As far as I can see, they are undocumented dependencies

      Service Management:

      Calendar: create Org, read Org, Write Org, Append/To Org

      Browse availability: Org



      Business Management:

      Email Server Profile: read Org, Append/To Org

      Mailbox: read Org, write User, Append/To Org

      2. Check that the primary email address in Exchange for that user is the one configured in the User record in CRM. And ensure that the email address is Approved in the User record. The primary email address is also an undocumented dependency.

      Delete
  24. Hello Rob,
    I checked all role permission on my user and I checked that email address has been approved, but I receive the same error.

    How can I track a verbose debug log for the problem?

    Thank you

    ReplyDelete
    Replies
    1. Hi Enzo, I had the same problem. Strangely enough, I managed to resolve it by adding the Sync to Outlook permission! Under Business management- Privacy Related Privileges.

      Delete
  25. Thank you for the course content On Servicenow Administration Online Training it will be Most usefull for Beginners

    ReplyDelete
  26. Other than the ApplicationImpersonation permission on Exchange 2010, are there any other permissions needed by the Email server profile account to allow appointments, contacts, and tasks to be sync'ed? I'm being requested to allow fullacccess permissions for the Email server profile account to the CRM users because appointments are failing but E-mail is working.

    ReplyDelete
  27. We have CRM 2015 On Premise install and have configured server side synchronization We are constantly have issues were certain emails do not enter crm queue however are present in the mailbox.
    Sometimes if you forward the email back to the mailbox it will enter the queue other times it wont and you have to make some changes to the subject line and then forward the email for it to enter the queue.

    Has anyone encountered such issues and how can we resolve such a problem.

    Any help would be great.

    Thanks

    ReplyDelete
    Replies
    1. Hi Maria,

      I have the same issue, did you get a solution? I hear creating a forward mailbox is a good solution.

      Silla

      Delete
  28. Great Article Nuno,

    Can you please advise on the below:
    1. I have CRM 2015 on premises with Exchange 2016 on premises.
    2. Should I Set up an IIS self-signed certificate and then Configure Exchange Impersonation in order to work fine?

    Currently no SSL and in the Email Server Profile authentication is set to Windows Authentication; however, the following error is occurring "The email message "Test Message" cannot be sent because an error occurred while connecting to the email server. The mailbox "..." has been disabled for sending email. The owner of the associated email server profile "..." has been notified."

    Please advise.

    ReplyDelete
  29. No need for Cert in that deployment model. Check you can browse to EWS of the Email Server Profile from the CRM async / Email Integration Service server. Check that service account running async service /Email Int Service has ApplicationImpersonation rights over Mailbox you are testing. Check User of Mailbox Email Address field value is the Primary SMTP of the user mailbox in Exchange. If all those good, turn in CRM tracing and retest. You may find a more meaningful fail reason that the rubbish SSS error.

    ReplyDelete
  30. Having and issued with Server Side Sync and appointments; they do not sync to the users. If I use the CRM Outlook sync client all works. Contacts & Task as expected. Just not the appointments.

    - User A creates an opportunity
    - rums a workflow that creates an appointment
    - User A gets the appointment
    - User B does not get the appointment
    - User B modifies the opportunity, workflow is triggers, appointment is created
    - User A gets the appointment
    - User B does not

    the above ONLY happens with Server Side Sync enabled. If using the Outlook sync then both User A and B always get the appointment

    this leads me to believe the appointment Organizer is not the issue and the Sync Filters are not the issue.

    Please HELP!!!

    ReplyDelete
  31. SSS requires the organizer and owner to be the same CRM user. Check the workflow is being run as User not Owner of workflow (who is the owner of appointment when activity created?) That user must have an exchange mailbox with the primary email address matching the CRM user primary email address.

    If all of that ok, check the A and B user has an Outlook filter for appointments where they are Party to appointment (not just Owner).

    ReplyDelete
  32. Also check did you enable the Mailbox in CRM, test and enable Mailbox and did you get Success in all incoming outgoing and appointment/contact/task?

    Outlook sync does not require this. SSS does.

    ReplyDelete
  33. Thank you for your response. Workflow has Owner = Team, Organizer = Opportunity Created By

    Sync filters:
    - Start Time = Contains Data
    - End Time = Contains Data
    - Appointment Type - Not Recurring

    Activity Parties (activity)
    - Party = Current User And His Teams and his......

    SSS for each mailbox runs successfully. Service Account has mailbox and is member of CRM Org. That mailbox also runs successfully. Task and Contacts have no issue.

    Is there something I am missing?

    ReplyDelete
  34. Sorry Owner = Opportunity Created By NOT Team

    ReplyDelete
  35. After very testing what I have determined is that the appointment I would like sync will only be accessible to the organizer of the appointment. Which ever user or user type (I.e. Opportunity modified by, Opportunity created by) will be able to sync the appointment.

    Any further thoughts?

    ReplyDelete
  36. If Owner and Organizer match and are a user record with active enabled mailbox then start looking at the other Parties. What do you have mapped to Required Attendee field? What do you have in the ExchangeSyncError table (on prem) or SSS troubleshooting dashboard (2016 on)

    ReplyDelete
  37. Hello, so I was trying to avoid using the Required Attendee field. But with SSS this might not be possible. Either it is a bug, a design oversight or a by-design. Either way, with SSS enabled you cannot just sync the appointments to the owners or another other form.

    I finally solved this by using a custom plugin
    - custom look up field on appointment (hidden from users)
    - Look up field in workflow is populated with Team
    - plugin monitors this field
    - when field is populated plugin will pull team members and populate individual team members in the Required Attendee field

    Thank you for your support.

    ReplyDelete
  38. Required attendee is not mandatory for appointment to sync to the Owner/Organizer. I do this in one of our deployments already. Once added Required attendee at later time the appointment syncs to their calendar too.

    ReplyDelete
  39. This comment has been removed by the author.

    ReplyDelete
  40. Question to all: Has the original problem "Exception message: Value cannot be null" ever been fixed? I am experiencing this problem currently and I do not see a fix in this thread! Has Microsoft gotten back to you? Did they provide a reference number to the issue?

    ReplyDelete
  41. Quantum Dynamics With Microsoft Crm: Dynamics Crm 2013 Configuring Exchange Syncronization >>>>> Download Now

    >>>>> Download Full

    Quantum Dynamics With Microsoft Crm: Dynamics Crm 2013 Configuring Exchange Syncronization >>>>> Download LINK

    >>>>> Download Now

    Quantum Dynamics With Microsoft Crm: Dynamics Crm 2013 Configuring Exchange Syncronization >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete