Document extraction demos are almost always run on the best-case document: a clean, digitally-generated PDF with a consistent layout. Real intake queues are not that. They're phone-camera photos of paper forms, scanned faxes, PDFs where the table borders didn't render, and the same form filled out by hand in three different formats depending on which branch it came from. Building for the demo case and shipping it is how these projects fail in week two.
What actually shows up in production
- Rotated or skewed scans, where a naive OCR pass reads the page sideways and returns garbage.
- Multi-page documents where the important field is on page 3, not page 1.
- Handwriting mixed with print, where confidence should visibly drop, not silently guess.
- Forms that changed layout six months ago, so your few-shot examples no longer match what's arriving.
None of these are edge cases in the sense of being rare. In a real intake pipeline, they're a meaningful share of daily volume. If your extraction pipeline isn't built to flag them, it's not failing occasionally, it's silently mis-extracting a steady percentage of everything that comes through, and nobody downstream knows to check.
Confidence scoring is not optional
The fix isn't a smarter model, it's a pipeline that knows when to doubt itself. Every extracted field should carry a confidence signal: does the value look like the expected type, is it within a plausible range, did the model itself flag uncertainty. Low-confidence extractions get routed to a human review queue instead of straight into the system of record. That single design decision is what separates a pipeline you can trust unattended from one that needs someone spot-checking it forever.
Build the review queue before you need it
Teams often skip the human review step to ship faster, planning to add it later if accuracy turns out to be a problem. It always turns out to be a problem, and by then the bad data is already downstream in a system that trusts it. Build the low-confidence queue on day one, even if it's mostly empty at launch. It's the safety valve that makes the rest of the automation defensible.
Related reading
Approval workflows in Google Forms and Sheets, without an add-on
A request comes in, the right person approves it with one click, nobody has to chase, and there is a record. You can build that inside Google Workspace with a Form, a Sheet and Apps Script. Here is the design, and the five things that break once real volume arrives.
Google Form → Apps Script → Approver → Decision → Sheet
AI shopping agents can now buy from your store. Is your data ready?
In September Shopify switched checkout on for AI shopping agents. An agent does not see your homepage; it reads your product data and believes it. Here is what changed, where stores lose the sale, and the four checks to run before your first agent order.
Buyer asks → Agent → Product data → Checkout → Buyer approves → Your fulfilment
What changed in Google Workspace this September, and what it means for your automations
Workspace Studio flows can now run your own Apps Script steps and call webhooks, Sheets doubled its cell limit to 20 million, Apps Script data regions went GA, and Gemini connects to QuickBooks, HubSpot and Salesforce. A working read of 4 announcements.
Studio flows → Sheets → Apps Script → Gemini
Continues · Got a workflow like this?
