D365 Field Service: Customer Self Scheduling

In this article I will be discussing the self scheduling feature for Dynamics 365 Field Service. This feature will allow customers to schedule service from the Field Service Power Apps portal. As you probably already guessed, yes this is another feature that is part of 2021 Release Wave 1. This feature was not available for early access, but it is currently in public preview so you can take a look at it and test it out for yourself. NOTE: A preview feature is a feature that is not complete, but is made available before it’s officially in a release so customers can get early access and provide feedback. Preview features aren’t meant for production use and may have limited or restricted functionality.
This feature uses the same Field Service portal as the Technician Locator functionality. We can configure notifications for customers and take advantage of other features that are part of the technician locator functionality a.k.a Find My Tech. I wrote an article about this functionality and created 2 separate videos on this, one of them regarding configuration and setup, the other one is a full blown demo of the functionality. If you haven’t read the article or the videos yet, I would recommend you take a look at them. You can find the article and videos here.

If you installed the field service portal before, you won’t have to go through the same steps again, you can just upgrade your existing portal and the additional features will show up after the upgrade. If you need to install the portal from scratch, below are the steps to do so.

Install the Field Service Portal

You can have multiple portals installed, but there can only be 1 Field Service Portal per environment. Since at this point this portal can’t be integrated with any existing portals, you’ll have to do a separate installation for this. You can install the Field Service Portal by logging into make.powerapps.com.
MAKE SURE YOU ARE IN THE CORRECT ENVIRONMENT WHEN YOU DO THIS! Once you are logged into the correct environment, click on the ‘+ Create’ button on the right side of the screen. When you scroll down you see a list of templates you can pick from. Search for the ‘Field Service Portal’ and click on it. This is pretty easy, all you have to do is select a name for the portal, a URL and a language. Once you’ve filled this out you can click ‘Create’. This will also install several solutions in your environment.

After the portal has been successfully installed, navigate to the Dynamics 365 Field Service App and change the area to ‘settings’. When you scroll down you’ll see an additional section on the sitemap called ‘Customer Portal’. Click on ‘Customer Portal’ and open the customer portal settings. This is where you can configure options for the portal. There are several options on the ‘General’ tab. This is where you can enable ‘Track my technician’ and ‘Self Scheduling’ which (as I mentioned above) is now in preview. When you set either of these fields to ‘Yes’ you’ll notice that a corresponding tab appears with additional configuration options. The final option in the top section of the configuration tab is the ability to ‘Send self-scheduling experience to Account Contacts’. This allows you to send portal invites to existing contacts that belong to an account, and also for any new contacts that are added to an active Field Service account. When you set this field to ‘yes’ a pop-up will appear asking if you want to send invites to existing and new accounts or new accounts only. When a contact is invited to the portal, they’ll receive an email notification with an invitation link that allows them to create an account within the self-scheduling portal. NOTE: The portal invitation notification is sent only as email, not as a sms/text message.

Messages

The ‘Messages’ section on the Configuration tab allows us to configure notification messages settings. Admins can enable customer notification flows by clicking on the internet icons next to the data in the ‘Configure Email Connector’ & ‘Configure SMS Connector’ fields. This will open the related Power Automate flow and admins can turn the flow(s) on from here without having to dig through solution components. This is also where they can select which communication type(s) should be enabled. Lastly they can enable the different notification types, which will determine when a notification will go out. Options here are:

  • Booking Confirmed
  • Booking Reminder
  • Technician Traveling
  • Booking Cancel
  • Booking Reschedule
  • Booking Complete

The ‘Send messages to’ field allows admins to configure where Technician Locator customer notifications should be sent to. This is a feature that was added after the upgrade of this portal, as this option wasn’t available previously. Choices available are:

  • The primary contact of the service account
  • the ‘Reported by Contact’ on the work order
  • the ‘Supported by Contact’ on the work order

NOTE: The ‘Send messages to’ setting is only used with the Technician Locator/Track my technician feature. Messages for Self Scheduling will be sent to the ‘Reported by contact’ on the work order, as this is the person on the customer side who created the work order & booking. The customer contact who created the work order will automatically be set as the ‘Reported by’ contact on the work order.

Below the messages section you’ll notice the ability to exclude work order types and certain accounts from notifications. These are related to ALL MESSAGING, and are not specific for Track my Technician or Self Scheduling, which I think is important to understand. Admins can add multiple work order types and multiple accounts to be excluded from these communications. We could also build a flow to auto populate these records when an account opts out of receiving notifications.

Self Scheduling

