How to Update SharePoint Inventory Using Microsoft Forms and Power Automate
Question details
The user needs to configure a Power Automate workflow that takes multiple products and quantities submitted via a Microsoft Forms incident report and updates the corresponding inventory counts in a SharePoint list.

- Product
- Microsoft Forms, Power Automate, SharePoint
- Device & OS
- not provided
- Scenario
- Automating inventory tracking by updating stock levels in SharePoint based on consumed quantities reported in a multi-item Microsoft Form submission.
- Observed behavior
- The workflow must process each selected product individually to update its stock quantity, rather than handling only a single item per form submission.
Ensure you have owner or edit permissions for both the Microsoft Form used to collect the data and the target SharePoint list where your inventory quantities are tracked.
Create a Power Automate Flow Using 'Apply to each'
Set up a flow that triggers on a new form response, parses the multiple products selected, and loops through each to update the SharePoint list records accordingly.
Because Microsoft Forms submits multiple-choice responses as a single string array, you must parse this data in Power Automate so the workflow can process each selected product individually.
Log into Power Automate, select 'Create', and choose 'Automated cloud flow'. Select 'When a new response is submitted' (Microsoft Forms) as your trigger and choose your incident report form from the Form ID dropdown.
Add a new step and search for 'Get response details'. Select it, enter the same Form ID, and insert the 'Response ID' from the dynamic content menu.
Add a 'Parse JSON' action to format the string array from the product selection field in your form into a valid JSON array that Power Automate can iterate through.
Add an 'Apply to each' control block and select the array output from your Parse JSON step as the input. Inside this loop, add a 'Get items' (SharePoint) action, and configure an OData filter query to find the specific inventory item matching the current product's name.
Still inside the loop, add an 'Update item' (SharePoint) action. Map the List ID and Item ID. Set the new quantity by subtracting the reported consumed amount from the current stock value using an Expression: sub(variables('CurrentStock'), variables('ConsumedQuantity')).

Manage Data and Spreadsheets with WPS Office
While Power Automate and SharePoint are cloud automation tools requiring Microsoft 365 licenses, you can manage your raw data, local inventory sheets, and offline trackers completely free using WPS Office. It provides a lightweight, highly compatible alternative to Microsoft Office.
- 1. Download and Install: Get WPS Office from the official website and follow the installation prompts.
- 2. Open Your Spreadsheets: Open your existing Excel inventory tracking files directly in WPS Spreadsheet.
- 3. Edit and Save Seamlessly: Update your trackers and save them in standard formats without losing any formatting or formulas.

Frequently Asked Questions
Why is Power Automate treating my multiple-choice form answer as a single string?
Microsoft Forms outputs multiple-choice answers as a single string (e.g., '["Item A","Item B"]') rather than a true array. You must use a 'Parse JSON' action or a specific expression function in Power Automate to convert it back into an array before passing it to a loop.
How do I subtract values in Power Automate?
You can subtract values by using the sub() expression in the Expression builder. The syntax is sub(value1, value2), which subtracts value2 from value1.
Can I update multiple SharePoint list items at once?
Yes, by wrapping your SharePoint 'Update item' action inside an 'Apply to each' loop in Power Automate, you can update multiple distinct records sequentially based on an array of inputs from your trigger.




