Server side Sync Trouble shooting

I have been working with a Proof-of-concept for the lates couple of Days and have been setting up the server side sync for a CRM on-premise system. First of all I would just like to share that it is a really nice new feature, I really like the fact that we now can have an option to not have to use the email router. With the new spring release, it will also be available for CRM Online, but only CRM-Online to Exchange Online (O365) not hybrid Environments (ex. CRM Online to Exchange on-premise or vice versa).

However, I did run into some issues as none of the emails that I sent to the email account connected to the queue showed up in the queue.

The Server Sync is handled by the MSCRMAsyncService and if you switch on logging in CRM (which can be done using adding the registry key “TraceEnabled” and setting it to 1 or using Power Shell)  you will get the logging of the server sync in the async tracing loggs. It turned out that I had a missmatch in email addresses which CRM apparently didn’t like and you can only have one email address for a queue, but it was easily fixed once I knew the problem. I just wonder how I would troubleshoot this if I got this in CRM Online… hopefully MSFT will be adding additional logging to the server sync functionality.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Considerations of email address in registering CRM Online

Considerations of email address in registering CRM Online

When setting up CRM Online, especially when doing it on an already existing Office 365 Environment, there are some things that you need to know that might not be that evident, so I thought I might elaborate a bit on it.

First of all, the email address that is entered when setting up the Office 365 organization or the Trial organisation for CRM Online is very important as emails regarding the CRM service (and other services provisioned through the Office 365 portal) will be notified via this email address.

Swedish version of the Trial registration – Email field marked. It says “We will be sending important information to this email address”

Other users set up as administrators will also be receiving notifications on the email addresses set up as Alternate email address under Settings.

So is this a problem? If you are just using CRM Online, and the alternate email address you input is you main work email, no, this is probably not a problem. There are however other scenarios where this might be a problem;
– The Company is using Office 365 as their main work email address and the alternate email addresses are gmail/Yahoo/Hotmail addresses that are seldom checked. For some reason, the CRM service is not payed properly and warnings about the fact that it is to be shut down are sent out to these seldom check email address. Then the CRM system is deactivated for all users and nobody understand why until the users flagged as administrators in O365 (usually very few) finally check their alternate email inboxes and find the warning. Until this is fixed, several Days or weeks may pass with the system down severely damaging user acceptance and profits.
– The original admins setting up the system are no longer with the Company and their alternate email addresses were not directed to “impersonal” email addresses but to their own. When the billing is missed, the effects are similar to the case above.

So, my general recommendations in this case is to make sure that the alternate email addresses used are set with great care and to impersonal email aliases that will remain independent of people leaving the Company. They are to be aliases that are monitored at least once every second day. If using Office 365, the general recommendation is to not use Office 365 email boxes to monitor itself, but perhaps looping it to a Group alias outside which also include addresses within the O365 might be an idea as long as there are people outside the O365 in the alias as well.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Problems with converting email to case

Problems with converting email to case

I was recently working with a customer when I noticed an interesting bug in CRM 2011, in the Outlook Client. When trying to convert an email to either a lead, case or opportunity directly from the Outlook ribbon, it does not set the “regarding” lookup field of the email that was tracked. However, if the email is first tracked, then “viewed in CRM” and then from the CRM email form converted to lead, case or opportunity, the regarding field is set correctly.

To make this a bit more clear I will describe this with a few screenshot below:

We’ll start off with opening a received email and pressing the Track button in CRM

This will then allow us to press the convert to Opportunity, Case or Lead, directly from Outlook. A very neat, and new function. It came with CRM 2011. In this example, I am selecting Case.

 This will show a smaller dialog allowing you to select case (not shown here) and also prompting you if you want to open the case or not. I selected to open the case.

After opening the case, I checked the closed activities to see if the attached email that was I just converted to a case, but as you can see below there were none. I was a bit perplexed as I was showing this new functionality to the customer as was expecting to see the email here.

I went back to the email from Outlook and opened it in CRM and found that it had not been correctly connected to the case using the lookup “Regarding” field.

So, I tried it the old way. I sent myself another email, pressed the track in CRM button, and then instead of converting it directly from Outlook, i pressed the “View in CRM” button to open it in CRM.

I then converted it to a case from the ribbon menu from the CRM Email from by pressing the “To Case” button.

I was shown a similar small dialog letting me select subject for the case and similar and then the case form was shown. It was identical to when created from Outlook, but when checking the closed activities there was one important difference;

And by opening the CRM email form from the list shows it clearly:

The regarding field has been set properly.

This is a very unfortunate bug in CRM and I do hope Microsoft solve it quickly as the feature that CRM 2011 adds in Outlook by being able to convert emails to cases, opportunities and leads directly from the email form is very good but as all of you know who work close to sales or customer service people, their time is very precious and every click counts and new features that do not deliver as expected are always annoying to the user. So, until the bug has been fixed, make sure the users open the CRM form to convert the emails.

Update: Jukka Niiranen left a very informative comment to this posting below informing us that Microsoft probably will fix this bug in UR6 planned to be released in Jan 2012.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se

Creating CRM-emails in C# code

I have in a previuos post described how to programmatically download a SQL RS report, create a CRM email and attach the report as a pdf to it and send it. This is quite many steps and sometimes it will just be good enough to send mails, for instance when developing addons for workflows.

email em = new email();

activityparty fromparty = new activityparty();
fromparty.partyid = new Lookup();
fromparty.partyid.type = EntityName.systemuser.ToString(); //Change to some other entity if needed.
fromparty.partyid.Value = FROM-SYSTEMUSER-GUID;
em.from = new activityparty[] { fromparty };

activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.contact.ToString(); //Change to some other entity if needed

toparty.partyid.Value = TO-CONTACT-GUID;
em.to = new activityparty[] { toparty };

em.subject = SUBJECT-STRING;
em.sender = “crm@example.com“;

em.regardingobjectid = new Lookup();
em.regardingobjectid.type = EntityName.REGARDING ENTITY TYPE.ToString();
em.regardingobjectid.Value = REGARDING OBJECT GUID;
em.description = BODY-STRING;

em.ownerid = new Owner();
em.ownerid.type = EntityName.systemuser.ToString();
em.ownerid.Value = OWNER-SYSTEMUSER-GUID;
Guid createdEmailGuid = service.Create(em);

SendEmailRequest req = new SendEmailRequest();
req.EmailId = createdEmailGuid;
req.TrackingToken = “”;
req.IssueSend = true;

// Send the email message.
SendEmailResponse res = (SendEmailResponse)service.Execute(req);

I find this code very helpfull. It can probably be generalized by using BusinessEntity object and so forth but I am usually quite satisfied with this.

Gustaf Westerlund
CRM and SharePoint Consultant

Humandata AB
www.humandata.se