In many cases, it makes sense to consider a dedicated inventory management solution that integrates with Salesforce CRM. In other cases, as I will illustrate in this article, Salesforce can be configured to manage a moderately featured inventory management system while avoiding the complexity of an integrated solution—which often contain features that end up either completely or partially underutilized. Here, we will examine the framework for this type of solution.
Sales teams in a manufacturing environment historically have challenges working in disparate systems to track customer information, order information, and inventory. Disparity between these systems means increased error rates, negatively impacted customer communication, and an overall less-than-ideal customer experience. In this article, I will illustrate a simple scenario in which we’ve leveraged the broad capabilities of Salesforce Opportunities in conjunction with a custom Inventory management object. The outcome is information at the sales reps’ fingertips from any device, at any time, in order to provide the most clear and up-to-date communication to customers combined with an efficient internal process.
Based on this specific use case, Inventory refers to high dollar, serialized inventory (product in excess of $100,000/unit). This Salesforce inventory management model is comprised of three primary objects:
For the purposes of a business whose product can be either to-order or stock, records of this object contain data that will not vary, regardless of the type of sale. For example, a record may contain base price, model name/number, and other such static details. Between the three objects in this model, this is the least dynamic and highest level of the data model.
If an Item record can be considered an abstraction, an Inventory record can be considered the concrete manifestation of the Item it is referencing. Fields living on the Inventory object should contain pertinent data from the Item object, information relating to order status, as well as pertinent data on its related Opportunity, as this object acts as the junction between Opportunity and Item.
Fields on this object should be deal specific, with the exception of a reference or lookup to the related Inventory record.
Translated literally, the above diagram indicates that each Opportunity can only have one associated Inventory item associated with it (a known limitation!), while an Inventory record may or may not relate to an Opportunity (but no more than one). Additionally, an Inventory item must contain a single Item reference, while the Item record itself requires reference to neither Opportunity nor Inventory.
To support requirements, data living on the Inventory will likely need to come over onto a related Opportunity record (and vice versa). In such a case, given the relationship structure, Inventory data can be referenced on the Opportunity, while both Item and Opportunity data can be referenced on the Inventory.
In the use case on which this model was built, order tracking fields were created and added to the Inventory to allow sales personnel the ability to monitor where a given item was in the process. This was achieved by series of workflows (now via Process Builder) which use relevant Inventory and Opportunity fields which comprise workflow action criteria, where specific combinations of values will populate the tracking fields on the Inventory record.