Hosk’s Top Dynamics 365 Articles of the week – 16th June


But man is not made for defeat. A man can be destroyed but not defeated. Ernest Hemingway


Want more #HoskWisdom then follow #HoskWisdom, #HoskCodeWisdom or follow @BenHosk 

  • The pressure to make things complex will be great but you must keep it as simple as possible #HoskWisdom
  • Don’t waste words, make every one count #HoskWisdom
  • If you can deliver the same message with fewer words then do so #HoskWisdom
  • if you tried your hardest you have nothing to regret #HoskWisdom
  • Constantly talking about doing something is a barrier to doing something #HoskWisdom
  • Speak less, listen more and think often #HoskWisdom
  • If something has no value, stop measuring it #HoskWisdom
  • Contributing to a successful team is better than achieving personal goals #HoskWisdom
  • People admire Dad dancing because it is a state of mind only achieved by those who are not constrained by popular opinion #HoskWisdom
  • Leaders don’t try to win the race they try to get everyone to finish #HoskWisdom
  • Don’t over think and under act #HoskWisdom
  • Thinking should not stop action #HoskWisdom
  • Respect silence, its thinking time #HoskWisdom
  • Don’t waste your energy fighting the inevitable, instead choose to be prepared #HoskWisdom
  • Bosses should tell employees where they can do better but most don’t #HoskWisdom
  • I like to start the day with a steaming hot cup of Microsoft Dynamics 365 #HoskWisdom
  • Win when you can, lose if you must but always enjoy it #HoskWisdom
  • There are no shortcuts in delivering successful projects #HoskWisdom
  • Be relentless about improving #HoskWisdom
  • You won’t win if you are afraid of losing #HoskWisdom
  • Rejection makes you serious about a goal or helps you decide it’s not important #HoskWisdom
  • When a pupil isn’t doing well the reason is often due to bad teaching #HoskWisdom
  • You cannot go back to what you were, you can only move forward to what you will be #HoskWisdom
  • When conflict becomes personal, it becomes a problem #HoskWisdom
  • For the people who achieve, tomorrow is too late #HoskWisdom
  • If you lose because of a lack of preparation then you beat yourself #HoskWisdom
  • No one will follow a leader who isn’t good at his job #HoskWisdom
  • When you let sleeping dogs lie, be prepared to be woken by those dogs in the future #HoskWisdom

Articles of the week


Generic framework to delete all child records when a parent record is deleted in Dynamics 365 using Microsoft Flows

Best of the rest

Restarting Record Creation and Update Rules in Dynamics 365

Dynamics 365 UK data centres

 Insights from Extreme 365

Simple, No fuss, Dynamics 365 Deployment Task Runner

How to register an early bound library within Microsoft Dynamics CRM Online Sandbox Isolation Mode Part 1

word document templates for complex data retrieval

you can optimize queries in Dynamics 365 online! it doesn’t say what it does but it’s probably magic

Calling Azure Functions (GenericWebHook-Csharp) from CRM

Tip #863: Learn TypeScript

Facial Recognition using Dynamics 365, PowerApps and FaceAPI

Best of the rest

Recurring Jobs Strategies for Dynamics CRM/365

The New Social Selling Assistant in Dynamics 365

Dynamics 365 Partner Community: Using PowerApps and Microsoft Flow with Dynamics 365

CafeX, Live Assist – My Initial Install (With USD)


Record Specific Power BI Reports in Dynamics 365 (only one click away)

Managing Dynamics 365 Online Encryption Key


Shutting down CodePlex

popular dev articles this week

Here’s What You Can Learn In 10 Minutes That Will Be Useful For The Rest Of Your Programming Career

Writing My First Compiler

Continuous everything in DevOps…what is the difference between CI, CD, CD…?

The Agile Mindset 

Tips To Be a Successful Scrum Master

awesome information for Scrum masters

great article on why you should do code reviews

