Tip #194: When automatic update is not your friend

tl;dr Nuget is a great tool and a real timesaver but beware of automatic updates that can unexpectedly bring incompatible or broken builds of third-party libraries and that will, in turn, break your plugins or workflows. The real story or “I saw the whole thing” Friday, August 1st, 6:00PM All users logoff and CRM is […]

Tip #192: Defensive script writing

Event Handler Dependencies

(Today’s tip is actually two-in-one but we’ll get to that.) Over the years as a CRM jackofalltrades I learned that to create truly reusable, bug-free and resilient systems is very important to write your scripts as if the next team member, who comes after you, dedicated their entire career to destroying your life’s work. Consider […]

Tip #183: Keep batch modifications under control

Ploughing

Not so long ago we experienced the wrath of an unhappy customer when, with all the good intentions we verified and normalized phone numbers for all contacts in the organization. This particular implementation had sophisticated business processes that kicked in on updates and modified on timestamp was used to calculate some performance metrics. With us […]

Tip #154: One pre-validate to rule them all

It may come as a surprise but when a contact is created as a side-effect of another operation, e.g. qualifying a lead or processing incoming message with contact auto-create in force, pre-validation plugin does not fire at all. It happens when operation performed is a compound message such as QualifyLeadRequest or DeliverPromoteEmailRequest. This behaviour, unintuitive […]

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 #119: Help me – help you

Dialog: Microsoft Dynamics CRM has encountered an error

When CRM users see the infamous Microsoft Dynamics CRM has encountered an error dialog, they often select the option to send error report and honestly believe that system administrators, support, developers, all of the above will be getting a copy of the report that contains exact steps how to solve the problem. Explain to your […]

Tip #107: Use metadata browser to find status reason

While working on the solution for stuck emails, I needed values for various status reasons for email entity to intelligently hide/display RESEND button depending on email record status. Quick look in local SDK help yielded zilch. Online version – bupkis. Hmmm, I do remember metadata pages in 2011… Ah, here it is and, indeed, there […]

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 […]