forcedotcom/sf-skills is a collection of reusable instructions that help AI coding agents build and work with Salesforce applications and platform features. Developers use it for Agentforce agents, Lightning apps, Flow, Apex, SOQL, Lightning Web Components, and related Salesforce configuration. The catalogue entries are the repository’s skills, plugins, commands, MCP servers, and agents for AI tools that support skills.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add forcedotcom/sf-skills --skill service-omni-channel-setup-coordinategit clone --depth 1 https://github.com/forcedotcom/sf-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/forcedotcom/sf-skills/service-omni-channel-setup-coordinate)<a href="https://agentmods.dev/skills/forcedotcom/sf-skills/service-omni-channel-setup-coordinate"><img src="https://agentmods.dev/badge/skills/forcedotcom/sf-skills/service-omni-channel-setup-coordinate/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/forcedotcom/sf-skills/service-omni-channel-setup-coordinate"><img src="https://agentmods.dev/badge/skills/forcedotcom/sf-skills/service-omni-channel-setup-coordinate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00213 | $0.05223 |
| Opus 5.5 | $0.00085 | $0.02089 |
| Sonnet 5.5 | $0.00043 | $0.01045 |
| Haiku 4.5 | $0.00021 | $0.00522 |
Grade A, and why
service-omni-channel-setup-coordinate scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 167 lines — stays where its author put it; the contents beside it link to each section on GitHub.
service-omni-channel-setup-coordinate
Align an org toward a working Omni-Channel setup: detect what already exists and create or deploy only the missing pieces, up to a routed environment with agents, queues, presence statuses, and permissions. Full create-and-bind routing (queue + QueueRoutingConfig + outbound routing flow) is provided for Case and VoiceCall; Incident and MessagingSession are verified/adopted only by this coordinator — it reports their state and reuses existing config but does not create a missing queue/QRC/flow for them (use service-agentforce-human-escalation-configure for a created-and-bound MessagingSession handoff). This is a coordinator — it sequences the child leaf skills against a canonical set of steps and performs no writes of its own. Each leaf owns one primitive; the coordinator resolves per-org IDs, passes them between leaves, and enforces a shared reuse-vs-create and safety contract. It blocks with a click-path only for prerequisites an operator must action (a missing feature license, or a target sObject that is not enabled).
python3 is listed only because the bundled contract tests (scripts/tests/test_omni_contracts.py) use it; running the coordinator itself needs only jq and sf.
Inputs
Confirm these once, up front, before any write:
- Agent count (default
3, range1..10) and supervisor count (default1, range1..5). - Real login email (used for password-reset flows).
routing_targets(default["Case"]) — any subset ofCase | Incident | MessagingSession | VoiceCall. OnlyCaseandVoiceCallget full create-queue + QRC + routing-flow;IncidentandMessagingSessionare verified/adopted (report-only).- Service-channel strategy — reuse standard (
Cases,sfdc_livemessage, default) or create a custom channel. - Agent/supervisor profile — the driver provisions users on the
Service Cloud Userprofile by default (Omni needs a Service Cloud license). Some orgs ship that license under a differently named profile (e.g.Service Cloud); override viaOMNI_AGENT_PROFILE/OMNI_SUPERVISOR_PROFILEwithout editing the script. The user-create leaves block if the named profile is absent. - Runtime proof (optional) —
OMNI_RUNTIME_PROOF=1makes the routing-flow leaf fire the trigger (fail-soft);OMNI_RUNTIME_PROOF_REQUIRED=1makes proof blocking. QueueBased proof requiresPendingServiceRoutingorAgentWork. SkillsBased proof requires aPendingServiceRoutingwith at least oneSkillRequirement, which is the acceptance signal thatWorkSkillRoutingactually ran. The throwaway record is always cleaned up. - Queue selection (optional) — set
OMNI_CASE_QUEUE_DEVELOPER_NAME,OMNI_VOICE_QUEUE_DEVELOPER_NAME,OMNI_INCIDENT_QUEUE_DEVELOPER_NAME, orOMNI_MESSAGING_QUEUE_DEVELOPER_NAMEwhen the target must use a specific existing or canonical queue. Without an override, each leaf uses its target-derived default. - Routing-config selection (optional) — set
OMNI_CASE_ROUTING_CONFIG_DEVELOPER_NAMEorOMNI_VOICE_ROUTING_CONFIG_DEVELOPER_NAMEto select an existing QRC explicitly. When only a queue override is supplied, the coordinator first adopts that queue's linkedQueueRoutingConfig.DeveloperName; it creates the canonical QRC only when the queue has no linked config. - Queue routing controls (optional) —
OMNI_QRC_PUSH_TIMEOUTsets the agent acceptance timeout andOMNI_QRC_CAPACITY_PERCENTAGEselects percentage capacity (for example,100for a VoiceCall that consumes the agent's full capacity). The coordinator passes both values to every QRC target. - Routing mode —
OMNI_ROUTING_TYPE=QueueBased|SkillsBasedis optional. When all fourOMNI_WSR_ENTITY/OMNI_WSR_FIELD/OMNI_WSR_SKILL/OMNI_WSR_VALUEinputs are supplied, the coordinator infersSkillsBased; otherwise it defaults toQueueBased. SkillsBased usesOMNI_SKILL_OPTION=RunSBRRules(the default), binds the provisioned agents toOMNI_SBR_SKILL(defaults toOMNI_WSR_SKILL), authors the WorkSkillRouting rule, and only then activates the flow. An incomplete mapping or mismatched SBR/WSR skill is rejected before any write.OMNI_WSR_LABELoptionally names the rule. - Rep-experience stages (optional, default off) —
OMNI_REP_EXPERIENCE=1adds presence user config (decline + decline reason + ACW) and the Omni sidebar.OMNI_CONSOLE_APP=<app DeveloperName>targets a specific console app; empty auto-detects one. - Supervisor surface (always, after the config) — once
OmniSupervisorConfigexists, the coordinator populates its standard action + tab surface (OmniSupervisorConfigAction/OmniSupervisorConfigTab) via the Data API. Just before the classic config deploy it also runs a read-only Command Center analysis that reports whether the org is on the classic surface or Command Center V2. - Supervisor-config selection (optional) — set
OMNI_SUPERVISOR_CONFIG_DEVELOPER_NAMEto the exact classicOmniSupervisorConfig.DeveloperNamethat both the config and surface stages must reconcile. It defaults toOmni_Supervisor; use the override whenever the org has multiple configs so the coordinator never guesses.OMNI_SUPERVISOR_CONFIG_MASTER_LABELoptionally supplies the label when creating a new selected config.
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · -2 lines 43307204e189
- 7d ago First seen · 169 lines · 213 tokens per session scan A d142ca2b79c7
service-omni-channel-setup-coordinate is a skill published in the GitHub repository forcedotcom/sf-skills (1,097 stars, last pushed today), licensed Apache-2.0. It adds 213 tokens to every session and 5,223 once invoked, about $0.0009 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-10.
Other skills, from other repositories
mem0-oss-to-platform
Plan, then execute, a migration of a project from the mem0 open-source / self-hosted SDK (local Memory class) to the mem0 Platform / hosted SDK (MemoryClient). TRIGGER when: the developer wants to move, switch, or migrate mem0 off OSS/self-hosted to the hosted API, e.g. "migrate my mem0 setup to the platform", "switch…
agui-dotnet-protobuf
Use the protobuf wire transport (instead of the default Server-Sent Events) for an AG-UI connection with the AG-UI .NET SDK — a compact binary event stream negotiated via the Accept header. USE FOR: making an AGUIChatClient prefer protobuf by wiring an AGUIEventStreamHandler with ProtobufEventStreamFormatter (then…
azure-mgmt-botservice-dotnet
Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings. Triggers: "Bot Service", "BotResource", "Azure Bot", "DirectLine channel", "Teams channel", "bot management .NET", "create bot".
fastapi-router-py
Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or adding authenticated endpoints in FastAPI applications.
dev-runtime
How the Node side of a dev stack runs without haven, and the backend host: pnpm dev (UI built once, backend reloading), pnpm dev:hmr (adds the Vite ui lane), tools/dev-runtime (api + worker in one Node process), backend reload on a file change, the debounce (quiet window + max wait), ports derived from PORT. Use when…
migrate-segw-to-rap
Reverse-engineer a SEGW-built OData V2 service (MPC/DPC/MPCEXT/DPCEXT) into a modern RAP V4 service — tables, CDS views (interface + projection), behavior definitions, draft entities, service definition + binding. Use when asked to "migrate this SEGW service to RAP", "convert OData V2 to V4 RAP", "modernize this…