service-de-channel-routing-configure について
既存の Salesforce Enhanced Messaging チャネルのルーティングを設定・検証するスキルです。キュー、Flow、Agentforce Service Agent、Digital Worker、ユーザーに対応し、対象の適格性とフォールバックキューを確認します。
主な機能
- 015 種類の SessionHandler ルーティング設定
- 02必要に応じたキューとルーティング設定の作成
- 03既存ルーティング対象の検証
- 04対象別のフォールバックキュー要件確認
- 05sf CLI によるチャネルの照会と更新
活用シーン
- 01新規メッセージチャネルのルーティング設定
- 02既存チャネルのルーティング対象の検証
- 03フォールバックキュー不足や無効な対象の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill service-de-channel-routing-configureインストール後、Claude Code で/service-de-channel-routing-configureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/asa-routing.mdgotchas.mdqueue-creation.mdtarget-locate.mdworked-examples.mdscripts/tests/test_skill_contract.py詳細
チャネルルーティングの設定
このスキルの機能
有効化する前に、MessagingChannel に有効なルーティングが設定されていることを確認します。チャネルの SessionHandler フィールドはポリモーフィック外部キーです(MessagingChannel.entity.xml の domain="Queue, FlowDefinition, User, BotDefinition, AgenticCtxtDecorDefinition" で確認済み)。これは、チャネルが受信セッションを誰にルーティングするかを指定します。ターゲットによっては、プライマリターゲットが処理できないセッションを受け取る Omni-Channel キューである FallbackQueue も必要です。
これらのスキルは Enhanced チャネル(PlatformType=Enhanced、SCRT2)を作成します。Enhanced チャネルでは、5 つすべての SessionHandler ドメインに書き込みできます。(Standard/SCRT1 チャネルで SessionHandler として受け付けられるのは Flow のみです。それ以外のドメインを指定すると、サーバーは「Only flows of type Omni-Channel are supported」というエラーを返します。これらのスキルは Standard チャネルを作成しないため、このケースには対応していません。)
処理の流れ: チャネルは service-de-channel-create(またはタイプ別のリーフスキル)で挿入され、このスキルでルーティングを設定します。次に service-de-channel-settings-configure で同意を設定し、最後に service-de-channel-activate で有効化します。有効化にはルーティングと同意の両方が必要です。オーケストレーターの service-de-headless-channel-configure は、これら 4 つを順番に実行します。
サポートされているルーティングタイプ。すべて SessionHandlerId を設定し、一部では FallbackQueueId も設定します。
| タイプ | SessionHandler ターゲット | ID プレフィックス | FallbackQueue |
|---|---|---|---|
| Omni-Channel Queue | Group(Type=Queue) | 00G | null が必須 |
| Omni-Flow | FlowDefinition(ProcessType=RoutingFlow) | 300 | 必須 |
| Agentforce Service Agent (ASA) | BotDefinition(Type=ExternalCopilot) | 0Xx | 必須 |
| Digital Worker | AgenticCtxtDecorDefinition | 1iE | 必須 |
| ユーザー | User(RoutingConfiguration が設定済み) | 005 | null が必須 |
プロビジョニングの動作:
- キュー —
MessagingSessionに対応した既存のキューを選択するか、Metadata API で新しいキューと QueueRoutingConfig を作成します。 - Flow / ASA / Digital Worker / ユーザー — 対象となる既存のターゲットを検索して PATCH します。これらのスキルは Flow、ボット、デジタルワーカー、ユーザーを作成しません。対象となるものがない場合、スキルは前提条件を報告し、ユーザーに Setup を案内します。
リファレンスファイル一覧
| リファレンスファイル | 読み込むタイミング |
|---|---|
references/queue-creation.md | ユーザーがキューのルーティングで「新しいキューを作成」を選択した場合。Metadata API による完全なスキャフォールド → デプロイ → ID 検索 → 任意のメンバー追加。 |
references/target-locate.md | 対象となるターゲット(Queue、Flow、ASA、Digital Worker、User)を検索して検証するためのドメイン別 SOQL と、FallbackQueue の要件マトリクスが必要な場合。 |
references/asa-routing.md | ユーザーが ASA(Agentforce Service Agent)ルーティングを選択した場合。前提条件の確認、有効な ASA の列挙、選択。 |
references/gotchas.md | 予期しない結果のトラブルシューティング、またはこのスキルを変更する前。既知の注意点。 |
references/worked-examples.md | 既存キューの再利用、新しいキューの作成、Flow、ASA の各パスの実行例を参照する場合。 |
このスキルを使用しない場合
- チャネルに
SessionHandlerIdまたはFallbackQueueIdがすでに設定されている場合。 このスキルは何も変更しない前に、既存のターゲットを再検証します。ASA には引き続き BotUser と Active BotVersion が必要です。これらがない場合はasa-target-inactiveを報告し、準備完了とは判断しません。 - チャネルがまだ存在しない場合。 先に挿入スキルを実行してください。このスキルは実在する
MessagingChannel.Idがあることを前提とします。 - 既存のルーティングを置き換えたい場合。 UI で
SessionHandlerIdを手動でクリアしてから、このスキルを再実行する方が安全です。何も変更しないためのチェックは安全策であり、自動的に回避するほどの制約ではありません。
Inputs(呼び出し元から)
{CHANNEL_ID}— 15 文字または 18 文字のMessagingChannel.Id(プレフィックスは0Mj)。チャネルはすでに存在している必要があります。{ORG_ALIAS}— 任意。sfCLI のターゲット組織のエイリアスです。デフォルト:sf config get target-orgが返す値。すべての SOQL、PATCH、Metadata のデプロイは、この組織に対して実行されます。
Output(呼び出し元へ)
次のいずれかです。
成功 — 変更不要:
{"ok": true, "noop": true, "routingType": "queue|flow|asa|digital_worker|user", "sessionHandlerId": "00G...|300...|0Xx...|1iE...|005...", "fallbackQueueId": "00G...|null", "targetName": "...", "message": "Routing already configured"}
成功 — Queue ルーティングを設定しました:
{"ok": true, "routingType": "queue", "sessionHandlerId": "00G...", "fallbackQueueId": null, "queueName": "...", "queueDeveloperName": "...", "created": true|false}
成功 — Flow ルーティングを設定しました:
{"ok": true, "routingType": "flow", "sessionHandlerId": "300...", "fallbackQueueId": "00G...", "flowName": "...", "flowDeveloperName": "...", "created": false}
成功 — ASA ルーティングを設定しました:
{"ok": true, "routingType": "asa", "sessionHandlerId": "0Xx...", "fallbackQueueId": "00G...", "asaName": "...", "asaDeveloperName": "...", "botUserId": "005...", "botVersionId": "0X9...", "created": false}
成功 — Digital Worker ルーティングを設定しました:
{"ok": true, "routingType": "digital_worker", "sessionHandlerId": "1iE...", "fallbackQueueId": "00G...", "workerName": "...", "created": false}
成功 — User ルーティングを設定しました:
{"ok": true, "routingType": "user", "sessionHandlerId": "005...", "fallbackQueueId": null, "userName": "...", "created": false}
前提条件を満たしていません:
{"ok": false, "kind": "no-eligible-target", "routingType": "flow|asa|digital_worker|user", "hint": "no eligible <target> found on this org — <how to create one in Setup>, then re-run this skill"}
{"ok": false, "kind": "no-fallback-queue", "hint": "Flow/ASA/Digital Worker routing requires a FallbackQueue but no MessagingSession-capable queue exists — create one (Queue routing path) first"}
{"ok": false, "kind": "asa-not-supported", "hint": "this org doesn't have BotDefinition (Agentforce not licensed); use Queue routing instead"}
{"ok": false, "kind": "standard-channel", "hint": "this is a Standard (SCRT1) channel — only Flow routing is supported; these skills only create Enhanced channels, so this is unexpected"}
失敗:
{"ok": false, "kind": "metadata-deploy-failed", "message": "..."}
{"ok": false, "kind": "patch-failed", "message": "..."}
{"ok": false, "kind": "verify-failed", "hint": "PATCH returned success but re-read shows SessionHandlerId still null — permission or trigger issue"}
PATCH の失敗時に返される message には、サーバー側の検証エラー(MessagingChannelFunctionsHelper.validateSessionHandler からのもの)がそのまま含まれていることがよくあります。その内容をユーザーに示してください。どのリンクルールに失敗したかを正確に伝えるメッセージです。よくあるものは、MissingFallbackQueueForFlowRouting / ...ForAsaRouting / ...ForDigitalWorkerRouting(FallbackQueue が必須なのに null)、UnsupportedFallbackQueue(Queue/User の経路では FallbackQueue を null にする必要があるのに設定されている)、InvalidSessionHandlerFlowType(Flow が ProcessType=RoutingFlow ではない、またはチャネルが Standard/SCRT1)、NoRoutingConfigDefined(User に RoutingConfiguration がない)です。
Stage 1: 現在のルーティング状態を読み取る
チャネルをクエリします。すでに SessionHandlerId または FallbackQueueId が設定されている場合は、何も変更しません。それ以外の場合は続行します。
sf data query --target-org '{ORG_ALIAS}' \
--query "SELECT Id, DeveloperName, SessionHandlerId, FallbackQueueId FROM MessagingChannel WHERE Id = '{CHANNEL_ID}'" \
--json > /tmp/ccr-channel.json
node -e または jq で解析します。レコードが存在しない場合は、Error: Channel {CHANNEL_ID} not found — check the id, or run the insertion skill first. を返して停止します。
SessionHandlerId が null でない場合は、Id のプレフィックスに基づいて既存のルーティング先を特定し、適切なエンベロープを返して何も変更しません。プレフィックスは SessionHandler ドメインに 1 対 1 で対応します(MessagingChannel.entity.xml で確認済み)。既存のルーティングが正常とは限りません。成功として何も変更しないことを報告する前に、対象の検索で適格な行がちょうど 1 件返される必要があります。
| プレフィックス | ドメイン / 対象 | 検索クエリ | routingType |
|---|---|---|---|
00G | Group(Type=Queue) | SELECT Id, Name, DeveloperName FROM Group WHERE Id='<sh>' AND Type='Queue' | queue |
300 | FlowDefinition | SELECT DurableId, Label, ApiName FROM FlowDefinitionView WHERE DurableId='<sh>' | flow |
0Xx | BotDefinition(ASA) | SELECT Id, DeveloperName, MasterLabel, AgentType, BotUserId, (SELECT Id, Status FROM BotVersions WHERE Status='Active' LIMIT 1) FROM BotDefinition WHERE Id='<sh>' | asa |
1iE | AgenticCtxtDecorDefinition(Digital Worker) | SELECT Id, DeveloperName, MasterLabel FROM AgenticCtxtDecorDefinition WHERE Id='<sh>' | digital_worker |
005 | User | SELECT Id, Name FROM User WHERE Id='<sh>' | user |
SESSION_HANDLER_ID="$(node -e 'console.log(JSON.parse(require("fs").readFileSync("/tmp/ccr-channel.json","utf8")).result.records[0].SessionHandlerId)')"
PREFIX="${SESSION_HANDLER_ID:0:3}"
case "$PREFIX" in
00G) sf data query --target-org '{ORG_ALIAS}' --query "SELECT Id, Name, DeveloperName FROM Group WHERE Id = '$SESSION_HANDLER_ID' AND Type = 'Queue'" --json > /tmp/ccr-noop-target.json ;;
300) sf data query --target-org '{ORG_ALIAS}' --query "SELECT DurableId, Label, ApiName FROM FlowDefinitionView WHERE DurableId = '$SESSION_HANDLER_ID'" --json > /tmp/ccr-noop-target.json ;;
0Xx) sf data query --target-org '{ORG_ALIAS}' --query "SELECT Id, DeveloperName, MasterLabel, AgentType, BotUserId, (SELECT Id, Status FROM BotVersions WHERE Status='Active' LIMIT 1) FROM BotDefinition WHERE Id = '$SESSION_HANDLER_ID'" --json > /tmp/ccr-noop-target.json ;;
1iE) sf data query --target-org '{ORG_ALIAS}' --query "SELECT Id, DeveloperName, MasterLabel FROM AgenticCtxtDecorDefinition WHERE Id = '$SESSION_HANDLER_ID'" --json > /tmp/ccr-noop-target.json ;;
005) sf data query --target-org '{ORG_ALIAS}' --query "SELECT Id, Name FROM User WHERE Id = '$SESSION_HANDLER_ID'" --json > /tmp/ccr-noop-target.json ;;
*) echo "{\"records\":[{\"Id\":\"$SESSION_HANDLER_ID\"}]}" > /tmp/ccr-noop-target.json ;;
esac
既存の ASA(0Xx)では、BotUserId が null でなく、BotVersions の行が 1 件返され、その Status が Active であることを必須とします。どちらかが欠けている場合は、成功として何も変更しない応答ではなく、次の失敗を返します。チャネルのルーティングを自動でクリアしたり置き換えたりしないでください。
{"ok":false,"kind":"asa-target-inactive","routingType":"asa","sessionHandlerId":"0Xx...","hint":"The configured Agentforce Service Agent has no BotUser or active BotVersion. Activate the agent in Setup, then re-run routing validation."}
その他のプレフィックスでは、対象の検索で行がちょうど 1 件返されることを必須とします。対象固有の適格性チェックに成功した後に限り、成功として何も変更しないエンベロープを返してください(Stage 1 の読み取りで取得した既存の FallbackQueueId を含めます)。
FallbackQueueId が null でなく、SessionHandlerId が null の場合も、何も変更しません。これは Flow/ASA が部分的に設定された状態です。変更は加えず、エンベロープの message に "FallbackQueue set but SessionHandler null — incomplete routing, review in Setup" と記載してください。SessionHandler がないため、アクティベーション時の準備状態チェックは引き続き失敗します。
ステージ 2:チャネルがEnhancedであることを確認し、ルーティングの種類を選択する
まずPlatformTypeを確認します。ステージ1の読み取りには含まれていなかったため、追加するか、再クエリしてください。
sf data query --target-org '{ORG_ALIAS}' \
--query "SELECT Id, PlatformType FROM MessagingChannel WHERE Id = '{CHANNEL_ID}'" --json > /tmp/ccr-platform.json
PlatformType != 'Enhanced'(つまりStandard/SCRT1)の場合、書き込み可能なのはFlowルーティングのみです。このスキルはEnhancedチャネルのみを作成するため、ここでStandardチャネルが見つかるのは想定外です。推測で進めず、{ok:false, kind:"standard-channel", ...}を出力して停止してください。
次に、ユーザーに(プロンプトを使って)尋ねてください。自動で選択してはいけません。
The MessagingChannel '{developerName}' ({CHANNEL_ID}) has no routing configured.
Which routing type do you want?
1) queue — Omni-Channel queue routing
2) flow — Omni-Flow (RoutingFlow) + fallback queue
3) asa — Agentforce Service Agent (requires Agentforce license) + fallback queue
4) digital_worker — Digital Worker (Agentic) + fallback queue
5) user — Direct to a specific user (requires a RoutingConfiguration on the user)
Pick [1-5]:
ユーザーの選択に応じて分岐します。キュー以外のすべての経路では、references/target-locate.mdを読み込んでください。ドメインごとの検索用SOQL、適格性フィルター、FallbackQueueのルール、正確なPATCH形式が記載されています。
- 1(queue) — 以下のステージ3-Queueに進みます。
- 2(flow) — 適格な
FlowDefinition(ProcessType=RoutingFlow、アクティブなバージョン)とFallbackQueueを検索し、ステージ5に進みます。 - 3(asa) — ステージ3-ASAに進みます。ASAにもFallbackQueueが必要です。
- 4(digital_worker) — 適格な
AgenticCtxtDecorDefinitionとFallbackQueueを検索し、ステージ5に進みます。 - 5(user) — RoutingConfigurationを持つ
Userを検索し、ステージ5に進みます。
適格なターゲットが見つからない場合は、{ok:false, kind:"no-eligible-target", routingType, hint}を出力して返してください(ドメインごとのSetupへのポインターはreferences/target-locate.mdを参照してください)。IDを捏造してはいけません。
ステージ3-Queue:既存のキューを選択するか、新規作成する
(このステージはQueue経路でのみ実行します。ASA経路については、以下のステージ3-ASAを参照してください。)
適格なキューを列挙します。UIのルーティングドロップダウン(MessagingRoutingMethodDataProviderController.getOmniQueues)には、QueueRoutingConfigId != nullを満たすグループ(Omni-Channel対応のキュー)が表示されます。MessagingChannelではさらに、キューがMessagingSessionを受け入れることも必要です。この両方を満たすものを検索します。まずMessagingSessionに対応するキューを列挙し、その後、QueueRoutingConfigを持つものだけを残してください。
# MessagingSession-capable queues that are also Omni-enabled (QueueRoutingConfigId != null)
sf data query --target-org '{ORG_ALIAS}' \
--query "SELECT Id, Name, DeveloperName FROM Group WHERE Type = 'Queue' AND QueueRoutingConfigId != null AND Id IN (SELECT QueueId FROM QueueSobject WHERE SobjectType = 'MessagingSession') ORDER BY Name" \
--json > /tmp/ccr-queues.json
各行のIdは00GのGroup.Idです。これがSessionHandlerIdに書き込まれる値です。(組織でセミジョインのサブクエリがエラーになる場合は、2つのクエリに分けてください。まずQueueSobject WHERE SobjectType='MessagingSession'を取得し、次にGroup.QueueRoutingConfigId != nullを満たすものだけに絞り込みます。)
ユーザーに番号付きリストを提示し、最後に「新規作成」オプションを追加してください。
Omni-enabled MessagingSession queues on {ORG_ALIAS}:
1) Messaging Queue (Messaging_Queue) — 00GSG0000000LSf2AM
2) MyQueue (MyQueue) — 00GSG000000144n2AA
...
N) Create a new queue
Pick [1-N]:
- ユーザーが既存のキューを選択した場合:その
Idを{QUEUE_ID}として記録します(これはGroup.Idです)。ステージ5に進みます。 - ユーザーが「新規作成」を選択した場合:ステージ4に進みます。
リストが空で、ユーザーが(1)「新しいキューを作成」を暗黙的に選択した場合は、ステージ4に直接進んでください。
ステージ3-Queue、続き:Metadata APIで新しいQueueを作成する
(Queue経路の続きです。上記で既存のキューを選択した場合はスキップしてください。)
最小構成のscratch sfdxプロジェクト(help-agent-acceleratorパターン)を使って、QueueとQueueRoutingConfigのペアをデプロイします。その後、新しいQueueのIdを検索し、必要に応じて現在のユーザーをメンバーに追加します。
Metadata APIで新しいQueueを作成するには(sfdxプロジェクトのスキャフォールド → デプロイ → ID検索 → 必要に応じたメンバー追加)、references/queue-creation.mdを読み込んで手順に従ってください。このフローの完全なガイドです。
このステージの後、ステージ5(PATCH)に進みます。
ステージ3-ASA:既存のASAを選択する
(このステージはASA経路でのみ実行します。Queue経路の場合はステージ5に進んでください。)
ASAルーティングでは、SessionHandlerIdが既存の稼働中のAgentforce Service Agent(BotDefinition)を指します。このスキルは新しいASAを作成しません。組織がASAに対応していること(Agentforceのライセンスがあること)を確認し、稼働中でルーティング可能なものを列挙して、ユーザーに選択してもらいます。
ASAの前提条件チェック、列挙、選択については、references/asa-routing.mdを読み込んでください。 選択後、ステージ5(PATCH)に進みます。
ステージ 5:MessagingChannel.SessionHandlerId を PATCH する(+ FallbackQueueId)
この時点で、{TARGET_ID} にルーティング先 ID があり、その {ROUTING_TYPE} も把握しています。
| routingType | {TARGET_ID} | FallbackQueue の書き込み |
|---|---|---|
queue | 00G Group.Id | なし(null のままにする必要があります) |
flow | 300 FlowDefinition id | FallbackQueueId={FALLBACK_QUEUE_ID} を設定 |
asa | 0Xx BotDefinition.Id | FallbackQueueId={FALLBACK_QUEUE_ID} を設定 |
digital_worker | 1iE AgenticCtxtDecorDefinition.Id | FallbackQueueId={FALLBACK_QUEUE_ID} を設定 |
user | 005 User.Id | なし(null のままにする必要があります) |
SessionHandler は [Group, FlowDefinition, User, BotDefinition, AgenticCtxtDecorDefinition] にまたがるポリモーフィックな外部キーです(MessagingChannel.entity.xml に基づく。BotDefinition/AgenticCtxtDecorDefinition の対象は、Agentforce ライセンスがある組織でのみ実体化されます)。標準の REST sObject PATCH では、適合する任意の Id 型を受け付けます。FallbackQueue のルールはサーバー側で強制されます(validateSessionHandler):Flow/ASA/Digital Worker では FallbackQueue が null の場合に拒否され、Queue/User では null 以外の場合に拒否されます。
FallbackQueue が必要なパスでは、レコードが無効な中間状態を経由しないよう、両方のフィールドを 1 回の PATCH で書き込みます。
# queue / user — SessionHandler only
sf data update record --target-org '{ORG_ALIAS}' --sobject MessagingChannel \
--record-id '{CHANNEL_ID}' \
--values 'SessionHandlerId={TARGET_ID}' --json > /tmp/ccr-patch.json
# flow / asa / digital_worker — SessionHandler + FallbackQueue together
sf data update record --target-org '{ORG_ALIAS}' --sobject MessagingChannel \
--record-id '{CHANNEL_ID}' \
--values 'SessionHandlerId={TARGET_ID} FallbackQueueId={FALLBACK_QUEUE_ID}' --json > /tmp/ccr-patch.json
status !== 0 の場合は、{ok:false, kind:"patch-failed", message: ...} を出力して終了します。サーバーメッセージはそのまま表示してください。失敗した連携ルールを正確に示すものです(「Output (to caller)」の失敗エンベロープに関する注記を参照)。
ステージ 6:検証
チャネルを再読み込みします。
sf data query --target-org '{ORG_ALIAS}' \
--query "SELECT Id, SessionHandlerId, FallbackQueueId FROM MessagingChannel WHERE Id = '{CHANNEL_ID}'" \
--json
再読み込みした SessionHandlerId が {TARGET_ID} と一致しない場合、または(flow/asa/digital_worker の場合)FallbackQueueId が {FALLBACK_QUEUE_ID} と一致しない場合:
{"ok": false, "kind": "verify-failed", "hint": "PATCH returned success but re-read shows SessionHandlerId/FallbackQueueId not persisted — check user permissions or field-level security on MessagingChannel"}
それ以外の場合は、パスに応じた成功エンベロープを出力します(このファイルの冒頭にある「Output (to caller)」を参照してください。routingType ごとに 1 つの形式があり、それぞれに fallbackQueueId が含まれます)。
ステージ 7:呼び出し元に報告
JSON エンベロープを報告します。このスキルがリーフ(ユーザーが直接呼び出したスキル)の場合は、次のように表示します。
Queue パス:
成功 — ルーティングを設定しました — チャネル {CHANNEL_ID} は Queue '{QUEUE_LABEL}' ({QUEUE_ID}) にルーティングされるようになりました。{'' if created else ' (既存の Queue を再利用)'}情報:ルーティングはすでに設定されています — Queue '{name}' ({QUEUE_ID})。変更はありません。(変更なしのパス)
Flow パス:
成功 — ルーティングを設定しました — チャネル {CHANNEL_ID} は Omni-Flow '{FLOW_LABEL}' ({TARGET_ID}) にルーティングされるようになりました。フォールバック Queue は {FALLBACK_QUEUE_ID} です。
ASA パス:
成功 — ルーティングを設定しました — チャネル {CHANNEL_ID} は Agentforce Service Agent '{ASA_LABEL}' ({ASA_ID}) にルーティングされるようになりました。フォールバック Queue は {FALLBACK_QUEUE_ID} です。Bot ユーザー:{BOT_USER_ID}。アクティブバージョン:{BOT_VERSION_ID}。情報:ルーティングはすでに設定されています — ASA '{MasterLabel}' ({ASA_ID})。変更はありません。(変更なしのパス)
Digital Worker パス:
成功 — ルーティングを設定しました — チャネル {CHANNEL_ID} は Digital Worker '{WORKER_LABEL}' ({TARGET_ID}) にルーティングされるようになりました。フォールバック Queue は {FALLBACK_QUEUE_ID} です。
User パス:
成功 — ルーティングを設定しました — チャネル {CHANNEL_ID} は User '{USER_NAME}' ({TARGET_ID}) に直接ルーティングされるようになりました。
失敗/前提条件:
警告:対象の {routingType} が見つかりません。{references/target-locate.md に記載されたドメイン別 Setup 案内}。その後、このスキルを再実行してください。(対象なし)警告:{routingType} ルーティングにはフォールバック Queue が必要ですが、見つかりません。まず MessagingSession Queue を作成し(Queue パス)、その後このスキルを再実行してください。(フォールバック Queue なし)警告:この組織には Agentforce のライセンスがありません(BotDefinition エンティティなし)。代わりに Queue ルーティングを使用してください。(ASA 非対応)警告:これは Standard(SCRT1)チャネルです。Flow ルーティングのみがサポートされています。このスキルでは Enhanced チャネルのみを作成するため、想定外の状態です。チャネルを確認してください。(Standard チャネル)エラー:{kind}:{message}(その他の失敗。メッセージには失敗したサーバー側の検証ルールが示されます)
実行例
既存キューを再利用する高速パス(test1 で検証済み)と、Metadata API 経由で新しいキューを作成するパスの両方の実行例については、references/worked-examples.md を参照してください。
注意点
既知の注意点 — Group.Type によるフィルタリング、DeveloperName の一意性、QueueRoutingConfig の命名、空のキューに関する注意事項、Metadata API のみを使用したキュー作成、ドメインごとの FallbackQueue 要件マトリックス、サーバー側の nullQueueId/準備状態の強制ポイント、Standard と Enhanced における SessionHandler の書き込み制限、そして組織の構成によって異なる SessionHandler のポリモーフィズムです。
予期しない結果のトラブルシューティング時、またはこのスキルを変更する前に、references/gotchas.md を読み込み、その指示に従ってください。注意点がすべて記載されています。