"Hello ⟨name⟩, welcome back. Thank you for calling RIFF Law. This call may be recorded. I can't give legal advice — I collect details for an attorney."
The bolded welcome-back prefix renders only for verified returning callers; strangers hear it from "Thank you…".
Business name is currently "RIFF Law" — if this line should follow the David Austin naming (like plumbing and electrical), that's a one-field pack edit.
The menu · 3 options + repeat · press or say, any time
"Which one would you like? You can press a key any time."
0
Set up my case profile
routes to intake_name_ask — the profile intake journey below
profiletext updatessign upcase updatesmy profile
Default for new callers● audio ready
1
Start a new intake
routes to the legal matter intake — describe the issue, attorney follow-up
new caselegal problemintakedescribe my issuelawyer
● audio ready
2
Leave a message
routes to leave_message — records callback details for the office
messagevoicemailcall me back
● audio ready
repeat menu
Repeat the menu
replays the options — no digit assigned
repeatsay that againwhat are my optionsone more time
● audio ready
Option 0 — the profile intake journey
Name
"What is your name?" — instant advance on answer
SMS consent
Verbatim consent copy; yes/no
CONSENT GATE
Text sent
Code on top in caps, link below
1 TEXT ONLY
Verify code
Spoken readback, 2 attempts; unlocks the web page
UNLOCKS PAGE
Legal topics
"What matters should we update you on?" — up to 4 rounds
Save → confirm
Saved first, then read back; "no" restarts
Back to menu
Loop, never a dead end
Latency fixes apply here: ~1s to the first question, instant step advance, silence watchdog underneath. Returning callers get "Hello ⟨name⟩" and option 0 becomes "update your profile" with fields pre-filled.
SAY THIS 6 DIGIT CODE: 493 271
RIFF Law: open riff.chattychapters.com/intake.html?token=k7…3f to follow along. RIFF will never ask for your password.
the one text a consenting caller receives
Editing this page — today, and my recommendation
How edits work today
Edit packs/legal_intake.pack.yaml — labels, digits, aliases, spoken copy, business name all live there.
Regenerate: the compiler rebuilds flows/legal_intake.yaml with a provenance hash, and refuses bad menus (digit collisions, missing consent field, dead ends).
Prerender changed lines (one command) so callers never pay live-synthesis pauses.
Restart nodes; done. Hand-editing the flow YAML is never allowed — regeneration would erase it.
Recommendation: Menu Builder in Studio
This exact page, rendered from the live flow file per line, with every ✎ field editable in place.
Saves write to the pack (not the flow) through the existing builder draft API — so edits survive regeneration by construction.
One button: Publish = regenerate → lint gates → prerender changed audio → rolling node restart. One button: Preview call in the browser.
Seed new lines from the standard 0–7 commercial template (intake / existing job / changes / schedule / pricing / emergency / billing / human), toggling options per business.
Guardrails surfaced in the UI: digit collision, alias overlap between options, missing audio, unreachable states — the compile checks we already have, shown before publish.