Product Block 14 · Sellable today

Customer Status Portal

Replace status-check calls with a simple portal customers can trust.

Deploy: 2-3 days $4,000 setup $750/mo
Live demo Try the demo → https://status.cafecito-ai.com/

Best fit: Sign shops, custom fabricators, contractors, agencies, printers, legal/admin services, and any company with multi-step jobs.

⚡ Self-bootstrap · paste into Claude Code or Codex

Customer Status Portal — build it without writing code

Drop the prompt below into Claude Code or Codex. The agent picks a sign shop / millwork / repair business that gets "where is my job?" calls, builds a status portal with their last 5 fake jobs preloaded, generates a 60-second Loom showing the customer self-serve flow, and produces the cold pitch.

You provide

You provide: (1) the prospect (sign shop / millwork / repair / property mgmt — Saul Signs and Signscenter are canonical first targets), (2) decision-maker email, (3) 5 sample job records (real or synthetic) with status updates we can render.

You get back

You get: a hosted status portal with searchable tracking IDs + photo upload trail + AI-written staff notes, a Loom of the lookup flow, and a draft cold pitch with the demo URL.

Runtime & cost

Roughly 90 minutes wall-clock. ~$2 in Claude tokens.

📋 Copy the entire block below into Claude Code (`/plan`) or Codex
You are building a Customer Status Portal (Block 14 in the Cafecito AI new-hire playbook). Full reference at https://cafecito-ai.com/new-hire/blocks/14-customer-status-portal. Read it. Use plan mode. Stop at every [GATE].

INPUTS YOU NEED FROM THE HUMAN (ask before doing anything else):
1. Prospect — sign shop, custom millwork, repair shop, property mgmt (Saul Signs and Signscenter are canonical first targets)
2. Decision-maker email
3. 5 sample job records — either real (anonymized) or synthetic. Each: customer name, project type, intake date, current stage, photo URLs if any, latest staff note

ENVIRONMENT (verify):
- Working dir: /home/eratner/cafecito-ai
- Cloudflare account: f7a9b24f679e1d3952921ee5e72e677e

