Agent skill

Service Omni Service Channel Configure

by forcedotcom in forcedotcom/sf-skills

A skill your agent uses to ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall), reusing any standard or custom…

Apache-2.0Auto-check: notesSales & Support

Install Service Omni Service Channel Configure

skills CLI
$ npx skills add forcedotcom/sf-skills --skill service-omni-service-channel-configure -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install forcedotcom/sf-skills service-omni-service-channel-configure --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/service-omni-service-channel-configure .claude/skills/service-omni-service-channel-configure && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
service-omni-service-channel-configure
GitHub stars
1.1k
Token cost
~1.6k tokens
SKILL.md length
621 words
Files
9 (incl. scripts, references, assets)
Skills in repo
252
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses to ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall), reusing any standard or custom…

  • Works in 3 steps: Prereq — confirm the target sObject is… → Discover — query the Tooling API for a… → Deploy (only when nothing was found) —…
  • Ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall)
  • SKILL.md covers Inputs, Preconditions and safety, Run and Behavior, plus 3 more sections
  • Runs Shell scripts from its folder; calls bash and sf

What it does

Service Omni Service Channel Configure is an agent skill from forcedotcom/sf-skills. Use to ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall), reusing any standard or custom channel already bound to that sObject and only deploying a canonical template when none exists. Salesforce enforces one ServiceChannel per RelatedEntity, so the skill detects via the Tooling API first. Standard channels ship for Case (Cases), MessagingSession (sfdclivemessage), VoiceCall (sfdcphone); Incident has none. Triggers: configure…

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including scripts, reference files and assets (for example `assets/sfdx-project.json`, `references/api-notes.md` and `scripts/deploy-and-report.sh`).

It sits in Sales & Support, covering CRM management. It works with Salesforce. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.

When your agent uses it

  • Ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall)
  • Reusing any standard
  • Custom channel already bound to that sObject and only deploying a canonical template when none exists
  • Tune per-sObject capacity (use PresenceUserConfig.Capacity)

Example prompts

  • “/service-omni-service-channel-configure”

Requirements

  • A Bash shell
  • Pre-approved tools (allowed-tools): Bash, Read, Write, Edit, Glob, Grep

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Prereq — confirm the target sObject is queryable via EntityDefinition; block with a click-path otherwise.
  2. Discover — query the Tooling API for a ServiceChannel with RelatedEntity = . ServiceChannel is a Tooling entity on v66; the standard Data…
  3. Deploy (only when nothing was found) — sf project deploy start of the canonical XML (Cases | Incidents | MessagingSessions | VoiceCalls)…

What it can do on your machine

Read from SKILL.md and the folder at commit 4bbae5c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Edit
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • sf

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Service Omni Service Channel Configure loads about 1.6k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 211 tokens; SKILL.md has 621 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~211
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Edit, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from forcedotcom/sf-skills at commit 4bbae5c, republished under its Apache-2.0 licence (© forcedotcom). 621 words, ~1,620 tokens.

Download SKILL.mdSave it as .claude/skills/service-omni-service-channel-configure/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
service-omni-service-channel-configure
description
Use to ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall), reusing any standard or custom channel already bound to that sObject and only deploying a canonical template when none exists. Salesforce enforces one ServiceChannel per RelatedEntity, so the skill detects via the Tooling API first. Standard channels ship for Case (Cases), MessagingSession (sfdc_livemessage), VoiceCall (sfdc_phone); Incident has none. Triggers: configure ServiceChannel for Case/Incident/Messaging/Voice routing, add Incident or Voice routing to Omni. Do not use to tune per-sObject capacity (use PresenceUserConfig.Capacity), to reset a mis-configured channel to canonical shape, or for sObjects outside Case/Incident/MessagingSession/VoiceCall.
allowed-tools
Bash, Read, Write, Edit, Glob, Grep
metadata.version
1.0
metadata.domains
Service
metadata.minApiVersion
66.0
metadata.relatedSkills
service-omni-base-settings-configure

service-omni-service-channel-configure

Ensure exactly one ServiceChannel is present for a routable sObject, reusing whatever is already bound (Salesforce standard or a pre-existing custom channel) and deploying the skill's canonical v66 template only when none exists. Salesforce enforces one ServiceChannel per RelatedEntity, so the skill detects first and never deploys blindly — deploying a second channel for an sObject that already has one fails with "This Salesforce object is already in use by another Service channel." It handles one sObject per call; callers configuring multiple sObjects invoke it once for each sObject, after service-omni-base-settings-configure has enabled Omni-Channel.

sObjectStandard channel (if any)Canonical asset
CaseCasesCases.serviceChannel-meta.xml
Incidentnone (Incident Management sObject)Incidents.serviceChannel-meta.xml — deployed on first run
MessagingSessionsfdc_livemessageMessagingSessions.serviceChannel-meta.xml — deployed only if the standard channel is missing
VoiceCallsfdc_phoneVoiceCalls.serviceChannel-meta.xml — deployed only if the standard channel is missing

Inputs

