Configure Server Side Sync with Exchange Online for CRM Online

Open the System User and assign the license for Exchange Online


Open the system user record and click on Open Mailbox to open user’s mail box.



Set Server Profile as Microsoft Exchange Profile and Server Side Synchronization or Email Router option for Incoming and Outgoing email.


Followed by

Approve Email command.

Followed by

Test and Enable Mailbox command

On successful configuration all the warnings will be gone


Go to Settings à Email Configuration

Click on Email Server Profiles

Select and open the already existing Email Server Profile i.e. Microsoft Exchange Profile.




Open Mailboxes and select Test and Enable Mailboxes to test the mail boxes of the user.


Create an email activity and send.

Open Outlook to verify.

Hope it helps..

Plugin when a case (incident) is resolved in CRM 2013.


To fire a plugin when an incident is resolved we need to register the plugin in

Close message for the incident entity.

And in the input parameters of the context we need to check for IncidentResolution.

This entity is a special entity that holds the information about the incident record that is being closed.

The sample plugin below gets the actual end attribute value of IncidentResolution and subtracts created on attribute value of Incident to get the duration and updates the duration (custom field) in the case being resolved.

public void Execute(IServiceProvider serviceProvider)
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)

if (context.InputParameters.Contains("IncidentResolution"))
Entity incidentResolution = (Entity)context.InputParameters["IncidentResolution"];
Guid relatedIncidentGuid = ((EntityReference)incidentResolution.Attributes["incidentid"]).Id;
DateTime actualEnd = DateTime.Now;
if (incidentResolution.Contains("actualend"))
actualEnd = (DateTime)incidentResolution.Attributes["actualend"];
// Obtain the organization service reference.
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

// Get created on of incident

Entity retrievedIncident = service.Retrieve("incident", relatedIncidentGuid, new ColumnSet(true));
DateTime createdOn = (DateTime)retrievedIncident.Attributes["createdon"];

TimeSpan totalTimeSpent = actualEnd.Subtract(createdOn);

Entity incident = new Entity("incident");
incident.Id = relatedIncidentGuid;
incident.Attributes["new_duration"] = totalTimeSpent.TotalMinutes;


The helpful post