In order to configure the self scheduling options for your customers, you’ll need to open the ‘Self Scheduling’ tab on the customer portal setting page. There are 5 options that we can configure here:

  • Minimum lead time for new bookings (days): This is the minimum lead time, or the earliest date (calculated from the current day) for which the customer can schedule their bookings. NOTE: These dates include weekends. I.E If the minimum lead time is set to 1 day and if today is June 1st, then the first day the customer can schedule a service is 1 day after that day, which is June 2nd.
  • Maximum lead time for new bookings (days): This is the maximum lead time, or the latest date (calculated from the current day) for which the customer can schedule their bookings. I.E If the maximum lead time is set to 30 days and if today is June 1st, then the first day the customer can schedule a service is 30 days after that day (including weekends), which is July 1st.
  • Enable Asset Selection: If this is enabled the customer is able to select a customer asset related to their account for this service.
  • Enable Additional Details: Turning this on will allow the customer to add additional comments in the form as a note on the related booking that will be created.
  • Include Resource with maximum travel radius: This indicates the maximum distance in km from the scheduled work any resource can be scheduled to the work order. The minimum setting for this field is 0 (If this is set to 0 this means that there is no max radius active) and the max setting is 500. NOTE: The unit of measure for this field is in kilometers, not miles.

Incident Type Configuration

Once everything is setup from the Portal side, an admin will need to configure one or more incident types that customers can select for scheduling their service. You’ll notice that a field ‘Enable for C2’ has been added to the Incident Type form. If this field is set to ‘Yes’ this indicates this will be an incident type that can be used for self scheduling on the Power Apps Field Service portal. Don’t forget to add the display name field as this will be the name of the service the customer will see in the portal. There is also a view for the Incident Type table you can use to see which Incident Types are enabled for the portal. That was all the setup that needed to be done, now you can test the functionality!

Create Customer Portal User Account

I was having some issues with receiving the portal invitations, so if you need to manually invite an existing test contact, you can do that by opening a contact that is related to a (field service) account. Click on ‘Create Invitation’ on the command bar, select the related account in the ‘Assign to Account’ field and click ‘Save’. Then I copied the invitation code from the field in the ‘Advanced Tab’ of the invitation I just created. I then opened my portal URL, which you can find by navigating back to the settings area > customer portal > open the portal settings. Click on the Field Service Website record in the Customer Portal Settings. and you’ll find the URL in the Primary Domain Name.

Copy and paste the portal URL in your browser and click on ‘Schedule Service Now’ which will take you to the login page. From there click on ‘Redeem Invitation’ and enter the code from the invitation and click register. The next window will prepopulate the email address the portal account is associated with and will ask you to create a username and password. Now the customer portal account is set up and you will be logged in as the customer and directed to the profile page. Click on ‘Self Scheduling’ on the top to access the self-scheduling page on the portal. NOTE: Creating a portal account should automatically assign the contact the Web API Users web role. If this is not the case, please add the role to the contact record in D365 Field Service.

Schedule Service through the Field Service Portal

From here the customer can select a customer asset (if you turned this on under settings), and they can use the drop down field to select an incident type under ‘service type’. Once the customer selects a date (by clicking on it), the time slots for that date will become visible. Select a time to schedule the service for. Customers can add comments in the ‘Additional Information’ section. NOTE: As mentioned before, the text in the ‘Additional Information’ field will be added to the booking as a note in Dynamics 365. After the service product, service type and the date and time have been selected, they need to click the ‘book’ button on the bottom of the screen to finalize the booking. This will take them to a confirmation page with details on the booking. If notifications are enabled, they will also receive a booking notification with the option to reschedule the booking for a different date and time.

I did notice that when I scheduled service from the customer account, the booking wasn’t automatically assigned to the resource that’s closest to the service account. I also noticed that even though the service account and the work order that was created had FL set as the territory, the resource that was assigned to the work order didn’t belong to the service territory. I did provide this feedback to Microsoft as I feel these are important things to consider when auto-scheduling these work orders. Keep in mind, this is not a finished product as of yet since it’s in preview and this is exactly why Microsoft allows previews so that we can give feedback.

And there you have it! Those are all the capabilities for self-scheduling in Dynamics 365 Field Service. This will be a very nice tool in conjunction with the ‘Track My Tech’ functionality. If you haven’t read about that yet, I encourage you to do so here! A full demo of ‘Track My Tech’ aka the Technician Locator can be viewed here. I hope you enjoyed this post! Be sure to check in again next week for a new article or subscribe here to never miss another post!

Share this!

Comments are Closed