On this page
A sample request template should collect the requested product and variant, quantity, intended use, and delivery contact, then connect each approval and shipment to the same request ID. The files below give a product team a usable starting point for that workflow, including partial-shipment records.
Download the Excel workbook · Request items (CSV) · Reviews (CSV) · Example rows (CSV) · Shipment items (CSV) · Shipments (CSV) · Application field specification (JSON)
What to collect on the request form
Ask the applicant for their name, work email, organization, intended use, requested-by date, product or SKU, variant, and quantity. Collect a delivery address only when the request is ready for review, and restrict it to staff who handle fulfillment. Give every submission a stable request ID such as SR-1042; use that ID in review and shipment records instead of matching rows by a person's name.
A request can contain multiple products, so keep the submission header separate from its item rows. Store one row per requested SKU and variant in request_items. This lets a reviewer reduce or approve one line without rewriting the original request.
| Request ID | SKU | Variant | Requested quantity | Approved quantity |
|---|---|---|---|---|
| SR-1042 | MUG-12 | Sand / 12 oz | 8 | 6 |
| SR-1042 | TEE-04 | Navy / M | 2 | 2 |
The quantities above are synthetic. The request totals 10 units; the reviewer approves 8. Preserve both values so the fulfillment team can see what changed.
Review the request without losing its original version
A reviewer records a decision, decision time, reviewer ID, and reason in a separate reviews log. If an applicant changes a request after review, create a new request version or reopen it with an auditable change record. Do not silently replace the approved quantity: the shipment limit must refer to the version the reviewer approved.
Use explicit states such as submitted, needs_information, approved, partially_shipped, shipped, and declined. Approval permits fulfillment of that version’s quantities. Count shipped quantities only after dispatch; a created shipping label remains pending.
Record one or more shipments against approved items

AI-generated editorial illustration.
Create one shipments row for each dispatch and one shipment_items row for each product in that dispatch. For SR-1042, a first shipment could send four MUG-12 units and one TEE-04; a second could send the remaining two mugs and one tee. Sum shipped quantity by request item and block any amount above its approved quantity.
Keep tracking number, carrier, dispatch date, delivery status, and fulfillment notes on the shipment record. Treat carrier tracking as manually entered unless a separately verified connector is configured.
Use the included template files
sample.csv contains synthetic request headers. The related files request_items.csv, reviews.csv, shipments.csv, and shipment_items.csv show how to keep products, review decisions, and partial dispatches linked. form-template.json describes the applicant form and internal review fields. These are original starter designs; adapt required fields, retention rules, and staff access to your operation.
Build a request tracker in Atoms
Choose Atoms Cloud or connect one Supabase project to the Atoms project; Atoms documents them as alternative backend choices. The connection must be used by the app’s save and readback flow, then checked after a refresh against the selected database. Supabase row-level security can express access policies; write and test policies for the actual roles and tables.
Keep applicant access limited to their own request and status. Only authorized fulfillment staff should see delivery addresses. Enforce these rules on the server and test with separate applicant and staff accounts. A hidden address field does not prevent an unauthorized database read.
Atoms backend connection guide · Supabase access policies
Build prompt
Copy the full prompt into your Atoms project chat and confirm the resulting tables, permissions, and save/readback behavior before using real applicant data.
Copy the build brief and use it to create your version in Atoms.
For importing an existing request tracker, use the spreadsheet-to-web-app checklist.