service-de-channel-routing-configure
Configuring Channel Routing
What this skill does
Ensures a MessagingChannel has valid routing configured before activation. The channel's SessionHandler field is a polymorphic foreign key (verified against MessagingChannel.entity.xml, domain="Queue, FlowDefinition, User, BotDefinition, AgenticCtxtDecorDefinition") — it names who the channel routes incoming sessions to. Some targets additionally require a FallbackQueue (an Omni-Channel Queue that catches sessions the primary target can't take).
These skills create Enhanced channels (PlatformType=Enhanced, SCRT2). All five SessionHandler domains are writable on Enhanced channels. (A Standard/SCRT1 channel would only accept a Flow as SessionHandler — the server rejects any other domain with "Only flows of type Omni-Channel are supported". These skills never create Standard channels, so that path isn't handled here.)
Where this fits: the channel is inserted by service-de-channel-create (or a per-type leaf); this skill sets routing; service-de-channel-consent-configure sets consent; then service-de-channel-activate flips it live — activation requires both routing and consent. The service-de-headless-channel-configure orchestrator runs all four in sequence.
Supported routing types — all set SessionHandlerId, some also set FallbackQueueId:
| Type | SessionHandler target | Id prefix | FallbackQueue |
|---|---|---|---|
| Omni-Channel Queue | Group (Type=Queue) |
00G |
must be null |
| Omni-Flow | FlowDefinition (ProcessType=RoutingFlow) |
300 |
required |
| Agentforce Service Agent (ASA) | BotDefinition (Type=ExternalCopilot) |
0Xx |
required |
| Digital Worker | AgenticCtxtDecorDefinition |
1iE |
required |
| User | User (with a RoutingConfiguration) |
005 |
must be null |