Brackstone Voice AI — Client Onboarding Playbook

End-to-end process for taking a new client from signed contract to live voice AI receptionist.

Follow in order. Every step has a pass/fail check before you move on. Time to complete: 2–4 hours the first time, 45–60 minutes after practice.

Contents

  1. Prerequisites
  2. Pick the vertical
  3. Build the Retell agent
  4. Create the project
  5. Wire the webhook
  6. Assign a phone number
  7. Billing setup
  8. Smoke test
  9. Client handover
  10. Week 1–2 refinement
  11. Troubleshooting
  12. Reference

1. Prerequisites

From the client — collect before you touch the dashboard

Paste this into a DM or email and wait for all answers before starting.

FieldExampleWhy
Legal / trading nameSmith & Sons Plumbing LtdFirm record + invoices
Phone number to use"Brackstone gives me a new one" OR "forward my existing 0113 xxx"Binds the Retell agent
Opening hoursMon–Fri 8am–6pm, Sat 9am–2pm, closed SunPrompt + out-of-hours routing
Transfer numberOwner / manager mobile for emergenciesRetell live-transfer rules
Top 3–5 servicesBoiler repair, bathroom install, emergency leakPrompt grounding
Booking system in useCal.com link / paper diary / ServiceM8Integration path
Calendar URL (if any)https://cal.com/smithplumbing/consultBooking route
Login emailowner@smithplumbing.co.ukDashboard user
Agency ownershipBrackstone (default) or sub-agencyPlatform agency ID

On your side

2. Pick the vertical

This controls which AI prompt analyses their calls and which columns render on the dashboard. Get it right or you'll be re-onboarding.

Client typeVerticalIndustry field
Solicitors / law firmsolicitorssolicitors
Plumber, electrician, builder, tradesbookingsother (custom: Plumbing / Trades)
Garage, MOT, bodyshopbookingsautomotive
Restaurant (table bookings)bookingsother (custom: Restaurant)
Takeaway / deliverybookingsother (custom: Takeaway)
Salon / barber / nailsbookingsother (custom: Salon)
Dental / private healthcaresolicitors (interim)dental
Anything elsesolicitors (interim)other + custom fields
Dental and healthcare currently fall back to the solicitors prompt until a dedicated vertical is built. Works, but underutilises the analyser — flag as v2.

3. Build the Retell agent

3a. Start from the wiki prompt

Never write a prompt from scratch. Use the relevant template as a base:

VerticalStarting prompt
Solicitorswikis/domains/voice-ai/pages/prompts/family-immigration-solicitors.md or personal-injury-solicitors.md
Plumber / tradeswikis/domains/voice-ai/pages/prompts/bathroom-kitchen-extension.md
Garage / MOTwikis/domains/voice-ai/pages/prompts/mot-garage-bodyshop.md
Restaurant / takeawaywikis/domains/voice-ai/pages/prompts/takeaways-restaurants.md
Salonwikis/domains/voice-ai/pages/prompts/barbers-salons-nails.md
Dentalwikis/domains/voice-ai/pages/prompts/private-dentists.md

3b. Fill the variables

Every template has {{variables}} at the top. Fill with the client's answers from §1:

3c. Voice + first message

3d. Test in Retell playground

Before connecting to the dashboard, hit the Retell Test button and run three calls covering the client's top intents. The agent should:

Fail any of these → fix the prompt, don't proceed.

4. Create the project in the dashboard

  1. Log in as admin. Go to /admin/projects.
  2. Click Create Project.
  3. Fill the form:
FieldWhat to enter
Firm nameClient's trading name
SlugLowercase, dashes, no spaces (e.g. smith-plumbing-leeds) — used in URLs
Platform agencyBrackstone (default) unless reselling
Contact name / email / phoneFrom intake form
IndustryFrom the table in §2
Analysis verticalFrom the table in §2 — this is the new dropdown
Custom industry fieldsJSON block only if Industry = other

Click Create. You're redirected to the project detail page. Note the firm_id in the URL — you'll need it for webhooks and Stripe.

Custom industry fields (only if Industry = other)

Paste a JSON block like:

