Are you watching Dynamics 365 Fortnight Fridays?

No – I’m not referring to the current craze – Fortnite by Epic Games – I’m referring to Microsoft Dynamics 365 Fortnight Fridays.

A very interesting Microsoft webinar takes place every 2 weeks is called Dynamics 365 Fortnight Fridays. The webinar is presented by members of the Microsoft Dynamics 365 Product Group and it covers all the latest and greatest about Dynamics 365 features and capabilities. In my humble opinion, I think it is a must watch webinar for 1 hour on a Friday every fortnight.

Here is a link to register for this free online event:

Welcome to Dynamics Fortnight Fridays

 

Dynamics 365 Testing Frameworks – open source GitHub Microsoft Dynamics CRM Testing Tools

I have been asked by several Dynamics 365 consultants and customers about which test frameworks or Dynamics 365 Testing tools that are available. Hence, I thought I create this post to list all Microsoft Dynamics CRM Customer Engagement testing tools I trust. I will continue to update this post with more tools and if you have a tool that I missed which is worth checking, please let me know and I’ll try it out then add it to the list if I found it useful to the Power Platform community.

First on my list is EasyRepro by Microsoft. EasyRepro is an automated UI testing API for Dynamics 365. This is a Dynamics 365 Testing library that aims to help teams of consultants and developers with UI Testing of Dynamics 365 solutions. EasyRepor API’s provide an easy to use set of commands that make setting up UI testing quick and easy. The functionality Microsoft provided covers core CRM commands that end users would perform on a typical workday and which can be extended to cover more functionality.

Here is where you can find Microsoft EasyRepro on GitHub:

https://github.com/Microsoft/EasyRepro

Next on the list is Fake XRM easy by my friend and fellow Microsoft MVP Jordi Montana. Fake XRM easy provides developers and consultants with a framework to run tests on an in-Memory context and allows you to do mocks or fakes for testing you Dynamics 365 components.

Here is where you can find FakeXRM easy on GitHub:

https://github.com/jordimontana82/fake-xrm-easy

There is also Wael Hamze’s xRM CI Framework which provides tools to automate the build and deployment of Dynamics 365 Customer Engagement CRM Solution. Using the framework to implement a fully automated DevOps pipeline will allow developers to deploy more frequently with added consistency and quality. It is also important here to mention that continuous deployment and a fully automated DevOps processes, provides a robust approach for development, testing and deployment and will deliver tangible savings to projects and programmes via efficiencies in development, testing and deployment

Here is where you can find xRM CI Framework on GitHub:

https://github.com/WaelHamze/xrm-ci-framework

Webhooks to Dynamics 365 Serverless Integration using Azure Functions

Recently I needed to create an integration between a cloud platform and Dynamics 365 Customer Engagement Cloud. This Cloud Application (Unbounce) allows you to register Webhooks which you can use to send data across from that platform to any other web application.

Please note that this article already assumes that the reader understands the basics of Webhooks and Azure Functions.

Webhooks sends data when a server event occurs typically to a web application. They are lightweight HTTP pattern with a publish/subscribe model which sends POST requests with JSON payload. This means Webhook POST requests can be consumed by any programming language or web application anywhere.

So when our 3rd party Cloud application (for example Unbounce) sends out the webhook POST message, how can Dynamics 365 receive this POST message? The answer is: Azure Functions.

It’s not the first time that Microsoft Azure Serverless Inegration capabilities, namely Azure Function Apps, come to the rescue. Azure Functions are becoming more and more the default preferred option for many Dynamics 365 related integrations.

So Unbounce sends out the webhook POST message to the Azure Function which in turn sends this data to Dynamics 365. To do this, you need to create an Azure Function that is triggered by Webhook and in your function, you can write the code that sends Data to Dynamics 365. Below are 6 steps that show case the process for adding an Azure Function App triggered by a Webhook POST call. Please comment below if you require the code in the Azure funciton (It’s standard Dynamcis 365 call to create a field so nothing fancy).

1) First, create your Azure Function App:

2) Make sure that the function is triggered by Webhook + API and using C#:

3) Then once created, create a Function within your Function app

4) Following that, we need to reference Dynamics 365 CRM SDK Core Assembly package. To do this, add a file called project.json as below:

5) then input your code inside the run.cx function which will receive JSON POST message and writes it to Dynamics 365:

6) then finally, run a test on your Azure Function App to see a record created in Dynamics 365 (a Lead in our case):

Please note that in step 5 above, you will definitely need to write code to receive the JSON payload that will come in the POST request message. So in our example, if this is coming from Unbounce, we have parse the Unbounce JSON data sent in the POST message so we can then use this data to create our lead (or contact) in Dynamics 365.

