
customer-support-builder
Build scalable customer support systems including help centers, chatbots, ticketing systems, and self-service knowledge bases. Use when designing support infrastructure, reducing support load, improving customer satisfaction, or scaling support without linear hiring.
- Installs
- 206
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/daffy0208/ai-dev-standards --skill customer-support-builder- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads customer-support-builder automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Customer Support Builder
Build scalable customer support systems that grow with your product without requiring linear hiring increases.
Core Principle
Support should scale sub-linearly with users. As you grow from 100 to 10,000 users, support volume shouldn't increase 100x. Good self-service systems can keep support needs growing at only 10-20x while user base grows 100x.
Support Maturity Model
Stage 1: Founder-Led (0-100 users)
- Founders answer every question personally
- Learn what users actually struggle with
- Document FAQs manually
- Key Metric: Response time < 2 hours
Stage 2: Documented (100-1,000 users)
- Comprehensive knowledge base
- Email support with templates
- Basic FAQ section
- Key Metric: 30% self-service rate
Stage 3: Self-Service (1,000-10,000 users)
- Searchable help center
- Contextual in-app help
- Automated responses for common issues
- Key Metric: 60% self-service rate
Stage 4: Scaled (10,000+ users)
- AI-powered chatbots
- Community forums
- Video tutorials
- Proactive support (detect issues before tickets)
- Key Metric: 80% self-service rate
Knowledge Base Architecture
Content Structure
Help Center
├── Getting Started
│ ├── Quick Start Guide (< 5 min)
│ ├── Account Setup
│ └── First Steps Tutorial
├── Core Features
│ ├── Feature A Guide
│ ├── Feature B Guide
│ └── Feature C Guide
├── Troubleshooting
│ ├── Common Errors
│ ├── Performance Issues
│ └── Integration Problems
├── Account & Billing
│ ├── Pricing Plans
│ ├── Billing Issues
│ └── Account Management
└── API & Integrations
├── API Documentation
├── Webhooks
└── Integration Guides
Article Template
# [Clear, Searchable Title]
**Time to complete**: 3 minutes
**Difficulty**: Beginner/Intermediate/Advanced
## Problem
One-sentence description of what this solves.
## Solution
Step-by-step instructions with screenshots.
1. **Step 1**: Clear action
- Screenshot/GIF
- Expected result
2. **Step 2**: Next action
- Screenshot/GIF
- Expected result
## Troubleshooting
- Problem: X → Solution: Y
- Problem: A → Solution: B
## Related Articles
- [Article 1](#)
- [Article 2](#)
Support Channels
Email Support
Setup:
Primary: support@company.com
Routing:
- billing@company.com → Billing team
- api@company.com → Engineering
- hello@company.com → General inquiries
SLA:
- Critical: 2 hours
- High: 8 hours
- Normal: 24 hours
- Low: 48 hours
Email Templates:
# Welcome Email
Subject: Welcome to [Product]! Here's how to get started
Hi [Name],
Welcome! Here's what to do first:
1. Complete setup: [Link]
2. Try this tutorial: [Link]
3. Join our community: [Link]
Need help? Reply to this email or check our help center: [Link]
[Your Name]
# Issue Resolved
Subject: [Ticket #123] Resolved - [Issue Title]
Hi [Name],
Good news! Your issue is resolved.
**What we did**:
[Clear explanation]
**What you should see**:
[Expected result]
**If the problem returns**:
[Troubleshooting steps]
Was this helpful? [Yes] [No]
[Your Name]
Chat Support
In-App Chat Widget:
// Intercom, Drift, Crisp example
<script>
window.intercomSettings = {
app_id: "YOUR_APP_ID",
// Custom attributes
email: user.email,
user_id: user.id,
created_at: user.createdAt,
plan: user.plan,
// Show relevant help articles
help_center: {
search_enabled: true
}
};
</script>
Chat SLA:
- Business hours: 5-minute response
- After hours: Email auto-response
- Expected resolution: 1-3 messages
Chatbot (AI-Powered)
Decision Tree:
User message →
├── Can answer with KB article? → Send article
├── Simple factual question? → AI answers
├── Complex issue? → Route to human
└── Angry/escalated? → Priority human routing
Implementation:
def handle_support_message(message, user_context):
# 1. Search knowledge base
kb_results = search_kb(message, top_k=3)
if kb_results[0].score > 0.85:
return {
'type': 'article',
'article': kb_results[0],
'confidence': 'high'
}
# 2. Try AI response with context
ai_response = generate_response(
message=message,
kb_context=kb_results,
user_history=user_context
)
if ai_response.confidence > 0.8:
return {
'type': 'ai_response',
'response': ai_response.text,
'sources': kb_results
}
# 3. Route to human
return {
'type': 'human_handoff',
'priority': calculate_priority(message, user_context),
'suggested_agent': route_to_specialist(message)
}
Ticket Management
Ticketing System Schema
interface Ticket {
id: string
status: 'new' | 'open' | 'pending' | 'resolved' | 'closed'
priority: 'low' | 'normal' | 'high' | 'critical'
category: string // 'billing', 'technical', 'feature', etc.
subject: string
description: string
requester: User
assignee?: Agent
tags: string[]
created_at: Date
updated_at: Date
resolved_at?: Date
first_response_at?: Date
satisfaction_rating?: 1 | 2 | 3 | 4 | 5
}
Auto-Routing Rules
Routing Rules:
- Condition: subject contains "billing" OR "payment"
Action: Assign to billing-team
Priority: high
- Condition: user.plan == "enterprise"
Action: Assign to enterprise-team
Priority: high
SLA: 2 hours
- Condition: subject contains "API" OR "webhook"
Action: Assign to engineering
Tag: 'api-issue'
- Condition: sentiment == "angry"
Action: Priority routing
Priority: critical
Notify: support-manager
Ticket Lifecycle
New → Open → Pending → Resolved → Closed
↓ ↑
← Reopen ←
Status Definitions:
- New: Just created, not yet viewed
- Open: Agent working on it
- Pending: Waiting for customer response
- Resolved: Solution provided, awaiting confirmation
- Closed: Issue confirmed resolved or auto-closed after 7 days
Self-Service Tools
Interactive Troubleshooters
// Example: Connection troubleshooter
const troubleshooter = {
start: {
question: 'What problem are you experiencing?',
options: [
{ text: "Can't connect", next: 'check_connection' },
{ text: 'Slow performance', next: 'check_performance' },
{ text: 'Error message', next: 'check_error' }
]
},
check_connection: {
question: 'Can you access our website?',
options: [
{ text: 'Yes', next: 'browser_check' },
{ text: 'No', action: 'show_status_page' }
]
},
browser_check: {
question: 'Clear your browser cache and try again.',
options: [
{ text: 'It worked!', action: 'problem_solved' },
{ text: 'Still not working', action: 'contact_support' }
]
}
}
In-App Guidance
// Contextual help tooltips
const helpTooltips = {
'/dashboard': {
first_visit: {
title: 'Welcome to your dashboard!',
steps: [
'1. View your key metrics here',
"2. Click 'Add Widget' to customize",
'3. Need help? Click the ? icon'
]
}
},
'/settings/billing': {
always_show: {
payment_methods: 'We accept Visa, Mastercard, and AmEx',
billing_cycle: 'Changes take effect next billing cycle'
}
}
}
Support Metrics
Key Metrics to Track
interface SupportMetrics {
// Response metrics
first_response_time: {
p50: number // median
p90: number // 90th percentile
p99: number
}
// Resolution metrics
avg_resolution_time: number
tickets_resolved_first_contact: number
// Volume metrics
tickets_created_today: number
tickets_open: number
tickets_overdue: number
// Quality metrics
customer_satisfaction_score: number // 1-5
net_promoter_score: number // -100 to 100
// Efficiency metrics
self_service_rate: number // % resolved without ticket
deflection_rate: number // % answered by KB/bot
cost_per_ticket: number
}
Target Benchmarks
Excellent Support:
first_response_time_p90: '< 2 hours'
resolution_time_avg: '< 24 hours'
self_service_rate: '> 70%'
csat: '> 4.5/5'
nps: '> 50'
Good Support:
first_response_time_p90: '< 4 hours'
resolution_time_avg: '< 48 hours'
self_service_rate: '> 50%'
csat: '> 4.0/5'
nps: '> 30'
Scaling Strategy
Support Team Structure
Support Organization (at scale):
Support Manager (1)
├── Knowledge Base Lead (1)
│ └── Technical Writers (2-3)
├── Chat Support (Tier 1) (5-10)
│ ├── Handle 80% of issues
│ └── Escalate complex cases
├── Email Support (Tier 2) (3-5)
│ ├── Handle escalations
│ └── Complex troubleshooting
└── Specialist Support (Tier 3) (2-3)
├── API/Technical issues
└── Enterprise customers
When to Hire Support Staff
Rule of Thumb:
- 0-500 users: Founders handle it
- 500-2,000 users: 1 support person
- 2,000-5,000 users: 2-3 support people
- 5,000-20,000 users: 5-8 support people
- 20,000+ users: Build a team
Better metric: Support load
- Hire when: > 50 tickets/day or > 10 concurrent chats
- Each agent can handle: ~30-40 tickets/day or 8-10 chats/day
Tools & Software
Recommended Stack
Ticketing: Zendesk, Intercom, Help Scout, Freshdesk Knowledge Base: GitBook, Notion, Confluence, Document360 Chat: Intercom, Drift, Crisp Chatbot AI: OpenAI, Anthropic Claude, Dialogflow Community: Discourse, Circle, Slack/Discord Analytics: Mixpanel, Amplitude (for in-app behavior)
Integration Example
// Unified support API
class SupportSystem {
async createTicket(data) {
const ticket = await zendesk.createTicket(data)
await analytics.track('support_ticket_created', {
ticket_id: ticket.id,
category: data.category,
user_id: data.user_id
})
return ticket
}
async trackKBArticleView(article_id, user_id) {
await analytics.track('kb_article_viewed', {
article_id,
user_id
})
// If user doesn't create ticket after viewing,
// article was helpful (deflection)
}
}
Proactive Support
Detect Issues Before Tickets
// Monitor for patterns
async function detectPotentialIssues() {
// Error spike detection
const errorRate = await getErrorRate('last_hour')
if (errorRate > 2 * avgErrorRate) {
await notifySupport('Error spike detected')
await displayStatusMessage("We're investigating an issue...")
}
// User struggle detection
const strugglingUsers = await detectStrugglingUsers({
criteria: ['repeated_failed_actions', 'long_time_on_page', 'back_and_forth_clicks']
})
if (strugglingUsers.length > 0) {
await offerProactiveHelp(strugglingUsers)
}
}
Health Score Monitoring
interface CustomerHealth {
user_id: string
health_score: number // 0-100
signals: {
usage_frequency: 'increasing' | 'stable' | 'declining'
feature_adoption: number
support_tickets_recent: number
last_login: Date
payment_status: 'current' | 'overdue'
}
}
// Reach out proactively when health score drops
if (customer.health_score < 40) {
await sendProactiveOutreach({
type: 'check_in',
message: "Haven't seen you in a while. Need help with anything?"
})
}
Quick Start Checklist
Week 1: Foundation
- Set up support email (support@)
- Create basic FAQ (top 10 questions)
- Install chat widget
- Document known issues
Week 2-3: Knowledge Base
- Choose KB platform
- Create getting started guide
- Document all features
- Add screenshots/GIFs
- Create troubleshooting section
Week 4: Automation
- Set up auto-responders
- Create email templates
- Configure routing rules
- Add chatbot (basic)
Ongoing
- Review ticket themes weekly
- Update KB based on common questions
- Track self-service rate
- Survey customer satisfaction
- Optimize response times
Common Pitfalls
❌ Building KB before having users: Write docs based on actual questions, not assumptions ❌ Over-automating too early: Humans learn patterns; automate after seeing 50+ tickets on same topic ❌ Poor search: If users can't find answers, they'll submit tickets ❌ No feedback loop: Track which articles users view before submitting tickets ❌ Ignoring mobile: 40% of users will access support on mobile
Success Criteria
You have great support when:
- ✅ 70%+ of users find answers without contacting support
- ✅ First response time < 2 hours during business hours
- ✅ Customer satisfaction > 4.5/5
- ✅ Support costs grow slower than user base
- ✅ Support team can focus on complex issues, not repetitive questions
FAQ
What does the customer-support-builder skill do?
Build scalable customer support systems including help centers, chatbots, ticketing systems, and self-service knowledge bases. Use when designing support infrastructure, reducing support load, improving customer satisfaction, or scaling support without linear hiring.
How do I install customer-support-builder?
Run npx skills add https://github.com/daffy0208/ai-dev-standards --skill customer-support-builder in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/customer-support-builder/ (personal) or .claude/skills/customer-support-builder/ (project).
Which AI agents can use customer-support-builder?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is customer-support-builder safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains customer-support-builder?
It is published by daffy0208 in daffy0208/ai-dev-standards. It has 206 recorded installs.
More from daffy0208/ai-dev-standards
animation-designer
daffy0208/ai-dev-standards
Expert in web animations, transitions, and motion design using Framer Motion and CSS
brand-designer
daffy0208/ai-dev-standards
Expert in brand identity, logo design, and visual brand systems
3d-visualizer
daffy0208/ai-dev-standards
Expert in Three.js, 3D graphics, and interactive 3D visualizations
data-visualizer
daffy0208/ai-dev-standards
Expert in creating charts, dashboards, and data visualizations using modern libraries
video-producer
daffy0208/ai-dev-standards
Open the skill to read its SKILL.md instructions.
knowledge base manager
daffy0208/ai-dev-standards
Open the skill to read its SKILL.md instructions.
Popular devops & cloud skills
microsoft-foundry
microsoft/azure-skills
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure
azure-diagnostics
microsoft/azure-skills
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.
azure-prepare
microsoft/azure-skills
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.
azure-ai
microsoft/azure-skills
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
azure-deploy
microsoft/azure-skills
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.
azure-validate
microsoft/azure-skills
Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.