mcpField
S
service-omni-supervisor-surface-deploy

service-omni-supervisor-surface-deploy

github.com/forcedotcomその他1.1k86 回インストール1 日前に更新
リポジトリ

service-omni-supervisor-surface-deploy について

既存の OmniSupervisorConfig に、対応するアクションとタブを追加する Salesforce スキルです。スーパーバイザー画面を設定する管理者向けで、外部参照不要の不足タイプだけを挿入し、既存行と順序を維持します。

主な機能

  1. 01対応するスーパーバイザー操作とタブの追加
  2. 02設定が1つの場合の自動検出
  3. 03不足タイプのみを挿入
  4. 04既存の順序を保って行を追加
  5. 05外部参照が必要な未対応タイプを拒否

活用シーン

  1. 01既存のスーパーバイザー画面への項目設定
  2. 02操作とタブを重複させず追加
  3. 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.md
scripts/
deploy-and-report.sh
scripts/tests/
_bootstrap.py
test_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 — 実行内容(既存と要求された項目)を報告し、書き込みの前に終了します。

前提条件と安全性

  • sf CLI で認証済みの対象組織であること、Service Cloud ライセンスがあること、sf CLI が 2.139.6 以上であること。
  • OmniSupervisorConfig が存在すること — service-omni-supervisor-config-deploy によってプロビジョニングされます。設定が存在しない場合(または指定した設定がない場合)、スキルは target_skill の案内を示して処理を中断します。
  • 本番環境のガードレール: スクリプトは IsSandbox OR TrialExpirationDate != null OR OrganizationType が {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.mdOmniSupervisorActionType/OmniSupervisorTabType の全タイプ、参照不要のタイプ、関連レコードの挿入時の仕様を確認するとき

コメント