Product Block 11 · Sellable today
AI Order Desk
Turn fax, email, photo, and PDF orders into clean production packets.
Best fit: Tracy Bakery, Panna To Go, wholesalers, distributors, caterers, printers, and any SMB where orders arrive as messy attachments.
AI Order Desk — build it without writing code
Drop the prompt below into Claude Code or Codex. The agent picks a wholesale-orders prospect (Tracy Bakery is the canonical first target), builds the AI Order Desk with one intake channel, generates a fake fax/photo order demo, and produces a 60-second Loom showing the messy-input → clean-packet flow.
You provide
You provide: (1) the prospect (default: Tracy Bakery), (2) which intake channel to start with (fax / email / contact form / photo upload), (3) the production-format example they'll send to the kitchen (paste a sample if available; otherwise use the wholesale-bakery template).
You get back
You get: a hosted intake endpoint, a fake-data ingestion that produces a clean order packet email, a 60-second Loom of submit→packet→email, and a draft cold pitch with the demo URL.
Runtime & cost
Roughly 90 minutes wall-clock. ~$3-5 in Claude Vision tokens during testing.
You are building an AI Order Desk (Block 11 in the Cafecito AI new-hire playbook). Full reference at https://cafecito-ai.com/new-hire/blocks/11-ai-order-desk. Read it. Use plan mode. Stop at every [GATE].
INPUTS YOU NEED FROM THE HUMAN (ask before doing anything else):
1. Prospect (default: Tracy Bakery — wholesale order line via fax)
2. Intake channel for the demo: fax / email / contact form / photo upload (start with ONE)
3. Sample production-order format their kitchen uses (paste it; if not available, use a generic wholesale-bakery template)
ENVIRONMENT (verify):
- Working dir: /home/eratner/cafecito-ai
- Cloudflare account: f7a9b24f679e1d3952921ee5e72e677e
- Reference: /home/eratner/cafecito-ai/asp-pool-season/ (intake → ops packet pattern)
SECRETS TO CONFIRM:
- ANTHROPIC_API_KEY (with claude-opus-4 vision)
- RESEND_API_KEY
THE PLAN:
STEP 1 — RESEARCH + FORMAT (10 min)
- Pull prospect site. Identify their wholesale customer types, common SKUs, delivery cadence.
- Wait for the production-format sample. Capture the fields: customer name, store, delivery date, items + qty, special notes, delivery address.
[GATE 1 — show parsed format + 3 likely customer-side input variations (fax, email, photo), ask "proceed?"]
STEP 2 — SCAFFOLD WORKER (15 min)
- Create /home/eratner/cafecito-ai/orderdesk-<prospect-slug>/.
- Worker handles: POST /intake (multipart for photo/PDF uploads, JSON for form/email), GET /packet/:id (rendered packet), GET /admin/dashboard.
- Bindings: D1 ORDERS_DB, R2 ORDERS_R2 (for original uploads).
[GATE 2 — show worker.js + D1 schema, ask "deploy scaffold?"]
STEP 3 — VISION / EXTRACTION PROMPT (10 min)
- Write the Claude Vision prompt: takes a fax PDF or photo or email body → outputs structured JSON matching the production format from Step 1.
- Add missing-field detection ("no delivery date — defaulted to next-Tuesday-AM, ask to confirm").
- Output format: line items with qty + SKU mapping where possible.
[GATE 3 — show prompt + sample output on a test fake order, ask "extraction looks right?"]
STEP 4 — PACKET RENDERING (15 min)
- HTML template that matches the prospect's production-order format.
- Renders to email-ready HTML + plain-text fallback.
- Resend integration: sends to operations email + CC the human for testing.
[GATE 4 — show rendered packet email preview, ask "matches their kitchen format?"]
STEP 5 — DEPLOY + 5 SAMPLE-ORDER TEST (15 min)
- Deploy via OAuth wrangler.
- Submit 5 fake orders: a clean fax, a messy fax with handwriting, a photo of a paper list, an email body with a pasted spreadsheet, an email with a PDF attachment.
- Verify each: extraction accuracy, missing-field flags, packet rendering, email delivery.
[GATE 5 — confirm 5/5 packets clean, ask "ready to record demo?"]
STEP 6 — RECORD THE DEMO LOOM (5 min, human action)
- Tell human: "Pick the messiest of the 5 test orders. Submit it to the form. Show the packet email landing in the inbox. Save the URL."
STEP 7 — DRAFT THE COLD PITCH (5 min)
- Email subject: "Saw your wholesale order line is still fax. Here's what mine does in 25 seconds."
- Email body: 4 sentences, lead with their specific intake channel observation, attach the Loom, name $2.5k pilot / $500/mo, one yes/no close.
[GATE 6 — show the draft, ask the human to send manually]
STEP 8 — SHIP THE SUMMARY
- Single-line: "[BUSINESS] order desk live at [URL] · 1 intake channel · demo: [LOOM] · pitch sent."
- Append to /home/eratner/cafecito-ai/orderdesk-shipped.md.
DONE.
GUARDRAILS: ONE intake channel only in week 1. Owner-approval gate ON before any packet ships to real ops. Cost ceiling: $5 in Vision.
01Stack▾
- Cloudflare Workers
- Hono.js
- R2 for uploaded orders
- D1 for order records
- Claude Vision
- OpenAI API for evals/fallback extraction
- Resend optional
03Day-1 plan▾
A real prospect. A real demo. A real outbound message — all before 5pm.
-
09:00-09:30
Pick one messy-order prospect.
Start with Tracy Bakery or a wholesale food operator. Find evidence of B2B ordering: catering, wholesale, custom cakes, corporate accounts, or phone/email ordering.
-
09:30-10:15
Create fake order samples.
Generate three fake PDFs/images: clear order, incomplete order, and messy handwritten/photo order. No real customer data.
-
10:15-12:00
Build upload and extraction.
Worker route uploads to R2, sends file/text to Claude Vision or Claude API, normalizes customer, due date, items, quantities, modifiers, missing fields, and confidence.
-
12:00-13:00
Build ops packet.
Render a clean internal view: extracted line items, warnings, customer followup draft, and one-click mark reviewed.
-
13:00-15:00
Deploy the demo.
Deploy to workers.dev with fake samples preloaded. The demo path must work in under 60 seconds from upload to clean order packet.
-
15:00-17:00
Make the wedge call.
Ask how orders arrive today, what gets missed, and whether a 2-day paid pilot that handles only email/PDF orders would be worth trying.
04Best practices & gotchas▾
-
Do not promise full ERP replacement.
Why: The wedge is intake cleanup before the existing ops process, not a full operational migration.
-
Show missing information loudly.
Why: Owners trust extraction more when the system admits uncertainty and asks for human review.
-
Use fake order data until paid pilot.
Why: Real customer orders can include private data, prices, addresses, and delivery instructions.
-
Demo the before/after, not the model.
Why: The buyer cares that a messy order becomes a usable packet, not which vision model handled it.
05Prompts (copy-paste)▾
Drop these into Claude Code. Replace the [BRACKETED] fields with the prospect's details.
Normalizes messy order text/images into a reviewable JSON packet.
Extract this B2B order into strict JSON.
Fields:
- customer_name
- customer_phone
- customer_email
- requested_date
- delivery_or_pickup
- line_items: name, quantity, unit, modifiers, notes
- missing_fields
- confidence_0_to_1
- customer_followup_message
- ops_summary
Rules:
- Use null when unknown.
- Never invent quantities, dates, or customer details.
- Put uncertainty in missing_fields.
- Write ops_summary in plain language for a production manager.
Builds the first fake-data demo route.
Build a Cloudflare Workers + Hono demo called ai-order-desk.
Routes:
- GET / shows three fake order samples and an upload form.
- POST /orders uploads a file to R2 and creates a D1 order row.
- GET /orders/:id shows extraction, missing fields, customer followup draft, and ops packet.
- POST /orders/:id/review marks reviewed.
Use ANTHROPIC_API_KEY and OPENAI_API_KEY from Wrangler secrets.
Use fake data only.
Deploy with wrangler and print curl tests.
Turns public evidence into a buyer-ready wedge call.
Create a one-page call brief for [COMPANY].
Public evidence:
- Website: [URL]
- Ordering signs: [paste]
- Likely buyer: [name/title]
Output:
1. one-sentence pain hypothesis
2. cold opener
3. five questions about order intake
4. 60-second AI Order Desk demo path
5. paid pilot ask
6. followup email
06Selling script▾
Discovery question (ask this first)
"When an order comes in by email, PDF, photo, or fax, who turns it into something production can actually use?"
The frame
Most order mistakes do not come from bad employees. They come from messy intake: missing dates, unclear quantities, custom notes, and retyping under pressure. The first win is not replacing the team. It is giving them a clean packet and a missing-info list before the mistake hits production.
The demo play
Upload a messy fake order with their business name and product names. Show the extracted line items, missing fields, customer followup draft, and ops packet in under one minute.
Objections
-
"Our orders are too custom."
"That is exactly why this starts as a review desk. It does not auto-submit. It extracts what it can, flags what it cannot, and gives your team a cleaner starting point."
-
"We already have people doing this."
"Good. This is for those people. It removes retyping and catches missing details before they become callbacks or remakes."
-
"I do not want customer data in a demo."
"Agreed. The demo uses fake data. A paid pilot starts with scoped examples and a data boundary before anything real touches the system."
The close
"Let me run a 2-day paid pilot on one intake channel only, email/PDF orders. $2,500 setup. If it does not save your team retyping and catch missing details in week one, we stop there."
07Pricing notes▾
Anchor on remake cost, rush labor, and customer callbacks. Start narrow: one intake channel, one location, fake data demo first. Monthly covers hosting, extraction tuning, review queue, and support.