Dynamics 365 Field Service and IoT – The Complete Guide

Whenever I talk to customers or within #Dynamics365 community, one of the most FAQs is about IoT (Internet of Things). Nothing garners as much interest as this one. Is IoT just a buzzword or a reality? How does it work with Field Service – or why in the first place IoT has anything to do with Field Service? Does it require any specialized skill set?

Photo by Ruiyang Zhang on Pexels.com

I intend to cover all about IoT and Dynamics 365 Field Service in this series of post. This has been in my mind for some time but I was waiting for the release plan for 2021 Release Wave 2 to ensure we cover some upcoming features as well. Now before we start, just to make scope clear (pun intended) my goal is to:

  • Address the philosophy before jumping on to nuts & bots: why IoT, different approaches, tech stack etc.
  • Present a walk-through of technology nuts & bolts of various IoT approaches
  • Share a future roadmap for further learning and specialisation

… and the only pre-requisite here is familiarity with Dynamics 365 as a platform.

The Series

Here is a series of posts that are part of this guide:

  1. Introduction
  2. Technology Stack and Approaches
  3. CFS with Azure IoT Hub – The Setup
  4. CFS wit Azure IoT Hub – Device Registration and Monitoring [TBD]
  5. Azure IoT Central – The Setup [TBD]
  6. CFS with Azure IoT Central [TBD]
  7. New Features [TBD]
  8. FAQs and Further to explore [TBD]

Why IoT with D365 Field Service?

Let’s start with answering the fundamental question:

What is the basic premise of using Field Service in IoT?

Every business having equipment and assets (think utilities, facility management, LGAs etc.) wants zero down-time i.e. those equipment, devices and assets should be up and running without ideally any outage. This ambition is realized by having two kinds of maintenance:

  • Preventative Maintenance: Every equipment comes with a recommended service calendar. We all know about cars: they need to be serviced every few thousand miles/kilometres or few months. This is called preventative maintenance because it preempts issues or breakdowns by having key components checked, serviced or replaced regularly. It statistically doesn’t bring outages down to zero but it does reduce the possibility significantly.
  • Reactive Maintenance: Once equipment stops working, then fixing it asap, troubleshooting, finding a workaround or making a permanent fix etc. – all comes under the heading of reactive maintenance. In other words, this is ‘break-fix’

Beside others, a key difference between these two types of maintenance is in the way their business process starts:

  • Preventative Maintenance starts with having a service calendar of assets and then following it properly,
  • Reactive Maintenance begins with a call, ticket or an email from customer (somebody will notice that equipment is not working and then call for break-fix)

‘Somebody’ and ‘notice’ in Reactive Maintenance are keywords because they are weak links in the entire process. If somebody makes a mistake and doesn’t notice a faulty equipment, or identify the wrong equipment, or does notice but report late etc. – then equipment’s overall ‘up-time’ will reduce. This prompts a question: can we optimize this process or in other words, instead of reactive, can we have a proactive maintenance? The answer is: yes!

  • Proactive Maintenance: When an equipment/device/asset sends an alert signal identifying (a) an issue or (b) a deviation from standard values, then troubleshoot and fix the potential problem.

Since signals would be caught automatically (without manual noticing), investigation and break-fix would happen earlier. Many times such signal identify a potential problem which may happen few days, weeks or months down the line. This makes Proactive Maintenance a key part of services and maintenance portfolio in every industry and therefore IoT (signals, alerts from equipment) works with Dynamics 365 Field Service.

Hope this makes a case for ‘Why’ behind this series. In this next post, we’ll talk about the ‘How’. That is, we will look at various IoT deployment models and approaches with Dynamics 365 Field Service.

Thanks for reading!

Feel free to share your feedback, I’d love to hear your thoughts 😊

Exploring and Setting up ‘Track Technician Location’ in 30 minutes

One of the *biggest* and *flashiest* highlights of the latest release wave (2021 Release Wave 1) is the ability for customers to (a) view arrival times, (b) see a live view of a technician on the way in a map, and (c) receive emails/SMS notifications. All of this further solidifies Dynamics 365 Field Service’s position as the market leader in this space and therefore, I couldn’t hide my excitement when I saw this feature arriving in my Dynamics 365 environment 😋. Following is an account and a quick guide on how to make it work in your environment: 

Photo by RODNAE Productions on Pexels.com


1. Having an Outlook 365 based email account

2. Setup ‘Twilio’ account for sending SMS (this could be a trial too)

Setting it up

Setup Portal

Go to PowerApps maker portal and create a new portal based on ‘Field Service’ template (see my previous post on how to set it up).


Go to ‘Field Service’ model-driven app -> Settings and click on ‘Customer Portal’ (scroll down):

Turn ‘ON’ Track My Technician feature and other messages. These ‘messages’ helps you decide list of events on which notifications should be sent to customers. For example, you may want to send notification on rescheduling but not on booking cancellations.

