Sample Trail is a sample management workflow for the agri-food and soft-commodities trade - coffee, cocoa, grain, sugar, cotton - where a lot is bought and sold on the strength of a sample somebody has to approve. Pre-shipment sample, arrival sample, subject to approval: the clause sits in the contract, the workflow for honouring it usually does not. It runs that approval decision from dispatch to verdict, on the phone the person is already holding. A sample leaves with a QR code that opens a prefilled form. The receiver photographs its condition on arrival and the clock starts. The evaluator sends a voice note or a photograph of the paper sheet - a cupping form, a cocoa cut test, a grading note - and it comes back as structured fields. A quality manager approves, rejects or calls for a re-sample, and that decision is written back with a name, a timestamp and a reason.

It is a quality-approval workflow, not a LIMS, not a traceability system, and not a module inside your CTRM - it sits beside one. It does not track where a sample physically is: there is no barcode estate, no scanner and no app to install - the QR opens the camera already on the phone, and that is the whole intake surface. What it keeps is the decision record: which sample, against which contract specification, judged by whom, and on what evidence. That is the part someone has to defend six months later to a counterparty, an auditor or a GAFTA or FOSFA arbitration panel, and the part that is usually missing.

Mobile-first for a plain reason: samples in this trade are handled by graders, cuppers and warehouse staff in sample rooms, on quays and at origin, where the device to hand is a phone, not a desk. Intake runs on an n8n form trigger and the conversation on Telegram, both chosen because they need no vendor approval and no paid account, so a fork actually runs for whoever installs it. State lives in a sheet, one row per sample, and moving it to Postgres is a one-node change. A model does exactly two jobs - turning a voice note or a photographed cupping sheet into named fields, and drafting the covering text of a rejection. It never issues the verdict. That comes from a deterministic comparison against the contract specification, because someone defends it later. MIT licensed.

Complete. The lifecycle runs end to end, from dispatch through evaluation to verdict, and the workflows ship with it.

The lifecycle is published as an n8n template: Route commodity sample quality approvals. Import it, point it at your own sheet and Telegram, and the sample leaves with a QR code the same afternoon.