# A verification desk for every document your team scans

> See every scan next to the details pulled out of it, correct anything wrong, and let only verified numbers reach your ledger sheet.

- Workflow type: app
- Services: JigsawStack, Airtable, Google Sheets
- Categories: Operations, Finance
- Published: 2026-08-24

## What it does

- Turns your intake table into a work queue, with anything still unverified sitting at the top and filters for document type and who submitted it.
- Opens each document side by side with the details read from it: supplier, date, reference number, line items and total, every one of them editable.
- Highlights blank and low confidence fields so your eye goes straight to what needs checking, and keeps the raw text next to your corrections so you can see what changed.
- Writes your approved numbers back to the source record and adds one clean row to your ledger sheet, stamped with who verified it and when.

## What you'll need

- An Airtable base with an intake table where scanned documents arrive as attachments on records.
- A JigsawStack account, which is what reads the text and fields out of your images and PDFs.
- A Google Sheets spreadsheet to act as the ledger that verified rows land in.
- A few spare columns on the intake table to hold the verification status, the checked values and the name of whoever approved each document.

## Prompt

Build me a verification desk for the scanned paperwork my team collects. Reading documents automatically is only half the job: somebody still has to confirm the numbers before they hit our records. Documents land as attachments on records in an Airtable intake table, and this app is the surface where a person checks each one and approves it.

The main view is a queue built from the Airtable intake table with List Records. Anything not yet verified sorts to the top, and I can filter the queue by document type and by who submitted it. Each row shows a thumbnail or file name, the document type, the submitter, the date it landed and its verification status. Keep a running count of how many documents are still waiting pinned at the top of the page, so the team can see when the queue is clear.

Opening a document gives me a side by side review pane. On the left, render the scan or PDF itself from the Airtable attachment URL, large enough to actually read, with zoom. On the right, show the fields pulled out of it by JigsawStack Extract Data with Vision OCR: supplier, document date, reference number, line items and total. Every one of those fields is editable in place. Load the current record with Get Record when the detail pane opens, so I am always correcting the latest values rather than a stale copy.

A server handler runs the extraction by passing the Airtable attachment URL straight through to JigsawStack Extract Data with Vision OCR as the public url parameter. JigsawStack accepts either a url or a file_store_key and never both at once, so only ever send the url. Store the extracted values and the raw extracted text back onto the Airtable record with Update Record, so a document does not have to be read again every time someone opens it.

Flag any field that came back blank or with low confidence in a warning colour, so my eye goes straight to what needs checking. Keep the raw extracted text visible in a panel next to my corrections, so I can see exactly what the model read versus what I changed. When I edit a field, keep the original extracted value visible beside it rather than discarding it.

Verify is the main action. When I press it, write the corrected values back to the source Airtable record with Update Record, set its verification status to verified, and stamp it with my name and the current timestamp. Then append one clean row to our ledger spreadsheet with Google Sheets Append Values, carrying the supplier, document date, reference number, total, document type, the Airtable record id, who verified it and when.

Two rules matter. First, only verified rows ever reach the ledger: nothing writes to Google Sheets from the extraction step, from the re-read action, or from anywhere except Verify. Second, nothing is ever written twice. Before appending, re-read the record with Get Record and skip the append if it is already marked verified, and check existing ledger rows with Google Sheets Get Values for that Airtable record id so re-opening or re-verifying the same document never creates a duplicate line. If a document is already in the ledger, show that state in the UI instead of offering Verify again.

Give me a re-read this document action for bad scans. It runs Extract Data with Vision OCR again over the same attachment, replaces the extracted values and raw text on the record with Update Record, and leaves the document unverified so it comes back through the queue. Re-reading must never touch the ledger.

Anyone on the team can work the queue, and each ledger row records whichever person actually pressed Verify. Make the review pane quick to work through: keyboard friendly, with a way to jump straight to the next unverified document after verifying one, and an obvious indicator when the queue is empty.

## How to customize

- Change which fields show up on the review pane to match your paperwork, whether that is invoices, delivery notes, receipts or timesheets.
- Set how strict the flagging is, so only fields the reader was genuinely unsure about get highlighted for a closer look.
- Point the ledger at a different spreadsheet, or add your own columns such as cost centre, project code or approval limit.

## FAQ

### Can a document reach the ledger without someone checking it first?

No. The ledger row is only ever written when a person presses Verify. Reading a document, re-reading it, or simply opening it never adds anything to the spreadsheet, so every line in the ledger has a name and a time attached to it.

### What happens if I open or verify the same document twice?

Nothing gets written twice. Before adding a row, the app checks whether that document has already been verified and whether it already appears in the ledger. If it does, it shows you that it is already done instead of creating a duplicate line.

### What if the scan is too poor to read properly?

Every document has a re-read action. It runs the reader over the same file again and replaces the extracted details, leaving the document unverified so it comes back round the queue for checking.

### Does this work with PDFs as well as photos of documents?

Yes. Both scanned images and PDF attachments are supported, and the file is shown in the review pane exactly as it was uploaded so you can compare it against the extracted details.

### Can several people work the queue at the same time?

Yes. The queue shows a live count of how many documents are still waiting, and each ledger row records whichever person actually pressed Verify, so you always know who approved what.

Use this prompt in General Input: https://www.generalinput.com/prompts/a-verification-desk-for-every-document-your-team-scans