bash
bash scripts/deploy-and-report.sh <org-alias> [Case|Incident|MessagingSession|VoiceCall]
  • org-alias (required).
  • sobject_type (optional, default Case) — one of Case | Incident | MessagingSession | VoiceCall.

Preconditions and safety

  • Target org authenticated via sf CLI (My Domain URL), Service Cloud license, sf CLI ≥ 2.139.6.
  • Omni-Channel base settings enabled (service-omni-base-settings-configure) — ServiceChannel is only queryable/writable when enableOmniChannel=true; a INVALID_TYPE on deploy means base settings are off.
  • Incident requires the Incident Management feature enabled; MessagingSession requires Enhanced Messaging. The skill verifies EntityDefinition first and blocks with a click-path when the target sObject is absent.

Run

deploy-and-report.sh performs the prereq check, discovery, and (only when needed) deploy, then emits the report:

  1. Prereq — confirm the target sObject is queryable via EntityDefinition; block with a click-path otherwise.
  2. Discover — query the Tooling API for a ServiceChannel with RelatedEntity = <sobject_type>. ServiceChannel is a Tooling entity on v66; the standard Data API returns INVALID_TYPE. A hit means reuse.
  3. Deploy (only when nothing was found) — sf project deploy start of the canonical XML (Cases | Incidents | MessagingSessions | VoiceCalls); a Changed state is created, Unchanged is reused.
Show full SKILL.md (320 more words)Show less

Behavior

Detect-then-reuse-or-deploy. Because Salesforce rejects a second channel per RelatedEntity, deploy-first is unsafe: an operator who renamed the standard Cases channel would hit the "already in use" error instead of gracefully reusing. Tooling discovery is fast and returns both the reuse decision and the discovered DeveloperName in one call. The trade-off is that the skill cannot tell "our canonical shape matches" from "some custom channel is bound" — an operator with a non-canonical channel gets reused and their channel is left untouched (v1 never overwrites operator state).

Capacity model. The canonical assets use TAB_BASED for every variant. STATUS_BASED requires companion fields whose full schema is undocumented, so it is out of scope; per-agent capacity tuning belongs to PresenceUserConfig.Capacity, not this skill.

Concurrency. If a deploy fails with "already in use," another process created the channel between discovery and deploy; the skill soft-fails and a re-run reuses it.

Output contract

A single JSON object per invocation with status ∈ created | reused | blocked, plus sobject_type, channel_developer_name, channel_id, channel_origin, target_capacity_model, target_related_entity_type, before_state, deploy_id, manual_actions, and blocking_issue.

  • reused — an existing channel was found (discovery hit, or a deploy returned Unchanged).
  • created — no channel existed; the canonical XML deployed with Changed.
  • blocked — the sObject is not on the org, base settings are off (INVALID_TYPE), or a race left the channel already in use.
  • channel_origin is one of salesforce_standard (an sfdc_* name or Cases), canonical_asset (a shipped asset name), canonical_template (freshly deployed this run), or custom (a pre-existing org-specific channel).
  • channel_id is populated whenever a channel exists (null on blocked); deploy_id is populated only on the deploy branch; blocking_issue is non-null only when status: blocked.

Limitations

  • One sObject per invocation.
  • Only Case, Incident, MessagingSession, VoiceCall are supported — extend by adding an assets/force-app/main/default/serviceChannels/<Name>.serviceChannel-meta.xml file and a dispatcher branch.
  • Always reuses an existing channel; it does not reset a mis-configured channel to canonical shape.

References

FileWhen to read
references/api-notes.mdOn unexpected discovery results, deploy failures, or sObject-specific schema questions

© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references, assets) in skills/service-omni-service-channel-configure of forcedotcom/sf-skills.

  • SKILL.md
  • assets/force-app/main/default/serviceChannels/Cases.serviceChannel-meta.xml
  • assets/force-app/main/default/serviceChannels/Incidents.serviceChannel-meta.xml
  • assets/force-app/main/default/serviceChannels/MessagingSessions.serviceChannel-meta.xml
  • assets/force-app/main/default/serviceChannels/VoiceCalls.serviceChannel-meta.xml
  • assets/package.xml
  • assets/sfdx-project.json
  • references/api-notes.md
  • scripts/deploy-and-report.sh

Open the folder on GitHubat commit 4bbae5c

Compare with similar skills

Service Omni Service Channel Configure next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Service Omni Service Channel Configure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Service Omni Service Channel Configure this skillforcedotcom/sf-skills1.1k—~1.6kAutomated safety check: NotesApache-2.0
Soql Lib Query Builderbeyond-the-cloud-dev/soql-lib154—~4.3kAutomated safety check: PassMIT
Sf DatacloudJaganpro/sf-skills424—~2.7kAutomated safety check: PassMIT
Soql Lib Selectorbeyond-the-cloud-dev/soql-lib154—~2kAutomated safety check: PassMIT
Dev SetupPortwood-Global-Solutions/Portwood126—~1.1kAutomated safety check: PassApache-2.0
Sf FlowJaganpro/sf-skills424—~1.8kAutomated safety check: PassMIT

