One demo call that makes a prospect see why riff is good — and the concrete work between that demo and a billing customer. Pairs with Path to Revenue (business model + infra blockers) and the customer pitch (pricing).
Draft · 2026-06-19 · scenario chosen: after-hours night-shift receptionist · this is a planning artifact, not the product
A prospect doesn't buy an architecture diagram. They buy one phone call that goes right — and a reason to believe it'll go right every night. So the centerpiece of the sale is a single showcase flow: a realistic after-hours call that, in under a minute, fires every feature that matters and ends with a correct booking and a text in the caller's hand.
The job of this page: (1) script that call and map each moment to the feature it proves, (2) state the trust story — why "it won't make things up" is engineered and measured, not claimed, and (3) list what's left to build to turn the demo into a billable service.
An after-hours call to a plumbing/HVAC business. The right margin names the feature each turn demonstrates. The caller deliberately front-loads (the hard case) to show riff handling it.
Two variants to keep in the demo's back pocket: (a) garbage-rejection — if the caller mumbles and the name comes through as "a service appointment," riff re-asks instead of confirming junk (validator R3); (b) degraded-mode — if Google Calendar is down, it doesn't fake a booking, it takes a message and says a human will confirm (the provider degrade-gracefully contract).
| Demo moment | Feature | Why the customer cares |
|---|---|---|
| Caller dumps 4 facts at once | Front-load capture + skip-if-filled (R2) | Real callers don't answer one question at a time. It feels like a competent person, not a form. |
| "Let me read it back…" | Joined read-back confirm (Collect Pattern) | The caller catches a wrong number before they hang up. Accurate messages = the whole job. |
| "actually make it 8am" | Correction handling | People change their minds. It doesn't get confused or re-ask everything. |
| "booking it now… you're in" | Calendar write + honest status | It only says "booked" when the booking committed — no false promises. |
| SMS receipt | SMS hand-off | The caller has it in writing; the business has a record. |
| "say 'emergency'" | Escalation to human | The 2am flood gets a person. The bot knows its limits. |
| Calendar-down fallback | Degraded-mode providers | A vendor outage never means a silently-lost customer. |
The roadmap says to lead with reliability, not price — "won't hallucinate, takes accurate messages." That claim is only credible because it's engineered and measured:
The sales line: "It's not winging it. Every flow passes a graded quality bar — on the easy callers and the messy ones — or it doesn't go live." That is a differentiator budget bots can't make.
The demo above is a flow we author and gate like any other — it must clear the bar before it represents us.
night_shift_receptionist.yamlCollect Pattern intake (issue + name + phone + time, multi-slot listens) → joined read-back → branch: book (calendar) vs take message (SMS) vs emergency (escalate). Reuse the shipped patterns from restaurant_reservation + pizza (branch) + the escalation exit.scripts/flow-pipeline.sh night_shift_receptionistMust clear ≥7.0 on cooperative + corrector + oversharer (both caller paths) before it's the demo. If it doesn't, the judge's notes say what to fix.The demo proves the conversation. These are the gaps that make it a service — carried over from Path to Revenue, in the order they block a sale.
| Gap | Status | Why it blocks a paying customer |
|---|---|---|
| P0 Verify unit economics | Partial | Fill real Telnyx + Gemini Live prices. Confirms $1/hr clears cost — everything depends on it. |
| P0 Finish human message hand-off | Stub | Reliably deliver the message (SMS/email) or escalate. This is the product, and the demo leans on it. |
| P0 Multi-tenancy | Missing | Serve customer #2 without a code change: tenant_id, per-tenant flow/number/calendar. |
| P0 Auth + secrets off the laptop | Missing | Transcripts are readable without auth today; prod needs a secret store + bearer auth. |
| P1 Usage metering → billing | Missing | Can't bill hours you can't count. Wire per-tenant minutes → Stripe. |
The honest sequencing: the showcase flow (§5) is buildable now and lets us run sales conversations + a pilot. The P0 list is what converts a pilot into a billed, multi-customer service. Demo first (proves value, cheap); P0 second (unlocks revenue, heavier).