As part of a recent project I have been involved in, one of the requirements was to facilitate a bulk data import process via a single import spreadsheet, which would then create several different CRM Entity records at once. I was already aware of the Bulk Data Import feature within CRM, and the ability to create pre-defined data maps via the GUI interface; what I wasn’t aware of was that there is also a means of creating the very same data maps via the SDK or an .xml import. This was a pleasant surprise to say the least and, from the looks of it online, there is very little in the way of resource available for what is, arguably, a very powerful out of the box feature within Dynamics CRM. Expect a future blog post from me that dives a bit deeper into this subject, as I think the capabilities of this tool could fit a variety of differing requirements; if only the instructions within the SDK were a bit more clearer when it comes to  working with the raw data map .xml!

Whilst attempting to perform a proof of concept test, I uploaded a data map .xml into CRM, which contained references to four different entities. When I then attempted to run the data import using a test file, I encountered a strange issue which meant I could not proceed with the import. This occurred when CRM attempted to map the record types specified as part of the data map:

DataMap_Error

Can you spot the two issues?

The first, more obvious, problem is the yellow triangle on the 3rd entity option and the fact that the Record Type is empty. Whereas the 3 other options will display clearly the Display Names of the entities (e.g. Account, Lead), the Display Name of the problematic entity is not visible at all.

The more eagle-eyed readers may also have spotted the second, more serious issue; the next button is grayed out, meaning we have no way in which to move to next step as part of the data import. With no means of figuring out, exactly, what may be causing the problem based on the above screen, you can potentially expect a long-haul investigation to commence.

As it turns out, the issue was both simple and frustrating in equal measures. It turns out that because the third entity on the list of the above had the exact same Display Name value as another entity within the system, CRM got confused and was unable to display and map with the correct entity. So, for example, lets say you create a custom entity to record information relating to houses, called “Property”, with a Name of “new_property”. Without perhaps realising, CRM already has a system entity called “Property”, with a Name of “dynamicproperty”. It doesn’t matter that the Names of the entities are completely different; so long as the Display Names are, then you will encounter the same issue as highlighted above. So, after renaming the entity concerned with a unique Display Name (don’t forget to publish!), I was able to proceed successfully through the data import wizard.

So why is this frustrating? If, like me, you have worked with CRM for some time, your first assumption would be that the system would always rely on the Name of objects when it comes to determining unique entities, attributes etc. The above appears to be the exception to the rule, and is frustrating for the fact that it throws out of the window any assumed experience when it comes to working under the hood of CRM. Perhaps it was (fairly) assumed that, because the logical names must always be unique for entities, that the data map feature could just use the Display Name as opposed to Name when attempting to map record types. I would expect that CRM is performing some kind of query behind the scene at the above stage of the Data Import wizard, and that the Display Name field value is included as parameter for all entities included in the data map. In summary, I would suggest that this is a minor bug, but something that would be difficult to encounter as part of regular CRM use.

Hopefully the above post will help prevent anyone else from spending 6+ hours from figuring out just what in the hell is going on 🙂 As a final side note, what this problem and solution demonstrates is an excellent best practice lesson to avoid; be sure to provide distinct Display Names to your custom entities.

In anticipation of the Spring Wave release of CRM (which I am really excited about), I have been doing some research into ADXstudio and CRM Portals. As you may already know, Microsoft bought ADXstudio last year and aims to tightly integrate the product under new branding, as an add-on for existing CRM Online customers and a volume license product for on-premise CRM deployments. CRM Portals are shortly going to become more and more relevant in the months ahead, to the point of which they will be crucial for any serious CRM developer/consultant; my principal aim of the above is to get a flavour relating to the products background and Microsoft’s long term direction resulting from the acquisition.

Whilst reading the Microsoft Acquisition FAQ on the Adxstudio website, I stumbled upon this rather interesting Q&A:

9. Are there plans for an Adxstudio certification program?

Adxstudio certification will be a module that CRM Partners will certify on as part as an all-inclusive Dynamics Service Certification (Target launch July 2016)

