mcpField
S
service-omni-channel-inventory-analyze

service-omni-channel-inventory-analyze

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

About service-omni-channel-inventory-analyze

A read-only Salesforce skill that inventories Omni-Channel setup across Voice, Email, Live Chat, and Messaging. It returns channel types and derived routing targets for users inspecting an org before making changes.

Key features

  1. 01Inventory Omni-Channel instances
  2. 02Cover Voice, Email, Chat, and Messaging
  3. 03Filter results by channel type
  4. 04Report routing types and targets
  5. 05Return normalized JSON with status

Use cases

  1. 01Inspect routing in an unfamiliar org
  2. 02Review configured channel families
  3. 03Filter inventory to a specific channel
  4. 04Check whether inventory retrieval was blocked

Install

Copy the command and run it in a terminal.

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

After installing, type/service-omni-channel-inventory-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_inventory_analyze_contracts.py

Details

From the project README

service-omni-channel-inventory-analyze

Read the org's complete Omni-Channel setup-home inventory without making changes. The supported headless operation combines Voice, Email, Live Chat, and Messaging channel families and returns their derived routing type and routing target. Use this analyzer before changing an unfamiliar org or when a user asks what Omni channels and routing are already configured.

Inputs

bash scripts/analyze.sh <org-alias> [--type Voice|Email|Chat|SMS|Facebook|WhatsApp|InApp]
  • org-alias is required and must already be authenticated with Salesforce CLI.
  • --type is optional and case-insensitive. It filters the returned inventory without changing the source data.

Preconditions and safety

  • Target org authenticated through sf CLI.
  • API v66.0 or later.
  • The running user must have View Setup and Configuration and Customize Application.
  • This skill is read-only. The shared Headless dispatcher uses an HTTP POST envelope, but the invoked getChannelInstances controller action performs no org mutation.
  • Use sf api request rest; never extract or print an access token.

Run

Invoke scripts/analyze.sh with the target org and optional channel type. The script POSTs the approved OmniChannelInstancesController.getChannelInstances envelope to the shared Headless dispatcher, validates the inner response, optionally filters it, and returns a stable summary plus the matching channel instances.

The inventory includes these source fields when the platform supplies them:

FieldMeaning
id, labelChannel identity and display label
omniChannelInstanceTypeVoice, Email, Chat, SMS, Facebook, WhatsApp, or InApp
routingTypeQueue, Flow, or Other
routingRequirementId, routingRequirementLabelQueue, flow, or other routing target
channelUrl, routingRequirementUrlSetup navigation links synthesized by the platform
icon, messagesDisplay metadata and platform-provided notices

Output contract

The script emits one JSON object:

  • skill: service-omni-channel-inventory-analyze
  • status: analyzed or blocked
  • filter: canonical channel type or null
  • summary.total_configured: number of instances returned by the platform before filtering
  • summary.returned: number of instances in instances
  • summary.by_channel_type: counts for the returned inventory
  • summary.by_routing_type: Queue, Flow, and Other counts for the returned inventory
  • instances: normalized channel instance objects
  • blocking_issue: actionable failure reason or null

An empty instances array with status: analyzed is a valid inventory result. Authentication, authorization, endpoint, or malformed-response failures return status: blocked and exit non-zero; never reinterpret them as an empty org.

Boundaries

  • Do not replace this operation with independent SOQL queries. No single public object API reproduces the platform's cross-family aggregation, routing-type derivation, and setup URL generation.
  • Do not infer missing routing fields. Preserve null when the platform does not supply a value.
  • Do not use the returned setup URLs as mutation endpoints.
  • For configuration changes, hand off to the appropriate leaf skill only after presenting the inventory to the user.
Requested follow-upSkill
Coordinate a complete Omni setupservice-omni-channel-setup-coordinate
Create or reuse a Service Channelservice-omni-service-channel-configure
Create or update a queue routing configurationservice-omni-queue-routing-config-deploy
Deploy a QueueBased or SkillsBased routing flowservice-omni-routing-flow-deploy

References

FileWhen to read
references/api-notes.mdSupported endpoint, permission boundary, response fields, and why the headless operation is canonical

Comments

Markdown supported