How it works
Follow these 4 simple steps to start automatically updating Shopify inventory from CSV files on your FTP server
Fetch CSV File
Fetch CSV File
Loop
Loop
Custom Code (SKU Lookup)
Custom Code (SKU Lookup)
Set Inventory Level
Set Inventory Level
Make it your own
Customize this workflow even further:
Send completion reports
Add steps after the loop ends to count successful updates, list any SKUs that weren't found, and send a summary email or Slack message showing how many products were updated and any errors encountered.
Archive processed files
Enable the "move_file" option in the FTP trigger settings to automatically move CSV files to an "archive" or "processed" folder after they're imported, preventing duplicate processing and maintaining a history of imports.
Handle inventory adjustments instead of sets
Modify the workflow to retrieve current inventory levels first, calculate the difference between CSV and current quantity, and use "adjust" instead of "set" to create an audit trail of inventory changes rather than absolute updates.
Support multiple locations
Add a "Location" column to your CSV and modify the custom code to map location names to IDs, enabling a single CSV to update inventory across multiple warehouses or retail locations.
Frequently asked questions
What happens if a SKU in the CSV doesn't exist in Shopify?
The custom code step logs that the SKU wasn't found and stops processing that row without updating anything. The workflow continues to the next CSV row. Check your MESA logs to see which SKUs failed to match if you suspect missing products.
Can I use this to update inventory at multiple locations?
This workflow updates inventory at a single location specified in the "Set Inventory Level" step. To update multiple locations, either run separate workflows configured for each location, or add a "Location" column to your CSV and modify the logic to use that value instead of a hardcoded location ID.
Does this workflow adjust inventory or set it to an absolute value?
The workflow uses Shopify's "set" endpoint, which sets inventory to the exact quantity from the CSV regardless of the current value. If your CSV says "10" and Shopify currently shows "15," it will change to "10." This ensures your CSV is always the source of truth but doesn't create an adjustment audit trail.
What is a template?
Templates are pre-made workflows by our team of experts. Instead of building a workflow from scratch, these have all the steps needed to complete the task.
Can I personalize a template?
Yes! Every step can be customized to meet your exact requirements. Additionally, you can even add more steps and make it more sophisticated.
Are templates free?
Yes! Our entire library containing hundreds of templates are free to use and customize to your exact needs.
Ready to start automatically updating Shopify inventory from CSV files on your FTP server?
Join thousands who've automated their work and saved an average of 3.5 hours every week.
Use this template — It's free7-day free trial • 13 min setup • Cancel anytime