Tip #757: Passing enumerated values to Web API

Passing values

Shiny Dynamics CRM Web API has a number of useful functions that you can call using simple GET. Like ubiquitous WhoAmI: https://notarealorg.api.crm.dynamics.com/api/data/v8.1/WhoAmI, nifty RetrieveOrganizationResources: https://stillnotarealorg.api.crm.dynamics.com /api/data/v8.1/RetrieveOrganizationResources, or canny RetrieveDataEncryptionKey: https://yesthisisarealorg.api.crm.dynamics.com/api/data/v8.1/RetrieveDataEncryptionKey. Some of these functions require parameters and documentation how to pass parameters is available. Except that the documentation does not explain how to deal with […]

Tip #746: Bring in the specialist

Workflow auto bringing the specialist

Washing car on weekend is something that everyone can do on their own. Probably. But if some serious cleanup is required, one’s better off calling Mr Wolf. Same goes for complicated cases in customer service. If you run a secure shop that deals with the cases that include sensitive or personal identifiable information, then security […]

Tip #731: Hide and protect your custom CRM API

Protect yourself by covering

Yesterday we illustrated how you can wrap some server-side functionality as a custom API to be consumed by the developers. One of the undesired side effects is that business can now poke their nose into the API when building workflow processes: If your API is a smoking gun and you don’t want business to accidentally […]

Tip #730: Turn your CRM into API machine

Locked black box

When people ask me to describe the differences between custom workflow activities and custom actions, I always use the following definitions: Custom workflow activities. A functional blackbox created by the developers to be consumed by the business Custom activity. A functional blackbox created by the business to be consumed by the developers There is more […]

Tip #721: Tale of a small change

Sisyphus

Dynamics CRM does an excellent job hiding complexities of the relational design, solid data model, and friendly and consistent UX. Quite frequently CRM customizers and developers are the ones who’s paying the price. User advocate: We have a custom text field on the contact entity called Position but noticed that users type almost the same […]

Tip #706: Passing arguments to the webresource does not work after authentication

Fallen god

We are all mortals, after all. I just witnessed a rare occassion when even Tanguy “The XRM Toolbox” Touzard needed a helping hand from none other than Andrii “Khohol” Butenko. Tanguy I’m working on a really simple integration where an external app needs to open a webresource with parameters passed in data url argument: https://qwerty.crm4.dynamics.com/WebResources/foo_/cti/index.html?data=phonenumber%3d0123456789%26service%3dadv […]

Tip #699: Don’t go back on context

Tima and Punishment

This one is for javascript lovers. If you work with HTML web resources, you know that you need to include ClientGlobalContext.js.aspx to get CRM context in your script. If everything is working correctly but you receive JS error “GetClientContext is not defined” when using back button in Chrome browser, add dummy query parameter to the […]