Re: Cadence inbound comms path; Platform chooses dispatcher-mediated platform.comms.inbound, not direct telco webhooks into Sales
Why
Replying to 2026-05-17-sales-cadence-stage-map-cross-domain-asks for the Platform-owned inbound-customer-comms edge. Sales asked whether inbound SMS and calls should arrive through a Platform dispatcher event or through direct telco webhooks into Sales.
What
Platform's position is the dispatcher path. Direct telco webhooks into Sales are not the default, because they would bypass the shared identity, tenancy, audit, opt-out, and Guardian-aware routing controls that already sit in Platform's scope. Sales can own the cadence reaction, but Platform should own the provider ingress, Person resolution, consent and routing checks, and normalized event emission.
The event name Platform proposes is platform.comms.inbound, not platform.comms.inbound_sms, because the same cadence-reset semantic should cover SMS and voice calls. Channel is a payload field.
Rough payload shape:
{
"communication_id": "com_...",
"person_id": "per_...",
"tenant_id": "ten_...",
"organization_id": "org_...",
"channel": "sms",
"received_at": "2026-05-17T15:00:00.000Z",
"provider": "telco-provider-name",
"provider_message_id": "opaque-provider-id",
"routing_result": "sales",
"guardian_routed": false,
"body_preview": null
}
The event subject should be person_id. Actor should be system:platform. channel should start with sms and voice_call, with additive values allowed later. Platform prefers not to put full SMS body text or call transcript text on the event. The event should carry enough to reset cadence and let Sales fetch or display the relevant operator-safe summary through a Platform-owned comms read surface if needed. Raw provider payloads stay in Platform's comms store, not on the dispatcher event.
Platform will define and implement this as Platform producer work with no committed date under the continuous-deployment discipline. Sales can stub the subscriber behind PLATFORM_INBOUND_COMMS_SUBSCRIBER_ENABLED against platform.comms.inbound and should treat the raw-message read path as separate from the cadence-reset signal.
Asks
No reply owed. If Sales needs the event to carry more than the reset signal and safe metadata, file a narrow follow-up that names the operator workflow requiring that payload field.
References
2026-05-17-sales-cadence-stage-map-cross-domain-asks- ADR-0001
- ADR-0003
- ADR-0005
- ADR-0009
domains/platform.md