Why is the ‘if’ statement considered evil?


I woke up at 3 a.m. to spend 12 hours learning what it takes to be a leader from former Navy SEALs

How I Became More Comfortable With Public Speaking

9 Books Which Made Me an Adult (And 1 You Should Read Anyway)

16 Memorable Books I read in 2016

Flow Doesn’t Lead to Mastery

Why Are Maker Schedules So Rare?

Darwin was a slacker

What Your Moonshot Can Learn from the Apollo Program

How to get employees to work faster

Man’s tweet about pie charts being useless causes hilarious chaos

Star Wars

Tina Fey improve tips

The Hosk – currently reading

Hosk’s CRM Developer Articles

A collection of my favorite CRM Developer articles I have written

CRM 2016 – Tips on passing the MB2-712 customization and config exam

All the CRM 2016 content to help you pass the exam

picture from here


Dynamics 365 – How to install the Microsoft Dynamics 365 Developer Toolkit


I blogged about uninstalling the Microsoft Dynamics 365 Developer Toolkit and released I hadn’t explained how to install the Microsoft Dynamics 365 Developer Toolkit

If you want to learn what the developer toolkit is and why it’s useful, read this page

You can find manually download the toolkit here

Microsoft Dynamics 365 Developer Toolkit marketplace

The quickest way to install the Microsoft Dynamics 365 Developer Toolkit is straight from Visual Studio.

Go to Tools –> Extensions and updates

search for Microsoft Dynamics 365 Developer toolkit




You will then be able to create Dynamics 365 projects and connect to Dynamics 365 projects.

I would recommend getting the latest version of the Dynamics 365 SDK and regularly update the Developer toolkit because it has a few bugs but they are fixing them regularly



Dynamics 365 – Alternate keys can stop duplicates

Without reflection, we go blindly on our way, creating more unintended consequences, and failing to achieve anything useful. Margaret J. Wheatley

Alternative keys allow you to lookup records without having the guid of the record, they give a method to stop users adding duplicates, speed up Dynamics 365 searching and are useful for integrating Dynamics 365 with external services/systems.

Key facts

  • Alternate keys can stop duplicates
  • Alternate keys can increase record lookup speed
  • Alternative keys allow you to lookup records without a guid but with information which makes an alternate key.  E.g. lookup a person using surname and email.
  • Work well with upsert, allowing you to find a record and either update or create
  • Can sometimes cause problems when trying to remove them solutions
  • Added in Dynamics CRM 2016 and available in Dynamics 365 online and on premise

What is an alternate key?

An alternate key can be added to an entity and can be made up of one or more fields on the entity.  Alternate keys use database indexes, this has the benefit of making records unique by stopping duplicates and increasing performance when retrieving records with an alternate key.

Alternate key facts

  • Each entity can have 5 alternate keys
  • You can only use strings, decimals and integers (whole number) to create an alternate key
  • There is a maximum key size to be aware of
  • After creating an alternate key, an async job will create the index and the status will be pending, In Progress, Active and failed.  If you have a lot of records this could take a long time.
  • You can retrieve an alternate key using RetrieveEntityKeyRequest, you delete an alternate key using DeleteEntityKeyRequest.

To learn more about alternate key read the posts

Stopping Duplicates

Alternate keys is they give a way to stop users adding duplicate records.  When you add an alternate key and a user tries to add a duplicate, Dynamics 365 will stop the user from adding the record and show the warning below.







This is better than out of the box duplicate stopping functionality which only warns the user but lets them add a duplicate.  The alternative is to stop duplicates via a plugin, which takes more effort and has a maintenance overhead.


It’s difficult to remove alternate keys from managed solutions, I have had problems where Dynamics 365 didn’t want to remove the alternate key.

The limitation of using numbers and strings can leave you frustrated when you want to use a date field.  You can work aaround this by converting a date field to a string but it‘s messy.

picture from here

