You are currently browsing the category archive for the ‘Dynamics CRM’ category.
I recently reviewed an ideation platform, and looking at the new features added to Dynamics CRM 2016 Update, the Feedback features caught my attention.
Starting with the latest update, we now have a built-in entity called Feedback. Here’s the official documentation:
So, now we can not only collect feedback, but also rate records. And this applies to all records in the system, both system and custom, where enabled.
Enable entity for Feedback
First step is to enable an entity for feedback. The easy way (you can do it programmatically too) is to navigate to the solution storing your entity definition, and on the entity property tab to find the Communication & Collaboration section on the General tab. You will find there the option to enable Feedback.
Note that for new entities, this is enabled by default. If you don’t use it, make sure to disable it. I would not want that enabled for most entities probably, so I think it should be off by default.
Note also that this is one of the options that, once enabled, it can not be disabled.
Once you have this feature enabled, you will find in your entity the relationship to feedback, as seen below:
Observe that, by default, you can track feedback from both internal and from an integrated portal, if you have one. So far, this serves me well for the ideation platform.
Within the feedback record, you can first observe that, by default, there is in place the ability to have the status as Proposed or Accepted. This is nice, as you can enforce an approval process for feedback, and only take into consideration approved feedback. This can be beneficial for feedback from public, captured from a portal.
The rating is what I was looking for. It is by default just a text field, but you can enforce rules to make sure you only capture the format you need. Let’s say I want to have a rating on the portal with 5 stars, so I’m only going to capture a value from 0 to 5.
Now that I can capture feedback and rating, I want to roll-up the rating. I want to display on the idea record the average of all ratings from the feedback.
On the Idea entity, I can add a simple roll-up field. I defined it as a Whole Number Rollup field, and added the following definition:
And once it’s saved and published, I modify the default idea form to add this field, and the default view to add this column.
Looking at a record view of ideas, now I can quickly see the ratings, sort and filter by rating, etc. And all this without a single line of code. Sweet!
A new feature introduced with Dynamics CRM 2016 Update on both online and on-premise is the ability to use word templates. This makes simple reporting a lot easier now, as well as provides assistance with various data print jobs. A very welcomed feature added.
But let’s have a look at what this is and how to use it.
One common question back in the day was: How do I print this record? Can I just do a print? Do I do a print screen?
Not any more. Now, with a simple template, we can print a nicely formatted record, showing exactly the information we need, in a layout that’s pleasant to both users and customer.
The process involves a few steps. Let’s have a look at the steps involved:
- Create a template
- Define the template (design)
- Upload the template to CRM
- Generate a document (test before you release)
Creating a Word template
The first step is the creation of a Word template. This is a process we start from within Dynamics CRM. Navigate to More (…) > Word Templates.
From the fly-out menu select Create Word Template.
Follow the prompts and select Word for template and the entity you started from. Next slide in the wizard shows you all the relationships active on the selected entity. This is a very important part of the wizard. Select the relationships you intent to use to bring into your template data fields from related record. You should understand the data model for Dynamics CRM.
If you only need to bring into your template data fields from the current record alone, nothing needs to be selected here.
Once done, click on Download Template and save it locally. Now comes the editing part.
Define the template
With the template provided saved on your machine, now it’s time to define how the final output will look like. You can make it as fancy as you need, your knowledge of Word editing being the limit.
When you open the template file you downloaded, it will show you a blank page. That’s normal!
Next, enable the Developer tab in Word. You do that from File > Options > Customize Ribbon.
As all new products, a few issues are documented by Microsoft as possibly causing crashes. They are:
- Auto-correct – might lead to freezes when customizing word templates. Turn off auto-correct if that happens.
- Content types – use only plain text or picture.
On the Developer tab find and select the XML Mapping option. Make sure to select from the drop-down the correct schema as seen in the screenshot below:
Create your page design using tables, images, headers and footers, etc. Introduce the CRM data fields at the correct locations from the XML Map.
When you are satisfied with the layout and format, you are ready to push the template back to CRM and make it available to users.
Upload the template to CRM
Now here comes the flexibility. You do not have to be an admin to use this template yourself. You can actually create your own custom templates, and use them yourself.
If you want to make the templates available to all users, you need to either be an admin, or have an admin perform the template load for you.
As a user, to load the template for personal use, you follow the same steps we covered in extracting the base template from CRM. You navigate to a record. This defines the record type for the template. From the Create Word Template wizard select Upload and load your template. Once done, this template will be available for you to use on any record of that selected type.
In order ta make a template available to all users, as an admin, go to Settings > Templates > Document Templates and upload the template there.
This makes it available to all users that have permissions to use it.
Generate a document
As mentioned before, always test before you release. You can test by loading the template for yourself only first. Once you are satisfied with the output, load it through the Documents Template menu in Settings.
Now you have a nicely formatted way of printing records. All users of Dynamics CRM should take advantage of this feature to create nicely formatted print-outs for reporting or for customer communication.
Preview features are constantly being added to Microsoft Dynamics CRM Online, and as old ones roll into full features, new ones take their place. As such, this is one of the areas I like to keep an eye on to see what’s coming.
We enable preview features by navigating in our Dynamics CRM instance to Settings > Administration > System Settings. Find the Previews tab and check the “I have read an agreed to the license terms” checkbox, as seen below.
Once you have that enabled, you can start selecting the features you want to enable. I’m going to focus now on the Organization Insights Preview feature. The feature description is available at
In a nutshell, this is a new dashboard that allows us to get insights into the key CRM metrics for your organization. This feature was added as a preview with Dynamics CRM Online 2016 Update 1.
Like all preview features, this might not be complete, fully functional, and is not meant to production use. With that in mind, there is no real risk in adding a new dashboard to the organization, if used sparingly and only by the administrators of the organization.
With the feature enabled, go into any of the modules to the Dashboards section and find in the dropdown the Organization Insights Dashboard. Once selected, you are presented with a screen similar to the one below.
As you can see, it’s a standard layout with 6 sections, just like the default dashboard. You can find this dashboard now in the organization listing of dashboards, as you can open it in edit mode. But this is where the similarities end.
You can create new dashboards, or edit this existing dashboard. You can change the order of the elements, remove them and re-add them by clicking on a section and selecting from the toolbar the Organization Insights button or the new icon, as seen below.
So, if you remove one chart, not all is lost. You can re-add it, just not as a regular chart (that’s where I looked first).
Looking at the individual charts, we have the ability to filter the data by the time intervals provided of 2 hours, 48 hours and 30 days. Nothing in between for now.
Interesting enough, each chart has a help link at the top right in the form of a question mark in a blue circle. They all lead to the same TechNet help article located at:
There you’ll find a description of each chart, as well as a description of the data aggregation intervals for each time filter criteria.
The default selection for time interval filtering is set at 2 hours (2H). Even if you try to change it when creating or editing the dashboard, once you publish it defaults back to 2H.
- I like how the fly-outs are bordered with the same color border as the element highlighted. This makes it so much easier to read.
- I like the rendering and responsiveness of these new charts.
- I like the ability to select the loopback (time filter) period.
Looking forward to:
- Ability to customize the charts and create new ones. You are really limited to 6 out of the box right now.
- Ability to customize the Lookback. It would be nice to not only change the lookback intervals, but default specific lookbacks per chart.
- Remove the link to help. This is fine for a preview feature, I hope it’ll be removable once ready for production, especially since all point to the same article.
- Refreshing it defaults you back to 2H lookback. This is really annoying.
We’ve always had to resort to all kind of tweaks to generate any kind of administrative dashboard. This is a good step in the right direction. Once this feature is completed, this kind of dashboard would be invaluable in a command and control center monitoring the environment. Throw it on a screen on the wall and have almost real-time data.
One of the most common question driven by the push to Cloud is: How do I get my on premise accounts working with the cloud services I am using now?
From the perspective of Microsoft Dynamics CRM, but not only, SMBs typically have an on premise infrastructure, with a local Active Directory setup. For those that have not yet embraced Office 365, but want to take advantage of Microsoft Dynamics CRM, this process might seem a little daunting. Yet, it needs not be.
Directory integration is the way to tackle scenarios where an on premise directory service needs to integrate with Microsoft Azure Active Directory, aka Microsoft Azure AD. Some of the benefits touted by Microsoft for this hybrid deployment scenario are:
- Simplified administration
- Streamlines sign-in experience
- Unified administration experience for both user and device identities
- Unified application administration
- Leverage single sign-on to cloud based solutions
Specific scenarios are supported for a hybrid identity infrastructure. Choosing one of the supported scenarios depends on the type of service you want to offer your users. The following table provided by Microsoft at https://msdn.microsoft.com/en-us/library/azure/jj573649.aspx describes the difference between two common deployment scenarios. But let’s first have a look at the available options.
Directory sync (directory synchronization, DirSync) is the configuration that allows management of directory objects from your on premise Active Directory. The changes are synchronized up to your tenant.
The downside to this approach is that users will have separate user id and passwords between the on premise and cloud services. Not ideal, other than for unified administration experience.
DirSync with Password Sync
As the next step up from plain vanilla directory sync, DirSync with password sync allows users to use the same username and password across all services, cloud based and on premise. This already makes life easier for users, by reducing the need to memorize another username and password. It also leverage the same unified administration experience, making it easy enough for administrators to deal with account changes.
DirSync with Single Sign-On
Taking the previous scenario a step further, in DirSync with single sign-on users not only use the same account and password, but seamless authentication with cloud services is available when locally logged in with the provided account credentials. This means no authentication prompts at all when accessing both local and cloud resources with your Active Directory account credentials.
The setup in this scenario is a little more complex, requiring the organization to have not only the typical on premise Active Directory, but also to provide a security token service hosted on premise. Typically this is ADFS (Active Directory Federation Services).
From a Dynamics CRM perspective, you will required this setup anyway if you intend to deploy your on premise hosted Dynamics CRM in an IFD (Internet Facing Deployment) scenario.
Multi-forest DirSync with Single Sign-On
Extending on the previous scenario, this scenario requires a similar setup, but offers synchronization across multiple forests. The Active Directory structure is comprised typically of a few logical components, including Organizational Units (OUs), Domains, Domain Trees, Forests. For details on the structure and components of Active Directory you can have a quick look at the following link, but it is advisable to talk to an AD expert for deployment/configuration.
With all this information in mind, when launching on the journey to extend your services to cloud, take into consideration what type of Hybrid Identity Infrastructure you need to implement. Err on the side of caution, and go with the minimum required scenario.
Azure AD Connect is the newest kid on the block for hybrid integration tools. For an introduction to the tool, as well as a link to other tools comparison see the following knowledge base (KB) article in the official documentation:
NOTE: This has been an awareness overview, always involve your AD Administrator or an AD expert when making any changes to your Active Directory infrastructure.
With the release of Dynamics CRM 2016 Update 1, now we have the ability to add SLAs to all custom entities and selected system entities. Prior to this release, SLAs were only available to incidents represented by the Case entity.
The following system entities now support SLAs in addition to the Case entity:
- Activity entities
Enabling a custom entity for SLAs is done from the Entity Definition form. Scroll down to the Communication & Collaboration section, and find all the way at the bottom the check box for Enable for SLA (Fields will be created). Note that this is one of the settings that, once enabled, it cannot be disabled. Make sure you really need to enable SLAs on this entity.
NOTE: The MSDN documentation at one point states that you must have Business Process Flows enabled on the entity in order to enable SLAs for a custom entity. This is not true, as you can enabled SLAs without having Business Process Flows enabled. There is no relationship between BPF and SLAs.
Once you have the configuration in place, go ahead and create the SLAs and the SLA KPIs as needed, same way you would have done it for a Case entity before. Choose the default SLA also. Alternatively, you can programmatically apply the correct SLA by setting the SLAid attribute based on a condition.
With SLA functionality, the following limitations are enforced in CRM Online:
- Maximum 5 SLA KPIs per entity for active SLAs.
- Maximum 7 entities will support SLAs at the same time.
One any of these limits is exceeded, you will be prompted with an error on activating the SLA.
With the new update to Dynamics CRM, one the last outstanding issues with small footprint but big impact is the addition of a Customer field type. Where before we had to hack all kinds of approaches to reference either an Account or a Contact, now we can easily do it on any entity type. Hurray!
In order to add a Customer field, modify an existing form or create a new one, and add a new field. In the data type select from the drop-down Customer, as seen below.
Once you do that, you can select the naming preference for the new relationships that are added. As seen in the screenshot below, new relationships are added to both the Account and Contact entities.
Looking into the N:1 Relationships, you will find these new ones as seen below:
With the field added to the form, we can now select either a Contact or an Account, as seen below:
The Customer lookups that were already available on the following entities will remain the same, and function just as before:
If you need to create this lookup programmatically, you can call new CreateCustomerRelationshipRequest message. For the technical details see the MSDN documentation available at:
For the class details see:
Update: Book has been officially released. Find it either at Packt or at major online bookstore retailers.
My new book just became available for pre-order. Due to the great feedback received from the previous edition, I am releasing a new and improved version to the Dynamics CRM Customization book. This new edition includes coverage of the newly added features up to Dynamics CRM 2016.
The book will be available through the usual channels. I will be adding more links here as they become available:
One of the new features made available in preview is the Task Flow functionality. This applies to creating logical business flows to execute on mobile devices (both phones and tablets). One example provided in the documentation is the post-meeting steps to be executed after a client meeting.
The official documentation is available at:
As per the note, a preview feature is not to be used in production, as it might not only change, but it might contain incomplete features.
In order to enable preview features, you must be an administrator. Go to Settings > System Settings. Find the Preview tab all the way to the right.
Here make sure you check the agreement check box, and then switch the Task Flows for Mobile Preview radio button to Yes. Click OK when done.
The provided steps in the documentation demonstrate how to create a new flow. Observe the following change to the process flow creation:
Once the process flow is created, the configuration interface is very similar to any other process flow. You have the usual features, like adding fields, steps, branching, pages etc.
On the Task Flow Details section, once you expand it, you can set an image and a description.
The paging concept is similar to that of a classic Dialog, where we guide the user through several screens to get to a final point.
Branching works again just like with other processes, where conditions are set to dictate the correct path to follow.
Don’t forget to Save and Activate the new process. It will show up in your My Processes/All Processes view, depending on the owner you assign.
With the Task Flow activated, once you refresh the mobile application it will be available to use.
The refresh will take a short while. Once it’s done, since we created this task flow on the contact entity, let’s navigate to a Contact. We can trigger the newly created Task Flow by selecting the symbol at the bottom-left of the screen.
Observe the image we selected appears as the background for our Demo task Flow. Select this flow. It will take you through the following screens.
That same image is in each form header. The title shows up right on top, as defined for each form.
The Spring Wave release for Microsoft Dynamics CRM 2016 has been announced. Here’s the announcement:
As mentioned, the focus is on the FieldOne and Adxstudio acquisitions and their integration onto the core platform, as well as Machine Learning enhancements.
A video of the new features is available here:
In addition, and of great importance, the CRM Roadmap site has been also announced. It is available here:
Here you will find all the necessary details about existing features release, in preview, in development or postponed. A great source of information.
One of the greatest features of the Microsoft Dynamics CRM platform is the ability to configure entity forms to be available only for specific security groups. While this works great, in principle, the story quickly becomes muddy when you start implementing it in organizations with a more complex security structure. In particular, when working with different business units.
As we know by now, when adding elements to a solution, we can only capture security roles from the root business unit. This is a limitation of the solution package, and we have ways to work around it for most situations. For example, if we want security roles to be solution aware, even though we need them in child business units, we create them in the root business unit. They are inherited to the child business units, and we can assign the users at the business unit where we need them to have the respective security roles.
Unfortunately, one overlooked aspect is the role based forms. While the scenario described above works fine for users and security roles, once we bring into our equation role based forms, the whole pyramid collapses. Lets look at an example.
We’re going to start with a set of business units as described in the screenshot below.
As we can see, we have the root business unit called very creatively me4co. Right below this, we have the following child business units: Finance and IT. And just to make it more interesting, we have the following three child business units underneath the IT business unit: Cloud, Delivery and Infrastructure.
Now let’s create a few security roles. Go back to Settings > Security and choose Security Roles. Here we see the default security roles on an organization, all under the root business unit. We’ll come back to this view in a moment.
Once we’ve seen the default security roles, let’s go and create some new roles in the context of a solution. So, go to Settings > Solutions. Create a new solution if one is not already available for playing with. In this solution go to Security Roles. Once there, create a New role and name it creatively role1. For business unit, leave the root business unit. Click on Save and Close. I’m not going to assign any permissions here, i’m just using it for demonstration purpose.
Same way as before, go ahead and create a new security role. Keeping in line with our extremely creative naming convention, name this one role2. Only this time, instead of leaving the default business unit, change it to Cloud. This is a 3rd level down business unit, having IT as parent, which in turn has me4co as parent (the default business unit). Again, hit Save and Close. Now, looking at the solution, this new role called role2 does not appear in the Security Roles part of this solution. This is because only Security Roles in the default root business unit are being captured in a Solution package. To verify that our newly create security roles was indeed created, navigate to Settings > Security > Security Roles. Select from the Business Unit drop-down the root business unit if not already selected, and observe that role2 is also missing. But if you change the business unit to Cloud, now you will also find role2 in the list. See the below screenshot.
Now, with all these items setup and ready, let’s have a quick look at role based forms.
Go to Entities in your solution, select Add Existing, and select Contact. When prompted to select entity assets, do not select anything, as we’ll just add a brand new view.
Entity Assets is a new feature added with Dynamics CRM 2016, as part of enhancements to the Solution package model.
Click on Finish. Go to the Contact Forms, and add a new Main Form. Click on Save As, and name this form to RBF (short for role based form, but you can name it anything you want).Save and Close this form. In the Active Forms view for Contact, select this newly created form, and click on Enable Security Roles in the ribbon. The new screen that opens up allows you to choose a security role. Unfortunately, you only have a choice from the security roles created in the root business unit. No option to change the business unit selection. This relates to the fact that security roles in child business units are not captured in a solution package.
Conclusion: part of a Solution package, you cannot assign security roles to a role based form if the security role is not part of the root business unit.
But, if you really, really, really need to do this, you can still do it outside of a solution package. Do keep in mind that this configuration can not be ported to another organization through the use of a solution package. If you need this kind of configuration, you will have to manually implement if in all instances (dev, qa, uat, prod)… ugh…
Instead of doing this as part of the existing solution, let’s go back to Settings > Customizations. Select Customize the System instead. These customizations are applied directly to the root solution. Find the Contact entity, go to Forms and find the RBF form we’ve created earlier. Observe how the form created in an unmanaged solution is also present in the default solution.
Now, when you click on the RBF form and select Assign Security Roles, you will find role2 in the list of roles, as shown in the screenshot below.
Once you Save and Publish your customizations, your newly created role based form is available as defined.
Use this approach with care, and only if really necessary. The fact that this configuration can not be captured in a context of a Solution package, and can not be ported to another environment/organization is a major downfall, and it goes against best practices regarding solution management and deployment models.