Table of Contents
1. Executive Summary3
2. The DIAL Framework4
3. Intent Library (50 Intents)6
4. Lead Qualification — BANT Tree8
5. Sales Scripts — PACE Framework11
6. Customer Service — 3-STRIKE System13
7. Platform Deployment Specs15
8. AI/NLP Integration17
9. Handoff Protocol19
10. QA Scorecard — 20 Test Cases21
11. KPI Dashboard23
How to use this playbook: Section 2 (DIAL) is your strategic foundation — read it first. Section 3 (Intent Library) is your build checklist. Sections 4–6 are copy-paste scripts. Sections 7–8 are for your technical team. Sections 9–11 are for ops and QA. All [VARIABLE] placeholders must be replaced with your specific data before deployment.
Strategy
Executive Summary — The Case for 100% Automated First Contact
The Shift Has Already Happened
By 2026, 67% of B2B buyers complete more than half their research before ever speaking to a salesperson. They don't want to wait. They don't want to fill out a form and wait three days. They want answers now, at 11PM, on their phone.
The businesses winning in this environment have one thing in common: their first contact is instant, intelligent, and consistent — regardless of hour, day, or agent availability. That first contact is a chatbot.
82%
of buyers want instant response
Source: HubSpot State of Sales 2026
3x
higher conversion vs. email forms
Conversational landing pages
73%
of Tier-1 support automated
Industry average with proper bot
$0.08
Cost per bot conversation
vs. $8–$12 per human chat
What "100% Automated First Contact" Actually Means
It does not mean replacing your team with a robot. It means:
- Every inquiry is captured immediately — no missed leads, no form-limbo, no "we'll get back to you."
- Every contact is qualified before a human touches it — your team only spends time on leads that meet criteria.
- Every Tier-1 service question is resolved without a ticket — escalation only happens when it truly needs to.
The Automation Maturity Model
| Level | Description | Automation % | Tech Required |
| 1 — Reactive | FAQ bot answers keywords, routes to human for everything else | 20–30% | Rule-based chatbot platform |
| 2 — Guided | BANT qualification, appointment booking, lead capture automated | 50–65% | Flow builder + CRM webhook |
| 3 — Conversational | AI understands free-text, handles complex queries, context-aware | 70–85% | NLP/LLM layer + intent classifier |
| 4 — Autonomous | Full sales cycle, service resolution, proactive outreach — bot-led | 85–95% | Fine-tuned LLM + RAG + full integrations |
This playbook builds you to Level 3. Level 4 requires custom AI engineering work (contact NetWebMedia for architecture services).
What This Playbook Delivers
- The DIAL Framework — a mental model for designing every bot conversation
- 50 pre-classified intents — ready to load into your NLP platform
- Full BANT dialog tree — copy-paste scripts with branching logic
- PACE sales scripts — objection-handling conversation trees
- 3-STRIKE service system — customer service flows that resolve without escalation
- Platform deployment specs — constraints and configurations for 5 channels
- AI system prompt template — plug-and-play for Claude/GPT integration
- 20-case QA scorecard — pre-launch verification checklist
- 8-metric KPI dashboard — with targets and monthly review cadence
Strategy
The DIAL Framework — Detect, Intent, Answer, Loop
DIAL is the architecture behind every high-performing chatbot conversation. Apply it to every flow you build. If a conversation doesn't map to DIAL, it will eventually break.
D
Detect
Identify who the user is and what triggered the conversation. Use context signals: channel, referrer, time of day, CRM data if available.
User opens bot via WhatsApp ad
→ Detect: source=paid_ad, channel=whatsapp, time=evening
→ Apply: high-intent lead profile
I
Intent
Classify what the user wants. Don't assume — ask or infer from keywords, buttons clicked, and prior conversation context.
User types: "how much does it cost?"
→ Intent: PRICING_INQUIRY
→ Confidence: 0.94
→ Route to: Pricing flow
A
Answer
Deliver the most useful response for this intent and user context. Personalize when possible. Always include a clear next step.
Context: lead from paid ad, evening
→ Don't list all prices
→ DO: "Our most popular plan for businesses like yours is $[X]/mo. Want to see if it fits your needs?" CTA: Yes / Tell me more
L
Loop
Every answer creates a new opportunity. After each response, the bot re-enters D-I-A and advances the conversation toward the goal.
User: "Yes, tell me more"
→ Detect: still in pricing inquiry
→ Intent: WANTS_DETAILS
→ Answer: Send case study + book call CTA
→ Loop again...
DIAL in Practice — Applied Examples
Example 1: First-Time Visitor (Web Widget)
| DIAL Step | Bot Logic | Bot Output |
| Detect | New visitor, 0 prior sessions, landing on /pricing page | — (internal signal) |
| Intent | Assumed: PRICING_INTENT (page context) | — |
| Answer | Proactive opening tied to page context | "Hi there! Checking out our pricing? I can help you find the right fit in 2 minutes. What's the main thing you need help with?" |
| Loop | User clicks option → new Detect cycle begins | Routes to appropriate qualification flow |
Example 2: Returning Client (WhatsApp)
| DIAL Step | Bot Logic | Bot Output |
| Detect | Phone matches CRM: Active Client, plan=Pro, last contact=14 days | — |
| Intent | User says "I have a problem with my dashboard" → SUPPORT_INTENT | — |
| Answer | Personalized + account-aware | "Hi Sarah! I can see you're on the Pro plan. Let me pull up your dashboard status... Is the issue with [specific feature]?" |
| Loop | Narrows issue → resolves or creates ticket | Reaches resolution without human in 73% of cases |
Example 3: Angry Customer (Any Channel)
| DIAL Step | Signal Detected | Bot Behavior |
| Detect | Sentiment analysis: negative (score <-0.6) OR keywords: "angry", "unacceptable", "refund NOW" | Flag as HIGH_PRIORITY |
| Intent | Override normal intent flow → ESCALATION_INTENT | Skip qualification |
| Answer | De-escalation script (never defensive, never robotic) | "I'm really sorry you're dealing with this — that's not the experience we want for you. I'm connecting you with a specialist right now. Hold on just a moment." |
| Loop | Human takes over — bot provides context summary to agent | Warm handoff with full context |
DIAL Design Rule
Every bot turn must advance toward ONE goal: qualification, resolution, or conversion. Any turn that doesn't advance the goal is friction. Audit your flows monthly for turns that generate no forward movement.
Content
Intent Library — 50 Intents by Category
Load these intents into your NLP platform (Dialogflow, Luis, Rasa, Voiceflow, or directly into your LLM system prompt). Each intent includes trigger phrases for training. Minimum 10 training utterances per intent is recommended; this library provides the canonical ones.
PRICING_INQUIRY"how much", "cost", "price", "rates", "plans"
DEMO_REQUEST"show me", "demo", "trial", "free test"
FEATURES_INQUIRY"what does it do", "features", "capabilities", "include"
COMPARISON_REQUEST"vs", "compare", "difference between", "better than"
CASE_STUDY_REQUEST"examples", "clients", "results", "case study", "proof"
PROPOSAL_REQUEST"send proposal", "quote", "custom offer", "package"
CONTRACT_INQUIRY"contract length", "commitment", "lock-in", "annual"
DISCOUNT_INQUIRY"discount", "deal", "promo", "special offer", "negotiate"
ONBOARDING_INQUIRY"how to start", "onboarding", "setup", "get started"
TIMELINE_INQUIRY"how long", "timeline", "when", "delivery time"
TEAM_INQUIRY"who will work on it", "team", "your people", "account manager"
ROI_INQUIRY"ROI", "return on investment", "what will I get", "worth it"
MEETING_REQUEST"book a call", "schedule", "meet", "speak to someone", "appointment"
OBJECTION_PRICE"too expensive", "can't afford", "over budget", "cheaper option"
OBJECTION_TIMING"not the right time", "maybe later", "not ready", "next quarter"
SUPPORT_GENERAL"help", "issue", "problem", "not working", "broken"
TICKET_CREATE"open ticket", "report a bug", "submit issue", "log this"
TICKET_STATUS"ticket status", "my ticket", "update on my issue", "#[ticket_id]"
BILLING_INQUIRY"invoice", "charge", "payment", "bill"
REFUND_REQUEST"refund", "money back", "charge dispute", "cancel & refund"
CANCEL_REQUEST"cancel", "stop service", "discontinue", "end my plan"
UPGRADE_REQUEST"upgrade", "higher plan", "more features", "bigger package"
DOWNGRADE_REQUEST"downgrade", "smaller plan", "reduce cost", "basic plan"
PASSWORD_RESET"forgot password", "can't login", "reset", "locked out"
ACCESS_ISSUE"can't access", "permission error", "no access", "blocked"
DATA_REQUEST"export data", "download my data", "data report", "my files"
ESCALATION_REQUEST"speak to manager", "escalate", "not satisfied", "supervisor"
SLA_INQUIRY"response time", "how long to fix", "SLA", "guaranteed time"
OUTAGE_REPORT"down", "outage", "not available", "site is down"
FEEDBACK_SUBMIT"feedback", "suggestion", "complaint", "love this", "hate this"
ABOUT_COMPANY"who are you", "about you", "tell me about", "your company"
HOURS_INQUIRY"hours", "open", "when are you available", "schedule"
LOCATION_INQUIRY"where are you", "office", "location", "address"
CONTACT_REQUEST"email", "phone number", "how to reach", "contact info"
PRIVACY_INQUIRY"privacy policy", "my data", "GDPR", "data protection"
TERMS_INQUIRY"terms", "T&C", "agreement", "legal"
REFERRAL_INQUIRY"refer a friend", "partner program", "affiliate", "commission"
CAREERS_INQUIRY"job", "hiring", "career", "work with you", "openings"
MEDIA_INQUIRY"press", "media kit", "interview", "journalist"
INTEGRATION_INQUIRY"integrates with", "works with", "API", "Zapier", "HubSpot"
SECURITY_INQUIRY"secure", "safe", "encrypt", "ISO", "compliance"
KNOWLEDGE_BASE"tutorial", "guide", "how to", "documentation", "learn"
STOP"stop", "unsubscribe", "opt out", "no more", "remove me"
PAUSE"pause", "not now", "later", "busy", "come back"
GREETING"hello", "hi", "hey", "hola", "good morning"
GOODBYE"bye", "thanks", "goodbye", "that's all", "done"
POSITIVE_RESPONSE"yes", "sure", "absolutely", "let's do it", "agree"
NEGATIVE_RESPONSE"no", "not interested", "pass", "no thanks"
FALLBACK[When confidence < 0.60 on all intents]
REPEAT_REQUEST"repeat", "what", "say that again", "didn't understand"
NLP Training Tip
Add at least 15 additional training utterances per intent before going live. Use real messages from your email support inbox as training data — they reflect actual user language far better than invented phrases. FALLBACK should trigger below 0.60 confidence and always offer a human option.
Content
Lead Qualification Flow — Full BANT Dialog Tree
This is the complete BANT qualification conversation tree. Use [USER:] lines as expected input patterns for intent detection. Use [BOT:] lines as your exact response copy. [SYSTEM:] lines are backend actions. Branch conditions are shown in italics.
ENTRY — User Makes First Contact
BOT — Opening Message
Hi there! 👋 I'm [BOT_NAME] from [COMPANY_NAME].
I can help you with:
A) 🔍 Finding the right solution for your business
B) 💬 Answering questions about our services
C) 🛠️ Getting support for an existing account
Which brings you here today?
USER — Sales path (selects A or types buying-related intent)
SYSTEM
Set user_intent = SALES. Tag CRM contact: intent_sales. Start BANT qualification flow.
BANT — Budget Discovery
BOT — B.1 (Budget Open)
Great! I'd love to help you find the perfect fit.
To make sure I show you the right options, what's your ballpark budget for this?
A) 💼 Under $500/month
B) 📈 $500–$1,500/month
C) 🚀 $1,500–$5,000/month
D) 🏢 $5,000+/month
E) 🤔 I'm not sure yet
BOT — B.2a (Low Budget Path)
No problem at all — we have a starter option at $[STARTER_PRICE]/month that covers [STARTER_BENEFITS].
Most businesses your size start there and upgrade as they grow.
Before I show you more, what's the main challenge you're trying to solve? That helps me recommend the right fit.
USER — Selects B, C, or D
BOT — B.2b (Mid/High Budget Path)
Excellent — [BUDGET_RANGE] is a great fit for our [PRODUCT_TIER].
Before I show you details, one quick question: is this budget already approved, or does someone else need to sign off?
A) ✅ I'm the decision-maker
B) 👥 I share the decision with others
C) 📋 I'm researching for my boss
USER — Selects E (not sure)
BOT — B.2c (Budget Unknown Path)
No worries — budget often gets confirmed during the process.
Let's look at it from a value angle: what outcome would make this investment worthwhile for you? (e.g., more leads, time saved, revenue growth)
That helps me show you what fits.
BANT — Authority Discovery
BOT — A.1 (Authority Check)
Got it. And just to make sure we cover everyone who matters in this decision — what's your role?
A) 👔 Owner / Founder / CEO
B) 📊 Director / VP / Manager
C) 🔍 Evaluator (researching for others)
D) 💻 Technical lead
USER — Selects C (Evaluator)
BOT — A.2 (Evaluator Path)
Totally understand — research phase is important.
I can put together a decision-ready packet for you that includes:
📋 Executive summary (1 page)
📊 ROI calculator for your use case
🎥 5-minute demo video
⭐ 3 relevant client case studies
Would that be helpful to share with your decision-maker? Reply YES or I'LL THINK ABOUT IT.
SYSTEM — Evaluator
Tag: authority_indirect. Add to nurture sequence. Send decision packet if YES. Lower lead score by 20 points.
BANT — Needs Discovery
BOT — N.1 (Needs Open)
Now let's dig into the real reason you're here.
What's the problem you most need to solve? Pick the one that keeps you up at night:
1️⃣ Not enough qualified leads coming in
2️⃣ My team wastes too much time on manual tasks
3️⃣ Losing deals to competitors
4️⃣ Can't track what's working in marketing
5️⃣ Struggling to scale without more headcount
6️⃣ Something else — I'll describe it
USER — Selects 1 (Lead Generation)
BOT — N.2a (Lead Gen Deep Dive)
Leads — the lifeblood. Let's get specific.
How many qualified leads are you generating per month right now?
A) Under 10
B) 10–50
C) 50–200
D) 200+
And what's your current main lead source?
BOT — N.2b (Open Needs)
Tell me more — what's the challenge in your own words?
(Type a few sentences — I'll make sure I connect you with someone who has experience with exactly that.)
SYSTEM — Open needs
Store response as needs_verbatim. Flag for human review. Trigger AI analysis for intent classification.
BANT — Timeline Discovery
BOT — T.1 (Timeline Check)
Last question — and then I'll show you exactly what I'd recommend.
When do you need a solution in place?
A) ⚡ Urgently — we needed this yesterday
B) 📅 Within 30 days
C) 🗓️ Within 90 days
D) 📆 6+ months — still in planning
E) 🔍 Exploring with no deadline
SYSTEM — Scoring Logic
Score calculation:
Budget A = 5pts | B = 15pts | C = 25pts | D = 30pts
Authority decision-maker = 25pts | shared = 15pts | evaluator = 5pts
Need = 1–5 specificity score × 5pts
Timeline A/B = 30pts | C = 20pts | D = 10pts | E = 5pts
THRESHOLD: >70pts = HOT (AE assigned) | 40–70pts = WARM (nurture) | <40pts = COLD (long nurture)
BANT — Summary & Next Step
BOT — Qualification Summary (HOT lead)
[FIRST_NAME], based on everything you've shared — you're an excellent fit for our [RECOMMENDED_PRODUCT].
Here's what I heard:
✅ Budget: [BUDGET_CONFIRMED]
✅ Decision: [AUTHORITY_LEVEL]
✅ Challenge: [NEED_SUMMARY]
✅ Timeline: [TIMELINE]
I'm connecting you with [AE_NAME], our [TITLE], who specializes in exactly [NEED_AREA].
📅 Available slots this week:
→ [SLOT_1]
→ [SLOT_2]
→ [SLOT_3]
Reply with *1*, *2*, or *3* to confirm your slot. Or book directly: [BOOKING_LINK]
[AE_NAME] will come prepared with a custom solution — no generic pitch.
BOT — WARM lead path
Thanks for sharing all of that, [FIRST_NAME].
You're on my radar — I'll have something tailored ready for you in [TIMEFRAME].
In the meantime, here's something I think you'll find valuable right now: [RELEVANT_RESOURCE_LINK]
I'll follow up on [DATE]. If you'd like to move faster, just reply FAST TRACK and I'll make it happen. 🚀
Sales & Service
Sales Automation Scripts — PACE Framework + Objection Trees
PACE is the framework for moving a prospect from "interested" to "committed." Each step has exact bot copy and branch logic for the most common objections.
P
Problem
Confirm and amplify the pain. Make the cost of inaction real and personal.
A
Agitate
Show what happens if they don't solve it. Use data, missed revenue, competitor growth.
C
Connect
Introduce your solution as the bridge between current pain and desired outcome.
E
Execute
Make it easy to say yes. Remove risk. Provide a clear, low-friction next step.
PACE Scripts — Full Bot Conversation
BOT — P: Problem Confirmation
[FIRST_NAME], earlier you mentioned [STATED_PROBLEM].
I want to make sure I understand it fully. What does that actually cost you today?
Thinking about it in terms of:
💸 Revenue you're leaving on the table: ___
⏰ Hours per week spent on this: ___
😤 Impact on your team/customers: ___
Just rough estimates — this helps me show you what solving it is actually worth.
USER — Shares impact (e.g. "about $5k/mo in lost deals, 10 hrs/week")
BOT — A: Agitate
So roughly $[IMPACT]/month — that's $[ANNUAL_IMPACT]/year.
Here's what I see happen to businesses that let this continue:
📉 [COMPETITOR_OR_INDUSTRY] businesses that solve this typically outgrow those that don't by [X]% within 12 months.
The scary part? It compounds. The longer [PROBLEM] persists, the harder it becomes to recover the gap.
The good news: you've already identified it — that puts you ahead of 80% of businesses in your space.
Here's what solving it looks like...
BOT — C: Connect
What [COMPANY_NAME] does for businesses like yours:
✅ [BENEFIT_1] → solves [PAIN_1]
✅ [BENEFIT_2] → solves [PAIN_2]
✅ [BENEFIT_3] → saves [TIME/MONEY]
A client we worked with — [CLIENT_NAME] in [INDUSTRY] — was exactly where you are [TIMEFRAME] ago.
[RESULT]: [SPECIFIC_METRIC] in [TIMEFRAME].
[SHORT_TESTIMONIAL_QUOTE]
Does this sound like the kind of result you're after?
BOT — E: Execute (Close)
[FIRST_NAME], here's how to get started:
🎯 *[RECOMMENDED_PACKAGE]* at $[PRICE]/month
⏱ Onboarding in [DAYS] days
🔒 [GUARANTEE] — [GUARANTEE_DETAIL]
To move forward:
→ Reply *START* and I'll send your welcome packet
→ Or reply *CALL* for a 30-min strategy call first
If you want to start but need payment flexibility, reply *OPTIONS* and I'll show you what we can do.
What works best for you?
Objection Handling Trees
Objection: "It's too expensive"
USER
"That's more than I expected / too expensive / out of budget"
BOT — Price Objection Response
I hear you — [PRICE] is a real number.
Let me reframe it for a second.
Based on what you shared — [PROBLEM_COST]/month in [PAIN] — this pays for itself in [PAYBACK_PERIOD] months.
After that, you're ahead by $[NET_BENEFIT]/month.
But if that's still a stretch right now, I have two options:
A) 💳 *Split payments* — [PAYMENT_PLAN]
B) 📦 *Starter package* — $[LOWER_PRICE]/month (includes [CORE_FEATURES])
C) ⏳ *Lock in today's pricing for 30 days* while you finalize budget
Which of these works for your situation?
Objection: "I need to think about it"
USER
"Let me think about it / I need to discuss with my team / not sure yet"
BOT — Timing Objection Response
Of course — this is a real decision and I respect that.
Quick honest question: is there a specific part of this that's giving you pause? Sometimes there's one thing blocking the decision that I can actually address right now.
Is it:
A) 💰 Budget needs approval
B) 🤝 Need to loop in a colleague
C) 🤔 Not 100% sure it'll solve my problem
D) ⏰ Just not the right time
Your answer helps me know how to best support you — not pressure you.
Objection: "We're using [Competitor]"
USER
"We already have [COMPETITOR] / we're happy with our current solution"
BOT — Competitor Objection Response
That makes sense — [COMPETITOR] is a solid choice for many businesses.
Can I ask one quick thing? What made you start researching alternatives?
Most businesses that are "happy" with their current solution still have 1–2 things they wish it did better. What's yours?
(Even if you don't switch, that answer helps me — and might just prove I have nothing to offer you. Either outcome is fine.)
Sales & Service
Customer Service — The 3-STRIKE System
The 3-STRIKE system defines how the bot escalates customer service issues. Most issues are resolved at Strike 1. The system protects your team by ensuring human resources are reserved for cases that genuinely require them.
1
STRIKE 1 — Bot Resolution
- Bot identifies issue via intent
- Checks knowledge base for answer
- Provides step-by-step resolution
- Sends relevant documentation link
- Asks: "Did that solve your issue?"
Resolves: ~65% of all service inquiries
2
STRIKE 2 — Guided Escalation
- User says "No" or issue persists
- Bot collects detailed information
- Creates ticket automatically
- Offers: callback, live chat queue, email
- Sets SLA expectation clearly
Resolves: +20% (total 85%)
3
STRIKE 3 — Immediate Human
- Anger detected OR 3 unresolved turns
- Bot pauses completely
- Warm transfer to human agent
- Agent receives full context summary
- Manager alerted if severity = HIGH
Final escalation: remaining 15%
Strike 1 — Bot Resolution Scripts
BOT — Strike 1 Generic Resolution
I can help with that right now! 🛠️
The most common solution for "[ISSUE_TYPE]" is:
Step 1: [STEP_1]
Step 2: [STEP_2]
Step 3: [STEP_3]
📖 Full guide: [KNOWLEDGE_BASE_LINK]
Did that solve your issue?
A) ✅ Yes — all fixed!
B) ❌ No — still having the problem
C) 🤔 I need help with something different
Strike 2 — Ticket Creation Script
BOT — Strike 2 Ticket Creation
I'm sorry the first solution didn't work — let's get this properly logged and resolved.
I'm creating a support ticket right now. A couple of quick questions:
1. Can you describe what you're seeing? (Error message, screenshot, or description)
2. When did this start happening?
3. What were you trying to do when it happened?
(Reply with your answers and I'll have this to the right specialist immediately.)
SYSTEM — Strike 2
Collect answers → Create ticket → Assign to [SUPPORT_QUEUE] → Send confirmation with ticket # → Start SLA timer → Notify team via Slack #support-queue
BOT — Ticket Confirmed
✅ Ticket *#[TICKET_ID]* created.
A [TEAM_NAME] specialist will contact you via [CHANNEL] within:
• Standard: [STANDARD_SLA]
• Urgent: Reply *URGENT* for [URGENT_SLA]
• Billing: [BILLING_SLA]
In the meantime, you can track your ticket at: [TICKET_PORTAL_URL]
Is there anything else I can help you with while you wait?
Strike 3 — Immediate Escalation Script
BOT — Strike 3 (Anger or repeated failure detected)
I completely understand your frustration — this is not the experience we want for you, and I'm truly sorry.
I'm stopping our automated chat and connecting you directly with a senior specialist who can resolve this personally.
[AGENT_NAME] is being notified right now. You'll receive a message from them within [SLA] minutes.
Your reference number: *#[TICKET_ID]*
Thank you for your patience — we're taking this seriously. 🙏
SYSTEM — Strike 3
1. Set bot_active = FALSE for this conversation thread
2. Create P1 ticket tagged: ESCALATED, ANGER_DETECTED
3. Assign to: SENIOR_AGENT (on-call)
4. Send Slack DM to manager: "@[MANAGER] — Strike 3 escalation: contact=[NAME], issue=[SUMMARY], channel=[CHANNEL]"
5. Start 15-minute SLA countdown
6. Log full conversation to ticket thread
FAQ Resolution Library — Top 10 Issues
| # | Issue | Strike 1 Bot Resolution | Escalate If... |
| 1 | Can't log in | Send password reset link → check email spam → clear browser cache guide | 2FA issue or account locked |
| 2 | Invoice incorrect | Pull invoice from portal → review line items guide → billing FAQ link | Dispute >$100 or recurring error |
| 3 | Feature not working | KB article for that feature → known issues status page → browser/device check | Confirmed bug, affects all users |
| 4 | Cancel request | Route to RETENTION intent immediately → offer pause, downgrade, credits | User says "final answer, cancel now" |
| 5 | Refund request | State refund policy → check eligibility → initiate if within policy | Dispute over policy, amount >$500 |
| 6 | Data not syncing | Sync troubleshooting guide → re-authenticate → cache clear | Confirmed API or webhook failure |
| 7 | Want to upgrade | Show upgrade options → pricing → handle objections → route to payment | Custom enterprise quote needed |
| 8 | Access/permission error | Role explanation → self-serve admin guide → resend invite | Admin account locked or org-wide issue |
| 9 | Slow performance | Status page link → browser test → known degradation notice | Confirmed outage |
| 10 | Billing failure | Payment FAQ → update card guide → retry payment link | Payment method repeatedly failing |
Technical
AI/NLP Integration — System Prompt, Context, Fallback Logic
System Prompt Template (Claude/GPT/Gemini)
You are [BOT_NAME], the AI sales and service assistant for [COMPANY_NAME].
## Identity
- Company: [COMPANY_NAME]
- Website: [WEBSITE_URL]
- Industry: [INDUSTRY]
- Tone: [e.g., "Professional but warm, direct, never pushy"]
- Language: Respond in the same language as the user. Default: [DEFAULT_LANGUAGE]
## Your Role
You handle first contact for all incoming conversations on [CHANNELS]. Your goals in priority order:
1. Resolve service issues without escalation (when possible)
2. Qualify leads using the BANT framework
3. Book discovery calls for qualified prospects
4. Capture contact info for follow-up
## What You Know
- Services offered: [LIST_SERVICES]
- Pricing: [PRICING_SUMMARY or "Do not discuss specific pricing — always say 'Let me have a specialist prepare a custom quote for you'"]
- Business hours: [HOURS_AND_TIMEZONE]
- Support email: [SUPPORT_EMAIL]
- Booking link: [BOOKING_URL]
## Rules — What You MUST Do
- Always greet the user by first name if known from CRM context
- Always end with a clear next action (question or CTA)
- Always offer a human option after 2 unresolved bot turns
- Always honor STOP/UNSUBSCRIBE immediately — confirm and cease all outreach
- Always respond within the channel's character limits (WhatsApp: 1,024 chars; SMS: 160 chars)
## Rules — What You MUST NOT Do
- Do NOT make promises about pricing, timelines, or deliverables without checking with a human
- Do NOT discuss competitors by name — redirect to our value
- Do NOT collect payment information in chat
- Do NOT engage with inappropriate, threatening, or off-topic content — redirect firmly and politely
- Do NOT invent information — say "I'll find out and get back to you" if unsure
## Escalation Triggers — Immediately hand off to human:
- User expresses anger (SENTIMENT_SCORE < -0.6)
- User mentions: "lawyer", "legal action", "BBB", "fraud", "report you"
- Bot cannot resolve after 3 attempts
- User explicitly requests "human", "agent", "real person"
- Billing dispute over $[THRESHOLD]
## Context You Receive per Message
[USER_ID]: {{user_id}}
[CRM_STATUS]: {{crm_status}} (e.g., New Lead, Active Client, Churned)
[CHANNEL]: {{channel}}
[CONVERSATION_HISTORY]: {{last_5_turns}}
[CURRENT_INTENT]: {{classified_intent}} (confidence: {{confidence_score}})
Use this context to personalize every response. An Active Client asking a billing question should be addressed differently than a New Lead asking the same question.
Context Management Rules
| Context Type | How to Use It | Max Retention |
| User's name | Use in opening of every message, not every turn (avoid sounding robotic) | Full session |
| Previous intent | If user returns to previous topic, acknowledge continuity | Last 10 turns |
| CRM status | Adjust tone (prospects vs. paying clients), skip qualification if already qualified | Pull fresh per conversation |
| Conversation goal | Track progress toward goal (book call, resolve issue, capture lead) | Full session |
| Unanswered questions | If user asks multiple things, address all. Log unresolved ones for follow-up | Current turn only |
Fallback Logic Tree
IF intent_confidence < 0.60:
→ Trigger CLARIFICATION response:
"Just to make sure I understand — are you asking about [OPTION_A] or [OPTION_B]?"
→ If user clarifies → re-classify → respond
→ If user says "neither" → open question: "Tell me more in your own words"
IF 2 consecutive FALLBACK events:
→ Trigger HUMAN_OFFER:
"I want to make sure you get the best help possible.
Would you like to connect with a team member?
A) Yes, connect me now
B) No, let me try again"
IF user selects "connect me now" OR 3 consecutive FALLBACK events:
→ Trigger HANDOFF_PROTOCOL (see Section 9)
→ Log conversation context for agent
→ Notify support channel
FALLBACK response templates (rotate to avoid repetition):
1. "I want to make sure I answer exactly what you're asking. Could you rephrase that?"
2. "Let me make sure I get this right — what's the main thing you need help with?"
3. "That's outside my usual area! Let me connect you with someone who can help directly."
Operations
Handoff Protocol — Hard/Soft Triggers, Warm Transfer Scripts
Trigger Conditions
| Trigger Type | Condition | Action | SLA |
| HARD | sentiment_score < -0.6 (anger) | Immediate bot pause + human alert + de-escalation script | 15 min |
| HARD | Keywords: "lawyer", "sue", "BBB", "fraud", "report" | Immediate human + manager notify + log conversation | 10 min |
| HARD | User explicitly says "human", "agent", "person" | Immediate handoff, no further bot turns | 5 min (queue) |
| HARD | Billing dispute > $[THRESHOLD] OR legal question | Route to billing manager / legal team directly | 30 min |
| SOFT | 3 consecutive FALLBACK events | Offer human option, proceed only if user declines | Queue-based |
| SOFT | Intent: CANCEL or REFUND detected | Route to retention specialist, not general support | 30 min |
| SOFT | HOT lead (score >70) qualifies on BANT | Trigger AE notification + offer immediate call | 5 min business hours |
| SOFT | Conversation duration >15 minutes, unresolved | Proactively offer human: "I can connect you with a specialist if helpful" | Next available |
Warm Transfer Script — Bot to Agent
BOT — Warm Transfer Opening to User
[FIRST_NAME], I'm connecting you with [AGENT_NAME] right now.
[AGENT_NAME] is our [TITLE] and specializes in exactly [RELEVANT_AREA].
I've already shared the context of our conversation so you won't need to repeat yourself.
Typical wait: [WAIT_TIME]
While you wait, is there anything else I can clarify or prepare for your conversation with [AGENT_NAME]?
SYSTEM — Context Packet sent to Agent
===== HANDOFF SUMMARY =====
Contact: [NAME] | [PHONE/EMAIL] | CRM Status: [STATUS]
Channel: [CHANNEL] | Session Duration: [DURATION]
Trigger: [TRIGGER_REASON]
BANT Qualification:
Budget: [BUDGET_RANGE] | Authority: [ROLE]
Need: [NEED_SUMMARY] | Timeline: [TIMELINE]
Lead Score: [SCORE]/100
Conversation Summary (last 5 turns):
[TURN_1_SUMMARY]
[TURN_2_SUMMARY]
[TURN_3_SUMMARY]
[TURN_4_SUMMARY]
[TURN_5_SUMMARY]
Unresolved Questions from User:
- [UNANSWERED_Q_1]
- [UNANSWERED_Q_2]
Recommended Agent Action: [SUGGESTED_NEXT_STEP]
Priority: [LOW / MEDIUM / HIGH / URGENT]
===========================
BOT — Agent Opening Line (copy for human agent to send)
Hi [FIRST_NAME]! I'm [AGENT_NAME] — [TITLE] at [COMPANY].
I've read through your conversation and I understand you're dealing with [SUMMARY_OF_ISSUE_OR_NEED].
Let me address this directly...
[AGENT CONTINUES FROM CONTEXT PACKET — NO RE-INTRODUCTION NEEDED]
Post-Handoff Follow-up
| Scenario | Bot Follow-up (Timing) | Message |
| Support ticket created, not resolved | T+24h if ticket still open | "[FIRST_NAME], just checking — has [ISSUE] been resolved? Reply YES or reply STILL OPEN and I'll escalate immediately." |
| HOT lead handed to AE | T+2h if no AE contact logged | Alert AE via Slack: "@[AE_NAME] — HOT lead [NAME] has been waiting 2hrs. Score: [SCORE]. Please contact now: [PHONE]" |
| CSAT survey trigger | T+4h after ticket resolved | "Hi [FIRST_NAME]! Was your issue resolved to your satisfaction? Rate us: ⭐⭐⭐⭐⭐ or reply with your rating 1–5." |
Operations
QA Scorecard — 20 Pre-Launch Test Cases
Run every test case before launching on any new channel. Log results in the table below. All 20 must PASS before go-live. Re-test after any major change to flows, intent library, or system prompt.
MODULE 1 — Intent Recognition (5 tests)
1
Basic intent recognition
Send "how much does it cost?" — Expected: PRICING_INQUIRY at >90% confidence
PASS / FAIL
2
Synonym intent recognition
Send "what do you charge?" and "rates?" — Same intent as above, still >85% confidence
PASS / FAIL
3
Multilingual intent
Send "¿cuánto cuesta?" — Expected: PRICING_INQUIRY + Spanish response triggered
PASS / FAIL
4
Low-confidence fallback
Send "banana elephant Tuesday" — Expected: FALLBACK triggered, human offer after 2nd failure
PASS / FAIL
5
Multi-intent handling
Send "I need pricing and also how do I cancel?" — Bot should address BOTH intents, not drop one
PASS / FAIL
MODULE 2 — BANT Flow (5 tests)
6
Full BANT completion — HOT lead
Complete full BANT with: Budget $2k, Decision-maker, Clear need, Timeline 30 days — Expected: HOT lead score >70, AE notified, booking offer triggered
PASS / FAIL
7
BANT — evaluator path
Select "researching for boss" in authority — Expected: decision packet offered, lead score reduced, nurture sequence enrolled
PASS / FAIL
8
BANT — user drops off mid-flow
Abandon BANT at N step — Expected: bot waits 2h, sends re-engagement nudge, captures partial data to CRM
PASS / FAIL
9
BANT — budget disqualification
Select lowest budget option below minimum — Expected: graceful disqualification, offer starter product or resource, no abrupt cutoff
PASS / FAIL
10
CRM data written correctly
Complete full BANT — check CRM: contact created, BANT fields populated, lead score logged, stage updated to "Qualified"
PASS / FAIL
MODULE 3 — Service & Escalation (5 tests)
11
Strike 1 resolution
Send "I can't log in" — Expected: password reset steps delivered, KB link included, satisfaction check asked
PASS / FAIL
12
Strike 2 ticket creation
Respond "No, still broken" after Strike 1 — Expected: detail collection, ticket created in helpdesk with correct fields, confirmation with ticket # sent
PASS / FAIL
13
Strike 3 anger escalation
Send "I am absolutely furious about this, this is unacceptable!" — Expected: bot pauses, de-escalation script fires, human alert sent <2 min
PASS / FAIL
14
Legal keyword escalation
Send "I'm going to contact my lawyer about this" — Expected: HARD trigger fires, manager alerted, conversation logged
PASS / FAIL
15
OPT-OUT compliance
Send "STOP" — Expected: confirmed opt-out message, contact removed from ALL marketing lists, "do_not_contact_wa" flag set in CRM — test immediately
PASS / FAIL
MODULE 4 — Edge Cases & Compliance (5 tests)
16
Returning customer recognition
Initiate conversation from a number already in CRM as "Active Client" — Expected: bot greets by name, skips cold intro, offers account-aware response
PASS / FAIL
17
Inappropriate content handling
Send offensive or off-topic content — Expected: firm but polite redirect, no engagement with content, offer relevant help
PASS / FAIL
18
AI hallucination guard
Ask bot about a service it doesn't offer — Expected: bot says "I'll find out" or "that's not something we offer currently" — NEVER invents an answer
PASS / FAIL
19
Message length compliance
Trigger the longest bot response in your flow — verify it's within channel character limits (WhatsApp: <1,024; SMS: <160 per segment)
PASS / FAIL
20
Load test — concurrent conversations
Simulate 50 concurrent conversations using test tool — verify: no message delays >3s, no duplicate responses, no cross-conversation data leakage
PASS / FAIL
Go-Live Gate
Tests 13, 14, 15, and 20 are hard blockers.
Do not go live if any of these 4 fail. The rest can be temporarily mitigated with human monitoring, but escalation failures, OPT-OUT failures, and load test failures are safety-critical.
Operations
KPI Dashboard — 8 Metrics, Targets & Monthly Review
78%
Containment Rate
Target: >70%
Alert if <55% — review Strike system
4.2s
Avg Response Time
Target: <5 seconds
Alert if >10s — check infra/API
68%
Intent Match Rate
Target: >75%
Alert if <60% — retrain NLP
4.4/5
CSAT Score
Target: >4.0/5
Alert if <3.5 — full flow audit
18%
Lead-to-Qualified %
Target: >15%
Alert if <8% — BANT tuning
9.2%
Escalation Rate
Target: <15%
Alert if >25% — Strike 1 failing
$0.09
Cost per Conversation
Target: <$0.25
Alert if >$0.50 — model costs rising
62%
Session Completion Rate
Target: >55%
Alert if <40% — drop-off in flow
Metric Definitions & Measurement
| KPI | Formula | Source | Cadence |
| Containment Rate | Conversations resolved by bot / Total conversations | Bot analytics + CRM handoff events | Weekly |
| Avg Response Time | Sum of (user_message_time – bot_reply_time) / message count | Platform API logs (p95 percentile) | Daily |
| Intent Match Rate | Messages with confidence >0.75 / Total messages received | NLP platform analytics | Weekly |
| CSAT Score | Sum of ratings / Number of ratings received | Post-conversation survey (1–5 scale) | Weekly |
| Lead-to-Qualified % | BANT-qualified leads / Total leads who started BANT flow | CRM pipeline — stage tracking | Weekly |
| Escalation Rate | Conversations handed to human / Total conversations | Handoff trigger logs | Daily |
| Cost per Conversation | (AI API cost + Platform cost) / Total conversations | AI provider billing + platform billing | Monthly |
| Session Completion Rate | Sessions that reach defined endpoint / Total sessions started | Bot flow analytics — completion events | Weekly |
Monthly Review Cadence — 90-Minute Meeting Template
| Time | Agenda Item | Owner | Output |
| 0:00–0:15 | KPI review — all 8 metrics vs. targets, RAG status | Bot Manager | Status slide |
| 0:15–0:35 | Conversation audit — review 20 random escalated conversations | QA Lead | Issue log |
| 0:35–0:50 | Intent analysis — top 10 FALLBACK triggers from the month | NLP Engineer | Retraining backlog |
| 0:50–1:05 | CSAT analysis — lowest-rated conversations, pattern identification | CX Lead | Script updates |
| 1:05–1:20 | Action items — owners, deadlines, P1/P2/P3 priority | All | Updated task board |
| 1:20–1:30 | Next month planning — new intents, flow updates, A/B tests planned | Bot Manager | Sprint plan |
Continuous Improvement Loop
- Weekly: Export top 20 FALLBACK messages. Add best ones as training utterances to appropriate intents. Minimum 5 new utterances per affected intent.
- Monthly: Run the full 20-case QA scorecard. Update failing test cases. Re-deploy and re-test before the next broadcast cycle.
- Quarterly: Full flow audit. Remove flows with <5% usage. Update case studies, pricing references, and team names in all bot scripts.
- Annually: Re-evaluate platform. Could a different BSP, NLP platform, or AI model improve containment rate by >10%? Commission a technical review.
The One Metric That Matters Most
If you can only track one thing, track
Containment Rate. It captures everything: if intents work, containment is high. If scripts work, containment is high. If the 3-STRIKE system works, containment is high. A sustained containment rate >75% is the hallmark of a world-class chatbot. Below 60% is a system with serious design problems that no KPI dashboard will fix on its own.