How Machine learning will change Dynamics 365

Machine learning is working smarter, using data to interact with customers in different ways.  Machine learning analyses your data to help your business to respond using experience and recommendations.

I was reading my colleagues post on Machine learning CRM 2016 Prices + Machine Learning = Profits & Retention and this article – why salespeople need to develop machine intelligence

Companies are focused on capturing new business they often forget to look at existing customers, how they can improve the relationship and improve selling.

You already have a great relationship with an existing customer so a lot of the hard work is done, Machine learning rise prices or offer other products .

When ever I think of Machine learning I think of Amazon’s recommendations, you brought this book

An example of Machine learning is Amazon’s recommendations, you I brought 

it recommended
The recommendation was great, I appreciate they are trying to sell me a product but I often the suggested books are usually tempting (I can’t buy any more books I have a whole book shelf of books to read)

What is Machine learning?

I hear the term, I have read it’s been added to Dynamics 365 but what is Machine learning
Wikipedia – Machine Learning
Machine learning is the subfield of computer science that gives computers the ability to learn without being explicitly programmed.  Evolved from the study of pattern recognition and computational learning theory in artificial intelligence, machine learning explores the study and construction of algorithms that can learn from and make predictions on data – such algorithms overcome following strictly static program instructions by making data driven predictions or decisions, through building a model from sample inputs. Machine learning is employed in a range of computing tasks where designing and programming explicit algorithms is infeasible; example applications include spam filtering, detection of network intruders or malicious insiders working towards a data breach, optical character recognition (OCR), search engines and computer vision.

The description is why it can be difficult for people to understand what machine learning is and how it will be used in the future.

This blog post describes machine learning – machine learning theory an introductory primer

There are two main types of machine learning

  • Supervised machine learning: The program is “trained” on a pre-defined set of “training examples”, which then facilitate its ability to reach an accurate conclusion when given new data.
  • Unsupervised machine learning: The program is given a bunch of data and must find patterns and relationships therein.

These blogs show examples of Machine learning

Examples of machine learning

  • Sentiment on tweets
  • Adds on Amazon/Facebook
  • Self driving cars
  • Imaging tagging in Facebook
  • Text analysis in emails

The examples help to understand what machine learning does, it can crunch large amounts of data looking for patterns you have trained it identify.

Machine Learning and Microsoft Dynamics CRM

Here are some examples of Machine learning and Dynamics 365

How will machine learning change CRM

The most effective environment for machine learning is to analyse activities which happen thousands of time.

Machine learning can analyse the data and learn, the more data the better.  The rules apply for Machine learning


  • Good data in, good data out
  • with machine learning think
  • lots of good data in, useful analyse out.

Amazon recommendations learns from the buying patterns of thousands/millions of customers, the crunching of lots of data enables Amazon to make useful recommendations and not annoy customers with annoying recommendations.

benefits of Machine learning

Recurring activities and data do we get in Dynamics 365

Where will the opportunities for machine learning occur in Dynamics 365

Product recommendations – Lead generation

Customers who buy this product are usually interested in this other product.

One powerful selling points of Microsoft Dynamics 365is offering the potential for customers to use their existing data to increase sales and increase selling effectiveness. If a company could focus on quality leads, focusing on selling products to customers who are interested in those products, it can sell more.

This would allow sales teams to time effectively, selling to existing customers.

Machine learning could automate suggests on what customers would want specific products.  Machine learning gives this knowledge to all the sales people not just experienced sale people

Customer service sentiment

Social engagement has machine learning in its core functionality.  You can train the social engagement to recognise sentiment in tweets and blog posts.  You can create cases based on tweets with negative sentimen

Lead Scoring + Marketing

Machine learning would seem to be a great choice to help evaluate success marketing campaigns, marketing distributions


Machine learning can do customer segmentation, sorting and organising customers.  This could lead to targeted interaction with customers, working smarter not harder.

This article suggests three areas around products

