Another cheat sheet, this time covering Microsoft CRM’s rarely used features of Service Contracts and Service Scheduling…
- Contract Templates are defined under Settings \ Templates (where Mail Merge Templates are also maintained)
- On the Contract Template you indicate whether the Contract provides for a fixed number of Cases, a fixed number of Hours or covers a number of days. And I guess that provides fairly good cover. If I think of support contracts my employer offers they tend to fall into one of those 3 categories.
- You can also define the hours and days of the week that the Contract covers (that’s what the little green dots are about in the screenshot below) – but settings these limits seems to have no effect:
- When you go to create a Service Contracts CRM acts slightly differently from normal, it pops a dialog and asks you to select a Contract Template, you chose one and only then does the Service Contract form appear. So, the Contract Template is not just a data entry shortcut, it drives the behaviour of Service Contracts.
- On the Service Contract you specify the Customer the Contract is for and you enter the start and end date of the contract. This date range is validated against later when you try and charge Cases to the Contract:
- The price of the Contract and the level of service provided for that price is defined one level down, on the Contract Line. The only real important field on the Contract Line is the “Total Cases/Minutes” field. This is what the Customer is buying from you – whether it be 20 Cases, or 3000 minutes (50 hours). It is this amount that will be get deprecated when you charge Cases to the Contract in the future:
- There’s a bunch of other fields on the Contract Line, you can specify a Product and enter pricing details. And of course you can create multiple Contract lines under a Contract if you want.
- To activate the Contract so that Cases can be charged to it you need to click the “Invoice Contract” button. It doesn’t create an Invoice record, it just changes the status of the Contract to Invoiced.
- When creating a Case you can charge the Case to the Contract so long as the current date falls within the Contract’s Start and End dates and the Contract status is Invoiced:
- Invoiced Contracts can be put on hold via the “Hold Contract” button, this temporarily prevents Cases from being charged to the Contract (I guess you might use this if payment lapsed).
- The “Allotments Remaining” balance on the Contract Line is deducted only when the Case is resolved. There’s a field in the Case Resolution window where you can record the number of minutes to be charged to the Contract (for Contracts of that type):
I think that about covers it for Service Contracts. If your requirements don’t fit within these parameters then I recommend a cautious review of the suitability of this out of the box design. You may find adopting some custom entities and/or building out your own business logic extensions might be a better approach. Like all CRM scenarios you need to measure the gap and look at the unique characteristics of the CRM entities and screens and decide whether those characteristics are of benefit or are in the way.
Setup steps for the Service Scheduling module need to be completed under Settings: Business Management.
- Start by defining your Resource Groups. Create a Resource Group for each types of Resource that you will need to schedule – e.g. if you are scheduling surgeries you might have the following Resource Groups: Doctors, Nurses, Surgeries and Anaesthetists:
- Next identify each Resource under those Resource Groups. Resources can be CRM Users, Teams, or Facilities/Equipment records. Continuing with the Surgery example I would add My CRM Users that are Doctors to my Doctors Resource Group and then do the same for Nurses and Anaesthetists. Finally, I would create new Facilities/Equipment records for each Surgery and add those to the Surgeries Resource Group:
- Next define the geographic locations where your Resources can be utilised. You create these as Sites. Under each Site you select the Resources that are valid for that Site. Later when scheduling you will take a customer request for a Service and the scheduling engine can optionally apply a Site constraint to ensure only Resources listed for the Site are scheduled.
- Next step is to define the Services that you will be selling to your Customers. Stay in the Business Management area of CRM and go to Services, add a New record. Give the Service a name, indicate the duration the Service should be scheduled for – e.g. 1 hour, 2 hours, etc. and set when the first appointment can be scheduled each day:
- Next you need to define the resource requirements for the Service. CRM has a unique UI for this bit, here’s an example where I say for the “Tummy Tuck” Service we need an Anaesthetist, a Doctor, a Surgery and 2 Nurses:
- I’ve specified Resource Groups here but you can specify specific Resources instead if required – e.g. for the Tummy Tuck maybe you have to use Surgery A, or the Doctor has to be Ben Hanks.
- You will see that Sites are mentioned as well, this is where you can limit the pool of resources by their Site associations (to prevent you scheduling resources from distant locations).
- Next, we need to define when our Resources are available. Call up your first User and click on the Work Hours link. A calendar will appear. By default the Work Hours defined for Users equates to 24x7x365 availability – i.e. no constraint is imposed. The same is true for Equipment/Facilities records. This might be ok for Equipment/Facilities records but is unlikely to be ok for Users. So, click on one of the days and then click the Delete button to remove the default work hours definition. Click the Setup button and then select either the Weekly Schedule or Daily Schedule. Then define the working hours for that resource:
- There are options here to vary the working hours by day or have them the same each day. You indicate which days of the week the User works and whether they should be considered unavailable on days where we have indicate the business is closed (e.g. on public holidays). The Set Work hours link takes you to a sub-screen where you can define start and end times and any breaks:
- You can also define any restrictions the Resource has in regards to performing certain Services at certain times. e.g. perhaps our User here refuses to perform Tummy Tuck surgeries in the morning:
- Last step is to define those business closures. There’s a screen for that under Business Management, it’s pretty obvious how you create records there:
- Ok, that’s everything setup. CRM can now start auto-scheduling Services for us. We will give CRM requests like “Mr Smith wants a Tummy Tuck in Auckland one morning next week” and CRM will use all of the setup configuration we have fed it to determine which applicable resources are available. HOWEVER, CRM does not go as far as auto-scheduling. You still need to pick from CRM’s search results the resources you want.
- This scheduling is done from the Service Calendar. On the Calendar you can chose to view a Day, Week or Month at a time, the view won’t typically fit on the screen, scrollbars allow you to scroll left to right to see the entire time period:
- The “Type” dropdown above the calendar view allows you to choose the record type to display down the calendar.
- To schedule a Service you can click the Schedule button on the Ribbon and CRM will pop first a Service Activity form and then pop over top of that the Schedule Service Activity screen. The Schedule Service Activity Screen is essentially an availability search screen that helps you assign Resources to the Service Activity record.
- Select the Customer, select the Service they are requesting, optionally select the Site where the Service is to be performed and then enter the customers scheduling preferences – e.g. they might want the Service scheduled for one afternoon next week:
- You will notice that I’ve changed scenarios with my screenshot. I got to this point with my Surgery example and hit the limitations of the Service Scheduling module. What I found was the grid at the bottom listed out all of available timeslots for all of the resources that met the requirements of my Service, however CRM doesn’t bundle these for you – it doesn’t say “hey next Thursday at 2pm you could go with Bob, Adan, Jill, Nina and Surgery A”. You have to manually locate that matching combination and select those resources yourself and the screen doesn’t really support this. The user experience just doesn’t work in my opinion. So I changed my scenario to something a lot simpler.
- My new scenario is Air Conditioning Servicing. I offer a single Service: “A/C Service” and this Service requires 1 Technician for 1 hour, that’s it. With this scenario the Schedule Service Activity screen works ok. I scan the search results and click on line 3 to book Bob in for 1pm on the 8th July. I click the Schedule button at the bottom of the form and the screen closes, passing that selection back to the Service Activity form that has been sitting in behind the search screen:
- I enter a Subject and then Save & Close, I now see that hour of Bob’s time blocked out on the Service Calendar:
- If later I need to reschedule this Appointment I can select the calendar item and then click the Reschedule button on the Ribbon. This will pop the Service Activity record and the Schedule Service Activity screen over top of it and automatically execute a search against Bob’s availability to give me new slots to pick from:
- To see all the jobs scheduled for a certain timeframe you can switch the Service Calendar from showing Resources to show Service Activities instead:
- To tick these Service Activities off as they are Completed you can use the Change Status button on the Ribbon (these are Activity records so they shouldn’t remain open):
- You can manually schedule/reschedule appointments in which case CRM becomes more of a validation engine then an availability search engine. You will see alerts like the below which you can chose to ignore:
- The Service Calendar supports Service Activity and Appointment records. I think Microsoft’s idea is that Appointments are periods of blocked time around which Service Activities can be scheduled – so they might be internal meetings / training or personal appointments. When scheduling availability is validated against both of these calendar item types. The Conflicts button on the Ribbon will highlight any scheduling conflicts with a red border:
- I think that about covers it for Service Scheduling. In summary, it doesn’t handle multi-resource bookings well. It does an ok job with simple single-resource scheduling offering some good search abilities. A couple things I haven’t mentioned is the Service Calendar needs to be manually refreshed when you change an existing calendar item, that’s not ideal. A big concern to me as an implementer is neither the Service Calendar or the Schedule Service Activity screen can be customised.
- I think what you get with CRM’s Service Scheduling module is one of three things:
1) it is a simple service scheduling tool that you can adopt and use as is (if you can fit your requirements into its functional breadth), or
2) it is a sample application indicative of what you could build using CRM as a rapid development platform. It can be used as a pilot or during design workshops to help you establish your requirements and design the solution that your business needs, or
3) it is a validation engine for service scheduling. You setup the rules and then schedule manually or via your own custom user interface and it will let you know when you break the availability rules.
I’m keen to hear where you have found CRM’s Service Scheduling module of use. Please use the Comments feature below.