Similar skills

  • Soql Lib Query Builder

    beyond-the-cloud-dev/soql-lib

    Builds Salesforce SOQL queries using the SOQL Lib fluent builder API (SOQL.cls).

    154 GitHub stars~4.3k tokensUpdated 8 days ago
    Sales & SupportAuto-check passed
  • Sf Datacloud

    Jaganpro/sf-skills

    Salesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows.

    424 GitHub stars~2.7k tokensUpdated 5 mo ago
    Sales & SupportAuto-check passed
  • Soql Lib Selector

    beyond-the-cloud-dev/soql-lib

    Creates Salesforce Apex selector classes using the SOQL Lib selector pattern.

    154 GitHub stars~2k tokensUpdated 8 days ago
    Sales & SupportAuto-check passed
  • Dev Setup

    Portwood-Global-Solutions/Portwood

    Get from a fresh clone of Portwood to a working, fully-tested Salesforce org.

    126 GitHub stars~1.1k tokensUpdated yesterday
    Sales & SupportAuto-check passed
  • Sf Flow

    Jaganpro/sf-skills

    Creates and validates Salesforce Flows with 110-point scoring.

    424 GitHub stars~1.8k tokensUpdated 5 mo ago
    Sales & SupportAuto-check passed
  • Google Maps Export

    gmapsscraper/google-maps-agent-skills

    Export Google Maps business data to CSV, JSON, or CRM format (HubSpot, Pipedrive, Salesforce).

    132 GitHub stars~1.2k tokensUpdated 4 mo ago
    Sales & SupportAuto-check passed

More from forcedotcom/sf-skills

All 252 skills in this repo
  • Agentforce Architecture Analyze

    forcedotcom/sf-skills

    Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.

    1.1k GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Agentforce D360 Analyze

    forcedotcom/sf-skills

    Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.

    1.1k GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

    1.1k GitHub stars~5.3k tokensUpdated yesterday
    Auto-check: notes
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

    1.1k GitHub stars~5.4k tokensUpdated yesterday
    Auto-check: notes
  • Design Systems Slds Apply

    forcedotcom/sf-skills

    Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.

    1.1k GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Experience Lwc Generate

    forcedotcom/sf-skills

    Lightning Web Components with PICKLES methodology and 165-point scoring.

    1.1k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Service Omni Service Channel Configure

What does Service Omni Service Channel Configure do?

A skill your agent uses to ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall), reusing any standard or custom…. Service Omni Service Channel Configure is an agent skill from forcedotcom/sf-skills. Use to ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall), reusing any standard or custom channel already bound to that sObject and only deploying a canonical template when none exists.

When should I use Service Omni Service Channel Configure?

Service Omni Service Channel Configure fits situations like: ensure exactly one ServiceChannel exists on a Salesforce org for a routable sObject (Case | Incident | MessagingSession | VoiceCall); reusing any standard; custom channel already bound to that sObject and only deploying a canonical template when none exists; tune per-sObject capacity (use PresenceUserConfig.Capacity).

How do I install Service Omni Service Channel Configure in Claude Code?

Run `npx skills add forcedotcom/sf-skills --skill service-omni-service-channel-configure -a claude-code`. Or copy the skill folder (skills/service-omni-service-channel-configure in forcedotcom/sf-skills) into .claude/skills/service-omni-service-channel-configure in your project. Claude Code loads it when a task matches its description.

How do I install Service Omni Service Channel Configure in Codex?

Run `npx skills add forcedotcom/sf-skills --skill service-omni-service-channel-configure -a codex`. Or copy the skill folder (skills/service-omni-service-channel-configure in forcedotcom/sf-skills) into .agents/skills/service-omni-service-channel-configure in your project. Codex loads it when a task matches its description.

Can I use Service Omni Service Channel Configure in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill service-omni-service-channel-configure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/service-omni-service-channel-configure, .gemini/skills/service-omni-service-channel-configure, .github/skills/service-omni-service-channel-configure and .opencode/skills/service-omni-service-channel-configure in your project.

What does Service Omni Service Channel Configure need to run?

Going by SKILL.md and its folder, Service Omni Service Channel Configure needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and sf). Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep.

Does Service Omni Service Channel Configure access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Service Omni Service Channel Configure safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Service Omni Service Channel Configure use?

Service Omni Service Channel Configure is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Service Omni Service Channel Configure use?

About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.

What are the alternatives to Service Omni Service Channel Configure?

Skills that share tags, products or a category with Service Omni Service Channel Configure: Soql Lib Query Builder (beyond-the-cloud-dev/soql-lib, 154 stars), Sf Datacloud (Jaganpro/sf-skills, 424 stars), Soql Lib Selector (beyond-the-cloud-dev/soql-lib, 154 stars) and Dev Setup (Portwood-Global-Solutions/Portwood, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Service Omni Service Channel Configure?

forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,067 GitHub stars. The repository holds 252 skills in this directory. The repository was last updated on October 9, 2026.

Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.