Sales-side commitments for the cadence stage map handshake; producer-side events Sales owes and consumer flag flips Sales is gated on
Why
Parent thread 2026-05-17-sales-cadence-stage-map-cross-domain-asks closed three producer-side commitments from Coaching, Revenue, Delivery, and Platform. Sales' status update (2026-05-17-sales-cadence-stage-map-status-update) summarized what Sales had landed but did not carry explicit Sales-side commitments in frontmatter. This memo files them so the owed-ledger reflects what Sales owes on its side of the handshake: both producer-side events Sales committed to register and emit, and Sales-internal infrastructure that gates the consumer subscriber flag flips.
Sales-produced events that aren't yet registered
Two events Sales committed to produce in the parent memo are not yet entries in contracts/event-types-registry.json:
lead.coach.confirmation.requested: Sales' outbound at Stage 3a→3b transition. Coaching's reply (2026-05-17-coaching-cadence-confirmation-event-position) accepted the producer edge and named the inbound shape Sales should send:organization_id,lead_id,confirmation_request_id,coach_id,service_area_id,lesson_type_id,lesson_window, optionalrequired_certifications,requested_at, and an optional Sales-side source pointer.sales.lead.onboarded: Sales' outbound at Stage 4 entry (close-orchestration success path persistsLead.lessonDateand should emit alongside). The lead-lifecycle contract is the appropriate owning contract; this is a v1.1 candidate.
Both events need: registry entry, v1 payload schema, and runtime emit wiring. They're separate Sales-owned producer commitments below.
Sales-internal infrastructure gating consumer subscriber flag flips
Two correlation tables block Sales from flipping subscriber feature flags:
- OutboundConfirmationRequest: needed for the Coaching
coaching.lesson.confirmation_decidedsubscriber to correlate inbound responses to Sales' outbound requests viaconfirmation_request_id. Without it the subscriber stub returnscorrelation_missingfor every event. - LeadOrderCorrelation: needed for the Revenue
payment.receivedsubscriber to resolveleadIdfrom the(orderId, personId)tuple Revenue carries on the payload. Revenue's reply explicitly declined to addlead_idto the payment payload, putting the correlation on Sales' side per Revenue's boundary clarification.
These are Sales-internal commitments but they gate the cross-domain flag flips, so they're tracked here for visibility.
What's not in this memo
SALES_AUTOMATED_SMS_ENABLEDflag flip: Sales-internal, gated on the Quo auto-send worker which is listed below.- ADR-0003 Phase 4 admin work (per-workbench edit URLs, clone-from-default): Sales-internal, no cross-domain dependency.
- Platform geography subscriber flip for the placeholder Oahu/Dallas market IDs: covered by the existing
2026-05-16-sales-platform-geography-snapshot-contract-proposalthread and Platform's accepted producer commitment under2026-05-16-platform-geography-snapshot-contract-position. - Substage rename apply: gated only on Sales' DB cutover, no cross-domain hold.
Status of cross-domain commitments Sales is waiting on
These are not Sales commitments. They're tracked on each producing domain's reply memo. Listed here for context only:
- Coaching:
2026-05-17-coaching-cadence-confirmation-event-position::0: Publishcontracts/coaching-confirmation/, register the event, wire producer emit. Status: completed (contract, registry, schema in place). - Delivery:
2026-05-17-delivery-cadence-reschedule-event-position::0: Publish lesson-lifecycle v1.1 withlesson.rescheduled. Status: completed. - Platform:
2026-05-17-platform-cadence-inbound-comms-position::0: Define and implementplatform.comms.inbound. Status: completed at the contract level; the producer-side runtime emit is theplatform-comms-inbound-producer-emit-liveevent referenced as a gate above. - Revenue: No new producer commitment from the reply;
payment.receivedis the existing payment-flow event with Sales already registered as a consumer.
Once Sales' Phase 9b infrastructure (correlation tables + auto-send worker) lands, Sales will flip each subscriber flag and file a status update confirming end-to-end signal flow.
References
- Parent:
2026-05-17-sales-cadence-stage-map-cross-domain-asks - Sales status:
2026-05-17-sales-cadence-stage-map-status-update - Coaching reply:
2026-05-17-coaching-cadence-confirmation-event-position - Delivery reply:
2026-05-17-delivery-cadence-reschedule-event-position - Platform reply:
2026-05-17-platform-cadence-inbound-comms-position - Revenue reply:
2026-05-17-revenue-cadence-stage-map-payment-event-position - Sales ADRs:
sales/adrs/ADR-0002-cadence-stage-map.md,sales/adrs/ADR-0003-per-market-workbench-scoping.md - Sales deferred index:
sales/adrs/DEFERRED.md