Next see those two Power Automate flow on the right? These Power Automate flows are responsible to send emails and SMS. Click on the first one (SMS):

Click on Edit:

Connect your Microsoft Dataverse and Twilio connections:

Leave rest of the Power Automate flow as it is:

Save and turn the flow ON:

Now, click on the other Power Automate flow, setup connections and turn flow ON. Nice and simple, no changes:

Optionally, you can (a) exclude Work Types on which notifications or technician tracking shouldn’t happen, and (b) exclude customers from this feature:

Next go to ‘Track My Technician’ tab and turn all features ON:

Let’s Try It Out 😀

All done – time for now. Let’s create a new Work Order and book a resource:

Oh and one thing – your booked resource should have Start and End Location set as ‘Resource Address’:

Check your email and phone now. You will start receiving notifications for booking reminders and as technician gets on the way:


For further reading, have a look at Microsoft Docs article. It is also worth exploring how backend of this solution works. Hint: check out Notifications table (I will write about that soon 😁).

Thanks for reading!

Feel free to share your feedback, I’d love to hear your thoughts 😊

Unpacking the new Self Scheduling Portal

There are good days and then there are very good days in the life of consultants. Probably arrival of Self-Service Scheduling Portal (albeit in preview) falls in the later such events. The reasons are many but top of all is the fact: this was among the top of most requested features in Dynamics 365 Field Service. I have seen with many implementations, once customers see, feel and touch the value that Dynamics 365 product in resource scheduling, mobile app, auto-generate work orders and bookings etc., the next thing they look for is to let the customer do the scheduling itself. It is akin to the trend in customer service: from capturing customer cases to self-service. With this quick intro, my today’s article is about my experience of setting the new Field Service portal, enabling the new self-scheduling feature, setting up pre-requisites and unpacking how it works. Let’s get started!

Step 1:

Go to Power Apps Maker Portal (https://make.powerapps.com). Select the correct environment, click on Create, scroll down to find and click on ‘Field Service.

Step 2:

Select Portal name and URL. Click ‘Create’

Step 3:

It may take a few minutes for the portal to be up and running. Time for some Netflix! (Nah just kidding, it won’t take that long 😊).

Step 4:

You’ll see portal appearing in the list of apps shortly.

Step 5:

Click on the portal to see blank page.

Step 6:

Viola! that was good. Go to Field Service app, click on Settings and you will see a new Customer Portal sub-menu option. Click on that to see our new customer portal (very similar to other Power Apps portal configurations).

Step 7:

Click to open the record. You will see options to:

  • setup Track My Technician
  • setup Self Scheduling

We’ll focus on the later today.

Step 8:

Go to the next tab to see Display Settings. This is where you can configure the UX part of the portal. Color, fonts, specific pages, logo etc. – all is configurable.

Step 9:

You can also click on the ‘Display Configuration’ link to configure text on home page and other elements of the portal.

Step 10:

Click ‘Save’ and refresh the portal a few times (since portal configuration are cached, it may take a little while to see changes happening on the portal).

Step 11:

Go to the new ‘Self Scheduling’ tab and you will see a bunch of settings related to this new function. I particularly liked the fact that ‘asset selection’ and ‘resource radius’ factors are configurable.

Step 12:

At this stage, if you click on ‘Book Service’ button on the portal, you will see an equivalent of BSOD (Blue Screen of Death):

Step 13:

We need to set a couple pre-requisites at this stage. First assign a role to your portal user.

Step 14:

Secondly, configure at least one ‘Incident Type’ with ‘Enable for C2’ selected. I am sure this field label will get changed as this feature rolls out from Preview to GA:

Step 15:

That’s it. Click on Self Scheduling option again on portal and you will see the page will appear with the following:

  1. Service product: this shows a list of products that are associated with the ‘Account’ that the logged-in user is linked with. In other words, these are the products for which you are booking a service
  2. Service types: a list of incident types
  3. Date and time selection
  4. Additional information: this is a configurable option

Step 16:

Click on Book, it may take a few seconds and then shows a confirmation. A little delay seems to indicate that the booking function happens synchronously.

Step 17:

Let’s go back to Dynamics 365 Field Service to see what happened behind the scenes. First a new Work Order is created. Note incidents and bookings are also created.

Step 18:

The selected product (Customer Asset) is also selected on the Work Order record.

Step 19:

What happened to the text that we put under ‘Additional Comment’? Well those are added as a Note under the booking record.


I think it is a very neat implementation: it uses the same Power Platform capabilities that we all are familiar with and the process to set it up is quick and easy. In the real world, there will be a lot of requirements for specific fields on the portal, or a change in process to schedule (approvals) etc., and may be those features are in pipeline but I also think the fact that this is all built on Power Apps, makes it super easy for us Dynamics 365-addicts to configure and customize it. If you’d like to learn more, I think the best place to refer is the standard documentation and Dian Taylor’s blog.

Thanks for reading!

Feel free to share your feedback, I’d love to hear your thoughts 😊