runbookify
← All plans
Procurement & Purchasing / Receiving & Goods Receipt

Goods Receipt (GRN) Logger

Receiving staff pull up an open PO, record what physically arrived line by line — quantity, condition, lot/serial, photos — and a supervisor approves the goods receipt note before it posts as a receipt of record and feeds the three-way match.

IntermediateA weekendBuilds onNext.jsSupabaseResend
What you'll build

A web tool where a receiving clerk selects an open PO, records the received quantity, condition, and any lot/serial per line against a packing slip, and the tool flags over- and under-receipts versus what was ordered. A supervisor reviews and approves the GRN — the hard human gate — and only then is it committed with a GRN number, the open quantity is reduced, and the tool produces a CSV for the ERP plus a printable GRN PDF.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A Supabase account (free)
  • A Vercel account (free)
  • A Resend account (free)
  • An open-PO export (CSV or Google Sheet is fine)
  • Claude Code or any AI coding agent

The problem this kills

A truck backs up to the dock and the clerk does what they always do: scribbles quantities on the packing slip, maybe snaps a photo of a crushed carton, and drops it in a tray for someone in procurement to "deal with later." By the time the invoice shows up, nobody can say for certain how many actually arrived, which lines were short, or whether that damaged pallet was ever recorded. The three-way match — PO versus receipt versus invoice — stalls, payments get held or overpaid, and the supplier dispute drags on for weeks.

The root problem is that the receipt of record is being created on paper, at the noisiest moment of the day, with no checks. Did more arrive than was ordered? Did the same delivery get logged twice? Was anything received against a PO that's already closed? On paper, none of that is caught until it's expensive.

This is exactly the kind of rules-based, high-stakes data capture that a small internal tool does far better than a clipboard — and you do not need to be a developer to build it.

What you'll build

A simple internal web tool for your receiving dock. A clerk logs in, pulls up an open PO (with its expected lines — item, ordered quantity, and how much has already been received), and records what physically arrived: received quantity, condition (good / damaged / short / over), and a lot or serial number where you need one. They can attach photos of the packing slip or damage. As they enter quantities, the tool instantly flags each line as an over-receipt or under-receipt versus what was ordered, and blocks receiving against any PO that's closed or cancelled.

When the clerk submits, the goods receipt note is a draft — not yet a receipt of record. A supervisor reviews it on one screen, pays special attention to over-receipts and damaged goods, applies any over-receipt tolerance or override, and clicks Approve. Only then does the tool commit the GRN with its own number, reduce the remaining open quantity on each PO line, and produce a CSV for your ERP plus a clean GRN PDF for your records and the supplier.

What's inside the Implementation Plan

The plan is a single file you paste into an AI coding agent. It opens by interviewing you about your business — how your dock receives today, which ERP or system holds your POs, exactly how a PO line is identified, whether you track lot or serial numbers, your over-receipt tolerance and who can override it, your typical and peak delivery volumes, and your nastiest edge cases — and then tailors the data model, the validations, and every later step to your answers. This is a build shaped around your dock, not a generic template.

From there it walks the agent through the database schema, importing open POs, the clerk's receiving screen with live over/under flags and photo capture, the supervisor's review-and-approve gate, committing the GRN with a number, and the ERP CSV plus GRN PDF export. Every step ends with a ready-to-copy prompt. Because the whole thing runs on open POs in (CSV or Google Sheet) and GRN CSV out, you can build and use it this weekend even with no live connection to your ERP.

The governance it includes (this is the point)

This creates a receipt of record that feeds the three-way match, so it's built like it matters: login so only your receiving team can use it, row-level security so each site only ever sees its own organization's POs and receipts, and a complete audit trail of every draft, edit, approval, and export — who did what, and when. Nothing becomes final on entry: the GRN is a draft until a supervisor approves it, and that approval is the hard human-in-the-loop gate — especially for over-receipts and damaged goods. A duplicate guard on the PO line plus delivery reference (packing slip) means the same delivery can't be received twice, and receiving is blocked against closed or cancelled POs.

Who it's for

Receiving clerks and warehouse leads who today scribble deliveries on paper or fire off an email to procurement — and the supervisors who get stuck untangling match disputes weeks later. If you can describe how a delivery gets checked in at your dock, you can build this.

You've got this — open the plan, paste the first prompt, and let it interview you about your dock.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.