Field Service for Microsoft Dynamics CRM contains ability to manage inventory, the capabilities include warehousing, purchasing, adjustments / transfers, selling products via work orders and returns.
The concept of inventory management within Microsoft Dynamics CRM seemed slightly alien to me at first as this is a function I’d typically expect it to reside in the corporate ERP solution rather than within a Customer Relationship Management solution. But here we are talking about inventory in terms of parts that will support field sales activity meaning inventory management does form a logical extension of the capabilities of CRM. In this post I will aim to explain the concepts related to inventory.
I think it might be worth stressing again that the inventory options are aimed at a field servicing environment and therefore have some limitations. It is also worth noting that I believe anyone who seriously implements these features will want to add some customizations, I will point out some of my views on these along the way.
In this post I will cover;
- Product Set-up
- Purchase Orders
- Purchase Order Receipts
- Adjustments / Transfers
- Inventory Journals
Despite saying that Field Service inventory has some limitations, don’t let that fool you! It still includes quite a few concepts hence this post will be an overview of available features. Meaning I may return to specific details in future posts.
When defining products in Field Service there are a number of options that may affect inventory management. Including if the Field Service Product Type, which must be set to inventory to reflect the fact that you wish to maintain inventory levels for this product.
Your CRM forms might already include an out of the box field called “Quantity on hand”. This column predates Field Service and does not play any part in the Field Service inventory process. As inventory levels are maintained on a warehouse by warehouse basis.
A warehouse is any location that contains inventory, this might be the physical building you store stock in or may represent “virtual” warehouses such as field agent’s trucks. It is important not to think of them as just typical physical spaces. Defining a warehouse is done in the administration section of Field Service and simply involves giving the warehouse a name and optionally adding a more detailed description.
Tip / Suggestion:
A common customization is going to the adding some additional fields to warehouse. You may, for example, want to add the warehouse address and maybe a type. Plus, if a truck you may wish to associate with a particular user.
From the warehouse navigation bar, you can select product inventory;
Then within product inventory you can see a list of products contained within this warehouse, including their current stock levels, on order levels etc.
Tip: If you have a reasonable number of inventory items in your warehouse you will want to seach for record using the product name. I was surprised to find that “product” is not a find column. (At leats not out of the box.) I did a quick customization to allow finds, simpley add it as a find column in the quick find view on the product
Also, when drilling into each warehouse item you can optionally define the bin and row that this inventory item is stored in. This is useful and will work in many “simple” warehousing situations. But if items are stored at multiple locations within the same warehouse this approach may be restrictive. It might be worth keeping in mind that the facilities offered by Field Service are providing basic warehouse management to support field activity, this is not a large scale warehousing solution!
Notice that the name of the inventory product record is “New Product Inventory”. This is because the inventory record is actually automatically created by the system, when that product is first booked into the warehouse. This doesn’t matter but I personally don’t like all of my inventory records having the same name. So I created work flow that on creation of the product inventory item defaults it nicely. (As I have shown below!)
Purchasing is used to request and receive products from vendors to replenish stock within warehouses. It involves creating a purchase order, gaining approval and recording delivery of stock using P.O. receipt. Plus you can record the bill from the customer against the receipt.
The options to create and manage purchase orders can be found in the Field Service menu from the main Microsoft Dynamics ribbon.
Below you can see an example of a purchase order created (in draft status) for a particular vendor. The vendor on a purchase order is actually an account record in CRM.
Tip / Suggestion:
Out of the box you can define a re-order level but I’d don’t believe this value is actively used anywhere. You might want to create a view of items that are close to or below their re-order level. Or in some circumstances maybe having a workflow to create a purchase order or at least prompt when an order might be needed.
Notice the business process flow, this hints are the life cycle of a purchase order.
- Draft – The initial state of any order.
- Approved – Once fully entered the purchase order can be approved.
- Submitted – Once approved the order can be submitted to the supplier. It is at this point that the qty of order is incremented on the inventory items included in the order.
- Products Received – After stock receipts have been registered again the order its status will change to products received.
Billed – Finally when the supplier sends the bill the order shows as billed.
Having saved the purchase order, you can then add one or more products to the order. Notice that the price on the purchase order has defaulted to the unit cost price on the product. This can be changed if required.
Also notice that the product is associated with my warehouse. Alternatively, if the product was for a specific job I could have associated it with a work order. (Or a booking.)
When the order is first created it is in draft state, and will need to be approved and submitted.
Out of the box, no option exists to print or email the purchase order. I imagine a common customization is going to be the creation of a purchase order document. Maybe using the new Word Templates. (If / when I make these changes I will add a blog post on the process.)
Purchase Orders Receipts
When a delivery is taken a purchase order receipt is recorded and stock levels automatically incremented. The first step is to create a delivery and associate it with a purchase order. You can also record who received the delivery.
You have two options to creating the receipt. One is to open the purchase order and move the business process flow forward to purchase order receipt. (Selecting “Create” from the Next Stage dialog as you progress.)
Alternatively, you could create the purchase receipt directly from the Field Service purchase receipts menu option.
Having saved the delivery “header” you can proceed to add details of the delivery. To do this select the “Receipt Products” option from the navigation menu.
You will now be presented with a screen that functions a little differently to most in CRM! You have two options here; one is to use the “scan products” option. Entering the products UPC barcode number (or scanning) into this box will search and display the product.
Alternatively, you can click the “Show Purchase Order Products not fully received yet” option, this will list all items that could be received against this order.
Having found the product (or products) you wish to receive into stock simple enter the quantity directly in this screen. You can also adjust the price if required. Once you have entered the details you must save the receipt by clicking the “Save Changed” option. (The first time I did this I simply navigated away as I’m used to the auto-save functionality in CRM, my changes were lost! So you really do need to click save here.)
Adjustments / Transfers
Inventory adjustments is a feature that allows you to add or subtract quantities of stock from warehouses. This will typically be done following a stock check or to reflect shrinkage.
Inventory transfers allows you to move stock from one warehouse to another. In a field service environment, a common example of this will be transferring parts from a physical warehouse into the truck of a field agent.
The inventory adjustments and transfer options can both be found in the Field Service ribbon. See below;
To create an adjustment, you first create a “header” record which defined who made the adjustments, who requested them and which warehouse is to be effected. When you save the adjustment “header” it will automatically be given a reference number.
Once the “header” has been saved you can select the “Products” option from the ribbon bar and add details for the products to be adjusted.
In the products option you can then select the product, its unit group and enter the quantity to adjust the stock by.
It is worth keeping in mind that the quantity for an adjustment can be negative to allow for stock shrinkage.
An inventory transfer works in a VERY similar manner as to an adjustment, expect this time I record the source and destination warehouse in the “header”.
This time creating the inventory adjustment product works in the same manner but will deduct “5” from the source warehouse and add “5” to the destination warehouse.
Whenever anything adjusts a stock quantity or an on order amount a journal record is created to log the alteration. You might find this useful to track down stock issues.
Below you can see I have created a simple advanced find on the “Inventory Journals” entity. In my example I have looked for all journals for a particular product but I could have just as easily filtered on date, warehouse etc.
My results are shown below; you can see that whenever the quantity on hand or quantity on order has changed a journal record has been created. You might find this information useful for reporting and auditing what has happened.
Hopefully this post has given you a good introduction to the key elements of inventory and purchasing in Field Service.