Comms Platform

Status
in-progress
Tier
Tier 2 — Platform
Owner
Ryan Colston
Started
2026-06-02

One-line description. One internal communications layer for email, SMS, and (later) voice that every system sends and receives through, instead of each system wiring its own vendor. Resend (transactional email) + Telnyx (SMS/voice) + Kit (nurture), glued by Cloud Run + BigQuery. FUB stays the CRM.

Why

Outbound/inbound comms were sprawling toward per-system vendor wiring, with a paid-but-never-built Brevo subscription and a Twilio-default dialer plan. Consolidating into four non-overlapping lanes (transactional email, nurture, SMS/voice, correctness backbone) means one place to send, one place to receive, one event log that every send is gated against for suppression/dedup.

The decision that shaped it (2026-06-02): Resend replaces the never-built Brevo for transactional email; Telnyx replaces Twilio for SMS/voice because its native transcription removes the bolt-on-STT step the coaching pipeline needs; Kit stays for nurche (its price matches Resend's marketing tier and it does more). Net ≈ $45–55/mo, down from the $90 Brevo+Kit was heading toward.

Current state

Email layer Phase 1 (built subagent-driven TDD, on main): the data-platforms/comms-platform/comms/ Python package — stage registry, template render, Resend send adapter, FUB read client (recruiting instance), append-only BigQuery layer, and the cold-cadence sequencer (with warm-up ceiling). Live BQ comms dataset (events partitioned + contacts + contact_state view). Proven end-to-end with a real cold-cadence email through the full pipeline (suppression-checked, BQ-logged, landed in-inbox).

Next 3 actions

  1. Phase 2 — pos-comms deploy (plan docs/plans/2026-06-03-email-layer-phase2.md): build the FastAPI wrapper + terraform, bootstrap the Cloud Run service + paused scheduler. Add pos-comms to infra/ci/build-paths.sh.
  2. Phase 3 — transactional stages + Resend webhook (booking confirm, night-before, no-show via live FUB outcome "No show").
  3. Phase 4 — real Hormozi-voice copy for the 6 cold touches + transactional templates; then launch (unpause scheduler, begin tagging cold-cadence-active).

Decisions log

Open issues

References