Although vague in nature, there is enough detail there for us to assume that there will be some changes to the existing exams currently covering the CRM product this year – either modifications to an existing exam, an exam overhaul/replacement or even a brand new exam altogether. Here’s why I think it is incredibly likely to expect at least 1 new CRM exam before the end of the summer, and why this is, arguably, a good thing:

  • I don’t speak with much authority on this first point unfortunately, but taking a cursory glance over the ADXStudio product suggests that there is a lot to learn and cover in order to implement and maintain a portal for your CRM instance. I therefore think it would prove difficult to incorporate the entire lifecycle of CRM Portals as part of an existing exam; indeed, the trend seems to suggest a move towards more specialised exams, given that the MB2-704 exam was, effectively, split into 2 new exams as part of the CRM 2016 release. Having a singular exam that does not distract itself with the breadth of other features within CRM would seem to be the best approach to ensure that professionals fully understand how to use the product.
  • Having a dedicated exam, plus an accompanying Microsoft Learning course, for CRM Portals makes sense as it not necessarily a foregone conclusion that everything will currently be using ADXstudio as part of their CRM deployment. Granted, it has been incredibly popular amongst CRM Partners across the globe. But it is still likely that most CRM professionals would have only at least heard of ADXstudio previously, having no direct experience using the product. By putting in place an exam and Microsoft Learning course for the product, Microsoft will enable those people to dive into the product quickly and effectively and, by association, drive sales of the product in the years ahead.
  • Microsoft have recently announced a price hike for all Microsoft Certification exams, which is expected to take effect for any exam booked globally after June 30th. It might just be a coincidence, but I can see the sense of holding off on releasing any significant new exams until the price hike takes effect. It’s just good business after all 🙂
  • To the chagrin of some within the CRM Community, there has been no new updated exam to replace the MB2-701 Extending Microsoft Dynamics CRM 2013 (although, strangely, updated Microsoft curriculum was released to Microsoft training providers for CRM 2015). This is something which I have been hotly anticipating myself for the past 6 months, given the number of changes involved as part of 2015’s Update 1. One would hope that, in line with Spring Wave release, an Extending Microsoft Dynamics CRM 2016 exam hits in the near future, so that CRM developers can demonstrate their competencies in the latest release(s) of CRM.

Perhaps I am being overly hopeful in anticipating a new exam; it could just be that the existing MB2-714 exam is simply updated to incorporate new content relating to CRM Portal. I think this could be a damaging oversight though, and could have long-term implications in regards to driving adoption of the product. It is incredibly important (one would assume) that Microsoft is able to record as many CRM Portal subscription add-on/volume license purchases, as quickly as possible, for the new product; putting out an olive branch to those within the CRM community who have not yet taken the dive with ADXStudio is an important consideration that can only help achieve the assumed aims of Microsoft’s acquisition last year.

I recently took the plunge and bought an annual Visual Studio Professional subscription. I was already aware that organisations could purchase these subscriptions through a volume license agreement, and also knew about some of the benefits available as part of a subscription. As I begin to immerse myself more and more with Dynamics CRM and how the platform integrates with an increasing array of different Microsoft products, I thought having a subscription would be a good way to keep continually up to date with what is happening in the world of Microsoft. I’ve spent a couple of weeks now utilising the various benefits on offer as part of a subscription, and I am now fairly convinced that anyone who considers themselves to be a serious Microsoft professional should have a subscription, either on an individual basis or through the company they work with. Here’s just a few of the things that I have found beneficial about having a subscription, and why each one makes an important difference:

Azure Credits

Azure, I hope, needs no introduction for those who are currently working within the cloud space. I have been pushing myself towards fully understanding everything that Azure can offer, as the Dynamics CRM product is increasingly starting to offer various types of add-on/integrations with the platform (in particular, machine learning, which is something I am very interested in at the moment). The nice thing about having an (annual) Visual Studio Professional subscription is that you get £35 ($50) worth of Azure credits each month that you can use however you wish. The amount may not seem to be much, but with this you could very easily pay for a development virtual machine, a 250GB SQL database or multiple Basic 2GB SQL databases. Or alternatively, you can use the credit to help subsidise some of the more expensive of the previous options to help create your own personal Azure workbench, website etc. It’s looking more and more likely that CRM professionals will need to have a solid grasp of the Azure platform, what it can offer and how it relates to CRM in the months ahead;  having these free credits gives you an excellent excuse to dive straight in.

Free Dev Software