new customers – machine learning can help you find the right product for the right customer. Machine learning to analysis who you sell to and make recommendations on the target audience.

Retain customers – Customer service

Respond quicker to tweets and emails by using Machine learning to identify problems with sentiment in communication (SMS, tweets, Facebook, email)

Sell to existing customers

Machine learning can help with Cross sell, upsell and targeting new products to existing customers.  Think of Amazon recommending items based on your purchase history.  This could be used in Microsoft Dynamics 365.

Machine learning plus automation = Awesome

It’s a great moment when you are selling/demoing Microsoft Dynamics CRM to a potential client and you explain how workflows work.
Workflows enable business to automate some of the manual steps in a process, giving the business the double benefit of
  • Not forgetting to do part of the process
  • users not needed to do part of the process

The potential of workflows to save time and add value is obvious, the difficult part is mapping out the processes.  Processes having three paths

Don’t just test the happy path

Workflows need inputs to trigger them, this can  change of status, an email coming in.

Machine learning is an informed assistant, it analyses repetitive actions and uncover patterns and successful strategies.  This learning is what  humans called experience e.g. learning what not to do and what to do.  We can tell machine what’s good, what’s not and then it goes through the data and applies the criteria we have given it.

This could simulate an experienced person going through the data and advising what they think we should do.  The benefit with machine learning is it can sift through data and advise what records to focus on.

The future of Dynamics 365 and machine learning

Machine learning in Dynamics 365 will need developers to understand what machine learning is and how it works.  Most people have heard of machine learning but few people understand how to use it with Dynamics 365 or have experience of implementing it.

Once the Microsoft Dynamics 365 industry gets used to machine learning, gets practical and theoretical knowledge, Solution architects will become adept at seeing where machine learning can be used.

an opportunity for businesses to change and adapt their processes to use machine learning.

It will not be a smooth a ride, taking time for Microsoft Dynamics 365 professionals to understand machine learning and sell it to customers.  Selling the business benefits of machine learning is difficult because customers can’t see what they will be getting.  It‘s not a dashboard, a portal or something visible.

Marchine learning is a long term investment with potentially dramatic benefits

picture from here

Hosk’s Top Dynamics 365 Articles of the week – 31st March


You can’t win together if you don’t work together – Nick Saban

Development experience and skills are created through time spent developing #HoskCodeWisdom
You have to be relentless in the pursuit of your goal, be prepared of to work through adversity and hard times #HoskWisdom

Articles of the week


Article of the week

Best of the rest


Previous Hosk Top Articles

Hosk’s Top Dynamics 365 Articles of the week – 22nd February

The Hosk – currently reading

The Hosk – just finished reading

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

CRM 2016 – Tips on passing the MB2-712 customization and config exam

All the CRM 2016 content to help you pass the exam

picture from here

Dynamics 365 certifications study links

Live as if you were to die tomorrow. Learn as if you were to live forever. Mahatma Gandhi

If you think you know enough to stop learning, you have more to learn than you think #HoskWisdom

I believe Dynamics 365 developers should get one certification each year, they don’t have to be Dynamics 365 certifications (scrum/.Net/Azure/Architecture) but if Dynamics 365 is your main tool you should have in-depth knowledge.

Why get certified?

I take the customisation and configuration certification for every release of Microsoft Dynamics CRM/365, this helps me keep up with the latest features added into Microsoft Dynamics 365 and refresh my knowledge on the other features I don’t use much.

To help me learn the information I create study notes which I share

CRM 2016Tips on passing the MB2-712 customization and config exam

The benefit of the certification isn’t the certification itself but the journey in studying for the certification.  Certified have a broader and more in-depth knowledge of the out of the box functionality.

If you can use out of the box functionality, then you should use it #HoskWisdom

The more out of the box functionality you can use, the less code you have to maintain and integrate in a project.

