Configuring Inventory Monitoring

Inventory Monitoring (IM) brings the capability to capture visual representations of products, services, and product data at the pharmacy. With IM, the pharmacy sales rep can capture simple data, like the number of facings, as well as their position, layer, horizontal, and vertical spread. In addition to that, the rep can document pharmacy stock, moved goods, and consumer price. IM eliminates a need for paper in the daily work of a pharmacy sales rep with a single, streamlined, mass-entry interface.

Two objects are needed for the Inventory Monitoring module:

  • Inventory_Monitoring_vod – contains Object header information, such as the Account for which the Inventory Monitoring was captured, the date, etc.
  • Inventory_Monitoring _Line_vod – holds the individual products and the data captured, like facing quantities, their position, pharmacy inventory and more

The following configuration steps are required to enable IM for each profile that requires access to the feature:

  1. Grant the user permissions to the Inventory_Monitoring_vod and Inventory_Monitoring_Line_vod objects. For full functionality, IM and IM Lines should have full (Create, Read, Update, Delete) access.
  2. Grant access to the following VisualForce pages:
  • Clone_Inventory_vod
  • Edit_Inventory_vod
  • New_Inventory_vod
  • View_Inventory_vod
  • VODRedirect_4000_vod
  1. Ensure VisualForce page overrides exist for View (View_ Inventory _vod), Edit (Edit_Inventory_vod), and Clone (Clone_Inventory _vod) buttons in the Standard Buttons and Links section for the Inventory _Monitoring_vod object. See below for values for Clone.
  2. Enable the Apex Class Access for the VODDatabaseApi. This setting ensures only products from the product catalog with the product type “Inventory Monitoring” display in Inventory Monitoring.
  3. Enable the IM_TOUCH_ENTRY_MODE_vod Veeva Setting by entering one of the following values:
  • 0 = no change: a cloned IM should only display the copied lines from the original cloned IM
  • 1 = enables Mass Add Lines: a cloned IM should display all lines. After saving, all lines should be saved (not only valid lines.)
  • 2 = enables Saving of Valid Lines Only: a cloned IM should display product copied from the cloned IM. After saving, only lines with values should be saved.
  • 3 = enables Mass Add Lines AND Saving of Valid Lines Only: a cloned IM should display all lines. However, after saving, only lines with values should be saved.
  • 4 = enables Contract Product Mass Add Mode: If the Contract_vod field is populated on the Inventory Monitoring header, only the products associated with that Contract are automatically added to Inventory Monitoring lines. See Contract Products Mass Add Mode for more information.

The position and general availability of Inventory Monitoring Line columns in the mass entry is controlled through the Inventory Monitoring Line page layout. The same layout is used to control the mass entry on the Browser (Classic) platform.

Position the Product_vod field as the top field on the layout to ensure the entry form renders properly on all platforms. It can be placed after the Name and Inventory Monitoring fields, which are excluded from the entry form.

Ensure that VMobile Object Configurations entry exists for Inventory Monitoring and Inventory Monitoring Line objects. If you have enabled multi-currency support in your org, you must also activate the VMobile Object Configuration for the CurrencyType object.

On the Account Page Layout:

  1. Add the Inventory Monitoring Related List to the layout. Note the Inventory Monitoring related list will function correctly only on the Account Page; it should not be placed on other pages.
  2. Edit the Inventory Monitoring Related List - in the Buttons section, deselect the New check box and move New Inventory to the Selected Buttons section.

Record Types

Record types on Inventory Monitoring and Inventory Monitoring Lines objects allow customers to provide different business processes, picklist values, and page layouts to different users. If the record type is selected for the user profile, and the record type field is added to the page layout associated with this profile, it displays on the detail and edit pages. The record type values on the Inventory_Monitoring_vod object must be the exact match to the record type value on the Inventory_Monitoring_Line_vod object. Adding custom record types is supported.


