Raxx · internal docs

internal · gated ↑ index

Email Routing — Platform Address Map

Living document — update this file when adding or removing any platform email address.

Purpose: ADR-style decision record mapping every @raxx.app and @moosequest.net address to its handling system, direction, and watcher. Use this as the authoritative reference for onboarding, debugging, or extending email infrastructure without misrouting.

Last updated: 2026-05-11 UTC Related issues: #1216 (this card), #651 (parent epic: support.raxx.app), #708 (Postmark MX for raxx.app)


Two-track design principle

All platform email follows one of two tracks. This is a hard architectural separation — do not blur the boundary between them.

Track Stack Use case Rationale
Human-to-human Google Workspace (primary domain moosequest.net, alias domain raxx.app) Replies from humans: investor emails, partner conversations, attorney correspondence, billing receipts, ops alerts Messages require human judgment, no SLA clock, not ticketable
Serviceable / SLA-bearing inbound Postmark inbound → Raptor webhook → FreeScout at tickets.raxx.app Customer support requests requiring tracking, assignment, and response SLA Messages require ticket lifecycle, audit trail, and assignable ownership

This separation is documented in project_email_mental_model.md (in-memory) and was established as part of epic #651. See also docs/business/business-email.md for the Google Workspace multi-domain architecture that underpins the human-to-human track.


Why support@raxx.app must NOT be a Google Workspace mailbox

Decision (locked): support@raxx.app is routed exclusively through Postmark inbound and FreeScout. It must never be claimed as a Google Workspace mailbox or alias.

Rationale:

  1. Two-track integrity. The moment Google intercepts inbound to support@raxx.app, the Postmark → FreeScout pipeline breaks silently. Customers would not receive ticket confirmations; support history would be lost. There is no graceful degradation.
  2. MX ownership conflict. raxx.app MX records point to Postmark (per #708). If Google Workspace is configured as an alias domain, Google would compete with Postmark for support@ delivery. The winner is non-deterministic and DNS-routing-dependent — not acceptable for a customer-facing address.
  3. Postmark is the sender for support replies. FreeScout relays outbound support email through Postmark SMTP. A Google mailbox would create a split outbound identity for the same address, breaking DMARC alignment.
  4. Audit and SLA traceability. FreeScout provides ticket IDs, timestamps, and assignment history. A Google inbox provides none of these. Migrating to Google would permanently degrade support operability.

Do not add support@raxx.app as a Google Workspace alias or user, even temporarily.


Address map — @raxx.app

Address Type System Direction Watcher Related issues Status
support@raxx.app Customer support FreeScout (Postmark SMTP relay) Inbound + outbound Kristerpher via FreeScout #651, #708, #710 Live — do not modify
ops@raxx.app Operations alerts Google Group → kris@moosequest.net Inbound + outbound Kristerpher Pending provisioning
billing@raxx.app Billing receipts / invoices Google Group → kris@moosequest.net Inbound + outbound Kristerpher Pending provisioning
no-reply@raxx.app Automated outbound only Google Workspace alias (send-as) or dedicated user Outbound only n/a (intentional discard on inbound) Pending provisioning

For provisioning instructions (Google Admin steps) and the full Postmark sender signature state, see docs/ops/email-routing.md.


Address map — @moosequest.net

Address Type System Direction Watcher Notes
kris@moosequest.net Primary operator email Google Workspace (primary mailbox) Inbound + outbound Kristerpher Primary human-to-human; all @raxx.app aliases resolve here unless overridden
support@moosequest.net Operator personal support channel Google Workspace Inbound + outbound Kristerpher Two-track design: this is the human channel; support@raxx.app is the ticketing channel. Keep separate.

The moosequest.net domain uses Oracle Dyn for DNS (stays on Dyn per ops policy — never migrate). SPF, DKIM, and DMARC state for this domain is documented in docs/ops/email-dns-state.md.


Routing decisions — reference table

Address Inbound system Outbound system Why NOT Google for inbound
support@raxx.app Postmark inbound → FreeScout FreeScout via Postmark SMTP See "Why support@raxx.app must NOT be a Google Workspace mailbox" above
ops@raxx.app Google Group Postmark (CloudWatch alarm SNS target) Ops alerts are human-readable notifications, not ticketable events
billing@raxx.app Google Group Stripe / billing system webhooks Billing alerts require human review, not SLA-tracked responses
no-reply@raxx.app Discard (alias — no monitored inbox) Postmark transactional Automated outbound only; no legitimate inbound expected
kris@moosequest.net Google Workspace Google Workspace Primary human mailbox; no SLA bearing
support@moosequest.net Google Workspace Google Workspace Operator's personal support channel; not customer-facing