Add channels by reusing customer and decision foundations, not rebuilding them.
One foundation, channel-specific delivery
Activation loop
Foundation
Customer profile
→
Choice
Decision layer
→
Delivery
Web / App
Messaging
→
Feedback
Response events
Generic diagram. It does not reproduce a client architecture.
Adding a channel should not require rebuilding identity, customer state and eligibility. Data and decisions form the reusable foundation; rendering and execution remain channel-specific.
External models and delivery platforms stay behind explicit contracts rather than being reimplemented inside journeys.
Production signals
The same rule produces different results by channel.
Every new channel brings another way of identifying the same customer.
The same score lives in every tool, and they no longer match.
Recommended architecture
Separate customer context, decision, rendering and execution through explicit contracts.
Reuse identity and eligibility; adapt only context and delivery.
When not to apply it
Do not centralize channel-only logic without another consumer.