SECRETS TO CONFIRM:
- ANTHROPIC_API_KEY (Claude — staff-note → customer-update translation)
- (R2 storage doesn't need a separate secret)

THE PLAN:

STEP 1 — RESEARCH + JOB PIPELINE STAGES (10 min)
- Pull prospect site. Identify their typical project flow (e.g. for signs: estimate → approval → fabrication → install).
- Define the canonical stages (4-6 max). Each gets a customer-friendly label and a staff label.
- Wait for the 5 sample job records.
[GATE 1 — show stages + 5 jobs parsed, ask "proceed?"]

STEP 2 — SCAFFOLD WORKER (15 min)
- Create /home/eratner/cafecito-ai/portal-<prospect-slug>/.
- Worker handles: GET /track/:id (customer view), GET /admin (staff view + add update), POST /api/job/:id/update (admin only — staff posts a note + Claude translates to customer-friendly).
- Bindings: D1 PORTAL_DB, R2 PORTAL_R2 (job photos).
- Routes: /portal-demo/<prospect-slug>/track/:id and /portal-demo/<prospect-slug>/admin.
[GATE 2 — show worker.js + D1 schema, ask "deploy scaffold?"]

STEP 3 — STAFF-NOTE → CUSTOMER-UPDATE (10 min)
- Claude prompt: takes a terse internal note ("primer dry, install Tue PM") + the job context → returns a customer-friendly update ("Materials are prepped and your crew is scheduled for Tuesday afternoon — we'll text 30 min before arrival").
- Auto-detects customer language from the customer name + previous interactions; outputs in matching language.
[GATE 3 — show 3 sample staff-notes + their customer-friendly translations, ask "voice right?"]

STEP 4 — INGEST + RENDER (10 min)
- Run ingestion: insert the 5 sample jobs with their stages + staff notes.
- For each, generate the customer-facing version. Verify rendering at /track/:id for each.
[GATE 4 — show 5 tracking URLs, ask "proceed to deploy?"]

STEP 5 — DEPLOY + DEMO (10 min)
- Deploy via OAuth wrangler.
- Tell human: "Open one of the 5 tracking URLs on your phone. Show: search by tracking ID, see status timeline, see latest customer-friendly update, see photos. Switch to admin view, post a new staff note, watch it translate."
- Loom this 60-second flow.
[GATE 5 — confirm Loom recorded, ask "ready to draft pitch?"]

STEP 6 — DRAFT THE COLD PITCH (5 min)
- Email subject: "How often does someone call asking where their [sign / cabinet / repair] is in the queue?"
- Email body: 4 sentences, lead with the call-volume waste math, attach Loom, link demo URLs, name $5k 7-day pilot / $900/mo, one yes/no close.
[GATE 6 — show draft, ask the human to send manually]

STEP 7 — SHIP THE SUMMARY
- Single-line: "[BUSINESS] status portal live · 5 sample jobs · demo: [LOOM] · pitch sent."
- Append to /home/eratner/cafecito-ai/portal-shipped.md.

DONE.

GUARDRAILS: NEVER use real customer PII in the demo. The 5 sample jobs must be either anonymized or synthetic. Staff-note translation must pass an "owner-eye" check before any go to a customer. Cost ceiling: $3.
01Stack
  • Cloudflare Workers
  • Hono.js
  • D1
  • R2
  • Claude API
  • OpenAI API
  • Resend optional
03Day-1 plan

A real prospect. A real demo. A real outbound message — all before 5pm.

  1. 09:00-09:45 Pick a status-heavy prospect.

    Look for custom projects, long timelines, approvals, proofs, site visits, or repeated customer communication.

  2. 09:45-10:30 Map the job stages.

    Define 5-7 generic stages: received, reviewed, waiting on customer, in production, scheduled, complete.

  3. 10:30-12:30 Build fake portal.

    Customer lookup by fake job code, status timeline, files, next action, and plain-language summary.

  4. 12:30-14:00 Build admin update form.

    Staff can update status, upload fake file, and generate customer-friendly summary.

  5. 14:00-17:00 Call with support-time wedge.

    Ask how many status-check calls/emails come in and who answers them.

04Best practices & gotchas
  • Keep the portal boring and reliable.

    Why: Customers want confidence, not a flashy dashboard.

  • Use job codes, not full auth, for the first demo.

    Why: It makes the demo quick while avoiding real customer accounts.

  • Show next action clearly.

    Why: Most status anxiety comes from not knowing who owes what next.

  • Do not expose internal notes.

    Why: Summaries must be customer-safe and reviewed before sending.

05Prompts (copy-paste)

Drop these into Claude Code. Replace the [BRACKETED] fields with the prospect's details.

Prompt 1 Status summary generator

Turns internal status into customer-safe copy.

Write a customer-safe status update.

Inputs:
- job stage
- internal notes
- next action owner
- expected date
- files available

Output:
- one-sentence status
- next action
- expected timing
- customer-safe caveat

Remove internal blame, margin, vendor complaints, and private notes.
Prompt 2 Portal scaffold

Builds a fake job-status portal.

Build a Cloudflare Workers + Hono customer status portal.

Routes:
- GET / lookup form
- GET /job/:code customer status page
- GET /admin staff list
- POST /admin/job/:id/status update status
- POST /admin/job/:id/file upload fake file metadata

Use D1 for jobs and R2 for files if uploads are implemented.
Use fake data only.
Deploy and print demo codes.
06Selling script

Discovery question (ask this first)

"How much of your team’s week is spent answering customers asking, where does my project stand?"

The frame

Status calls are usually a symptom that customers cannot see what is happening. A small portal reduces anxiety, protects staff time, and makes the business feel more professional without changing the underlying workflow.

The demo play

Show a fake customer entering a job code, seeing current stage, files, next action, and a clean AI-written summary. Then show staff updating the status in 20 seconds.

Objections

  • "Our process changes job by job."

    "That is why the portal uses flexible stages and notes. It does not force your process into a rigid ERP."

  • "Customers can just call us."

    "They can. The point is to reduce avoidable calls and make necessary calls better informed."

  • "We do not have clean data."

    "The pilot can start manual: staff updates only active jobs. Automation comes later if the value is clear."

The close

"Let me launch a portal for one project type with fake data first, then pilot on 10 active jobs. $4,000 setup, $750/month if it reduces status-check load."

07Pricing notes

Anchor on staff hours and customer trust. Start with one project type and manual updates before integrations.