Please comment below if you require this code and I’ll be happy to share it.

Note: I’m delivering this session at a number of Dynamics 365 Saturday events starting tomorrow in London (7th July 2018). Hence, I’ll be updating it regularly (and apologies for rushing the post!)

Your feedback via comments below is invaluable and will encourage me to update it and write more about this subject.

Free GDPR Add-on Solution for Microsoft Dynamics 365 CRM Customer Engagement

Today 25th May 2018 is the day GDPR goes live! To “celeberate” this important day, and as a contribution from me to the Microsoft Dynamics 365 community, I’m offering my Dynamics 365 GDPR Add-on Solution free to the community both Customers and Partners. You can find a link to download the solution for free at the end of this post.

The solution delivers the following functionality and Data Subject requests:

  1. Consent Management
  2. The Right to be Forgotten (anonymising contacts information)
  3. Personal Identifiable Information (PII) Management

The solution includes the following components:

  1. “Consent” Custom entity with relationship to Contact entity
  2. New form for Contact entity called GDPR and few additional fields on Contact
  3. “Configuration Settings” entity for capturing config information
  4. A Plugin Assembley for the Anonmisation function
  5. A Workflow for creating tasks to renew Consent at 30, 7 and 0 days from consent end date.

For the solution to work properly, once you import the solution, you will need to do the following:

  1. Create a Queue called “GDPR” so that tasks for consent renewal created by the workflow can be added to this queue.
  2. Create a Configuration Setting record called “GDPR Contact” as the screenshot below. You need to enter names of fields you want to be anonymised separate by semicolons.

The solution takes the approach of anonymising the contact information without actually deleting the contact record. This means everything stays the same, attributed to the same contact record but the record itself will no longer hold any personal identifable information (PII) of the customer.

Here are screenshots on how the “Anonymise” button works:

GDPR Contact Form:

Click on “Anonymise” button:

Anonymised Contact record:

I hope this solution helps many in the Dynamics 365 community. If you find this solution helpful, please review and/or vote on this solution. I’ll be happy to support the solution where I can (and based on its popularity).

N.B. The solution is provided as is with no warranty. It does not guarantee GDPR compliance and your organisation will still need to ensure they are compliant.

Dynamics 365 v9.0.2 Spring 2018 Release prcing and licensing guides and information sheets

With the new release of Dynamics 365 v9.0.2 Spring 2018, I thought I’ll share links to all the new licensing guides and information sheets that are available for Dynamics 365 Microsoft Partners with access to Microsoft Dynamics Partner source, they can get the same information here:

and here is what I believe a publicly available version of the Dynamics 365 Spring 2018 (v9.0.2) licensing guide:

https://mbs.microsoft.com/Files/public/365/Dynamics365LicensingGuide.pdf

Finally, you can find all detailed documents, guides and information sheets/videos on Partner Source here:

Microsoft Dynamics 365 Licensing Guide – Spring launch updates

Microsoft Dynamics 365 Existing Customer Transition Guide​​

Microsoft Dynamics 365 Licensing Guide – Addendum for Case Management​​

Microsoft Dynamics 365 Business edition Licensing Guide​​

Microsoft Dynamics 365 Pricing and Licensing Videos​

Microsoft Dynamics 365 Licensing and Pricing Deck​ – Spring launch updates

Microsoft Dynamics 365 Pricing and Licensing FAQ​ – Spring launch updates

MICROSOFT DYNAMICS 365 ON-PREMISES DOCUMENTATION

​​​​Microsoft Dynamics 365 On-Premises Licensing Guide

​Microsoft Dynamics Field Service On-Premises Planning Guide​

Microsoft Dynamics 365 On-Premises FAQ

Hope this helps!

Dynamics 365 Saturday in Amsterdam February 2018 – Event Summary and GDPR Slides

We have recently had a fantastic two days as part of our Dynamics 365 Saturday event and Hackathon. It started with a Hackathon on Friday afternoon all the way until the end of the night then followed by a Dynamics 365 Saturday full day event. We had some amazing content including opening keynote by Ben Vollmer, Microsoft Dynamics 365 Field Service Global Lead. We also had an excellent closing keynote by Steven Kaplan, LinkedIn Group Manager for Sales Navigator and an ex-Microsoft Dynamics exec himself.

I had the pleasure to interview Steve as part of the Question and Answer section of the closing keynote. You can read more about the event on this blog post:

https://www.linkedin.com/feed/update/urn:li:activity:6365472645869297664

You can also see my live LinkedIn video from the closing key note here:

