Tag: tools

  • Find the right tool in XrmToolBox

    Find the right tool in XrmToolBox

    What more could be said about XrmToolBox that hasn’t already been posted online? The year is soon 2026 and XTB remains a critical part of Power Platform – built and maintained by the community.

    One area where the long history of XrmToolBox reveals itself is in the user interface of the application itself. As well as the official website of xrmtoolbox.com that is built on a legacy version of Power Pages. Technically, all the information is there. In practice, the UX can be challenging – especially for newcomers to this ecosystem.

    I wanted to see if I could do something about this. That’s how the XrmToolBox Plugin Catalog came to be:

    The live site URL is xrm.jukkan.com. In short, it’s a vibe-coded website on top of the list of 387+ XrmToolBox plugins that have been developed and published by various community members. You can browse by category, search by name/description/author, see the latest release notes, discover more plugins from the same author, and so on. There’s even a short getting started section for those who are new to XrmToolBox.

    It’s worth noting that there’s no new data used here. All the dynamic information comes from the official Power Pages site of XrmToolBox, via one daily data sync of the Plugins table rows in Dataverse. The XrmToolBox Plugin Catalog is hosted on GitHub pages and the data is pulled via an OData feed using GitHub Actions. So, both are running on acquired Microsoft technology (Power Pages comes from Adxstudio Portals, GitHub comes from… GitHub).

    It’s just the same data, presented in a different way. Visually, it’s a React-based site that behaves like you’d expect a website to behave today. But it’s not just about rounded corner boxes and gradients. It’s also about prioritizing content in a way that serves the user better. Such as the Top Charts that allow anyone to check the recently added or updated XrmToolBox plugins from the past 90 days:

    I wrote about the launch of XrmToolBox Plugin Catalog in a recent newsletter issue. I didn’t want to repeat myself, yet I was interested in seeing an alternative format for describing the “what”, “how” and “why” of this initaitive. So, I gave the text to Google NotebookLM and asked it to create a presentation out of it. I think it did a pretty nice job:

    The site’s repo is on GitHub, obviously. You’re welcome to open an issue there if you encounter problems with the site or have ideas about improvements!

    Oh, and don’t forget to support Tanguy Touzard and the makers of all the tools in the ‘Box. The Real Developers who have put in the hard work of writing all the code. Long before LLMs democratized code to such a level where I can today just prompt AI coding assistants and ask them to build pretty websites for me.

  • Configure Outlook Contact Synchronization Settings on Behalf of Your Users

    The ability to get your CRM contacts automatically synchronized to your Outlook address book and mobile phone is a very handy feature in Microsoft Dynamics CRM. Why would you ever manually dial the phone numbers of your customers when you can just set them to appear in your smartphone’s list of contacts? Wouldn’t it also be nice to see the customer’s name instead of just an unfamiliar phone number when he or she calls you after your first meeting? These are examples of everyday benefits that not only save time but can also help drive CRM user adoption by showing tangible benefits of having the customer information managed centrally in a database shared by all employees that are in contact with the customers.

    The new server-side synchronization in CRM 2013 has made the synchronization process independent of the Outlook client, so that updated information flows between your phone and CRM even when your PC is not online. What has not changed, though, is the lack of an administrative control panel for configuring the synchronization settings for the users. Since CRM by default only offers API calls to manipulate the synchronization filters, most users are likely using the default synchronization settings that come with CRM out of the box (unless they’ve received thorough training on how to configure the filters in the personal options menu). These are not always the optimal way to get the most benefit out of the synchronization functionality.

    Once again, XrmToolBox comes to the rescue with its recent Sync Filter Manager addition. This tool gives system administrators the power to create and change the Outlook and offline filters on behalf of the end users. Now you can easily plan the proper synchronization strategy and deploy the correct settings to all users in a controlled manner, instead of needing to visit their PCs or try to get everyone to click the right options.

    Since the concept of synchronization filters and templates may not be so easy to grasp for the CRM admin, I decided to make a tutorial that walks you through a few common scenarios for contact management. These cover enabling more than just the single owner of a contact to have the record synchronized to their address books, as well as how to avoid users in administrative roles from getting thousands and thousands of miscellaneous contacts suddenly appearing in their Outlook and mobile phone. You can view the presentation below or go to SlideShare my Slides archive and download it from there if the embedded slides are not showing up.

    As a great follow up reading, I recommend you to also have a look at the article on contact management best practices that was recently published in the new CRM Virtuosity blog. This will show you how to take the Outlook contact synchronization even further via modifications to the contact form’s Command Bar in CRM 2013, among other things.

  • Spring Cleaning for Your Dynamics CRM System

    CRM systems have a tendency to suffer from an increasing amount of entropy as time goes by. Not only does the rate of accurate information available from them decrease as data quality decays over time (especially if no one’s in charge of actively maintaining it), they’re also susceptible to a phenomenon I’d describe as “the illusion of having data”. This is the assumption that simply defining a data model that holds a place for specific attributes or entities would actually result in data being collected into them.

    “Build it & they will come” could be translated to “customize it & they’ll use it” when it comes to CRM systems and it is as good a strategy in designing business information systems as it is in any other walks of life – meaning not very. Sure, during the initial requirements specification phase for a CRM system it may feel like there has to be a field added to the customer’s profile for every possible variable that the business may need in the future. After having used the system for a while you’re very likely to be confronted with the reality that very few if any of the records have any data entered into these fields. Or even worse: you just continue to assume to have customer information that doesn’t really exist, potentially building further process automation and reporting on a very shaky foundation.

    CRM_spring_cleaning_4Since it’s quite a common phase in the lifecycle of a Dynamics CRM organization to sooner or later face a situation where you want to clean up the system from legacy data structures that no longer serve their purpose, I want to highlight a couple of tools that will help you on this journey towards a better organized CRM system.

    Finding Fields Not on Forms

    Persons who may get assigned the role of being the CRM system administrator alongside their “actual work” often approach the application as if it would consist of a set of forms that contain fields and… well, nothing much else. What this means in practice is that whenever a new business requirement comes up where additional information should be captured to serve a new process, product, organization structure or what have you, they’ll typically open either the account or contact entity and start adding new fields onto the forms.

    As this process is repeated over and over again, the number of fields will grow and at some point some of the older ones will probably get removed from the form in an effort to make the system less cluttered. They’ll most likely be left in the system with their Searchable property still set to “Yes”, meaning using Advanced Find can become a nightmare with all the legacy fields listed. Also system views may still be using these fields that can no longer be edited. With the number of fields growing every day, it can simply become overwhelming to identify what’s in use and what’s not.

    A good first step for finding the legacy data structures is to list the fields that are no longer used on any forms of the entity. Since Dynamics CRM by default does not offer tools for such analysis, the next place you should look for a solution is the community tools on CodePlex, starting from the nr. 1 toolkit for a CRM customizer, which is of courseĀ XrmToolBox. As it so happens, there’s yet again a tool in there that will help us in achieving our goal. The Metadata Document Generator offers a setting that allows us to export a list of attributes for the selected entities that are NOT contained in any of the forms (remember that there can be more than one per entity).

    CRM_spring_cleaning_2

    By choosing this setting and complementing it with the “include Valid for Advanced Find information” checkbox we can generate Excel sheets per each entity that list the unused fields, at least when it comes to the UI side of things.

    Finding Fields With Little or No Data

    Once we’ve spotted the fields that have potentially become redundant and we’d like to get rid off, the next question in our minds is likely to be how to verify whether there is any actual data stored in them that should be preserved. Similarly, just because a field is present on a form, that hardly proves that it would be populated for the records in the CRM database. These are the kind of questions that we can’t answer via metadata alone, instead we’ll have to dive into the actual data itself.

    A quick way to examine the usage of specific fields without any custom tools or solutions is to use the built-in charts feature of Dynamics CRM. Let’s say we want to see if our users have actually entered data into the “No. of Exployees” field on the account form. By moving to a suitable view like “Active Accounts” (with a suitable filter to remain under the Aggregate Query Limit in terms of number of records), expanding the chart pane on the right side and clicking on the plus icon, we can start to define a new chart to help us in our ad-hoc data analysis needs. For the series we should choose a field that is populated for all of the records (I always use the record GUID field, meaning for the account entity I’d choose the “Account” field). In the category section we’ll then select the field on which we want to analyze the distribution of the data. While we can’t show exact percentages in the Dynamics CRM charts, the good ol’ pie chart visualization will quickly tell us the rough share of records with a “(blank)” value.

    CRM_spring_cleaning_1

    We don’t even need to save our charts to perform the analysis, since in many cases the live preview in the chart editor mode will already tell us how big a piece of the pie goes to blank values. By leaving our mouse cursor in the Category picklist and pressing the up/down arrows we can quickly scroll through different fields and view the distribution of values.

    While this works for a reasonable amount of fields, it doesn’t necessarily produce a very good overview of the level of entropy in the CRM organization unless you write down these statistics manually onto an Excel sheet. To increase our performance in this task we can again look for a community provided tool to help us out.

    Scanning Your Entities for Unused Fields

    Paul Way has created a solution that fits the bill perfectly: CRM Data Detective. By uploading this solution into our CRM organization and simply navigating to [YourCRMorg]/WebResources/way_/detective/detective.htm we can choose any entity in the system and have its database contents analyzed by the Detective. The end result will be a list you can quickly scroll through and view the bar chart for the population rate per each attribute:

    CRM_spring_cleaning_3_small

    This will be a great tool for you in the discussions with business decision makers who’ve originally demanded the fields to be added into the CRM data model. If you’ve got fields on an entity that have a 2% utilization rate, chances are your system would become more valuable by removing such fields. The overall usability of your CRM environment would increase and you also wouldn’t need to suffer from the illusion of having certain data available, just because someone had once created a place for it in the CRM data model.