Perhaps one of the major selling points of a subscription is access to development use only versions of Windows, SQL Server and other Microsoft products. Thanks to the license keys and software on offer, I have been able to successfully setup up my own development server “farm” through the use of Hyper-V – in the process, learning more about the setup and administration of Windows Server 2012 R2, Active Directory and the many other server roles that are required as part of a domain deployment. This is invaluable experience that is almost impossible to replicate via book reading, watching videos online etc. and I would encourage both individuals and organisations to make the appropriate investment in a dedicated development/test environment as an absolute minimum requirement if you are intending to offer some kind of IT provision. One drawback is that the really good software (*coughDynamicsCRMServercough*) is sadly not available as part of the Professional subscription. To get your hands on this, then you would need to look at purchasing an Enterprise subscription, which currently knocks in at a whopping £1,832.09 ($2,999). This is clearly a deliberate choice on behalf of Microsoft, given that you have the likes of enterprise-grade applications like Exchange and SharePoint up for grabs.

Training Courses

One of the surprise benefits I found of having a subscription is access to the Imagine Academy e-learning site. Imagine Academy is geared towards usage by higher education providers as a supplement to any academic courses they may be offering instruction in and gives you access to online versions of most (not all, by the looks of it) of the official courses on offer by Microsoft for Windows, SQL Server, Dynamics and Azure. The courses are a mixture of module-based videos, with some multiple choice knowledge checks and interactive demonstrations (depending on the course you are working through). Whilst I will be quick to admit that these courses are no real substitute for their paid versions within a classroom/lab environment, I have been able to successfully use the courses on offer as a useful revision tool to recently pass the MB2-714 – Microsoft Dynamics CRM 2016 Customer Service exam, something which I was dreading as a result of the splitting out of these exams as part CRM 2016.

Xamarin

Along with some of the other high profile acquisitions made within the last 12 months by Microsoft, it was announced earlier this year that Xamarin had now joined this list as well. As Microsoft begin to take a much more agnostic approach when it comes to which platforms their key applications can run on, the acquisition of Xamarin cements this further by encouraging C# developers to begin to modify their applications so that they can be run on iOS, OS X and Android, without the hassle or effort you would typically expect. Whilst Xamarin is available without the need to purchase a Visual Studio subscription, what you do get is access to some of the “getting started” resources as part of Xamarin University, in order to help developers get to grips with everything the platform has to offer. What’s also good with Xamarin is that you can download it for OS X and write C# code from there; something which I am still trying to get my head around and not something you would have expected to say 10 years ago! I am really interested by the potential that Xamarin has in helping to increase application portability, using a programming language that I have found to be incredibly versatile to help deploy apps onto my preferred mobile operating system, iOS.

Does anyone else have a list of what they think are the best benefits of a subscription, or general feedback on their Visual Studio subscription? Let me know in the comments below!

The introduction of Excel Online within Dynamics CRM was one of those big, exciting moments within the applications history. For Excel heads globally, it provides a familiar interface in which CRM data can be consumed and modified, without need to take data completely off CRM in the process. It is also a feature that can easily be used by CRM Administrators in order to perform quick changes to CRM data. It’s also one of the benefits of using CRM Online over On-Premise, and probably something I should of included as part of my previous analysis on the subject.

As great as the feature is, like anything with CRM, it is subject to occasional issues in practice; particularly if you use bespoke security roles as opposed to the “out of the box” ones provided by Microsoft. We encountered an issue recently where one of our colleagues had a problem importing modified data from Excel Online back into CRM. Our colleague had no problem opening the data in Excel Online, with the problem only surfacing when they clicked the Save Changes to CRM button. The rather lovely looking error message looked something like this:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Principal user (Id=0c6ff908-a6c9-e511-8144-c4346bac5e0c, type=8) is missing prvReadImportFile privilege (Id=fe46d775-ca5c-4a09-af93-99a133455306)Detail:

<OrganizationServiceFault xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/xrm/2011/Contracts”>

<ErrorCode>-2147220960</ErrorCode>

<ErrorDetails xmlns:d2p1=”http://schemas.datacontract.org/2004/07/System.Collections.Generic” />

<Message>Principal user (Id=0c6ff908-a6c9-e511-8144-c4346bac5e0c, type=8) is missing prvReadImportFile privilege (Id=fe46d775-ca5c-4a09-af93-99a133455306)</Message>

<Timestamp></Timestamp>

<InnerFault i:nil=”true” />

<TraceText i:nil=”true” />

</OrganizationServiceFault>

When approaching any type of error message for the first time, it can be quite daunting figuring out what it is saying. Fortunately, in this case, there is only one line we really need to be concerned about, which is the <Message>…</Message>. To translate to plain English, this line:

<Message>Principal user (Id=0c6ff908-a6c9-e511-8144-c4346bac5e0c, type=8) is missing prvReadImportFile privilege (Id=fe46d775-ca5c-4a09-af93-99a133455306)</Message>

