Context
Wick Weebs is a small manufacturing and retail business with 31+ SKUs across candles and wax sculptures. The business tracks raw material costs using a weighted average cost approach, which means inventory costing depends on timely and accurate purchase data from supplier invoices.
Each supplier purchase came in as an invoice that had to be opened, reviewed, and manually entered into a raw materials purchase log in Google Sheets. That purchase log fed directly into weighted average cost calculations, so if invoice entry lagged, the underlying cost data lagged too.
As the business grew, this manual process became the bottleneck.
The four invoices below illustrate the variety of formats the workflow needed to handle:
Problem
The issue wasn't just that invoice entry was time-consuming. It was that the whole costing process depended on manual work.
Every invoice had to be reviewed line by line. Supplier formats were inconsistent, and files came in as PDFs, screenshots, and images. That created three problems:
Every invoice meant more repetitive work — invoice number, vendor, item name, quantity, unit cost, line total — all entered by hand.
Weighted average costs were only as current as the last batch of invoices someone had entered. During busy periods, that meant stale cost inputs.
As purchases increased, the amount of manual work increased with it. There was no clean system connecting supplier invoices to the purchase log.
Goal: Build a workflow that could pull supplier invoices from Google Drive, extract the relevant cost data automatically, and push that data into the raw materials purchase log without manual entry.
Approach
I built the workflow in n8n using Google Drive, Mistral OCR, OpenAI, JavaScript transformation steps, and Google Sheets.
The workflow runs across three stages:
Three-stage n8n workflow: download & OCR, field extraction & data cleaning, and master list matching & purchase log output
Solution
What used to require manually opening invoices, reading each line item, and entering everything into the register is now handled end-to-end by the workflow.
Instead of treating invoice entry as an ad-hoc task, I now have a repeatable process that converts supplier invoices into structured purchase data automatically. That means the purchase log stays more current, and the data feeding inventory costing is much more reliable.
Controls & Validation: To ensure accuracy, I spot-check a sample of processed records against source invoices after every workflow run. Items that don't match the materials master list are flagged and labeled as “unmatched” which prompts me to manually review the invoice data.
Video demo of the workflow model output
Impact
This workflow eliminated roughly 8 hours of manual invoice entry per month.*
More importantly, it gave us a cleaner and more scalable way to maintain raw material cost data. Since that data feeds weighted average inventory costing, the workflow improved the quality and timeliness of the inputs behind inventory valuation and cost of goods sold.
* Tracked manually over three months before automation.