Dynamics 365 Field Service : Transfer inventory between warehouses

In Dynamics 365 Field Service, inventory management is a critical capability for organizations managing parts, tools, and consumables across multiple warehouses. One of the frequent business requirements is the transfer of inventory between warehouses—for example, moving parts from a central warehouse to a regional warehouse or directly to a technician's van (treated as a warehouse).
This blog will cover:
- Functional overview
- Technical process flow
- Configuration steps
- Key tables/entities and relationships
- Customization or automation possibilities
- Gotchas and best practices
Why Transfer Inventory?
Before diving into the technical details, let’s understand the business need.
- Replenish technician stock: Parts need to be moved from the main warehouse to technicians' vehicles (mobile warehouses).
- Optimize stock levels: Reduce overstocking or stockouts at certain locations.
- Fulfill customer demand: Transfer parts closer to the service location for faster repairs.
- Inter-warehouse balancing: Shift items between locations due to seasonal or project-based demands.
Dynamics 365 Field Service supports this using Inventory Transfer capabilities.
Functional Overview
In Field Service, warehouses are represented as Inventory Warehouses. Inventory items and quantities are tracked per warehouse using Inventory Adjustments and Inventory Transfers.
When performing a transfer:
1. Inventory levels in the source warehouse are reduced.
2. Inventory levels in the destination warehouse are increased.
3. A historical transaction record is created for audit.
This process also supports transfers to/from Mobile Warehouses (technician vans).
Technical Process Flow
Here’s how inventory transfer works under the hood:
Entities Involved
Transfer Workflow (System Logic)
When a user initiates a transfer:
Create a Transfer record (`msdyn_inventorytransfer`) with:
- Source Warehouse
- Destination Warehouse
- Transfer Date
- Owner (user initiating the transfer)
Add line items (Transfer Products) under this record:
- Product
- Quantity
- Unit
System validates:
- Availability of stock in source warehouse.
- Whether destination warehouse exists and is active.
On completion, system triggers:
- Decrement from source warehouse (`msdyn_productinventory.quantity`).
- Increment to destination warehouse (`msdyn_productinventory.quantity`).
Historical tracking of transactions via:
- `msdyn_inventoryjournal` (tracks all changes in inventory).
Backend Data Flow
User Action --> Create Inventory Transfer --> System Validates Quantities --> Adjust Source Warehouse Stock --> Adjust Destination Warehouse Stock --> Log Journal Entry
Configuration: Steps to Enable Inventory Transfers
Step 1: Define Warehouses
- Go to Field Service > Inventory > Warehouses.
- Create warehouse records for each physical location and mobile warehouse (technician van).
- Assign ownership or user/team.
Step 2: Enable Inventory Tracking
- For each product in Product Catalog, enable Field Service Inventory.
Step 3: Set Up Initial Inventory
- Use Inventory Adjustments to define starting stock levels.
Step 4: Create Inventory Transfer
- Navigate to Field Service > Inventory Transfers.
- Create a new record with source & destination warehouses.
- Add line items with product and quantity.
- Save & mark as Posted (or Completed) to execute transfer.
Developer/Technical Notes
APIs & SDK
Retrieve/Update Product Inventory
QueryExpression query = new QueryExpression("msdyn_productinventory");
query.Criteria.AddCondition("msdyn_warehouse", ConditionOperator.Equal, warehouseId);
query.Criteria.AddCondition("msdyn_product", ConditionOperator.Equal, productId);
Create Transfer Programmatically
- Use `msdyn_inventorytransfer` and child `msdyn_inventorytransferproduct` entities.
Plugin or Power Automate Scenarios
You may extend functionality with:
Plugin on Create of msdyn\_inventorytransfer
- Validate stock availability.
- Prevent transfer if stock is insufficient.
Power Automate Flow
- Send notification when stock is below threshold after transfer.
- Automate creation of transfer records from purchase orders.
Key Considerations & Gotchas
✔️ Stock Availability Check: The system does not automatically prevent negative inventory unless you enforce it via plugin.
✔️ Mobile Warehouses: Each technician’s van is treated as a warehouse, so assign ownership correctly.
✔️ Permissions: Ensure users have Field Service Inventory privileges in security roles.
✔️ Integration: For ERP systems (e.g., SAP, Oracle), inventory transfers may need to be synced using Dataverse APIs or Dual Write.
Advanced: Automating Transfers
You can automate inter-warehouse transfers using:
🔹 Power Automate: Trigger transfer when stock < threshold.
🔹 Azure Function + Webhook: Handle complex logic for ERP sync.
🔹 Custom Business Rule/Plugin: Auto-transfer replenishment stock to vans at day-start.
Final Thoughts
Dynamics 365 Field Service simplifies inventory management with out-of-the-box support for inter-warehouse transfers. Whether you’re moving parts between warehouses or replenishing a technician’s van, the system tracks it all for transparency and accuracy. For enterprises with ERP systems or advanced scenarios, you can extend this functionality using Power Platform, Azure Functions, or custom plugins.
Published on:
Learn moreRelated posts
Dynamics 365 Field Service – Tailor Copilot chat experience with Copilot Studio
We are announcing the ability of makers being able to customize their experience of the Copilot side pane by using the customization capabilit...
Fixed – Workflow must be in Published state (Dynamics 365 Field Service)
Recently, we got the following error while booking a resource in our schedule board. We earlier got the same error while trying to delete book...
Workflow must be in Published state while deleting the Bookings / Work Orders (Dynamics 365 Field Service)Workflow must be in Published state
Recently we were cleaning some of the work orders and related records in one of our environments. However when trying to delete the bookable r...
Mastering the Schedule Assistant in Dynamics 365 Field Service
In the dynamic world of field service management, assigning the right technician to the right job at the right time is both a science and an a...
Fix – The FnO Integration solution install failed. HCMScheduling and HCMSchedulingAnchor solutions must be installed. See Field Service documentation for details (Dynamics 365 Field Service)
While trying to install Finance and Operations from Field Service Settings, we might encounter the following error. “The FnO Integration solut...
Unlocking Scheduling Efficiency: A Deep Dive into Schedule Board & Schedule Assistant in Dynamics 365 Field Service
In today’s fast-paced service industry, scheduling the right technician at the right time is key to providing excellent customer service and m...
Study Guide for Exam MB-240: Microsoft Dynamics 365 Field Service Functional Consultant
Microsoft Dynamics 365 Field Service Functional Consultant (MB 240) Skills at a glanceConfigure field service applications (20–25%)Manage...
Dynamics 365 Field Service : Embed apps in Field Service
In today’s fast-paced field service environments, technicians and back-office staff need highly tailored tools to perform their work efficient...
Dynamics 365 Field Service
Dynamics 365 Field Service : Use Power Automate cloud flows to automate tasks and enhance Field Service
The field service landscape is evolving fast. Customers demand quicker responses, technicians need seamless access to information, and busines...