Means:

I cannot complete this action for Joe Bloggs, because they are missing the Import Source File Read privilege!

(Note: To help translate the above, I made use of the Security role UI to privilege mapping table on MSDN – a handy link to have in your browser favourites)

Giving the user just this privilege did not resolve the issue, producing a completely different error message in the process. Rather then spend an inordinate amount of time replicating the action over and over again, we did a quick Google search to see if there if we could find a list of the minimum level of permissions required in order to complete We were directed towards this forum post, with an answer from CRM MVP Jason Lattimer on what permissions were required in order to resolve the error message:

Required permissions:

* Data Import (all)
* Data Map (all)
* Import Source File (all)
* Web Wizard (all)
* Web Wizard Access Privilege (all)
* Wizard Page (all)

Problem solved you’d think? Well, unfortunately, in this case not. Although at first we thought that things were working fine, as no error message cropped up. When we then monitored the data import job in background, however, it was stuck at Parsing. At this point, we were really beginning to struggle to think of how to resolve the problem. It was at that point we rather desperately took a look at other, successfully completed, System Jobs to see if there was anything obvious we could observe. We noticed that successfully completed Data Import jobs had 3 System Job Tasks associated with them, whereas our stuck had only 1. At this stage, we asked: Could we be missing privileges on the System Job entity? And, lo and behold, when we took a look at the users security role, there were no privileges configured for System Jobs. After a bit more trial and error, adding permissions one by one onto this role, we saw that the Data Import job ran successfully!

So just to confirm for those who may encounter the same problem in future, the full list of permissions required to get Excel Online Data Import working successfully are the ones highlighted above and the following additional privileges too:

Customization Tab

System Job

Create: Business Unit Level

Read: Business Unit Level

Write: Business Unit Level

Append: Business Unit Level

Append To: Business Unit Level

Assign: Business Unit Level

e.g.

SystemJobMinimumPrivileges

What this problem (and the solution) I think demonstrates is the best way in which to approach day-to-day problems that may crop up within CRM:

  • It is reasonable to assume from the outset that the problem is due to a lack of security permissions problems; try not to over complicate matters early on by assuming it could be something completely different. For example, if the task or action that you are trying to perform CRM can be performed using an account/security role with greater permissions, then this will tell you straight away what the problem is.
  • Having good “under the hood” knowledge of CRM is always helpful in a scenario like this, but this may not always be possible for those of you work with CRM sparingly. To help you in this scenario, we can refer to some of the fantastic resources online by the CRM community. Ben Hosking has a great blog post on the importance of thinking in entities when it comes to working within CRM, something which I think applies great in this particular example. By understanding that the System Job is a system entity, we can logically assume that it has its own set of required permissions.
  • In diagnosing the issue in this case, we were able to refer to some of the previous System Jobs records in the system. As part of this, we observed that a System Job that completed successfully had 3 job records related to it. This immediately told us that there was something wrong with the users access to the entity in question (going back to the above, System Job is, after all, a system Entity). Sometimes, being able to understand the difference between an action, when it works and doesn’t work, can give you the information you need to make the logical next step jump on what to investigate further.
  • And, last but not least, access to and the ability to use a search engine is always very helpful 🙂

CRM2016Update1

It was a very nice post-bank holiday treat in the UK to be treated to news on Tuesday morning that the CRM 2016 Spring Wave has now been released, and can now be accessed as part of a Sandbox Reset or a new CRM Online Trial. 🙂 Microsoft will be targeting organisation updates on Office 365 tenants starting from the 1st week of June, and it’s a better time then ever to upgrade to CRM 2016 if you are still using 2013/2015 within your Online environment.

So what can we look forward to as part of the new release? I have taken a look at what’s new (both obvious and under the hood), and have highlighted the 5 new features that I am most looking forward to as part of the new release:

Characteristics

I’ve been getting myself more and more familiar with the service side of CRM (partly for exam preparation, and also because the new interactive service hub looks really cool!) and I have been impressed with the breadth of options that are available within CRM for service management, scheduling and resource management. One thing that is lacking though is some easy method of recording detailed information regarding a particular resource. For example, if you have a Network Engineer that you need to schedule out for a site visit and you need to ensure that he has a particular certification or qualification in order to complete the job, there is no (easy) way to record this against the resource in CRM.

I am therefore pleased to see that new entities called Characteristics Bookable Resource Characteristics have been added as part of this CRM release, with the following descriptions:

Characteristic – Represents the skills, education, and certifications of resources.