https://www.linkedin.com/feed/update/urn:li:activity:6365582720701120513

We have also had some fantastic feedback from various attendees including this potential Dynamics 365 Customer:

I have also delivered a sesson on my “favourite” subject: GDPR. The session was titled: Business and Technical Design considerations for a GDPR compliant Dynamics 365 solution.

I’ve been asked many times about the session slides and I have just got round to upload them. You can find them on http://crm.boutique at the following location:

http://crm.boutique/microsoft-dynamics-gdpr-dynamics-365-saturday-amsterdam-feb-2018

Enjoy! I hope you find the slides useful.

Dynamics 365 v9 iPhone Mobile App access to Device Microphone not available

I have a Dynamics 365 Solution built on v9 (Cloud) and it is built on the new Unified Client Interface (UCI – also known as Unified Interface).

When I render my UCI App on Dynamics 365 Mobile app running on an iPhone Mobile Device, everything works fine except one issue: My Speech to Text web resource does not work. When I checked, I found out that the Dynamics 365 Mobile App (latest version as of Feb 2018) does not have access to the iPhone Device Microphone.

Moreover, when you go to check under the iPhone Settings –> Privacy –> Microphone, you can see all Apps that requested access to the Device Microphone but you will find that Dynamics 365 App is not listed. I also could not find a way (initially) to get the App to request acces to my device microphone.

This issue has now been reported to the Dynamics 365 Product Group team responsible for the Mobile App – so they are aware of it and hopefully will fix it in an upcoming release.

However, thanks to my friend and fellow MVP, Marius Agur Pedersen, he alerted me to the fact that there is a “Microphone” icon on the Timeline control on several Dynamics 365 entity forms. Once you click on this “Microphone” icon, I managed to get the standard Dynamics 365 Mobile App to request access to the Microphone from my iPhone Device and the App now shows up on the iPhone Microphone Setting under Privacy.

Here is how you can initiate this request from the App to access the Device:

 

I’ll be updating this post with more information once I get confirmation from the Product team that the App can request access to the Microphone when it runs for the first time. But for now, the above work around should be good enough and should allow your voice recognition, audio and/or Speech to text web resources and modules to work inside Dynamics 365 Mobile App.

Hope this helps!

Summary of our Dynamics 365 Saturday event with special guest James Phillips @ Microsoft London Jan 2018

We had a fantastic two days at Microsoft London Paddington Offices on Friday 26 and Saturday 27 January. It was the first time we had our event across the whole Microsoft Business Solutions platform and over 2 days, Friday afternoon and Saturday.

This time, we had a very special guest: James Phillips, Microsoft Corporate Vice President and the head of Microsoft Business Solutions (including Dynamics 365) Globally. He flew from the US to attend the event and show his support to the community.

Q&A with James Phillips

To check all the photos and a chronological report on the event, please read my LinkedIn article here:

https://www.linkedin.com/pulse/summary-report-our-dynamics-365-saturday-london-event-mohamed-mostafa/

James Phillips supporting our Dynamics 365 Saturday community

Directions EMEA 2017 Dynamics 365 GDPR Compliance Session Slides

Presented by myself and James Crowter, we have received various requests to share our slides from Directions EMEA 2017. I have added these here but please note that I have added more information than the original presentation slides. Hopefully it will be of some benefit to some of you.

Please note there is NO WARRANTY for this document and is provided as is without any guarantees. You should not make business decisions based on these or any similar high level material.

Microsoft Dynamics 365 & GDPR compliance – Oslo #MSDyn365 event slides and updates

I had really great audience and some excellent interactions at my Microsoft Dynamics 365 #GDPR compliance session in the stunning #Oslo at Microsoft Norway. I’ve heard and discussed several shared concerns on GDPR significant impact on #CRM solutions, its complexities and how soon the regulation is coming!

I also want to thank everyone for their positive and encouraging feedback. That’s what keep me (and other MVPs) going and make us continue to help the Dynamics 365 community in passion!

As per everyone’s request, I have incorporate our useful interactions into my slides and you can now download them via the link below on this post or on http://CRM.Boutique  (free registration is required).

If you would like to attend this session again in person, then you can join me at our next Free Microsoft Dynamics 365 event in Milan at Microsoft Italy offices on 16th September 2017. This will be another great CRM Saturday event, this time in Italy.

One last off-topic point: Oslo and Norway are absolutely stunning (did I say that before?). If you haven’t been there, then try visiting soon – preferably in the summer. Make sure you: a) take the Oslo Fjord cruise, b) do the Oslo River walk and c) eat plenty of Norwegian fish (especially Salmon).

I leave you with some photos from the event and amazing Norway!