Downloads
Download the n8n workflow (JSON)
low-stock-reorder-approval-n8n-gemini.json · n8n workflow · 19 steps · starts with Every Morning at 9 AM · uses Google Sheets, Summarize, Google Gemini, Gmail · 29 KB
Import into n8n: Create Workflow, then the menu, then Import from File.
How to import it into n8n
- In n8n, create a new workflow.
- Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
- Open each node with a warning and connect your own account: the file carries no passwords or keys.
- Run it once with Test workflow, check the result, then switch it to Active.
What this workflow does
Stop running out of stock. Every morning this workflow checks your inventory in Google Sheets, finds every item at or below its reorder level, groups them by supplier and has Gemini write one clear purchase order email per supplier. You get a single approval email with every draft. Click approve and each supplier gets their order from your Gmail, and the sheet records the order date so the same item isn't ordered twice.
- Every Morning at 9 AM starts the run, and Get Inventory from Google Sheets reads every row of your Inventory sheet.
- Keep Low-Stock Items keeps items where Current Stock is at or below Reorder Level, that have a supplier email, and that were not ordered in the last
reorderCooldownDaysdays. - Prepare Order Line builds one line per item, and Group Items by Supplier combines them into one order per supplier (supplier emails are matched without case or spaces).
- Write Purchase Order with AI (Gemini) writes a short purchase order email that lists every item and quantity exactly, asks for price and delivery date, and gives your delivery address. If Gemini fails, Use Standard Order Email writes a fixed template instead. Prepare Order Email adds the subject and keeps the item list.
- Combine All Orders and Ask Owner to Approve Orders send you one Gmail with each supplier, the stock levels and the email draft, with "Send all orders" and "Do not send" buttons. It waits up to 12 hours.
- If you approve, Send Order to Supplier emails each supplier from your Gmail (replies come to you), and Mark Items as Ordered writes today's date into the Last Ordered column for every item whose email was sent. If one email fails, its items stay unmarked and come back tomorrow.
Who it is for
Retail shops, kirana and grocery stores, pharmacies, restaurants and cafés, salons, D2C brands, small warehouses and anyone who keeps stock in a spreadsheet and orders from suppliers by email.
What you need
- n8n (Cloud or self-hosted)
- A Google account with Google Sheets and Gmail
- A Google Gemini API key (the free tier is enough for a few suppliers a day)
The workflow, step by step
Step 1 · Read stock levels
Runs every morning and reads your inventory.
- Every Morning at 9 AM (Schedule)
- Workflow Configuration (Set)
- Get Inventory from Google Sheets (Google Sheets)
Step 2 · Find items to reorder
Keeps low-stock items and groups them by supplier.
- Keep Low-Stock Items (Filter)
- Prepare Order Line (Set)
- Group Items by Supplier (Summarize)
Step 3 · Write purchase orders
Gemini writes each supplier email, with a standard text as backup.
- Google Gemini Chat Model (Gemini model)
- Write Purchase Order with AI (Basic LLM Chain)
- Use Standard Order Email (Set)
- Prepare Order Email (Set)
Step 4 · Get your approval
One email with every order. Approve or decline.
- Combine All Orders (Aggregate)
- Ask Owner to Approve Orders (Gmail)
- Did Owner Approve? (IF)
Step 5 · Send and update
Emails each supplier and fills in Last Ordered.
- Get Approved Orders (Set)
- Split Orders by Supplier (Split Out)
- Send Order to Supplier (Gmail)
- List Ordered Items (Set)
- Split Ordered Items (Split Out)
- Mark Items as Ordered (Google Sheets)
Setup
- Download the JSON below and import it in n8n (Create workflow > ⋯ > Import from File).
- Create a Google Sheet with a tab named Inventory and these columns:
SKU,Product,Current Stock,Reorder Level,Reorder Qty,Unit,Supplier Name,Supplier Email,Last Ordered. - Add Google Sheets OAuth2, Gmail OAuth2 and Google Gemini (PaLM) API credentials, and pick your spreadsheet in Get Inventory from Google Sheets and Mark Items as Ordered.
- Open Workflow Configuration and set your business name, your email, the delivery address, the cooldown in days and the email tone.
- Keep Current Stock up to date (by hand, from your POS export, or another workflow). Set the time zone in the workflow settings, then activate the workflow.
- Test it: add two rows with Current Stock below Reorder Level and your own address as Supplier Email, then run manually. Expect one approval email. After you approve, a purchase order arrives at your address and Last Ordered fills in.
How to customise
- The sample prompt and emails are a starting point, not a fixed format. Rewrite them for your business.
- Write Purchase Order with AI: order wording, or just
emailTone - Use Standard Order Email: fallback order
- Ask Owner to Approve Orders: approval email
- Every Morning at 9 AM: run time
- Keep Current Stock updated from your POS or another workflow
- Change the run time in Every Morning at 9 AM, for example twice a day for fast-moving stock.
- Change
reorderCooldownDaysto match your usual delivery time, so items in transit aren't ordered again. - Write orders in Hindi or another language by changing
emailTone(for example "polite, in simple Hindi"). - Send orders on WhatsApp instead: replace Send Order to Supplier with a WhatsApp Business Cloud node and add a supplier phone column.
- Approve per supplier instead of all at once: put a Loop Over Items node around the approval step.
Why Gemini
Gemini 3.1 Flash-Lite (models/gemini-3.1-flash-lite, temperature 0.3). The task is short, structured business writing from a fixed list: no reasoning, tools or long context. It runs every day for every supplier, so cost and speed matter most, and Gemini's free tier covers a small shop at no cost. The risk in this task is changing a quantity, which the prompt forbids, the low temperature reduces, and the owner approval step catches. Claude would write slightly more polished emails, but that does not justify the extra cost for a daily purchase order, and OpenAI's small models do the job about as well but have no free API tier. Gemini also writes well in Hindi and other Indian languages if a supplier prefers that.
Guardrails
- Self-hosted n8n: Set
WEBHOOK_URLto your public n8n URL, or the approval buttons won't open.
Troubleshooting
- Credential errors after import: imported workflows never include credentials. Open each node marked red and select your own account.
- Nothing runs on its own: test runs only fire once. Activate the workflow so the trigger keeps running.
- Odd times or dates: set your timezone in Workflow Settings.
Want the members-only resources too?
A free account unlocks them all, including the ones shared in DMs.

