Dynamics 365 Saturday – Dublin 2018

The Dynamics 365 Saturday 2018 took place in Microsoft Dublin (One Microsoft Place) and was hosted by Janet Robb and her Team. Congratulations on Janet for a great work on organising such well-structured event.

Lots of cool sessions provided, as well as workshops for PowerApps and CRM for the ones who were interested.

 

Even though I’m not a Dynamics consultant, to me as a SharePoint/Office 365 Consultant, it was very cool to see how the same stack of products (Power platform + Azure) that we use on top of SharePoint/Office 365 is been adopted in the Dynamics Community as well. As mentioned on the keynote, for all D365 specialists it’s been a constant work to keep up to date with tons of new features been released (I can assure that for Office 365 as well), and an event like this helps to connect the community and to get a summarized overview of what’s been there in the market.

Special thanks to our Dynamics Guys who came from the UK and smashed in their presentations:

Chris Huntingford – Dynamics 365 for Marketing

Kylie Hill – My Favorite new D365 Features

It was a pleasure to meet those legends in person.

Also, the interaction from the community posting and sharing content and pictures on social media (Hashtag #365SatDub) was really nice, cool to see such engagement and nice pictures from everyone on Linkedin and Twitter.

Looking forward to the next #365SatDub!!

Can’t Associate Existing Contacts to an Account in the D365 UCI? – WHERE IS THE DAMN BUTTON??

Don’t feel like the emotional post? 😀 😀 FIND THE SOLUTION HERE!!

Recently I was doing some config. within Dynamics 365 for a customer that was keen on using the UCI (Unified Client Interface).  I’ve done a load of demo’s for this type of thing but never actually helped configure for a live implementation. To be deadly honest, I had to change my mindset a bit about how I designed things.

After a few hours of build i ended up setting up a little training solution that allowed users the ability to associate existing contacts to an account. A pretty straight forward N:N relationship on the account form showing the associated contacts that had been trained and the internal users that had actually done the training.

I was happy with the setup but when it came down to testing, something weird happened… There was no button available on the sub grid that allowed me to associate an existing record. The Add Existing User button was there, but no “Add Existing Contact” button 🙁 

I checked if it was working in the Web refresh… Lo and behold, i could work just fine! No issues with adding existing contacts to an account. 

I tested out different views and still no luck I even tried a 1:N relationship to Contact and it only allowed me to create a NEW contact rather than add an existing one. 

After a bit of searching… I found the one solution that worked! THANK YOU to the Joel THE TIP OF THE DAY team for this post! you saved me a TON of time. This could have been a rabbit hole. Also Scott, your Ribbon Workbench comes to the rescue again! Legends!

FIND THE SOLUTION HERE!!

Skills for the PowerApp developer

It seems to me that PowerApps will prove to be a game-changer by enabling businesses and organisations to build bespoke apps designed to meet very specific needs.

The curious thing about PowerApps is that the product is pretty well where it needs to be as of today but the major blocker for a global revolution is that there simply aren’t enough people out there with anything like the skills that they would need to be able to build robust business product.

So let’s assume that you can’t buy in PowerApps skills or maybe that you have some but need to grow some more.  What would you be looking for in an individual to identify them as a potential PowerApps developer?  In this article I’m going to outline some of the skills that I would be looking for when identifying candidates with the potential to be high performers.

Excel

It feels kind of strange to start with a product rather than personal skills but in this case the Excel formula structure and Excel cell construction is so closely related to that of PowerApps that is the number 1 skill.

The Excel and PowerApps teams work closely together so that any new formulas created are aligned to each other.  With this in mind this also opens the door to the many years of formulas created by individuals within excel that can theoretically be borrowed or referenced to enhance a PowerApp.

Maths

PowerApps is the product that is the most mathematical that I’ve ever seen.  Variables can be easily created that can be used in an algebraic fashion.  X and Y properties exist to govern the position of everything that you see on a screen.

Empathy

You need to be able to consider your products from the perspective of other users.  If people don’t like your product they won’t use it, and you should be aiming for them to love them.

Logic

To my mind there are 2 kinds of logic.  Firstly, the more mathematical/excel based ‘If X=1 to this otherwise do that’ and secondly there is the type of logic where you put yourself in the shoes of a user or administrator and be able to see whether or not a form (as in business world this is the most likely application) has a logical flow.

Design

Having an eye for design is a skill people have to a greater or lesser extent.  To be fair it doesn’t come naturally to me, but I do know that from making lots of products some designs work better than others and it is a skill that can be learned.

Initiative

PowerApps won’t go to you, you have to go to PowerApps.  If you create a blank app it will stay blank until you do something.  Additionally, many technical solutions may require techniques that feel like work-arounds mainly because the problems you have been facing haven’t been faced before, so looking them up on Google won’t necessarily yield any results.

Lifelong Learning

The product is ready, but is changing all the time.  Good sources for keeping up to date are twitter and the PowerApps blog, but even the latter tend to focus on ‘big’ updates whereas some of smaller adjustments can still be game changers.  Keep up with it.  I’ll be honest in saying that there are times when staying at the cutting edge can be difficult to manage versus traditional tools and skills that stay very similar over long periods of time.

Perseverance

Some problems will require high levels of determination to find the exact syntax you need to solve your problem and when those fail you may need to pull back stick your head up and work out if there ways around the problem or if the items is even needed (i.e. do you really need to collect the data at all or is it a nice to have)

Patience

Not necessarily my forte, but patience may be required of yourself as you may not have the skills that you need at your fingertips and similarly the same may be true of those around you.  You’ll also need a level of patience on the part of your sponsors or users.  I can almost guarantee that unless they are very familiar with digital form building you may produce a product to the exact specification requested but nevertheless you, and they, know that it’s not quite right and that adjustments, sometimes significant may be required.

Use the community

The PowerApps community at this stage is currently populate by a relatively small but passionate group of individuals building highly imaginative solutions designed to stretch the product.  Make use of these by joining https://powerusers.microsoft.com, follow people on twitter posting using the #powerapps or @PowerApps references.  By all means take a look at my youtube channel www.youtube.com/dataspinners and don’t forget to join https://dynamics365society.uk which contains a PowerApps bank that you can make use of once you sign up (for free).

Go on a course

Personally, I’m quite happy with an online course as typically these are completed over a longer period of time which for me is a better way of allowing the learning to sink in.  The best single free resource is https://courses.edx.org where DAT207x is a very useful starting point.  You can search up courses run in a classroom setting, but you will need to ensure that you invest time in utilitizing the product one you’ve completed it as otherwise you’ll lose your knowledge quite quickly.

Concluding remarks

This article was intended for hirers or individuals trying to make some sense as to the range skills needed for PowerApps excellence.  Hopefully, it isn’t too daunting.  Whatever you do, start small but build usable solutions.  This particular tool offers us astonishing scope for us to run our businesses in efficient ways and the more we can grow as a community the closer we will all get to a culture of efficiency the impact of which may be widespread, more operations, better scheduling less wastage all by putting the right information in front of the right people at the right time.

 

 

Dynamics 365 User Group – Birmingham – 17 May 2018

Recently I had the pleasure of presenting at the D365 Birmingham User Group Meeting. Thanks to everyone that attended. Was really fun and I learnt a whole lot. For those of you that haven’t been to one of the D365UG meetings, and if you are utilising Dynamics 365, I suggest that you join and get involved.

I had the pleasure of following Julian Sharp, an absolute legend in the D365 world and a brilliant trainer whose focus is “Helping organisations make the most of Dynamics 365 Customer Engagement through advice, optimisation and training”.

Julian gave a great presentation on the importance of Dynamics 365 Customer Engagement exams and as well as how to prepare for them and how to study. You can follow Julian on twitter using this handle: @Julianatvigence or check out his blog here for some really useful information.

My presentation was focused on why brand perception is so important within a business and the ability to generate more meaningful conversations with your customers utilising Dynamics 365 Customer Engagement.

This presentation was a “Spin Off” of the one I did at the D365 User Group Summit event. I only used Microsoft Social Engagement as the channel of interaction rather than use a load of channels. More information regarding this session can be found in my next post (Awaiting Hyperlink).

Just a quick summary of what the User Group is all about… it’s not a sales pitch for Dynamics, but more of a community lead initiative that enables the community to help and assist one another regarding all things Dynamics 365 related. There is a big mix of Dynamics 365 customers, Partners, ISVs and even Microsoft guests.

I’ve found it massively useful because the people part of the community just want to help and share info. It’s a super relaxed environment that promotes learning and development. To find out more and to even register, follow this link and get stuck in. There are User Group chapters popping up all over the place. Hope to see you there.

Follow the Dynamics 365 UK user Group on Twitter using the following handle: @CRMUGUK

“UNEXPECTED ERROR” on Record Creation / Update in a Workflow

I’m going to share something life changing with you right now. Perhaps I’m the only one that ever experienced this… who knows, but I thought I’d share it anyway.

Have you ever created a workflow and added the “Update / Create Record” function? Have you ever created an “Automated Record Creation Rule” and added the same function? Have you ever received the below error? I’ve found that this generally happens on the Case entity…

WELL… If you have ever encountered this delightful little issue, then you are in the right place. After beating my head against a wall, I discovered that this appears when you activate and publish the Knowledge base functionality to the associated entity… This is why it was happening on the case record.

To resolve, simple pop into the relevant entity and disable the KB functionality on the forms.

The thing that made me very sad was that I discovered I needed to disable this on all the forms, not only the primary form. This may be an issue if you have a load of different forms.

Once I had disabled the KB functionality I could set the update fields in the case entity.

Once all your updates are made, simply go back into the case entity and re-enable the KB functionality J

I hope this helps someone because I fought for a while to get this right and I couldn’t find a load of stuff on the web.

Dynamics 365 Customer Engagement Platform Updates and Insights

Having just come back from an amazing time at Extreme365, I have had some time to digest and consider the content and discussions from the event and here is a brief write-up of my thoughts on the announcements and outcomes. These thoughts are my own and are premised around the v9.0.2 release of Dynamics 365 Customer Engagement (CE).

To start with, if you have not seen already, Microsoft have rearchitected the way Dynamics 365 CE is delivered. Traditionally the Dynamics 365 CE team hosted their own infrastructure and were responsible for this. Since December 2017, the infrastructure has all been moved to, and is running off, Microsoft Azure! This is a significant change as it affords the reliability, performance and scalability of Azure and removes the dependency on the Dynamics 365 CE team of having to maintain their own infrastructure. To give you an idea of how things have changed, consider the following:

The above represents the ‘old’ way of doing things where the Dynamics 365 CE team hosted their own infrastructure. The below represents how things look now that the infrastructure is being hosted by the Azure team:

You will note that most things have changed subtly but you should see that there have been 2 fundamental shifts:

  1. The xRM platform now underpins the entire Dynamics platform and the CDS and PowerApps platform (they have been unified and run off the same architectural designs)
  2. User interfaces have been consolidated in a presentation layer at the top of the stack and now have a single development base that is surfaced across multiple devices simultaneously

A number of people have been asking about why v9.1 wasn’t released in April and the reason is above. The platform changes meant that the timelines for delivering new functionality were too tight and this resulted in the functionality being pushed into a future release. That being said, the new architecture means that the Dynamics 365 CE platform is very easily able to embrace change and it was confirmed that updates to the platform can, and will, occur on a weekly basis. These updates will be more technical in nature and will represent the Update Rollup (UR) concept that we are used to today. Minor functionality updates will be delivered through updates to Microsoft-managed solutions such as Field Service and the timelines around these are monthly as a guideline because it depends on the velocity of the specific product teams and the requirements being realised from market requests. Major functionality updates are still being planned on a twice yearly basis as is the case today. One other nugget on this front is that Microsoft are breaking compatibility with the v9.x release. This means that when v10 is released in the future, any organisation wishing to upgrade to v10.x, will have to include an additional step by upgrading to v9.x first and then again upgrading to v10.x

One other significant change to Dynamics 365 CE, now that the CDS and Dynamics 365 CE share the same xRM framework, is that solutions have become more important in terms of the way the functionality is delivered. Below is a representation of the way in which the changes have been delivered from v8.x and now in v9.x:

Basically what has happened is that the core solutions have been split out so that smaller sets of functionality can be released more rapidly without the need for major releases. Dependencies on system components have also been revised to try and enforce the licensing model more efficiently amongst other things. A good summary video of these changes is available here: https://www.youtube.com/watch?v=D-AUhLIB05Q. Also worth noting is that Dynamics 395 v9.0.1 has been running on the CDS / new Azure xRM framework since December 2017. Since that date, the telemetry on the new platform has indicated that a general performance increase of between 5% and 20% is being experienced between v8.2.2 and v9.0.1. One other thing to take note of is that the new solution architecture will enable solutions and plugins to be rolled backed! Versioning here will obviously be important but this will be a major new capability in terms of release planning for customers. Please note that the instance structure is also changing. Going forward, there will be the following instance types: Production, Sandbox, Preview and Developer! Developer instances will be free but restricted to 1, maybe 2, users. These Developer instances will start as plain CDS instances, and will expand into the full ‘CRM Prime’ version by the end of the calendar year.

Most of the changes released as part of v9.0.2 were technical in nature so I will summarise some of the major technical ones below:

  • Native connections to CosmosDB are available
  • The framework for xRM –> xRM is in place. This will facilitate Dynamics 365 CE instance to instance operations as well as Dynamics 365 to CDS operations
  • The web api has 99% parity in terms of functionality with the SOAP endpoint
  • Plugin import behaviour is being enforced as per the documentation:
    • A major or minor version can add or remove plugin types
    • A build or revision updates can only add to the plugin type count
    • In place updates can only add to the plugin type count
  • Several updated Dynamics 365 CE Nuget packages have been released including CI/CD packages
  • The Flow options from Dynamics 365 are running on the same infrastructure as LogicApps and will receive the same features and scalability
  • A dedicated team is now looking after the developer tools and extensibility for both the xRM and CDS frameworks
  • Release notes will be included from UR level up. Microsoft are looking at including release notes on weekly drops but they don’t want to slow down the cadence of the releases
  • Since v9.0, 10 major features have been released
  • The Office 365 Admin Portal is going to become the configuration hub for Dynamics 365 CE and CDS. This includes solutions, applications, backups and updates. The old admin experience directly through Dynamics 365 CE and the Settings -> Customisation experience is being retired
    • CDS databases are going to load in the organisation browser through the portal. You can connect to these instances like normal Dynamics 365 instances
    • Currently a CDS instance is separate to a ‘normal’ Dynamics 365 instance. Hooks are available currently to facilitate Dynamics 365 -> CDS operations but by August 2018, a ‘normal’ Dynamics 365 instance will be able to be deployed on CDS infrastructure, negating the need for the hooks
  • Task flows are being positioned as the replacement for dialogues
  • The Xrm.Tooling functionality has had a large amount of updates including:
    • A new property to skip discovery which assumes that the connection credentials are correct and can save a quarter of a second on each connection
    • Improvements have been made to the oAuth authentication mechanisms, saving an additional quarter of a second on each connection
    • Caching has been reworked to speed up the connection and transactions in general

Finally, there has been a huge amount of functionality released on the new Common Data Service (CDS) platform which is shown below:

While the scope and in-depth features are beyond the remit of this post (see a complete write-up here: https://powerapps.microsoft.com/en-us/blog/powerapps-spring-announce), there is one important point around the types of apps that can be created.

Canvas apps are usually targeted at highly customised roles – or task-specific experiences that can pull in and mash up multiple data sources from virtually anywhere. Customised user experiences help make apps easily approachable so that users can jump right in without needing any/much training. This style of building provides pixel-perfect design control over the screens of your app, letting you create rich custom UIs in the WYSIWYG studio as follows:

While canvas apps start with the user experience, model apps start with data, relationships, business processes and forms. PowerApps then renders the user experience automatically based on the declarative model, creating the appropriate visuals based on device, form factor and even things like the assigned role of the app user. If you need to add a new field to your forms, just modify the entity form and it automatically starts to show up in all apps that use the updated form. Model-driven apps are great for apps with lots of forms and many possible user scenarios being required. Model apps are also how Dynamics 365 surfaces its apps and provides direct hooks into the customisation experience we have become used to, as follows:

Your app users will find both canvas and model driven apps in https://home.dynamics.com. Initially mobile clients for canvas apps and model driven apps will remain separate, but this will change later in 2018. Also, don’t forget that the consumption of PowerApps does require a license so they are not intended for users outside of the organisation.

I hope the above has been useful and make sure to check out the release notes for v9.0.2 if you haven’t already done so.

Future Proofing your Implementation and Configuration – Part 3 – The Configuration Question

In part 2 of this 3 post series I spoke about the Microsoft and how you are able to keep up to date with what is being released, so that you don’t end up building something into your Dynamics 365 implementation that is going to be added in a next release. In this post, I am going to talk about why it is important to carefully consider the use of custom functionality versus the use of out-the-box functionality when implementing and configuring Dynamics 365 Customer Engagement.

Why would we want to make our implementation of Dynamics 365 future proof? Well, there are loads of reasons.

  1. So that upgrades are smoother and less painful.
  2. So that customers can leverage other parts of the solution to support their business.
  3. So that Dynamics can be grown from both a functional and business point of view.

Essentially, Dynamics is used to solve more problems, which then increases user consumption and adoption.

So, I guess the million-dollar question is “Should we configure this or should we use what’s available out the box”? I have been working with Dynamics 365 CE (CRM) since version 3 and a lot of the time, in the earlier versions, we needed to configure stuff from scratch. There was a load of great functionality there already, but the previous versions were nowhere near where Dynamics 365 is today.

I remember spending hours trying to get past a problem without using loads and loads of code. This is partially because I am no developer. There was a huge reliance on form side scripting (pre-business rules) where setting things like field visibility or business relevancy required several lines of JavaScript, and this was incredibly Important because the experience of the user was at stake. The reason we tried our best not to code was because when the next release came out, there were always issues with certain bits of code not being supported and not working.

Now, for all my developer friends out there, I am not saying that there is anything wrong with coding at all. What I am saying is that the role of the developer has simply changed from when the previous versions of Dynamics were released. Before, functional consultants like myself were expected to code and write plugins, and if you couldn’t then you needed a developer with you. Now, this may not be the case. There is so much one can achieve with what is available out the box in Dynamics 365 that developers are focusing more on REALLY extending what Dynamics 365 can do.

So, back to my question….. Do we build it or do we use what is already available? Well, in my opinion, the answer is relatively simple. We use what is already available and extend through configuration, customisation and ISV solutions where the functionality we require is lacking. This approach really is in line with the Microsoft future proof strategy where the current functionality utilised within the Dynamics 365 CE framework is supported. Caveat: Yes, Microsoft do often deprecate functionality that is not widely utilised (Such as contracts).

Some time back I had a scenario where it was suggested to me that I did not utilise the standard Case entity and I was told that it would be better to recreate this functionality in a custom entity because it gave me more flexibility and freedom to do what I wanted. (Multiplexing rules aside) I didn’t agree with this. Why? Well, to recreate the functionality that existed in the standard case entity would have taken me more than 3 times the amount of time that it would have taken me to just do some basic config to support the main case entity that is already available in D365 CE. I would have to do all sorts of crazy stuff around routing rules, SLAS, Entitlements, Case Resolutions, Case Hierarchy and much more. It seemed that the right thing to do would be to supplement the case entity with some related metadata entities that enabled the user to lookup to various sub entities. This worked well because it also gave the users the power to maintain their own lookups.

The other thing that we thought of was that we couldn’t ad hundreds of fields to the case form. This would make maintenance and business rules a logistical nightmare. We ended up creating several sub entities for each case category and then just associated the sub entity to the case. This way the core case management functionality was utilised but not drowned with attributes. This also made upgrades MUCH easier.

Scenario 2 was a little different where I wanted to utilise the standard Contract & Contract lines entity in Dynamics 365 CE. I found that the functionality that I wanted couldn’t be achieved through utilising this entity set. One thing that really stood out was I couldn’t enable a contract to be associated to the Business Process Flow functionality, which was pretty important as far as the “Agreement – Contract” process was concerned. I actually ended up creating a custom set of entities and only ended up replicating a very small amount of the current contract functionality.

There are hundreds of examples of this type of thing that I could bring up at any one given point. One of the most talked about scenarios at the moment is “Will Custom Controls (CCF) replace web resources”. In many cases, yes! Check out this video for a bit more information.

Essentially the moral of the story here is that the requirement to configure the solution versus utilise what’s out the box is entirely scenario based. What I’ve found is that the more I utilise out the box functionality within Dynamics, the ore future proof it is. HOWEVER, this needs to be done in such a way that you don’t completely overuse the standard functionality to a point that it can’t be leveraged across the rest of the solution. The example in scenario 1 with the case management is a perfect example of using what’s out the box, but knowing how to supplement with config.

When implementing Dynamics you need to be a bit like the precogs from the movie Minority Report. You need to look into the future and try to understand how your customer may grow as well as how the solution may grow in order to be more future proof.

Future Proofing your Implementation and Configuration Part 2 – The Roadmap Question

In Part 1 of “Future Proofing your Implementation and Configuration – The Licensing Question” I covered off a couple things to take into account as far as licensing goes. The next question is around the Microsoft roadmap and a few things both customers and partners need to consider when planning for and implementing Dynamics 365 Customer Engagement.

Let me start with an example It’s 2011 and Partner X has developed a FANTASTIC business process management solution that enables businesses to create and manage sales processes, which in turn effectively promotes governance and sales performance within their sales team. After joining the CRM 2013 preview program, it was realised that out-of-the-box Business Process Flows did a similar job. The functionality created and implemented by partner X was still VERY relevant and provided a brilliant solution to their customers, but would the Business Process Flows replace this? The answer is yes and no.

We see similar scenarios in loads of implementations where partners and customers have implemented functionality utilising ISVs, as well as custom code, and this functionality is matched by something being released by Microsoft in a “Next Version / Release”. So, what do we do? We only know what we know right?

There are a load of resources out there that will give you a certain amount of visibility into future releases to make sure you are not “Double Dev’ing” or buying an ISV product that may be deemed unnecessary in the future…Caveat: If your customer needs the functionality now, it will be up to you to be open and suggest the right solution.

My first go-to resource is the Microsoft Dynamics 365 roadmap site. There is a LOAD of information about what is going to be released in the future releases of Dynamics 365 (the ‘In Development’ tab). It’s a really user friendly site that allows for filtering by application.

Back in the day (up to last year) D365 participants were able to register on the MS Connect website to participate in the D365 preview programmes. Connect has been RETIRED… Many of the services offered by Connect are moving to new tools and services. Check out this post for more information.

A lot of the Connect functionality seems to have moved off to the Dynamics 365 Ideas site where one can present ideas which can be voted on. This is a very smart method of keeping an eye out for functionality that may be expected in the roadmap site, based on input from the D365 community.

I would suggest joining the Dynamics 365 Insider programme and applying to be one of the “Insiders” who will join the previews for the selected applications and feedback based on your findings. The application can be filled out here.

A very reliable source of information can also be some of the direct Microsoft resources available to you. Don’t forget the DynamicsLearning Portal (DLP) and the ‘Blitz’ recordings which highlight upcoming functionality and capability. It’s often also worth your time to reach out to your Partner Development Manager or Partner Technology Strategist if you have these available.

The other method of finding out what may be in the pipeline is to watch the forums and groups on all of the social sites. The Dynamics 365 community is larger than you think and many of the members are active participants in sharing knowledge, enthusiasm, and war stories. Multiple blogs out there (Including this one) really do try to share the Dynamics 365 love. The MVP community also do a fantastic job of sharing what they can with all of us, which really helps.

Honestly, the frequency at which functionality is released is completely dependent on Microsoft, but according to a Mr. James Phillips this release cycle should be more consistent and reliable starting from 1 April 2018. It is best to be open and upfront with your customers about what is coming in the future, as you may want to stagger the delivery cycle to cater for this. If we know we have a delivery roadmap of 1 year with our customer and we know that functionality X is coming in 6 months, we may not want to build anything in the interim and then have to deprecate that functionality… OR you may… The most important thing is to be aware that the functionality will be released and that your customer may want the opportunity to select what is available out the box rather than a custom solution.

In summary, try your best to keep your ear to the ground regarding what is coming in the Microsoft Dynamics 365 roadmap and utilise the tools and services out there to educate yourselves. You may be saving yourself time and your customers’ money!

Part 3 of this article will focus on some of the functional elements in future proofing your implementation and configuration.

Dynamics 365 Saturday Learnings and Overview

Recently Kyle Hill and Chris Huntingford attended the D365 Saturday event in London. Firstly, What an EXCELLENT, well organised event. Thank you to all of the sponsors that invested so much time and money into growing the Dynamics 365 community. It was amazing to see so many D365 community members in one location, getting involved and collaborating. A special shout out to Raz, Mohamed, Janet and the rest of the organisers and MVPs that made this event amazing!

We started the event on Friday with a hackathon hosted by the likes of Jonas Rapp talking about the XRM Toolbox and how it can support all kinds of D365 users in their implementations and management of D365 CE solutions. Good to see functionality like the Sitemap Editor and Plugin Registration tool is still in there. I highly recommend this set of tools and give much respect to all of the contributors 🙂 Check out the list of plugins here.

Ben Vollmer hosted a Connected Field Service (CFS) workshop where attendees were taken through the CFS Setup process and were even given an actual IoT devices to connect to the Azure IoT Hub. level 10 cool!

James Phillips opened the session on Saturday with an excellent talk on Digital Transformation. A few big bombs were dropped such as the Outlook Client deprecation message being deprecated. Good news for the MS customers using this… BUT the focus seems to still be on the App. More information can be found here: CONTINUED SUPPORT FOR THE OUTLOOK CLIENT.

There were some really interesting sessions on the go from a host of different presenters. Some were very technical where as others were fairly business centric. One of the areas of clarity that was demystified by Ben was where and how Dynamics 365 Route Schedule optimisation works. You can grab a copy of the presentation HERE. Thanks for this on Ben 🙂 Gethin & Nick from CafeX ran a number of sessions on the Saturday which showed how to improve customer experience and engage customers in the most efficient ways possible.

Something else that had a massive focus was “Women in Tech” and the ability to generate diversity in our partner teams. This was awesome and it was wonderful to see so many of the ladies in Dynamics at this event 🙂 This is a campaign that should be adopted by as many of the Dynamics partners as possible. In order to promote digital transformation, we have to work differently. Jon Keen did an excellent talk at the end of the day which really highlighted the need for diversity. Those Dynamics Guys fully support this and have actually changed our site URL to “The Dynamics Society” in order to show our support.

All in all, it was a FANTASTIC couple of days and I’m really looking forward to the next one!

Can you future proof your Digital Transformation project?

Based on a recent article by my TDG colleague Chris Huntingford, I started wondering about the over-referenced term of Digital Transformation. Why do we need to hear that term again? Well the reason for it is related to Chris’ article on future-proofing your customisations (and platform) and to the Microsoft Dynamics 365 update cycle.

Think of a typical Dynamics 365 transformation project: they span several years and are vastly complex in nature. So, when you undertake these projects, how do you accommodate the 6-monthly release cycle from Microsoft and the architecting of a future-proof solution? The answer is usually that the solution is architected in a future proof manner but the update cycles are ignored because Microsoft give you a year’s leeway before mandating specific updates.

A multi-year programme of work may be conducted over 3-4 years where the core Dynamics 365 product changes significantly in that time where a situation could be realised where as soon as the customer goes live, they need to immediately start thinking about upgrades and patches rather than bedding down the solution and getting the maximum value out of it.

Is it possible to avoid this? Typically, yes, but it requires a bit of forward thinking on both the Dynamics 365 partner’s and customer’s side. Things like the following should be considered:

  • Realising early time to value by deploying smaller functional pieces rather than entire solutions in one go – no doubt this will get the agile vs waterfall people arguing but simply put, the Microsoft update cycle makes waterfall type projects very difficult to complete effectively.
  • Leveraging accelerators/ISVs and preconfigured solutions wherever possible – most Dynamics partners have several of these that are typically stemmed out of industry best practice. Make sure to evaluate them though and check that they are aligned to the Microsoft roadmap, licensing guide, and future-proofed as Chris suggests.
  • Scope in project time for platform updates and new functionality reviews – this is usually a function for some sort of Design Authority, but too often they get stuck looking at current requests without considering what’s coming in the future. Fundamental platform upgrades should also not come as a surprise and should be catered for well in advance. Microsoft have several early release programs available for this as well as their publicly visible roadmap site.
  • Encourage, enable, and promote consultants and customers to challenge the old ways of thinking in favour of newly available alternatives – this point should ensure that the best possible considerations are achieved and is not meant to be a forum for constant debate with no action. Tough I know, but somewhere a decision needs to be made for better or worse, but at least there will have been some considered conversation around the decision before it is just blindly made because that’s the way things have always been done in the past.

Will the above list provide the illusive silver bullet for ensuring that Digital Transformation projects are always successful and utilising the latest technologies and ways of doing things? The answer I am afraid is no. What it should enable is projects that are more flexible and more capable of realising greater value, earlier, for the customer.

Don’t’ forget that there are also technical aspects around the same topics which are just as important but more relevant for the Dynamics 365 partners and consultants delivering these projects. There is no easy way to go through all of the technical aspects that could and probably would change through the lifetime of a Digital Transformation project, I suggest you have a look at and be aware of the following (if you aren’t already):

  • Flow – this new workflow engine that is sperate from the core Dynamics 365 workflow engine provides a huge amount of power and prebuilt connectors that enable several integrations and extended process to be designed and implemented very rapidly. The per transactions model costing should also ensure that you get maximum value for your spend. Don’t gloss over the fact that PowerApps can use Flow and these PowerApps can be embedded in Power BI dashboards which in turn can be embedded in Dynamics 365 Customer Engagement instance. Why would you care? Well you can create one flow that can be triggered either from Dynamics or from Power BI giving a holistic solution that is easily maintainable and cost effective.
  • The Azure platform all up – this is one of the most crown jewels of the Microsoft empire. Huge amounts of capabilities and all easily available to leverage from your Dynamics 365 Customer Engagement instance. Have a look at these in particularly:
  • Teams – collaboration tools continue to evolve and Microsoft Teams is the latest version that is definitely worth checking out
  • Visual Studio Team Services (VSTS) – one of the core components of most Dynamics 365 projects. Whether it’s a code repository, an Agile backlog facilitator or DevOps facilitator, VSTS is definitely worth investing some time in seeing how you can leverage it.
  • Office 365 E5 – lots of productivity in this one, but check out some of the amazing security stuff that Microsoft also include for you.

Future Proofing your Dynamics 365 implementation and Configuration (Part 1 – The licensing question)

Microsoft Dynamics 365 Customer Engagement is an incredibly versatile platform that can be configured with relative ease. This is both a good and bad thing because often solutions that are implemented descend into configuration anarchy. Yes, it sounds as bad and it is. Imagine a deployment with hundreds of entities, attributes and solutions that are irrelevant or are there for no particular reason. On the other hand, what about loads of old ISV solutions that aren’t being used anymore. As fans of Dynamics 365, I can guarantee that most of us have seen this.

So how does one future proof their implementation? I appreciate the fact that there will be loads of opinions on this matter and there are hundreds of things one could do to manage this process from a business and technical point of view.

One of the big questions during any implementation is whether to utilise what is available out the box or whether to create custom entities and attributes. This is generally based on the scenario and the customer’s requirements. Personally, I prefer to use what is already available as much as possible as there is a load of functionality that you may need to rebuild using workflows and plugins if you go the custom route. IN ADDITION, when Microsoft release updates / upgrades, I know the functionality in my solution will be upgraded correctly and is in line with Microsoft projected functional roadmap. That isn’t to say that Microsoft don’t deprecate functionality. They definitely do!

Now, here is the thing: The licensing model limits us or controls what you can and can’t do as far as the addition of custom entities relevant to the existing functionality. YOU MAY NOT REPLICATE THE FUNCTIONALITY OF STANDARD ENTITIES IN DYNAMICS 365 WITH CUSTOM ENTITIES. If the standard entity is replicated then the user must be licensed appropriately for that standard functionality. This is available in the Licensing and Pricing guide on page 17. THEREFORE, in short… you can create your own “Case” entity, sure… However, you will then need to purchase the Dynamics 365 for Customer Services license for users that will be accessing this entity. This is because it replicates the current and standard case management functionality.

This makes absolute sense. Information on the enterprise-licensing model can be found here in appendix B. This is one of the first documents I generally consult during solution design. Microsoft suggest that configurators utilise what’s available within the standard Dynamics 365 platform so that when core functionality is added to the platform on top of the standard entity set or functional area (marketing, Sales, Service, PSA & Field Service), customers have access to this without having to add additional configuration. As an example, when the entitlements functionality was added to the services module, it linked to the standard case entity and functionality as a standard. Companies that had built their own case functionality had to either move to the standard case management functionality or configure a link to the entitlements.

A second example that I have come across before, which required configuration and was considered future proof was where a customer had several case types, each of which required a large amount of data capture. Instead of adding hundreds of fields to the case form, the case was simply used as the header record and a set of custom entities was created for each of the categories. The core case functionality, such as routing and email-to-case was used and the configuration flexibility of the platform was used to apply a huge level of personalisation from an incident management point of view.

In summary, part of future proofing your configuration is to bear in mind what Microsoft offer as out the box functionality, as well as what the licensing model allows you to do and not to do. Often, this involves an honest and transparent conversation with your customer, which will enable you the ability to educate them in what, is required to implement a robust, performant solution that is as future proof as you can make it. In the next post I will be talking about the Dynamics 365 roadmap and how you can prepare your solution for what’s coming.

D365 Custom Control Framework (CCF)

Microsoft Dynamics 365 Customer Engagement contains some impressive hidden gems in some really cool functionality that really promote a more immersive and interactive user experience. One such gem is the Custom Control Framework or CCF, which enables users the ability to place interactive controls over attributes. This video shows off some of the standard Custom Controls and how to add these to the new Unified User Interface (UUI) forms. It is believed that Microsoft will enable us the ability to create our own custom controls in future releases.

I’d also like to give a shout out to Amandip Dhillon for being a part of the testing of these controls! Awesome job 🙂