Bookable Resource Characteristic – Associates resources with their characteristics and specifies the proficiency level of a resource for that characteristic.

The entity has fields that records a Characteristic Type and Rating Value, which would seem to be perfect for scenarios similar to the example provided above.

Unfortunately, after digging around in a trial version of the Spring Wave update, I cannot seem to find any obvious means of accessing these entities via the user interface. I assumed that you would be able to add this information from the User form, but no dice. Perhaps this entity has been added in preparation for the next big release of CRM, but there is nothing (in theory) stopping system customisers from exposing this entity manually themselves and start using it. If anyone else manages to find this within CRM, please let me know in the comments below!

Email Signatures

Buried within the What’s New announcement page for the release, is the following small, but potentially significant, new feature announcement:

Save time on your email correspondence and add a professional touch by adding an email signature. Use a default signature for everyday replies and new email messages, and then create other signatures for those special cases. You can also assign a default signature to a queue. When you change the From field from a user to a queue, the default signature changes automatically.

This has been one of my major headaches in attempting maintain consistent email signatures between our Outlook and CRM clients. The problem is compounded somewhat by the fact that the Email Template functionality does not offer a HTML editor. You therefore have to go through a number of different hoops in order to replicate this within CRM, and even then it doesn’t look 100% perfect when compared to our Outlook signatures. If there is therefore a better way of managing this in CRM moving forward, then I am very interested in finding out more.

One problem I’ve noticed straight away though – similar to Characteristics, there doesn’t appear to be any way to access this through the CRM interface! There is a new entity in the system called Email Signature though, which can be accessed via Advanced Find, but looks as if its not something that can be used yet. A real shame, as I was looking forward to seeing this in action.

Guided Help

Eagle eyed CRM users will immediately spot, when first logging into the new CRM update, that the help button looks distinctly different on the top right corner of the screen:

GuidedTours3

The new release introduces the Guided Help feature, which aims to offer more detailed, context sensitive information for users who need help within CRM. Clicking the above button will pop open a sidebar on the left of the screen, that changes depending on where you within CRM:

GuidedTours1

Then, by clicking one of the green links that are listed (again, these change depending on where you are within CRM), you will then be given a tour of how to complete a specific action, such as creating a Lead record:

GuidedTours2

Rather then attempt to poorly emulate some of the existing information available online for this new feature, the video below provides a great summary of what Guided Tours is capable of:

I am really excited to see how this feature develops over the time, and hope that eventually you have the option to create your own guided tours that can then be tailored specifically to individual CRM systems. This feature is also a great example of how Microsoft is leveraging some of the benefits and features of the Azure platform to deliver better services to their online customers.

Feedback

Within previous versions of CRM, there was no out of the box way of recording post-sale information in regards to Products that are setup on the system. I would say that pretty much all businesses are not just concerned with how well their products sell, but also want to drill-down further and get feedback directly from their customers on a Product that has been sold to them.

Now, in the Spring Wave release, the existing Feedback entity (previously used for Knowledgebase Articles) has been extended for use by other entities. To enable for your system/custom entities, all you need to do is tick the Feedback option within the Entity Definition page:

CRM_Feedback

Just to advise you, once it has been enabled for an entity, it cannot be disabled. Once enabled, you can then access it from the entity record page:

CRM_Feedback2

So now, system customisers can modify their CRM systems in order to enable Product feedback and feedback for any type of record. For example, you could configure Feedback for the Competitors entity as well, in order to allow sales users to capture feedback when speaking to potential customers about a supplier they are currently using.

CRM Portals

One of Microsoft’s most high-profile acquisitions last year was ADX Studio, a company that provides customer portal solutions for CRM – the great benefit being that you don’t need to be an ASP.NET whiz in order to setup highly functional, attractive portal systems that feed data into and out of CRM. Starting from the 2016 Spring Wave, Microsoft are starting to more tightly integrate the product with CRM, to the extent that portals will now be manageable from within CRM itself and integrated as part of the Office 365 subscription plans, effectively becoming an add-on product that can be purchased from the portal. Organisations who are considering to use ADX Studio may be advised to wait to see what happens with this, as it is likely that Microsoft may introduce price breaks on the product in order to entice CRM Online uses to try the product. In the meantime, trial ADXStudio account are still available on their website for those who are curious. I am hoping to start getting to grips with the product within the months ahead, so expect a blog post or two on the subject in future.

What are you most excited about as part of the Spring Wave release? Let me know in the comments below.