AI Communications Platform — Email + Telephone¶
Maintained by: chat-MC1 with corrections from Brandon
Summary¶
Comprehensive AI-handled customer communications across email and telephone. Inbound customer messages on any channel route to AI for intent classification, autonomous reply when confident, human escalation when not. Outbound from AI for sales follow-up, appointment confirmation, status updates. Cross-channel customer context — same customer talking via email then phone, AI sees both. Logged, auditable, bedrock-gated.
Replaces the ad-hoc current state where role addresses ([email protected], accounting@..., etc.) bounce to [email protected] and Brandon manually triages everything.
Strategic function¶
Brandon's principal capacity is the binding constraint. Today every customer email and every customer call requires Brandon's attention (filter, classify, draft response, send). The AI Comm Platform converts that to: AI handles the routine cases autonomously, surfaces only the ones that genuinely need Brandon's judgment, and gives Brandon a single dashboard of customer conversation state across all channels.
Strategic value: 10-20 hours/week of Brandon's time recovered for principal-judgment work. Plus: customer experience improves (no missed messages, sub-1-hour response time during business hours, 24/7 acknowledgment).
Architecture (build on existing pieces; don't replace)¶
| Layer | Component | Status |
|---|---|---|
| Telephony PSTN | VoIP.ms (account 543869, LA1 POP) | Live; DIDs provision per address |
| Call routing | FreePBX on LXC 108 | Live (per-extension routing) |
| Transactional email outbound | Resend (mail.cactustruckparts.com verified; expand per domain) |
Live, free tier 100/day |
| Inbound email aliases | Cloudflare Email Routing per domain (FREE) | Phase 1 work |
| AI orchestrator | Existing ai-comm-monitoring v0.1 scope at projects/ai-comm-monitoring/scope-v0.1-mc1-draft.md |
v0.1 scoped, not built |
| Channel substrate | D:\Projects\comm-infra (mailbox + NATS + heartbeat) |
Live; needs email+phone channel extensions |
| LLM classification | harness model tier (Ollama floor → Sonnet escalation → Opus rare) | Live; tier strategy from substrate v1.0 |
| Customer context store | NEW — per-customer thread aggregation across channels | Phase 4 |
| Dashboards | Existing Dashboard A pattern | Phase 2 (per-channel inbox view) |
Build-vs-buy decisions deferred to chat-MC1 strategic ratification — see Open Questions below. Lean: build on existing harness + comm-infra; vendor only where build cost is prohibitive (e.g., TTS quality).
Phasing¶
Phase 1 (this week — 2 weeks): Email inbound + outbound foundation¶
- IT: Cloudflare Email Routing per domain (free; unlimited role-aliases → forward to humans)
- IT: DMARC/SPF/DKIM per domain (so outbound from role-addresses doesn't get spam-filed)
- IT: Resend domain verification expanded from
mail.cactustruckparts.comto all active brand domains - SE-App: Per-domain catch-all routing rules; "send mail as" SMTP relay through Resend
- WDM: Customer-facing copy for auto-acknowledgment templates per role address
End state: every role address inbound works; humans can reply-as the role address with proper deliverability; no AI handling yet.
Phase 2 (2-4 weeks): AI handling on email¶
- AI Comm Monitoring v0.1 ship: per the existing scope at
projects/ai-comm-monitoring/scope-v0.1-mc1-draft.md— read-only ingestion, per-message classification (Ollama floor → Sonnet escalation), routing - Extend v0.1 → v0.2: confidence-gated autonomous reply (HIGH confidence + reversible-action → auto-reply via Resend; LOW confidence or external-impact → HOLD_FOR_REVIEW per harness)
- SE-App: per-domain handler instantiation (sales@cactustruckparts vs sales@superiorwatertruckparts handle different intents)
- OM: KPI scoreboard — inbound volume per address, classification confidence distribution, auto-reply rate, escalation rate, response-time SLA
End state: 60-80% of routine email inbound handled autonomously; humans see only the surfaced edge cases.
Phase 3 (4-6 weeks): Phone inbound — AI receptionist¶
- IT: Provision DIDs per primary role address (sales@, accounting@, support@ each get a phone number)
- IT: FreePBX inbound route → AI receptionist endpoint (Whisper transcription + harness classification + TTS response OR transfer to human)
- SE-Infra: comm-infra phone channel (analog of mailbox channel; emits inbound-call events to NATS)
- SE-App: call handler (intent classification, decide: AI handles vs transfer to human vs voicemail-then-callback)
- WDM: IVR voice script + brand voice + hold-message copy; Brandon ratifies tone
End state: customer calls sales@ DID, AI answers, classifies intent, either handles (basic Q&A about product / hours / inventory) or transfers to human / takes message.
Phase 4 (6-10 weeks): Outbound phone + cross-channel context¶
- SE-App: outbound calling (sales follow-up, appointment confirmation, delivery status)
- SE-Infra: per-customer context store (aggregates all email + phone interactions per customer; AI uses for continuity)
- AI Comm Monitoring: unified customer view dashboard
End state: AI proactively reaches out to customers across channels with full context of prior interactions.
Phase 5 (later): SMS, web chat, social DMs as time permits.¶
Lane assignments (Phase 1 — operational; later phases scope-but-defer)¶
| Lane | Phase 1 deliverables | Owner |
|---|---|---|
| Inbound email aliases | CF Email Routing per domain (4-6 domains × 5-10 aliases each) | IT |
| DMARC/SPF/DKIM | Per domain; SPF includes Resend; DKIM via Resend; DMARC policy=quarantine after 1-week observe | IT |
| Resend domain expansion | Verify additional domains beyond mail.cactustruckparts.com |
IT + SE-App coordination |
| Per-domain handler scaffold | Existing ai-comm-monitoring scope is the seed; instantiate per domain |
SE-App |
| Customer-facing copy | Auto-acknowledgment text per role address; brand voice consistent | WDM |
| KPI scoreboard | Per-channel inbound/outbound volume + classification + SLA | OM |
| Bedrock posture | No outbound = no bedrock-#3 conflict in Phase 1; review for Phase 2+ | chat-MC1 |
Bedrock alignment¶
- #1 (Aggregate harm cap): Phase 1 has zero monetary impact (read-only on world). Phase 2+ outbound must declare per-send cost; daily-cap predicate fires at threshold.
- #2 (No harm to customers): Customer-facing AI must be ratified by Brandon for tone, error-recovery, escalation paths. AI never makes commitments on Brandon's behalf without HOLD_FOR_REVIEW.
- #3 (Reversibility): Auto-replies are reversible at the framework level (apology + correction). True commitments (price quotes, scheduling) go HOLD_FOR_REVIEW.
- #4 (Truthfulness): AI never claims human identity. Auto-reply opens with "AI assistant" disclosure when confidence < HIGH.
- #5 (Scope): Per-domain handlers stay in their domain's scope; cross-domain routing only via OM coordination.
- #6 (Source preservation): Customer's original message is never altered. AI replies are NEW messages; original thread preserved.
- #7 (Continuity): All interactions logged to audit; conversation state persists across AI restarts via the substrate's pgvector + agent_memory tables.
Open questions (chat-MC1 strategic ratification needed)¶
-
Build-vs-buy on telephony AI. Vapi.ai / Retell / Bland.ai ($0.05-0.15/min, fast time-to-live, vendor lock-in) vs custom Whisper + harness + TTS (~$0.03-0.08/min, slower, owned stack). Trade off ship speed vs framework-as-product portability. Recommendation: vendor for Phase 3 ship; revisit custom for Phase 4+ once volume justifies.
-
Recording disclosure. Arizona is 1-party consent — we can legally record without notifying caller. But: brand reputation + ATG's "we built this with care" posture suggests we DO disclose. Recommendation: disclose ("This call may be recorded for quality and training purposes"). Brandon ratifies tone.
-
Brand voice for AI. Formal / professional / casual? Each role address may want different voice (sales@ warmer, accounting@ more formal). WDM drafts; Brandon ratifies per-domain voice card.
-
Numbers strategy. One DID per role-address per domain (granular but expensive at $1.10/mo each × 30+ addresses) vs one DID per domain with IVR menu (cheaper, single number per brand). Recommendation: per-domain DID + IVR for ATG, single DID for smaller brands.
-
PII handling. AI sees customer email addresses, phone numbers, sometimes vehicle details. Retention policy? Redaction in long-term audit log? Chat-MC1 + Brandon decide; default lean = retain 90 days, redact older.
-
Escalation latency SLA. When AI HOLDS, how fast does Brandon (or assignee) see it? Phase 1 = next mailbox sweep (~hours). Phase 2 needs MM realtime ping. Phase 3 needs phone notification (callback to Brandon? text?). Recommendation: tiered by intent urgency.
-
Budget ceiling. Resend usage scales with volume ($0 free → $20/mo for 50K/mo). VoIP minutes (~$0.009/min). LLM compute (~$0.01-0.05 per email handled, ~$0.10 per call handled). Estimated $50-200/month at moderate volume. Brandon-approve budget envelope.
Cost model (rough; refine with real volume data)¶
| Item | Phase 1 (free) | Phase 2 (light) | Phase 3 (full) |
|---|---|---|---|
| CF Email Routing | $0 | $0 | $0 |
| Resend | $0 | $0-20 | $20-50 |
| VoIP.ms DIDs (× 5-15) | $0 | $0 | $7-20 |
| VoIP.ms minutes | $0 | $0 | $30-100 |
| LLM compute (email) | $0 | $10-30 | $30-100 |
| LLM compute (phone) | $0 | $0 | $50-200 |
| TTS / STT (if vendor) | $0 | $0 | $20-50 |
| Total / month | ~$0 | ~$10-50 | ~$160-520 |
Compare: human receptionist + email triage at $20-25/hr × 20-40 hr/week = $1,700-4,300/month.
Why this matters¶
Phase 1 alone saves Brandon ~5 hr/week of email triage. Phase 2 saves another ~10 hr/week. Phase 3 saves another ~5 hr/week of phone interruptions. Total recovered principal capacity: ~20 hr/week at full deployment.
Strategic context: this is the "customer-facing layer" of the AI organization. The ai-organization.md doc covers internal AI roles + framework operations; this doc covers how the framework engages with external parties (customers, vendors, prospects). Both compound — internal efficiency + customer experience scale together.
Strategic context¶
- Builds on existing ai-organization.md substrate (harness + comm-infra + agent-runtime)
- Customer-facing for atg-operations.md, cactus-truck-parts.md, superior-water-truck-parts.md, sp-mx-expansion.md, ctp-mx-ritchie-bros.md
- Future Dennis-arm integration (real-estate-operations.md, newpath-foundation.md, thorson-construction.md)
- Becomes a component of framework-as-product.md hypothesis
Brandon's corrections¶
- [pending]
Version history¶
- v0.1 (2026-05-25): Initial scoping per Brandon's "comprehensive AI comm platform" directive; MC1-Code authored + assigned operational lanes; chat-MC1 strategic ratifications flagged