Receive documents
Place both files under the same shipment and confirm they are ready to read.
> emit document.uploaded
Now in public preview
Serverless TypeScript agent that extracts, cross-checks, and prepares resolution actions for shipment discrepancies through durable Inngest orchestration.
Follow the fan-in extraction and discrepancy pipeline as each document becomes structured data, then a shipment-level reconciliation result.
The highlighted stage shows the current durable step.
Place both files under the same shipment and confirm they are ready to read.
Find parties, quantities, weights, dates, and item references using typed schemas.
Fan in the document set, claim a set hash, and compare shared shipment facts.
Clear the shipment or prepare a human-approved action for the discrepancy.
Built on Vercel and Inngest so long-running LLM extraction, fan-in reconciliation, and human approval pauses never depend on one held request.
export const reconcileShipment = inngest.createFunction(
{ id: "reconcile-shipment", debounce: { period: "60s" } },
{ event: "document.extracted" },
async ({ event, step }) => {
const required = await step.run("expected-set", loadExpectedSet);
const ready = await step.run("check-complete", checkComplete);
if (!ready) return { status: "waiting" };
const fresh = await step.run("dedupe", claimSetHash);
if (!fresh) return { status: "already-done" };
return step.run("compare", reconcile);
}
);
Run the sandboxed sample set to watch extraction, reconciliation, and the review proposal update in place.