Adding record types to Inventory Monitoring integrates with Contracts functionality, and automatically filters Contracts on Inventory Monitoring to display only relevant Contracts for the selected record type. When the Contract_vod field is on the Inventory_Monitoring_vod object page layout, it lists all the Contracts associated with the Listing_vod record type. The Inventory_Monitoring_Type_vod multi-select picklist field on the Contract_vod object specifies which Inventory Monitoring record type(s) the Contract is associated with.

The Contract_vod lookup field on the Inventory_Monitoring_vod object can only look up a valid contract for which the account is a valid Contract Partner.

A valid Contract Partner is defined as:

  • Status_vod = Activated_vod AND Inventory_Monitoring_vod.DateTime_vod is >= Start_Date_vod AND Inventory_Monitoring_vod.DateTime_vod <= End_Date_vod

The picklist values in the Inventory_Monitoring_Type_vod must match the untranslated label of the Inventory Monitoring record type.

Custom Sort Code

The custom sort field allows the definition of a custom sort order on the Product Catalog.

The feature is activated by entering a value into the field Sort_Code_vod__c on the Product Catalog. The product list during order mass entry or Inventory Monitoring is then sorted first by sort code, then product name. The sort code is an alphanumeric field, allowing for clearly defined sort orders. This is available on Veeva CRM Online, iPad, and Windows.

Custom Fields

Customers can use Inventory Monitoring Lines page layouts that do not utilize any of the Veeva standard fields. This provides flexibility to allow customers to use their own custom fields exclusively.

At least one field must be populated on the Inventory Monitoring Lines for the record to be saved.

Multi-select picklists are not supported Online.

Sharing Rules

Users can define sharing rules in Inventory Monitoring. The following fields store Account information on Inventory Monitoring records to ensure it can be traced even when an Account is deleted:

  • Account_ID_vod__c
  • Account_Name_vod__c

Both fields are read only and only display in new orgs where the object relationship is changed.

Existing orgs need to manually change the relationship.

Inventory Monitoring Types Per Account

  • iPad
  • Browser (Classic)
  • Windows Tablet

Because users perform different monitoring activities for different pharmacies, one to-do list does not suit every situation. To help users track which items they need to monitor at which pharmacy, Inventory Monitoring activities can now be defined in advance and assigned to an Account. Only the relevant activities for the Account display, so users do not need to remember which activities belong to which store visit. Activities can be defined as distinct Inventory Monitoring (IM) types.

For example, Sarah Jones is on a Call. She opens her Account and sees the tasks for that Account: capture and tag a photo illustrating product placement, verify a promotional item is properly displayed, and ensure the pharmacy is selling key products.

Configuring Inventory Monitoring Types Per Account

  1. Grant FLS permission to the following fields on the Account object.
  2. Inventory_Monitoring_Type_vod
  3. Default_Inventory_Monitoring_Type_vod (optional)

  4. Grant access to the appropriate Inventory Monitoring Types for all relevant Accounts.
  5. If an IM Type is defined for an Account, a default IM Type must also be defined for that Account.

  6. Create corresponding IM Types as picklist values in the Account object.
  7. The values must be a literal match to the Inventory Monitoring record type. For example, if the IM record type name is Product_Placement_bma, the corresponding picklist value for Inventory_Monitoring_Type_vod is also Product_placement_bma.

  8. Define the Default_Inventory_Monitoring_Type_vod list of values.
  9. The default value must match an existing value in the Inventory_monitoring_Type_vod field.

  10. Assign available Inventory Monitoring Types and defaults to all relevant Accounts.

Using Inventory Monitoring Types Per Account

When a user creates an IM record, the IM Type is automatically defined. If multiple IM Types are defined for an Account, users can change the value on the header, if needed. A message displays alerting the user that items associated to the original IM Type will be cleared if the user proceeds.

Users can also select an IM Call Objective from a Call Report. If the objective is associated with an IM Type available for the Account, the IM Call Objective displays.