Unified Customer Comms Inbox
Email, SMS, and your website contact form in one shared team inbox. Every customer message threads to the right person, replies go back on the same channel, and STOP is honored automatically.

Shared Inbox
Everything you need to ship
Your customers message you five ways. Your team checks five places.
Email here, texts to the business line, the website contact form landing in someone's personal inbox. Messages get missed, two people reply to the same thread, and nobody knows what was already said. The fix is not another app to check. It is one place where every channel lands.
This template is a shared team inbox that unifies email, SMS, and your website contact form. Every inbound message becomes a conversation, threaded to the right contact across channels. Your team replies from one screen and the reply goes out on whatever channel the customer used. No AI, no black box, just a clean unified inbox your whole team works from.
How it works
- Point your inbound email webhook, your Twilio number, and your website form at the template. Everything becomes a conversation in one inbox.
- Conversations thread by contact: a customer who emails and later texts shows up as one person with one history, not two strangers.
- Your team works the queue oldest-unanswered-first, replies inline (with a live SMS segment counter so you know when a text splits), and drops in saved snippets for common answers.
- Replies are channel-locked: answer an email by email, a text by text. Assign conversations, mark them open or closed, and never wonder who is handling what.
Compliance built in
- SMS opt-out is automatic and permanent. A customer who texts STOP is opted out instantly, and the template refuses to send them another message before it ever reaches Twilio. START opts them back in.
- Twilio's back-channel opt-out (error 21610) is caught and recorded, so a number that opted out through the carrier is respected too.
- Inbound Twilio requests are signature-verified against your server's own URL, so forged webhooks are rejected.
What you get
- One inbox for email, SMS, and web form, threaded by contact across channels
- Channel-locked replies with a live GSM-7 or UCS-2 SMS segment counter
- Saved snippets for fast, consistent answers
- Contact identity management with E.164 phone normalization
- Assignments, open and closed status, oldest-unanswered-first sorting
- Duplicate-delivery protection and atomic notification throttling (two inbound messages never double-ping your team)
- Optional Slack notifications and team email alerts, both degrade gracefully
- 3 presets (local service, online store, professional practice) with demo data across all channels
- 177 automated tests
Built for AI editing
Ships agent-ready: AGENTS.md for Cursor, Claude Code, and Windsurf, plus CUSTOMIZE_WITH_AI.md with paste-ready recipes (connect an email provider, add a channel, restyle the inbox). Includes paste-ready inbound-email adapters for Resend, Mailgun, and Cloudflare Email Workers.
Under the hood
Next.js 15, Supabase (Postgres + magic-link admin auth), Resend for email, Twilio for SMS (both optional, degrade gracefully), Tailwind v4, TypeScript strict. Single-tenant.
Requirements
Supabase project (free tier works). Resend for email; Twilio for SMS. Either channel alone works. Deploys to Vercel in about 30 minutes with the included guide.
Plays well with
- Slack
- Twilio
- Resend
Price shown: $199 · one-time
One-time
$199

