mcpField
S
service-omni-supervisor-surface-deploy

service-omni-supervisor-surface-deploy

github.com/forcedotcom其他1.1k86 次安装1 天前更新
代码仓库

关于 service-omni-supervisor-surface-deploy

这项 Salesforce skill 为现有 OmniSupervisorConfig 添加受支持的操作和标签页。它面向配置主管界面的管理员,只插入缺失且无需外部引用的类型,并保留现有记录及顺序。

主要功能

  1. 01添加受支持的主管操作和标签页
  2. 02自动检测唯一配置
  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 插入来填充界面,而不必重新部署整个 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。如果组织中恰好只有一个配置,则可省略,技能会自行解析。如果有多个配置但未提供名称,技能会阻止操作并列出这些配置。

环境变量覆盖项(均为选项列表值的 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 指引。
  • **生产环境防护:**脚本将 safe_to_write 计算为以下条件之一成立:IsSandbox、TrialExpirationDate != null 或 OrganizationType 属于 {Developer Edition, Base Edition}。如果条件不成立,脚本会阻止操作且不提供覆盖选项。

运行

bash scripts/deploy-and-report.sh <org-alias> [config_developer_name]

脚本会解析父级配置,读取已有的界面行,仅插入缺失的操作/标签页类型(DisplayOrder 会接续当前最大值),并将 JSON 输出到标准输出。

行为

仅支持不依赖引用的类型。配套行没有引用字段,因此只有自包含类型可通过无头方式插入。技能接受标准集合(references/api-notes.md 中的 SAFE_ACTIONS / SAFE_TABS),并会在开始时阻止任何需要外部引用的类型——*.CustomAction、*.AWSDashboard、FlexipageType、AIAgents、AgentforceSDR——并指引你前往 Setup。请求的类型不在支持范围内时,也会在任何写入发生前阻止操作。

**幂等性。**技能会将请求的类型与配置上已有的行进行比对;已有类型会标记为 reused,不会再次插入;缺失类型则会插入并标记为 created。只要有任何内容被插入,status 就是 created;否则为 reused。在配置不变的情况下重新运行技能不会进行任何写入。

**排序。**新行会追加到末尾:DisplayOrder 从该配套类型当前最大值加一开始,以保留 Setup 中已配置的排序。

输出约定

向标准输出输出一个 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 Agent 界面需要外部引用,且必须在 Setup 中配置。
  • 不会创建、重命名或删除父级 OmniSupervisorConfig、其用户/队列配套项,或主管用户/权限集。
  • 不会移除界面行——只会添加缺失的行(不会进行破坏性协调)。

参考资料

文件阅读时机
references/api-notes.mdOmniSupervisorActionType / OmniSupervisorTabType 的完整词汇表、哪些类型无需引用,以及配套行插入语义

评论

支持 Markdown