Tip #171: If email router is having a slow day or how to add custom index

Sometimes things are slow. Very. Slow. So slow that your email router starts spitting dreadful messages: #9628 – An error occurred while delivering the e-mail message with subject “None of your business” in mailbox foo@bar.baz for delivery to https://crm.bar.baz. System.ServiceModel.FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]: SQL timeout expired. (Fault Detail is equal to Microsoft.Xrm.Sdk.OrganizationServiceFault). If you are on CRM […]

Tip #144: Restrict AD browsing when adding new users

If you are a hosting provider or a security-conscious administrator managing multiple CRM deployments then you’d like to avoid exposing entire Active Directory when user with appropriate permissions clicks New Multiple Users and then opts to browse all trusted domains and groups. There are some unsupported methods as well as supported C# code to achieve […]

Tip #134: How to block click-to-call in CRM

People would like to have an option to switch click-to-call functionality off. Unfortunately, none of the suggestions is going to work. Why? Because this functionality relies on URL protocols skype: (for Skype) and tel: (for Lync). You can try fooling the system by deregistering protocols, fiddling with the registry, disabling addins, blocking addins, directing to […]

Tip #131: Test CRM for Tablets from CRM not for Tablets

Following a cool tip about testing CRM for Tablets from my fellow tipster Joel, I figured that if anyone knows your URL and orgname, it’d be your CRM organization and it should be possible to run this test from inside any CRM organization without trying to memorize ngas and orgnames or remember to login before […]

Tip #106: Resend stuck emails

Resend button for emails

We use email router to send outbound CRM emails via Office 365 accounts. In our configuration email router is set to use user’s credentials, i.e. we need to enter our O365 passwords in user settings in CRM. When password in O365 expires, people (read: me) simply forget to adjust passwords in CRM, especially those for […]

Tip #72: Granular notifications for end users

Granular validation of multiple fields

Today’s tip was supposed to be called “Why it’s very important to keep your SDK up to date” but instead I named it after the updated functionality that was added to CRM Online, released for onpremises in UR1 and documented in the December update of the SDK. Previously, if you wanted to notify user about […]

Tip #51: What to do if your Plugin won’t Trigger or Debug when Registered on SetState

If you register a plugin on SetState, most of the time you can’t get it to trigger or debug.  Register it instead on the (technically deprecated) SetStateDynamicEntity message. It should work fine. Note: Instead of “Target”, the entity in the context for the entity being activated or deactivated, the new context input parameter will be […]

Tip #30: Use ConnectionDialog for easy connection to CRM

If you’re writing Windows Forms or WPF application that needs to connect to a number of Dynamics CRM organizations on ad-hoc basis, e.g. custom tool, then try using ConnectionDialog class instead of home-grown connection code. It is very surprising how little attention receive CRM Developers Extensions in general and a little obscure but very handy […]