Workspace switchboard @switch (activePanel()) { @case ('catalogue') { {{ liveCount() }} of {{ channels.length }} channels are live. What a channel cannot do matters more than what it can — the composer reads these capabilities and hides the rest, so nobody offers buttons on SMS. @for (channel of channels; track channel.id) { {{ channel.name }} {{ channel.family }} {{ transportLabels[channel.transport] }} {{ channel.volume7d > 0 ? channel.volume7d.toLocaleString() : '—' }} {{ windowLabel(channel) }} } } @case ('transport') { Two paths to the same customer. The Unification Engine buys one API across every channel; a direct integration buys latency and day-one features on one channel — and running both means the omni-channel API stops being the single contract it was worth paying for. That trade is per channel, so it is stated per channel here. Adding a new channel

{{ platformDays() }} platform days of the {{ addChannelDays() }} total — the rest is credentials and app review, which no framework can shorten.

    @for (step of addSteps; track step.step) {
  1. {{ step.step }} ~{{ step.typicalDays }}d {{ step.detail }}
  2. }
} @case ('delivery') { @for (stat of delivery; track stat.channelId) { {{ channelName(stat.channelId) }} {{ stat.sent.toLocaleString() }} {{ stat.delivered.toLocaleString() }} {{ stat.read > 0 ? stat.read.toLocaleString() : 'n/a' }} {{ stat.failed.toLocaleString() }} } Failover routing } @case ('threading') { One person, several channel identities, one thread. Matching is only as good as the key — and a weak key never merges silently, it asks. Identity keys Merges ({{ pendingMerges() }} waiting on a person) } @case ('ads') { Click-to-message campaigns end in a conversation, so the conversation is where the return is measured. Clicks are not the outcome — a campaign can buy 22 000 clicks and 214 conversions. @for (campaign of campaigns; track campaign.id) { {{ campaign.name }} {{ campaign.platform }} {{ campaign.spend > 0 ? '$' + campaign.spend.toLocaleString() : '—' }} {{ campaign.conversations.toLocaleString() }} {{ campaign.conversions.toLocaleString() }} } } } @switch (activePanel()) { @case ('catalogue') { @if (selectedChannel(); as channel) {

{{ channel.name }}

{{ channel.family }} · {{ stateLabels[channel.state] }}

What it carries @for (capability of capabilityRows(channel); track capability.label) { }
How it connects

{{ channel.detail }}

@if (channel.blocker) {
Before it can go live {{ channel.blocker }}
} @if (channel.link) { Open its workspace } } @else { Select a channel. } } @case ('transport') { @if (selectedTransportOption(); as option) {

{{ transportLabels[option.path] }}

{{ option.oneApi ? 'One API across channels' : 'A code path of its own' }}

Cost of this path
Channels on it @if (channelsOn(option.path).length > 0) { @for (channel of channelsOn(option.path); track channel.id) { } } @else {

Nothing uses this path today.

}
The open question If every channel ends up integrated directly, the Unification Engine stops buying anything and the omni-channel API becomes a second thing to maintain. Worth answering before the next direct integration, not after.
} @else { Select a transport path. } } @case ('delivery') { @if (selectedDelivery(); as stat) {

{{ channelName(stat.channelId) }}

{{ deliveryRate(stat) }}% delivered

Last 7 days
Most common failure {{ stat.topFailure }}
Failover from here @if (failoverFor(stat.channelId).length > 0) { @for (rule of failoverFor(stat.channelId); track rule.id) { } } @else {

No failover configured — a failure stays failed.

}

{{ consentGated() }} of the workspace’s failover rules move a message to a channel the contact must have consented to.

} @else { Select a channel. } } @case ('threading') { @if (selectedMerge(); as merge) {

{{ merge.person }}

{{ merge.autoMerged ? 'Merged automatically' : 'Waiting for a person' }}

Threads @for (thread of merge.threads; track thread) { }
Match

Anything under 90% is proposed, never applied. Merging two people by accident is far more expensive than asking.

See the unified history } @else { Select a merge. } } @case ('ads') { @if (selectedCampaign(); as campaign) {

{{ campaign.name }}

{{ campaign.platform }} · {{ campaign.state }}

Funnel
Return
Full attribution reporting } @else { Select a campaign. } } }