service-omni-command-center-analyze について
組織が対応するCommand Center for Serviceのスーパーバイザー画面を判定し、次の手順を提案する読み取り専用スキルです。V2の対応状況やプロビジョニング、指定したスーパーバイザーの権限を調べ、組織は変更せず状態を示します。
主な機能
- 01組織のV2対応状況を調査
- 02ページとタブの設定を確認
- 03スーパーバイザー権限の任意確認
- 04状態と推奨アクションの報告
- 05Salesforceへの読み取り専用クエリ
活用シーン
- 01次のCommand Center設定経路の選択
- 02スーパーバイザーのV2アクセス確認
- 03V2プロビジョニング未完了の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill service-omni-command-center-analyzeインストール後、Claude Code で/service-omni-command-center-analyzeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-notes.mdscripts/analyze.shscripts/tests/_bootstrap.pytest_command_center_analyze_contracts.py詳細
service-omni-command-center-analyze
何も変更せずに、組織が使用すべきスーパーバイザーエクスペリエンスと、次に実施すべきことを判断します。Command Center for Service V2 は、独立した 3 つの要素によって制御されます。組織の機能(リリースゲート)、CommandCenterForServiceV2 組織設定(ON に切り替えると CommandCenterForServiceV2_L FlexiPage がシードされ、V2 タブが登録されます)、およびスーパーバイザーごとの CommandCenterForServiceUser 権限です。単一のブール値ではこれらを表現できないため、このスキルは明示的な状態と、推奨される次のスキル(クラシックパスの場合は service-omni-supervisor-config-deploy など)を返します。これは Command Center フローのエントリーポイントであり、service-omni-channel-setup-coordinate は最初にこのスキルを実行します。また、読み取りのみを行うため、本番環境を含むどの組織でも安全に実行できます。
入力
bash scripts/analyze.sh <org-alias> [supervisor_username_or_id]
org-alias(必須)。supervisor_username_or_id(任意)。ユーザー名(…@…)または 15/18 文字のユーザー ID(005…)です。指定すると、ユーザーごとのCommandCenterForServiceUser権限が評価されます。省略した場合、権限の要素は未確認として報告され、準備状況は組織レベルのみで判定されます。
前提条件と安全性
- 対象組織が
sfCLI で認証済みであること、Service Cloud ライセンスがあること、sfCLI が 2.139.6 以上であること。 - 読み取り専用です。
safe_to_writeガードは不要です。このスキルは SOQL/Tooling クエリのみを実行します。
実行
analyze.sh は確認可能なシグナルを収集し、それらを状態に対応付けます。
| シグナル | ソース | 意味 |
|---|---|---|
| V2 機能 | SELECT Id FROM PermissionSet WHERE PermissionsCommandCenterForServiceUser = true プローブ | ユーザー権限の列が組織のスキーマに存在しない場合、V2 は利用できません。 |
| シード済み FlexiPage | Tooling:DeveloperName='CommandCenterForServiceV2_L' の FlexiPage | 存在する場合、組織設定が有効化され、ページがシードされています。 |
| V2 タブ | TabDefinition(ベストエフォート) | シードを相互確認します。シードとタブが一致しない場合、プロビジョニングが部分的であることを示します。 |
| スーパーバイザー権限 | PermissionSet.PermissionsCommandCenterForServiceUser で結合した PermissionSetAssignment | 指定されたスーパーバイザーが V2 を使用できるかどうかを示します。 |
| レガシー設定 | Tooling:OmniSupervisorConfig の件数 | クラシックパスに関する参考情報です。 |
動作
状態と推奨される次のアクション:
| 状態 | 意味 | 推奨スキル |
|---|---|---|
v2_ready | 機能とシードが存在します(確認対象の場合、スーパーバイザーに権限があります) | 検証のみ(コーディネーターは V2 の検証に進みます) |
v2_permission_missing | V2 は有効ですが、指定されたスーパーバイザーに CommandCenterForServiceUser がありません | 手動 — CommandCenterForServiceUser を割り当てます(PermissionSet を使用してヘッドレスで実行可能。パッケージングは保留中) |
v2_seed_incomplete | 機能はありますが、FlexiPage/タブのプロビジョニングに不整合があります | 手動 — Setup → Omni-Channel → Supervisor Settings で再確認します(サポート対象の公開書き込み API はありません) |
v2_available_not_enabled | 組織は V2 をサポートしていますが、設定がオフです | 手動 — Setup → Omni-Channel → Supervisor Settings で有効にします(サポート対象の Metadata/Tooling 書き込み API はありません) |
legacy_selected | V2 の機能がありません | service-omni-supervisor-config-deploy |
ambiguous | 必須のシグナルをサポート対象の API で読み取れませんでした | なし — ブロックします。推測しないでください |
ambiguous のみがゼロ以外の終了コードを返します。レビューのルールでは、読み取り専用で状態を証明できない場合、推測するのではなくブロックします。それ以外のすべての状態は、status:"detected" を返して終了コード 0 で終了します。
出力仕様
単一の JSON オブジェクトです。status(detected | blocked)、state(上記 6 つのいずれか)、recommended_action、recommended_skill、signals(v2_capability、seed_flexipage_present、v2_tab_present、supervisor{identifier,checked,has_command_center_permission}、legacy_omnisupervisorconfig_count)、manual_actions、blocking_issue を含みます。
制限事項
CommandCenterForServiceV2組織設定には、サポート対象の公開読み取り手段がありません。その状態は、シードされた FlexiPage から推定されます(プラットフォームは ON に切り替えた際にシードします)。これはsignalsに記載されており、シードのない単独の機能がv2_available_not_enabledと判定される理由でもあります。- リリースゲーターは直接読み取れません。組織スキーマにユーザー権限の列が存在するかどうかから、機能の有無を推定します。
- タブの検出はベストエフォートです。タブのクエリを実行できない場合、
v2_tab_presentは"unknown"となり、残りのシグナルから状態を判定します。 - 読み取り専用です。V2 の有効化、ページのシード、権限の割り当て、設定のデプロイは行いません。
参照
| ファイル | 読むタイミング |
|---|---|
references/api-notes.md | V2 の3次元ゲート、各シグナルが代理指標である理由、使用するクエリの詳細 |