关于 service-omni-command-center-analyze
此只读技能用于判断组织适用哪种 Command Center for Service 主管体验,并建议后续步骤。它检查 V2 能力、配置状态及可选的指定主管权限,明确报告状态,不会更改组织。
主要功能
- 01探测组织的 V2 能力
- 02检查页面和选项卡配置
- 03可选检查主管权限
- 04报告状态及建议操作
- 05只读 Salesforce 查询
适用场景
- 01选择后续 Command Center 配置路径
- 02检查主管的 V2 访问权限
- 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.mdscripts/analyze.shscripts/tests/_bootstrap.pytest_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权限;省略时,权限维度会报告为未检查,且就绪状态仅基于组织级别。
前提条件与安全性
- 目标组织已通过
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: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.md | V2 的三维门控、每个信号为何是代理指标,以及使用的确切查询 |