Skip to main content

Thames Valley Gifts — Voice Line Provisioning Request

Requested by: WP6 (AI front desk) build, 2026-09-28. Owner of execution: voice-agent-engineer agent only, per knowledge/runbooks/voice-provisioning.md — this request does not authorize any voice deploy or SIP trunk change, and WP6 has made none.

What to provision​

FieldValue
Number typeLocal, area code 519 or 226 (Southwestern Ontario) — not toll-free (knowledge/acceptance/tvg-ai-front-desk.md §8.1 DECIDED 2026-09-28).
PersonaExisting generic local_business persona — no new prompt code, no gift_shop vertical (that is Phase 3, deferred, and requires a full voice deploy + independent QA + founder go).
Business tenantThe TVG local_businesses row — vertical='other', business_name='Thames Valley Gifts', slug='thames-valley-gifts', metadata.internal_brand='tvg'. NOT YET CREATED as of this writing — WP6 ships an idempotent, NOT-YET-APPLIED data-only seed migration (churchwiseai-web/migrations/20260928_tvg_frontdesk_local_business_seed.sql + its rollback) awaiting founder/orchestrator confirm-before-prod-write. Apply that migration (or otherwise create the row) BEFORE provisioning the DID, since local_business_voice_lines.business_id is a foreign key into it.
Greetingwelcome_greeting must render "Thames Valley Gifts" exactly, producing the persona's standard 5-clause greeting shape (tvg-ai-front-desk.md §2.2): "Thanks for calling Thames Valley Gifts — I'm their AI assistant, and this call is written down for the team. If this is a life-threatening emergency, please hang up and call 9-1-1. Otherwise, I can answer a few questions or take a message so the team can get back to you." Say "written down for the team", never "recorded" — matches the current persona code (2026-08-17 correction), not the older approved copy in ai-front-desk.md §V1.
Forwarding at capforward_to_number = the founder's mobile number (tvg-ai-front-desk.md §8.1 DECIDED 2026-09-28 default). Confirm the actual number with the founder before setting it.
calls_limitOPEN — no default given. Ask the founder for the monthly cap before provisioning; a reasonable starting point mirrors other low-volume internal lines, but this spec deliberately left it undecided rather than guessing.
recording_enabledPer the persona's "written down, not recorded" language (§2.2), this should be transcription, not audio recording — set consistently with how other local_business persona lines are configured today; do not introduce a new recording behavior for TVG specifically.
MultilingualOPEN — no default given (tvg-ai-front-desk.md §10, §13 item 5). Ask the founder whether to opt the TVG line into the master multilingual-voice flag before enabling it; default is OFF (no opt-in) until told otherwise.
Google Business ProfileThis will also be the number listed on the TVG Google Business Profile (per ai-company-os/brands/engraving/BRAND.md's "GBP needs its own phone line" note referenced in the acceptance spec) — flag to the founder once live so GBP can be updated.

What the persona will answer from (no code changes needed)​

local_business_setup_profiles for the TVG business row — hours, services, faqs, forbidden_claims, brand_voice. WP6 ships scripts/tvg-sync-setup-profile.mjs, an idempotent sync script (dry-run by default, --confirm to write) that populates these fields from the live tvg_products/tvg_makers catalogue plus the shared AI fact sheet (src/lib/tvg/ai/fact-sheet.ts — the SAME module the chat route's system prompt reads, so voice and chat can never answer differently). Run it once the local_businesses seed row exists, before or shortly after the DID goes live, and re-run it after any catalogue/policy change.

urgent_rules is intentionally empty — a gift shop has no service emergencies (§8.1).

What this request does NOT ask for​

  • No change to the LiveKit SIP trunk (ST_Xa3Bp9aixRFP) — untouched.
  • No new voice-agent Python code, no new vertical, no prompt changes to verticals/local_business/prompts.py or data.py.
  • No lk.exe agent deploy — this is DID + DB-row provisioning only, on the existing multi-tenant agent deploy that already serves every other local_business tenant.

Verification after provisioning (voice-agent-engineer + independent QA)​

Per knowledge/acceptance/tvg-ai-front-desk.md §12 "Voice scripts" V1–V9 — call the number and check the greeting (V1), a shipping/return FAQ answer (V2), a captured lead (V3), one-click promotion to an order request (V4), the memorial hand-off shape (V5), the crisis protocol (V6), the payment refusal (V7), an AI-knowledge-sync price change round-trip (V8), and — most importantly for the paying-customer smoke test — that an existing real church voice line is unaffected after TVG provisioning (V9). V9 is non-negotiable before calling this done: it is the paying-customer smoke this exact kind of change is required to pass (CLAUDE.md Verification Ladder step 3b).

Founder approvals still needed before this can be executed​

  1. Confirm-before-prod-write on the local_businesses + local_business_setup_profiles seed migration (see the migration file's header).
  2. The founder's mobile number for forward_to_number.
  3. The calls_limit threshold.
  4. Voice multilingual opt-in (yes/no).
  5. A go-ahead for the voice-agent-engineer agent to actually provision the Telnyx/LiveKit resources per knowledge/runbooks/voice-provisioning.md.