Power Platform Inventory Tracking Project
A small warehouse needs to know what it holds, what it sells, and when to reorder. This project combines Dataverse, Power Apps, Power Automate, and Power BI into one working solution that staff can use on a phone.
The Business Need
Staff currently count stock on paper and update a spreadsheet at the end of the day. Shelves run empty before anyone notices, and managers wait until Friday for a summary. The new system updates stock in real time, warns about low levels, and displays trends.
Warehouse staff Dataverse Manager
(Canvas app) (tables) (Power BI)
| | ^
scan item, enter qty ------> | |
| Stock Movement row |
| |-- Flow: update ----+
| | stock level |
| |-- Flow: low stock |
| | alert ---------> Teams message
Data Design
| Table | Key columns |
|---|---|
| Product | Name, SKU, Category, Unit Price, Reorder Level, Current Stock, Supplier |
| Supplier | Name, Email, Phone, Lead Time Days |
| Stock Movement | Product, Type (In or Out), Quantity, Date, Recorded By, Note |
Product has a many-to-one relationship with Supplier. Stock Movement has a many-to-one relationship with Product. Each movement records a change, and Current Stock reflects the running total.
Building the Canvas App
Home Screen
A gallery lists products with a search box and a category filter. A red tag marks items that sit below the reorder level.
Filter( Products, StartsWith(Name, txtSearch.Text) && (ddCategory.Selected.Value = "All" || Category = ddCategory.Selected.Value) )
Scan Screen
The barcode scanner control reads a product code. A formula finds the matching product and fills the form.
Set(gblProduct, LookUp(Products, SKU = BarcodeScanner1.Value))
Movement Screen
Staff choose In or Out, enter a quantity, and press Save. The app writes a Stock Movement row and blocks any Out quantity that exceeds current stock.
If(
rdoType.Selected.Value = "Out" && Value(txtQty.Text) > gblProduct.'Current Stock',
Notify("Not enough stock", NotificationType.Error),
Patch(StockMovements, Defaults(StockMovements),
{Product: gblProduct, Type: rdoType.Selected.Value, Quantity: Value(txtQty.Text)});
Notify("Movement saved", NotificationType.Success)
)
Automating With Power Automate
Update Stock Flow
The flow triggers when a Stock Movement row is added. A condition checks the type. In movements add the quantity to Current Stock, and Out movements subtract it.
Low Stock Alert Flow
After each update, the flow compares Current Stock with Reorder Level. A true result posts an adaptive card in a Teams channel and emails the supplier contact a draft reorder request for the buyer to review.
[Row added: Stock Movement]
|
[Get product row]
|
[Update Current Stock]
|
[Current Stock less than Reorder Level?]
yes | no |
[Post Teams alert] [End]
Reporting With Power BI
Connect Power BI to Dataverse and build a three-page report.
- Overview: cards for total items, total stock value, and low-stock count.
- Movement trends: line chart of In and Out quantities by week.
- Supplier view: bar chart of products and lead times by supplier.
A measure for stock value multiplies Current Stock by Unit Price for every product.
Stock Value = SUMX(Products, Products[Current Stock] * Products[Unit Price])
Security Setup
Create three security roles. Staff read products and create movements. Managers update products and suppliers. Administrators manage everything. Assign users to roles and test with one account per role.
Layman Example: A Home Pantry
A family notes every item that enters the kitchen and every item that leaves. A sticker on the flour jar says "buy more at one kilo". The project scales that habit: each movement leaves a note, and each alert reminds the family before the jar runs dry.
Launch Checklist
- Load existing products from a spreadsheet through a Dataverse import.
- Run a test week with two staff members.
- Fix delays and confusing labels reported by users.
- Package everything in a solution and deploy to production.
- Train the team in a thirty-minute session.
- Review the dashboard together after the first month.
Ideas for Growth
- Add photos of products with the camera control.
- Record purchase orders and link them to incoming stock.
- Add an approval for large stock write-offs.
- Publish a read-only customer availability page with Power Pages.
Key Takeaways
One small business problem can use all four products in harmony. Design the data first, keep the app simple, automate the routine alerts, and let the dashboard guide decisions.