You should use Dynamics 365 out of the box functionality because in theory it has been tested by Microsoft :) #HoskCodeWisdom

Dynamics 365 developers often complain Microsoft uses customer as beta testers and sometimes functionality is rushed out and not fully finished.  Microsoft will  fix these problems and bugs in future releases, leaving you time to develop something else.

If you are still unconvinced read this

What are the benefits of CRM certification

Make it easier

Developers believe they will pass the Dynamics 365 certifications easily because they use Dynamics 365 every day.  Developers rarely use all the available features and not the new features (it takes time to work out their limitations and how to use them, not forgetting the first version doesn’t always work super well)

When you think you are an expert in something, you stop yourself learning more about it #HoskWisdom


Microsoft Dynamics 365 is evolving and it‘s best to keep up with it, studying for certifications set yourself a deadline to learn and test yourself.

I created pages on our internal Dynamics 365 team wiki with links to information to help study for Dynamics 365 certifications (online deployment and customisation).  This allows people to get started and share their notes/information on the certifications.

Dynamics Learning Portal

The videos for the certifications on the Microsoft Dynamics Learning portal give you a good introduction to all the criteria of the certifications.  If you combine these videos with making notes and trying out the functionality in Dynamics 365 then you have enough information to pass the certifications.

Neil Parkhurst has made a good revision guide but make sure you actively use the information by making your own notes and using Dynamics 365.  The goal of certifications isn’t just to get certified it is to learn about Dynamics 365.

Dynamics 365 – MB2-715 – Microsoft Dynamics 365 customer engagement Online Deployment

MB2-716 – Microsoft Dynamics 365 Customization and Configuration

Picture from here

Extreme 365 – Hosk notes on ClickDimension advanced partner training

You cannot be too prepared #HoskWisdom

Planning is bringing the future into the present so that you can do something about it now. Alan Lakein

The first day at Extreme 365 were whole day sessions,I attended ClickDimensions advanced partner training and below are my notes and thoughts on the training.

  • Roadmap for ClickDimensions
  • User questions
  • Adobe Marketing
  • Performance tips/Discussion on Enterprise deployments
  • Freemaker (open source scripting language used for making email templates)
  • Power user tips

It was great to meet Matt Wittemann who is an 11 time CRM MVP and I remember from the good old Dynamics CRM 2011 days and reading Matt’s book the Microsoft Dynamics CRM 2011 Administration Bible

To see the pictures and slides from the training you can see them Extreme 365 – 2017 Day 1 in pictures.

Matt talked about Adobe Cloud Marketing, which I covered in the post Dynamics 365 – Is Adobe Marketing the end of ClickDimensions?

Goals of the session

The session  with highlighting the goals of the session

Audience goals

  • Dev to Prod
  • Adobe and ClickDimension

ClickDimension goals

  • Scaling for Enterprise
  • Freemaker
  • Extending Dynamics 365 and ClickDimensions

Why should we care about Enterprise projects and how do we scale Dynamics 365?

Dynamics 365 and Enterprise software, needs good maintenance and performance.   Microsoft wants enterprise Dynamics 365 projects and is moving towards delivering this with the purchase of Adobe Marketing, Microsoft needs to improve to help partners deliver enterprise projects.

Great performance of enterprise Dynamics 365 projects does not come out of the box #HoskCodeWisdom

On an enterprise Dynamics 365 project you should focus on

  • Storage
  • Performance
    • Optimize
    • Database
    • performance degrades over time

Microsoft Dynamics 365 performance can slow down over time if you don’t do regular maintenance and control the number of records created and clean up the data regularly.

ClickDimensions can create a lot of data if not setup correctly, you must plan and decide what data you mean.  Start with business requirements and work out what functionality/data delivers those.

Dynamics 365 will slow down over time if you don’t maintain performance

  • Things which can catch you out if you don’t plan
  • Unexpected storage costs (ClickDimensions can create lots of data)
  • Dynamics 365 can slow down over time
  • Customers can feel ClickDimensions is slow to send emails and update stats

