mcpField
S
service-omni-command-center-analyze

service-omni-command-center-analyze

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

关于 service-omni-command-center-analyze

此只读技能用于判断组织适用哪种 Command Center for Service 主管体验,并建议后续步骤。它检查 V2 能力、配置状态及可选的指定主管权限,明确报告状态,不会更改组织。

主要功能

  1. 01探测组织的 V2 能力
  2. 02检查页面和选项卡配置
  3. 03可选检查主管权限
  4. 04报告状态及建议操作
  5. 05只读 Salesforce 查询

适用场景

  1. 01选择后续 Command Center 配置路径
  2. 02检查主管的 V2 访问权限
  3. 03排查 V2 配置未完成的情况

安装

复制下面的命令,在终端中运行。

$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.md
scripts/
analyze.sh
scripts/tests/
_bootstrap.py
test_command_center_analyze_contracts.py

详细介绍

service-omni-command-center-analyze

不做任何更改,判断组织应使用哪种主管体验,以及下一步应采取什么行动。Command Center for Service V2 受三个独立维度控制——组织的功能支持(发布门控)、CommandCenterForServiceV2 组织偏好设置(启用时会植入 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 权限;省略时,权限维度会报告为未检查,且就绪状态仅基于组织级别。

前提条件与安全性

  • 目标组织已通过 sf CLI 进行身份验证,并具有 Service Cloud 许可证;sf CLI 版本 ≥ 2.139.6。
  • 只读——无需 safe_to_write 防护;此技能仅执行 SOQL/Tooling 查询。

运行

analyze.sh 会收集可观测信号并将其映射到一个状态:

信号来源含义
V2 功能支持SELECT Id FROM PermissionSet WHERE PermissionsCommandCenterForServiceUser = true 探测如果组织架构中不存在用户权限列,则表示 V2 不可用。
已植入的 FlexiPageTooling:FlexiPage,其中 DeveloperName='CommandCenterForServiceV2_L'存在 ⇒ 已启用组织偏好设置并植入页面。
V2 选项卡TabDefinition(尽力查询)用于交叉核对植入状态;植入状态与选项卡不一致,表示配置不完整。
主管权限PermissionSetAssignment,通过 PermissionSet.PermissionsCommandCenterForServiceUser 进行关联指定主管是否可以使用 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(上述六种状态之一)、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.mdV2 的三维门控、每个信号为何是代理指标,以及使用的确切查询

评论

支持 Markdown