service-omni-supervisor-surface-deploy について
既存の OmniSupervisorConfig に、対応するアクションとタブを追加する Salesforce スキルです。スーパーバイザー画面を設定する管理者向けで、外部参照不要の不足タイプだけを挿入し、既存行と順序を維持します。
主な機能
- 01対応するスーパーバイザー操作とタブの追加
- 02設定が1つの場合の自動検出
- 03不足タイプのみを挿入
- 04既存の順序を保って行を追加
- 05外部参照が必要な未対応タイプを拒否
活用シーン
- 01既存のスーパーバイザー画面への項目設定
- 02操作とタブを重複させず追加
- 03書き込み前の変更内容の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill service-omni-supervisor-surface-deployインストール後、Claude Code で/service-omni-supervisor-surface-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-notes.mdscripts/deploy-and-report.shscripts/tests/_bootstrap.pytest_supervisor_surface_contracts.py詳細
service-omni-supervisor-surface-deploy
既存の OmniSupervisorConfig に、Omni-Channel Supervisor の サーフェス(スーパーバイザーが目にするアクションボタンとタブ)を追加します。OmniSupervisorConfigAction と OmniSupervisorConfigTab は作成可能な子 sObject(OmniSupervisorConfigId、*Type 選択リスト、DisplayOrder)であるため、サーフェスの追加には、親設定の Id に対して Data API の insert を直接実行します。OmniSupervisorConfig メタデータドキュメント全体を再デプロイする必要はありません。これにより、このリーフを service-omni-supervisor-config-deploy(メタデータファイル内のユーザー/キューの関連設定を管理)から独立させ、冪等に実行できます。不足しているタイプだけを挿入します。
入力
bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]
org-alias(必須) —sf org display --target-org <alias>で解決できる必要があります。config_developer_name(任意) — サーフェスを追加するOmniSupervisorConfig.DeveloperNameです。組織に設定が1つだけある場合は省略できます。スキルが解決します。複数の設定があり、名前が指定されていない場合、スキルは処理を中断し、それらを一覧表示します。
環境変数による上書き(いずれも選択リスト値の CSV。デフォルトは参照なしで使用できる標準セットです):
SUPERVISOR_ACTIONS— デフォルト:AllAgents.ChangeQueues,AllAgents.ChangeSkills,AllAgents.ChangeGroups,AllAgents.AssignLearning,QueuesBacklog.ManageQueues。SUPERVISOR_TABS— デフォルト:Wallboard,Agents,QueuesBacklog,AssignedWork,SkillsBacklog。PLAN_ONLY=1— 実行内容(既存と要求された項目)を報告し、書き込みの前に終了します。
前提条件と安全性
sfCLI で認証済みの対象組織であること、Service Cloud ライセンスがあること、sfCLI が 2.139.6 以上であること。OmniSupervisorConfigが存在すること —service-omni-supervisor-config-deployによってプロビジョニングされます。設定が存在しない場合(または指定した設定がない場合)、スキルはtarget_skillの案内を示して処理を中断します。- 本番環境のガードレール: スクリプトは
IsSandboxORTrialExpirationDate != nullOROrganizationTypeが {Developer Edition, Base Edition} のいずれかを満たすかどうかでsafe_to_writeを算出し、満たさない場合は上書きなしで処理を中断します。
実行
bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]
親設定を解決し、既存のサーフェス行を読み取って、不足しているアクション/タブのタイプのみを挿入します(DisplayOrder は現在の最大値の次から追加します)。JSON を stdout に出力します。
動作
参照不要のタイプのみ。 関連行には参照フィールドがないため、ヘッドレスで挿入できるのは自己完結型のタイプのみです。スキルは標準セット(references/api-notes.md の SAFE_ACTIONS/SAFE_TABS)を受け付けますが、外部参照を必要とするタイプ — *.CustomAction、*.AWSDashboard、FlexipageType、AIAgents、AgentforceSDR — が指定された場合は、事前に処理を中断し、Setup での操作を案内します。サポート対象の語彙に含まれないタイプが要求された場合も、書き込みの前に処理を中断します。
冪等性。 要求されたタイプと設定にすでにある行を照合します。既存のタイプは reused として報告し、再挿入しません。不足しているタイプは挿入し、created として報告します。何らかの項目を挿入した場合、status は created になり、それ以外は reused になります。スキルを変更せずに再実行しても、書き込みは行われません。
順序。 新しい行は末尾に追加されます。DisplayOrder は、その関連タイプの現在の最大値の1つ後から始まり、Setup で設定済みの順序は維持されます。
出力仕様
stdout に単一の JSON オブジェクトを出力します。status は created、reused、blocked のいずれかです(PLAN_ONLY=1 の場合は action_needed)。オブジェクトには config(developer_name、id)、actions と tabs(それぞれ requested、created、reused、count を含む)、manual_actions、および blocking_issue(status: blocked でない場合は null)も含まれます。
組織側での簡易確認:
SELECT OmniSupervisorActionType, DisplayOrder FROM OmniSupervisorConfigAction WHERE OmniSupervisorConfigId = :configId ORDER BY DisplayOrder
SELECT OmniSupervisorTabType, DisplayOrder FROM OmniSupervisorConfigTab WHERE OmniSupervisorConfigId = :configId ORDER BY DisplayOrder
制限事項
- 参照不要の標準アクションタイプとタブタイプのみを登録します。カスタムアクション、FlexiPage タブ、AWS ダッシュボード、AI エージェント用のサーフェスには外部参照が必要で、Setup で設定する必要があります。
- 親の
OmniSupervisorConfig、そのユーザー/キューの関連レコード、スーパーバイザーユーザー/権限セットの作成、名前変更、削除は行いません。 - サーフェスのレコードは削除せず、不足しているもののみ追加します(破壊的な調整は行いません)。
参考資料
| ファイル | 読むタイミング |
|---|---|
references/api-notes.md | OmniSupervisorActionType/OmniSupervisorTabType の全タイプ、参照不要のタイプ、関連レコードの挿入時の仕様を確認するとき |