{
  "label": "Plumbing",
  "fields": [
    { "label": "Job Type", "type": "text" },
    { "label": "Postcode", "type": "text" },
    { "label": "Emergency", "type": "select", "options": ["Yes", "No"] }
  ]
}

Keep it to 3–5 fields. More than that and the dashboard table gets unreadable.

5. Wire the Retell webhook

  1. Open the project detail page in the dashboard. Copy the Retell Webhook URL and Webhook Secret.
  2. Go to the Retell agent you built in §3. Under Webhooks, paste:
    • URL: the one from the dashboard
    • Signing secret: the one from the dashboard
    • Events: tick call_ended and call_analyzed
  3. Save.

Verify

Click Send test webhook in Retell. Within 10 seconds, a test row should appear at /calls for this project. If it doesn't:

6. Assign a phone number

Option A — give them a fresh Brackstone number

  1. Buy a UK local number in Twilio (match their area code).
  2. Point the number's Voice webhook at the Retell inbound URL for this agent.
  3. Give the client the number. They advertise / forward calls to it.

Option B — forward their existing number

  1. Client sets up conditional forwarding (no-answer / busy) to a Brackstone Twilio number.
  2. Twilio number → Retell agent binding as above.
  3. Tell the client to keep their own number; calls route to AI only when they can't answer.
Option AOption B
Speed5 minDepends on client's telco
Client controlLower (they use our number)Higher (their number)
RiskClient has to update marketingForwarding can silently break
DefaultTrades, takeaways, new businessesEstablished firms with printed numbers

7. Billing setup

  1. In Stripe, create a subscription for the firm using the agreed price ID.
  2. On the dashboard, go to /admin/billing → Attach subscription to firm.
  3. Confirm included minutes, overage rate, trial length match the contract.
BKP is live on production Stripe. For any new client you MUST confirm pricing with Saeed before creating the subscription — Phase 2 billing needs explicit sign-off per client.

Trial expiry: automated email + dashboard lockout. Document the trial end date in your CRM.

8. Smoke test before handover

Do not hand over until all of these pass.

Call the number yourself and run three scenarios from the client's vertical:

VerticalScenario 1Scenario 2Scenario 3
SolicitorsFamily law new enquiryCourt hearing urgency-5FAQ about fees
PlumberEmergency leak, kids in houseRoutine boiler service quoteOut-of-area caller
GarageMOT booking with regBreakdown callService quote enquiry
RestaurantBooking party of 4 with allergyLarge-group enquiry (10+)Menu question
TakeawayStandard order + allergyDelivery outside radiusAmend previous order
SalonNew booking with stylist requestRebooking regular clientPrice query

For each call, verify on /calls

Any failure → fix before handover. Do not skip.

9. Client handover

Send the client:

  1. Dashboard login — email + temporary password. Link to /login.
  2. 1-page cheat sheet — how to read the dashboard, where to find missed calls, how to mark a callback complete. Keep it under 10 bullet points.
  3. Recording of one smoke-test call so they know what the AI sounds like.
  4. WhatsApp/email channel for week-1 questions.

15-minute training call agenda

10. Week 1–2 refinement

Watch the live calls data. Expect to refine, not to be done.

Daily for the first week, weekly after.

When to tweak vs leave alone

11. Troubleshooting — top failure modes

SymptomFirst place to look
Calls not appearing on dashboardRetell webhook URL / signing secret mismatch. Check Retell agent settings, then Railway logs for signature mismatch.
ai_analysis_status stuck on pendingAI worker not running or Anthropic API key expired. Check Railway logs for [ai-worker] tick error.
Booking-details column blank for bookings firmfirm.vertical is not bookings. Check via /admin/projects edit; the dropdown was introduced in PR #41 — older firms may still be on the fallback.
Wrong vertical prompt usedSame as above — firm.vertical takes precedence, falls back to firm.industry if unset.
Allergies not captured verbatimRestaurant/takeaway prompt has been edited and dropped the verbatim rule. Restore from the wiki template.
Client says AI sounds roboticWrong voice picked, or first-message too long. Keep first message under 15 words and check voice tone matches the business.
Calls transferring to random numbersPrompt-injection — check voice-agent-safety-jailbreak-resistance guardrails are still in the prompt.

12. Reference