mcpField
S
service-omni-command-center-analyze

service-omni-command-center-analyze

github.com/forcedotcomOther1.1k117 installsUpdated 1d ago
Repository

About service-omni-command-center-analyze

A read-only skill that determines which Command Center for Service supervisor experience an org supports and recommends the next step. It evaluates V2 capability, provisioning signals, and optionally a named supervisor's permission, returning an explicit state rather than changing the org.

Key features

  1. 01Probe V2 org capability
  2. 02Check page and tab provisioning
  3. 03Optionally inspect supervisor permission
  4. 04Report state and recommended action
  5. 05Read-only Salesforce queries

Use cases

  1. 01Choose the next Command Center setup path
  2. 02Check a supervisor's V2 access
  3. 03Investigate incomplete V2 provisioning

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/forcedotcom/sf-skills --skill service-omni-command-center-analyze

After installing, type/service-omni-command-center-analyzein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
api-notes.md
scripts/
analyze.sh
scripts/tests/
_bootstrap.py
test_command_center_analyze_contracts.py

Details

From the project README

service-omni-command-center-analyze

Decide, without changing anything, which supervisor experience an org should use and what to do next. Command Center for Service V2 is gated on three independent dimensions — org capability (release gater), the CommandCenterForServiceV2 org preference (whose ON-flip seeds the CommandCenterForServiceV2_L FlexiPage and registers the V2 tab), and the per-supervisor CommandCenterForServiceUser permission. A single boolean cannot express that, so this skill returns an explicit state plus the recommended follow-up skill (e.g. service-omni-supervisor-config-deploy for the classic path). It is the entry point of the Command Center flow — service-omni-channel-setup-coordinate runs it first — and is safe to run on any org, including production, because it only reads.

Inputs

bash scripts/analyze.sh <org-alias> [supervisor_username_or_id]
  • org-alias (required).
  • supervisor_username_or_id (optional). A Username (…@…) or 15/18-char User Id (005…). When given, the per-user CommandCenterForServiceUser permission is evaluated; when omitted, the permission dimension is reported as not-checked and readiness is org-level only.

Preconditions and safety

  • Target org authenticated via sf CLI, Service Cloud license, sf CLI ≥ 2.139.6.
  • Read-only — no safe_to_write guard is needed; the skill issues only SOQL/Tooling queries.

Run

analyze.sh gathers observable signals and maps them to a state:

SignalSourceMeaning
V2 capabilitySELECT Id FROM PermissionSet WHERE PermissionsCommandCenterForServiceUser = true probeIf the user-permission column does not exist on the org schema, V2 is not available.
Seeded FlexiPageTooling: FlexiPage where DeveloperName='CommandCenterForServiceV2_L'Present ⇒ the org preference was enabled and the page was seeded.
V2 tabTabDefinition (best-effort)Cross-checks the seed; a seed/tab mismatch indicates a partial provision.
Supervisor permissionPermissionSetAssignment joined on PermissionSet.PermissionsCommandCenterForServiceUserWhether the named supervisor can use V2.
Legacy configTooling: OmniSupervisorConfig countInformational for the classic path.

Behavior

States and recommended next action:

StateMeaningRecommended skill
v2_readyCapability + seed present (and supervisor has permission, if checked)verify only (coordinator proceeds to V2 verification)
v2_permission_missingV2 enabled but the named supervisor lacks CommandCenterForServiceUserManual — assign CommandCenterForServiceUser (headless-capable via PermissionSet; packaging pending)
v2_seed_incompleteCapability present but the FlexiPage/tab provisioning is inconsistentManual — re-check in Setup → Omni-Channel → Supervisor Settings (no supported public write API)
v2_available_not_enabledOrg supports V2 but the preference is offManual — enable in Setup → Omni-Channel → Supervisor Settings (no supported Metadata/Tooling write API)
legacy_selectedV2 capability absentservice-omni-supervisor-config-deploy
ambiguousA required signal could not be read through a supported APInone — blocks, do not guess

ambiguous is the only state that exits non-zero: the review's rule is to block rather than infer when state cannot be proven read-only. All other states exit 0 with status:"detected".

Output contract

A single JSON object: status (detected | blocked), state (one of the six above), 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.

Limitations

  • The CommandCenterForServiceV2 org preference has no supported public read; its state is inferred from the seeded FlexiPage (the platform seeds on the ON-flip). This is called out in signals and is why a bare capability-without-seed reads as v2_available_not_enabled.
  • The release gater cannot be read directly; capability is inferred from the presence of the user-permission column on the org schema.
  • Tab detection is best-effort; when the tab query cannot run, v2_tab_present is "unknown" and state is derived from the remaining signals.
  • Read-only: it never enables V2, seeds pages, assigns permissions, or deploys config.

References

FileWhen to read
references/api-notes.mdThe three-dimensional V2 gate, why each signal is a proxy, and the exact queries used

Comments

Markdown supported