How do you keep Dynamics 365 performant?

Matt talked about a good approach to projects and likened it to regularly servicing your car to ensure good performance (and it not breaking)

  • Regular Dynamics 365 maintenance (Monthly/Quarterly)
  • Regular performance optimization
  • Database optimisation setup at the start of a project
  • Dynamics 365 database optimisation is different from normal SQL server optimisation

Dynamics 365 is not something you can deploy and forget, it must be maintained and optimized to ensure great performance.

With an Dynamics On Premise you have lots of options to change and tweak.

  • SQL server maintance setup
  • SQL server table indexes
  • WCF compression (it’s faster at sending data but you have to compress and uncompress)
  • bandwidth/Network speed
  • MaxDop

The points above can have a dramatic effect on performance, potential big wins.  Developers investigate these settings when performance is slow, I looked at MaxDop – What is max degree of parallelism option setting in SQL Server?

Dynamics 365 online offers no ways to improve performance and no real way of investigating the cause of poor performance.  For Dynamics 365 Online you can only delete unwanted records and make sure you don’t bloat the POA table with the security roles/and sharing lots of records.

Know what marketing data you need?

The biggest improvement in performance is knowing what data you need, why you need it? and what you are going to do with the data? identify which business requirement it helps to deliver.

Consider your business requirements and business goals, what marketing data do you need to help you analyse your marketing.

You can never plan too much and you can’t be too prepared, these goes triple for any Dynamics 365 project

Data out of Dynamics 365

Set up bulk deletes, work out an archive strategy for data and decide what data can be moved to an Azure SQL database?

Customisations and data will move out of Dynamics 365 database more and more.

An example is FieldService optimizing engine held in Azure.  ClickDimensions are creating an enterprise statistics warehouse hosted in Azure.  The enterprise statistics warehouse will analyse the email opens, clicks, crunching the data on Azure and sending it back to Dynamics 365.

Later information will be hosted in Azure and displayed in Dynamics 365 by ClickDimensions, an API is coming to allow you to query and display the data in Dynamics 365 but without hosted in Dynamics 365 (saving you data costs).

This architecture style will become common because Dynamics 365 is a single service (a bottleneck) which cannot be scaled up.  If you move functionality and data outside of Dynamics 365 it can scale and be accessed in multiple services.

If you remove data and customisations out of Dynamics 365, you can scale performance #HoskCodeWisdom

The more workload you can remove from Dynamics 365 the better it will perform – What are the limitations of Microsoft Dynamics CRM Online and how do you work with them?

ClickDimensions can help

Sending and tracking an email can generate 7 records but if you don’t need some of these events (time an email was read) , ClickDimensions can turn off individual events, reducing data by up to 25 percent.

This is a global setting and only ClickDimensions can turn this off, so you need to contact them to request.

Moving ClickDimensions customisations

Capgemini raised a question on how to move customisations between environments.  Capgemini work on enterprise projects with Automated deployments and continuous integration.

ClickDimensions is integration with Dynamics 365 data but much of the new functionality such as Campaign automation and the Email template is hosted by ClickDimensions on their servers.

There is no way to move customisations between environments, the only way is too recreate the marketing campaigns, email templates in a development environment and in production environment.  This means testing twice and testing on production!  Recreating customisations is prone to errors.

ClickDimensions is developing a tool to help export and import the ClickDimensions customisations but this is manual.  It is better than no process (like now) but Capgemini Dynamics 365 team automate everything we can, so this is frustrating and its difficult to use ClickDimensions on enterprise projects.


It was a great session, it included a section on Freemarker and how to add if/else and default values in your email templates.  There are lots of content on the ClickDimension blog on this subject.

A knowledgeable presenter will always teach you something, it makes you think about your approach to Dynamics 365 projects and it was great to meet Matt in person




picture from here