Naptown Labs

AI SMS Agents
For Every Business

White-label AI agent platform for service businesses. Get a dedicated Twilio phone number with Claude-powered agents that handle inbound SMS, capture leads, answer questions, and escalate to humans — 24/7.

dispatch.naptownlabs.dev
7
DB Tables
15+
API Routes
5
Agent Tools
24/7
Always On
Everything your business needs to never miss a lead

Claude-powered AI agents that handle SMS conversations, capture customer info, and know when to loop in a human.

💬

Twilio SMS Integration

Dedicated phone numbers per client. Inbound SMS hits a webhook, Claude processes the message, and the response is sent back via Twilio REST API. Full E2E flow.

🤖

Claude AI Conversation Engine

Claude Haiku 4.5 powers every response. Configurable personas, greeting messages, and a 5-iteration tool loop with prompt injection defense built in.

📊

Analytics Dashboard

Summary cards for total SMS, conversations, resolved rate, and 24h activity. Daily volume charts, conversation status breakdown, and agent performance tables. Pure CSS charts.

Form Validation

Client-side per-field validation with inline errors across all forms: registration, login, agent config, and settings. E.164 phone format enforcement for escalation numbers.

💰

Stripe Billing

Three-tier subscription model with Stripe Checkout and Customer Portal. SMS quota enforcement in the conversation engine automatically rejects messages when limits are exceeded.

👥

Multi-Tenant Auth

NextAuth.js v4 with email/password and JWT sessions. Organization-scoped data isolation, super admin role for platform management, and middleware-protected routes.

How Dispatch processes every message

From inbound SMS to AI-powered response in milliseconds.

Customer
Sends SMS
Twilio
Webhook POST
API Route
/api/webhooks/twilio/sms
Engine
handleInboundSMS()
AI
Claude Haiku 4.5
Tool Use
5 agent tools
Database
PostgreSQL + Drizzle
Response
Twilio sendSMS()
// Conversation engine flow (src/lib/engine/conversation.ts) // 1. Twilio webhook receives inbound SMS // 2. Validate Twilio signature (replay attack prevention) // 3. Look up phone number → agent → organization // 4. Check SMS quota (rejects if monthly limit exceeded) // 5. Find or create conversation for this sender // 6. New conversation? Send agent greeting (skip Claude call) // 7. Existing conversation? Build prompt with persona + history // 8. Claude processes with tool_use (max 5 iterations) // 9. Tools: capture_lead, check_hours, escalate, send_info, resolve // 10. Send response via Twilio REST API
Plans that scale with your business

Start with one agent, scale to ten. SMS quotas enforced automatically.

Starter
$149/mo
  • 1 AI agent
  • 1 phone number
  • 500 SMS / month
  • Lead capture
  • Human escalation
Business
$599/mo
  • 10 AI agents
  • 5 phone numbers
  • 5,000 SMS / month
  • Team collaboration
  • Advanced analytics
  • Dedicated support
Claude tool-use powers every conversation

Five built-in tools let the AI agent take real actions on behalf of your business.

capture_lead
Save customer name, email, phone, and notes. Automatically captures lead info from natural conversation without awkward forms.
check_business_hours
Check if the business is currently open. Returns schedule so the agent can inform customers of operating hours.
escalate_to_human
Forward the conversation to the business owner's phone via SMS. Triggered when the AI can't handle a request or the customer asks for a person.
send_business_info
Share business address, hours, services, and other details. Pulls from the organization's configured profile data.
mark_resolved
Close the conversation when the customer's question has been fully answered. Updates status for analytics tracking.
// Agent persona configuration (per-agent, fully customizable) { "name": "Alex", "persona": "You are Alex, a friendly receptionist for Acme Plumbing...", "greeting": "Hi! Thanks for reaching out to Acme Plumbing. How can I help?" } // New conversations with a greeting skip the Claude API call entirely // Tool loop capped at 5 iterations to prevent runaway costs // Prompt injection defense built into system prompt
Built with modern, production-grade tools

Full-stack TypeScript with battle-tested integrations.

Next.js 16
App Router + API Routes
🐘
PostgreSQL
Production Database
💧
Drizzle ORM
Type-safe Queries + Migrations
🤖
Claude Haiku 4.5
AI Conversation Engine
📞
Twilio
Programmable SMS
💰
Stripe
Billing + Subscriptions
🔐
NextAuth.js v4
Multi-Tenant Auth + JWT
🎨
Tailwind v4
Styling + shadcn/ui
Hetzner VPS
PM2 + Caddy Reverse Proxy
🔧
TypeScript
End-to-End Type Safety

See it live