In this blog, we discuss how to leverage our PowerSMS PowerPack add-on to create a Custom Channel Tile for Dynamics 365 Marketing.
So, you manage a team of mobile salespeople who are constantly on the road delivering presentations and following up with prospects. Your pipeline is an ever-growing list of leads and opportunities, and what you'd really love is to see your entire team's daily/weekly/monthly schedule of sales calls in one place. Even better, you'd like to see all of this by territory. If this sounds familiar, keep reading, what you're about to learn won't disappoint. Not your story? Fear not, the applications for the information in this article are endless.
Let's add a little clarification; What we're about to cover is the process of making custom or existing entities schedulable using the schedule board in Field or Project Service for Dynamics 365. If you hadn't guessed it at this point, there are a few prerequisites for this to work.
If your Dynamics 365 org meets all the requirements above, buckle up as we're about to get started.
Please note: this article assumes basic knowledge of Dynamics 365 Customization.
The first thing we need to do in order to schedule an entity in Dynamics 365 is to enable the given entity for scheduling. To do this, we'll take the following path (note that this may vary if your System Administrator has altered the standard out of the box sitemap in Dynamics 365):
Resource Scheduling > Administration > Enable Resource Scheduling for Entities
From here we can see the entities that have already been enabled as well as the area where we can enable a new entity. If you have Field or Project Service, the Project or Work Order entities will already be in the enabled area to the right.
To add a new entity, we will simply select the field entitled "Add Entity." This allows us to either search for the entity you want to schedule by typing in the name or by scrolling through the list. In both the "Booking Relationship" and "Requirement Relationship" fields we will select "Create New Relationship." This will cause the relationship between the entity we are enabling and both the Bookable Resource Booking and Resource Requirement entities to be created via plugin. If there is an existing relationship between those entities, it will be available for selection.
Brief Aside: The Resource Requirement entity is what associates the newly added entity to the scheduling functionality within Field Service. It also determines which entity records will be available for scheduling within the Schedule Board (more on this later). The Bookable Resource Booking entity will ultimately represent the resource that is responsible for any work associated with the entity that has been scheduled.
Click "Publish Customization," and let the system do its job. The screen will go dark and spin for about 30 seconds to a minute, so, be patient.
When the process is completed, a new window will popup and display options and settings for the entity that you've just enabled for scheduling. It's not rocket science, so we won't cover it in depth.
For now, we'll just worry about the "Settings" and "Attribute Mapping" area's. In the settings area, you can set the defaults for how Field Service will handle various components of bookings and requirements. In the Attribute Mapping area you can create field mappings between the newly scheduled entity and key components of the Resource Requirement entity, such as From Date, To Date, Latitude and Longitude, which will ultimately be passed on to the Bookable Resource Booking entity, for use with scheduling.
Congratulations, you have now enabled an entity for scheduling! You are now just two steps away from being able to schedule with ease!
The next thing we need to do is create a view for the schedule board that will display the unscheduled records for the entity we have enabled for scheduling. You might think that the view needs to be created directly for the entity in question, in our case the Lead. But that is actually not the case. If you'll recall from before where we said that the Resource Requirement entity determines which entities are available for scheduling in the Schedule Board, this is the same entity for which we'll need to create the view.
To do so, navigate to a solution of your choosing, add the Resource Requirement entity to it (if it's not already there), and head over to the Views. If you have Field Service you'll notice that there is already a view called "Unscheduled Work Order Requirements." This is an excellent view to copy and modify to suit our specific purposes, so that's what we're going to do. If you don't have this view, the only thing you'll need to do differently is create a new view, and pick the columns you want displayed.
Open the "Unscheduled Work Order Requirements" view and select "Save As" in the ribbon. You can call your view whatever you want, but I'm going to stick with the existing naming convention and call mine "Unscheduled Lead Requirements."
I'm going to remove the following columns since they are irrelevant to the Lead:
Next, I'm going to add a column from the Resource Requirement referencing the Lead.
Finally, and this is THE most important part, I'm going to edit the filter criteria of the view to display only Resource Requirements related to Leads. In this case I only want to see Leads where the status is "open," but you could easily use any status you want including creating your own status such as "scheduled" or "unscheduled."
Once you've added all the columns and filter criteria you desire, just save and close the view you've created, publish the solution, and you're ready to move on to the last step where we get to see the fruits of all our labors thus far.
Brief Aside: At this point you CAN move on to the next section, however, when you get to the end of the article you may find it to be anti-climactic. The reason being, we haven't created any Leads or Lead Resource Requirements, so there will be nothing to schedule. At this point, I'd recommend taking a few minutes to create some leads (or any entity that you are setting up for scheduling) so you'll have something to schedule at the end. Please also note that Resource Requirement records ARE NOT automatically created when you create the lead. You will need to create one manually, by navigating to the related entities area of the ribbon, selecting Resource Requirements, and adding one for each lead you've created. You can also setup a workflow to handle this, which is the approach I'd likely take for a production scenario.
The first thing we need to do to add our newly schedulable entity to the schedule board is to navigate to the schedule board. There are several paths to get there, but we'll take the following:
Resource Scheduling > Schedule Board
Next we need to add our newly created view to the schedule board. To do this we will either create a new tab at the top of the schedule board, or add it to an existing tab. For the purposes of this article, we'll create a new tab called "Lead View." Click on the "+" at the top right of the Schedule Board to get the following dialog:
We'll change the name to "Lead View," and for now we'll leave the "Public View" field unchecked so that it will remain a personal view.
We're going to leave everything else set to the default right now, with one exception. Navigate to the "Requirements Panels" area and click on it. Here we will give our Lead Booking Requirements view a friendly name like "Unscheduled Leads." We will then select the "Unscheduled Lead Requirements" view that we created earlier. Then we need to click on the "+" symbol. This part is crucial. Notice in the image below that the yellow highlighted area represents the absence of any views. Until you click the "+" symbol, your view WILL NOT be added to the Schedule Board.
Once you have done the above, your custom tab should look like this:
The Title and View fields should now be blank, but the grid below will contain the information you just added. You can add more custom schedulable entities if you'd like and they will all display in the grid as above.
That's it. From here you simply click the "Add" button at the bottom of the screen, and you've successfully created a custom personal view on the Schedule Board, where you can see your newly schedulable entity!
If you took the time earlier to add some Lead and Resource Requirement records, your Schedule Board should look something like this:
From here you can click and drag your schedulable leads to available slots on the Schedule Board, and voila, you have officially scheduled a lead to be worked by specific sales resources! And that's all there is to it! Imagine the possibilities!