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 #185: Dude, where is my alert?

Workflow to send SMS about alert

If you’ve been paying attention to the most recent advances in server-side CRM entertainment, you are by now should be familiar with alerts. They are system messages that tells you when something is wrong (error), suspicious (warning), or neither (information). Open any server profile or mailbox record, click Alerts link on the left to find […]

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 #179: How to change CRM Online password

Demo user account record in CRM

Concerned about bleeding heart’s effects and decided to change your CRM password from pass@word1 to something a bit more robust? Nothing could be easier, right? Right, unless you are not an administrator and you have only CRM license assigned in which case instructions do not apply simply because mentioned menu is not there! “Easy”, say […]

Tip #176: Adminless traceless troubleshooting

No administrators allowed

tl;dr When users are presented with a generic error message, URL in a browser address bar sometimes contain enough details about the error to determine the actual cause. How to fish “An error has occurred.” How wonderful. We all have seen it at one point of our CRM lives or another. Users unable to login, […]

Tip #175: Miscellaneous privileges with multiple access levels

Send As Privilege

We are all familiar with the record privileges in Dynamics CRM. User-owned entities have 5 access levels (None, User, Business Unit, Parent: Child Business Units, Organization) while organization-owned entities have only two of those (Go/No Go). Then there are miscellaneous privileges and training documentation states that (highlight is mine): Each Security Role also includes miscellaneous […]

Tip #172: Easy forecasting with Dynamics CRM

I can see the future!

Dynamics CRM deployment can amass vast quantities of data, both relevant and irrelevant. If this information is not used, it’s a burden on your infrastructure (on premises) or your wallet (online), and a dead weight for your business. It’s important to know or, at very least, have appreciation of forecasting techniques, for example, as demonstrated […]

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