Salesforce Flow Design
github/awesome-copilot
Salesforce Flow architecture decisions, flow type selection, bulk safety validation, and fault handling standards.
Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW).
$ npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills service-digital-engagement-channel-configure --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/service-digital-engagement-channel-configure .claude/skills/service-digital-engagement-channel-configure && rm -rf skills-srcUse ~/.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/
Install the "service-digital-engagement-channel-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configure into .claude/skills/service-digital-engagement-channel-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-digital-engagement-channel-configure", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configureType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills service-digital-engagement-channel-configure --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/service-digital-engagement-channel-configure .agents/skills/service-digital-engagement-channel-configure && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "service-digital-engagement-channel-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configure into .agents/skills/service-digital-engagement-channel-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-digital-engagement-channel-configure", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills service-digital-engagement-channel-configure --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/service-digital-engagement-channel-configure .cursor/skills/service-digital-engagement-channel-configure && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "service-digital-engagement-channel-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configure into .cursor/skills/service-digital-engagement-channel-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-digital-engagement-channel-configure", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/forcedotcom/sf-skills.git --path skills/service-digital-engagement-channel-configure--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills service-digital-engagement-channel-configure --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/service-digital-engagement-channel-configure .gemini/skills/service-digital-engagement-channel-configure && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "service-digital-engagement-channel-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configure into .gemini/skills/service-digital-engagement-channel-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-digital-engagement-channel-configure", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install forcedotcom/sf-skills service-digital-engagement-channel-configureInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/service-digital-engagement-channel-configure .github/skills/service-digital-engagement-channel-configure && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "service-digital-engagement-channel-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configure into .github/skills/service-digital-engagement-channel-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-digital-engagement-channel-configure", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills service-digital-engagement-channel-configure --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/service-digital-engagement-channel-configure .opencode/skills/service-digital-engagement-channel-configure && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "service-digital-engagement-channel-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-digital-engagement-channel-configure into .opencode/skills/service-digital-engagement-channel-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-digital-engagement-channel-configure", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
service-digital-engagement-channel-configureConfigures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW).
Service Digital Engagement Channel Configure is an agent skill from forcedotcom/sf-skills. Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW). Use when the user needs to create, deploy, and activate a messaging channel configured with Omni-Channel Flow, Omni-Channel Queue, User, or Agentforce Service Agent routing. Generates MessagingChannel metadata, deploys it to the target org, and activates the channel with User Verification, pre-chat forms, automated responses, consent settings, and all customizable channel options via Metadata API. TRIGGER when the…
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts, reference files and assets (for example `references/channel_settings.md`, `scripts/check-api-version.sh` and `scripts/normalize-channel-name.sh`).
It sits in DevOps & Cloud, covering Deployment. 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.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4bbae5c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
sfFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Service Digital Engagement Channel Configure loads about 4.9k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 221 tokens; SKILL.md has 2,117 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from forcedotcom/sf-skills at commit 4bbae5c, republished under its Apache-2.0 licence (© forcedotcom). 2,117 words, ~4,949 tokens.
.claude/skills/service-digital-engagement-channel-configure/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Creates MessagingChannel metadata XML for Salesforce Messaging for In-App and Web (MIAW). This skill produces a fully configured enhanced chat channel with routing, user verification, pre-chat, and automated response settings ready for Metadata API deployment.
MessagingChannel metadata with Omni-Channel Flow routing, Omni-Channel Queue routing, or Agentforce Service Agent (ASA) routing; enabling User Verification; configuring all channel settings (pre-chat forms, automated responses, consent keywords, file attachments, custom parameters)automation-flow-generate), creating the Embedded Service Deployment (separate metadata type — use service-digital-engagement-deployment-configure), creating permission sets for messaging (use platform-permission-set-generate), configuring the Embedded Service Code SnippetBefore generating, ask the user if not already clear:
masterLabel and file name)true per this skill)Gather or infer before proceeding:
masterLabel and the file name (<Name>.messagingChannel-meta.xml)Queue, Flow, User, or AgentforceServiceAgenttrue)Defaults unless specified:
messagingChannelType: EmbeddedMessagingauthMode: AuthchatAbandonmentTimeout: 5 (minutes)endUserIdleTimeOut: 5 (minutes)isAttachmentUploadEnabled: truemaxFileSize: 5 (MB)allowedFileTypes: bmp,csv,doc,docx,gif,jpg,pdf,png,tiff,txt,xls,xmlanonymousUserJwtExpirationTime: 360 (minutes, required for UnAuth, range 60-4320)verifiedUserJwtExpirationTime: 60 (minutes, required for Auth, range 60-240)isAbandonedChatsEnabled: falseisSaveTranscriptEnabled: falseisFallbackMessageEnabled: falseisEstimatedWaitTimeEnabled: falseisFileAttachmentExtUnrestricted: falseisQueuePositionEnabled: falseisSynchronousChatEnabled: falseisVoiceModeEnabled: falseAll steps are sequential. Do not skip or reorder.
Verify org API version — run scripts/check-api-version.sh 67.0 <org-alias> and report any errors it returns. If the script fails, generate a sfdx-project.json in the metadata output folder with "sourceApiVersion": "67.0".
Collect inputs — confirm the channel label, routing type, routing target, and verification settings from the user per Clarifying Questions above.
Determine file name — run scripts/normalize-channel-name.sh "<LABEL>" and surface any errors it returns.
Verify routing target exists — query the org to confirm the referenced routing target exists:
sf data query --query "SELECT Id, DeveloperName FROM Group WHERE Type='Queue' AND DeveloperName='<QUEUE_NAME>'" --target-org <org-alias>sf data query --query "SELECT Id, ApiName FROM FlowDefinitionView WHERE ApiName='<FLOW_NAME>' AND IsActive=true" --target-org <org-alias>sf data query --query "SELECT Id, Username FROM User WHERE Id='<USER_ID>' AND IsActive=true" --target-org <org-alias>sf data query --query "SELECT Id, DeveloperName FROM BotDefinition WHERE DeveloperName='<BOT_NAME>'" --target-org <org-alias>If any target is not found, inform the user and ask whether to create it. If the user confirms:
.queue-meta.xml with MessagingSession as the queueSobject type and deploy it before the channel. A new queue is unusable for routing without a QueueRoutingConfig — a channel deployed against a queue with none fails at session-start with "Agents are not available. Try again later," even though the channel itself deploys and activates cleanly. Immediately after the queue deploys, resolve or create its routing config by following service-agentforce-channel-configure's references/queue-resolution.md Step 4 — do not defer this to a later skill invocation, since this may be the only place a newly created queue is ever touched.Read the channel settings reference — load references/channel_settings.md to understand all available configuration options and their valid values.
Read the metadata template — load assets/messaging_channel_template.xml as the starting structure.
Apply routing configuration — set sessionHandlerType and the corresponding handler field:
| Routing Type | sessionHandlerType | Required Fields |
|---|---|---|
| Omni-Channel Queue | Queue | sessionHandlerQueue |
| Omni-Channel Flow | Flow | sessionHandlerFlow + sessionHandlerQueue (fallback) |
| User | User | sessionHandlerUser + sessionHandlerQueue (fallback) |
| Agentforce Service Agent | AgentforceServiceAgent | sessionHandlerQueue (fallback) + sessionHandlerAsa (bot dev name — required, see v67 note below) |
v67 note —
<sessionHandlerAsa>is required in the XML, not rejected. Confirmed on a v67.0 org: omitting<sessionHandlerAsa>causes the deploy to fail with "Missing required Agentforce Service Agent." Include it and the deploy bindsSessionHandlerIdautomatically — no post-deploy Data API PATCH needed.
- Verify the bot is Active before channel creation. The Metadata API rejects binding with "Only active Agentforce Service Agents are supported." Run
sf agent activate -o <org> --api-name <BotDevName>and confirmBotVersion.Status = Activefirst.- Deploy the XML with
<sessionHandlerType>AgentforceServiceAgent</sessionHandlerType>,<sessionHandlerQueue>(fallback), and<sessionHandlerAsa>{BotDevName}</sessionHandlerAsa>.- Verify:
sf data query -o <org> -q "SELECT SessionHandlerId, FallbackQueueId FROM MessagingChannel WHERE DeveloperName='<ChannelDevName>'" --json— both must be non-null after the deploy, with no separate PATCH step.
Apply user verification — if enabled, set embeddedConfig.authMode to Auth and include <messagingAuthorizations>. If not enabled, set embeddedConfig.authMode to UnAuth and omit <messagingAuthorizations>.
Configure embedded settings — populate <embeddedConfig> with:
allowedFileTypes — comma-separated file extensions (no spaces)anonymousUserJwtExpirationTime — JWT expiration in minutes (required for UnAuth)verifiedUserJwtExpirationTime — JWT expiration in minutes (required for Auth)chatAbandonmentTimeout — minutes before abandoned conversation cleanupisAbandonedChatsEnabled — enable abandoned chat detectionisAttachmentUploadEnabled — file upload supportisEstimatedWaitTimeEnabled — show estimated wait timeisFallbackMessageEnabled — fallback when agents unavailableisFileAttachmentExtUnrestricted — allow any file extensionisSaveTranscriptEnabled — save conversation transcriptsmaxFileSize — maximum attachment size in MBConfigure messaging keywords — generate <messagingKeywords> elements:
OptOut type with individual <keyword> elements: cancel, end, quit, stop, stopall, unsubscribeHelp type with <keyword>: helpApply standard parameters — if the user needs standard pre-chat fields, generate <standardParameters> elements with parameterType. If the channel uses Flow-based routing and the user specifies flow variable mappings, include <actionParameterMappings> with actionParameterName to map each parameter to a flow input variable.
Apply custom parameters — if the user needs pre-chat data collection, generate <customParameters> elements with name, masterLabel, parameterDataType, externalParameterName, and maxLength. If the channel uses Flow-based routing and the user specifies flow variable mappings, include <actionParameterMappings> with actionParameterName to map each parameter to a flow input variable.
Generate the file — produce the .messagingChannel-meta.xml file following the template structure. Place at the path the user specifies, or default to the project's metadata source path under messagingChannels/.
.messagingChannel-meta.xml file to the target org:sf project deploy start --source-dir <path-to-messagingChannels-folder> --target-org <org-alias>15a. ASA routing only — verify the bind landed. Skip this step for Queue, Flow, and User routing types. Because <sessionHandlerAsa> was included in the deployed XML (step 7), the deploy itself binds SessionHandlerId — no separate Data API PATCH is needed.
```bash
sf data query -o <org> --json \
-q "SELECT SessionHandlerId, FallbackQueueId FROM MessagingChannel WHERE DeveloperName='<CHANNEL_DEV_NAME>'"
```
Both `SessionHandlerId` and `FallbackQueueId` must be non-null. If either is null, confirm `<sessionHandlerAsa>` and `<sessionHandlerQueue>` were both present in the deployed XML and that the bot was Active before the deploy.sf data update record --sobject MessagingChannel --where "DeveloperName='<CHANNEL_NAME>'" --values "IsActive=true" --target-org <org-alias>Verify against checklist — confirm all items in the Verification Checklist below pass before presenting output.
Present output — show the generated file to the user with a summary of configured settings and confirm activation status. Offer next steps:
<automatedResponses> (OptOutConfirmation, HelpResponse). If yes, generate elements with autoResponseContentType: TextResponse, language, and XML-escaped response text, then redeploy.| Constraint | Rationale |
|---|---|
| File name serves as the channel API name | No channelPlatformKey field in the XML body |
sessionHandlerType must match the handler fields present | Setting Queue but populating sessionHandlerFlow causes deployment error |
Flow routing requires both sessionHandlerFlow and sessionHandlerQueue | Queue is the mandatory fallback for human escalation |
User routing requires both sessionHandlerUser and sessionHandlerQueue | Queue is the mandatory fallback when user is unavailable |
ASA routing: include both sessionHandlerQueue and sessionHandlerAsa in the XML | sessionHandlerAsa is required at v67 — the deploy fails with "Missing required Agentforce Service Agent" if omitted; the deploy itself binds SessionHandlerId, no PATCH needed |
Bot must be Active before the metadata deploy that binds SessionHandlerId | API rejects with "Only active Agentforce Service Agents are supported" if the bot is inactive |
masterLabel max 40 characters | Platform limit on channel labels |
File name must match ^[a-zA-Z][a-zA-Z0-9_]*$ | API name format enforced by Metadata API |
allowedFileTypes is a comma-separated string with no spaces | Not a nested list or array |
keyword elements are individual — one per trigger word | Not a comma-separated list |
customParameters need name, masterLabel, parameterDataType, and externalParameterName | Incomplete parameters fail silently |
File extension is .messagingChannel-meta.xml | Metadata API uses this specific extension |
Do not hardcode file paths — respect sfdx-project.json package directories | Customer orgs customize source paths |
| Channel must be activated after deployment | Channels are inactive by default — messages won't route until activated |
isSynchronousChatEnabled defaults to false; can only be true for UnAuth channels upon user request | Platform rejects "You can't enable Session-Based Chat for verified users" for Auth channels |
| Issue | Resolution |
|---|---|
| Channel name conflicts with existing channel | Check org for existing channels; file name must be unique |
| Queue not found on deploy | Ensure the referenced queue exists and has MessagingSession as a queueSobject type |
| Channel deploys and activates fine, but widget shows "Agents are not available. Try again later." at session start | The queue has no QueueRoutingConfig — this is silent at deploy time. Check SELECT QueueRoutingConfigId FROM Group WHERE Id='<QUEUE_ID>'; if null, resolve/create one per queue-resolution.md Step 4 |
| Omni-Channel Flow not found on deploy | Ensure the referenced flow exists and is active before deploying the channel |
| ASA bot reference invalid | Bot must be published and active; use exact developer name from BotDefinition metadata |
| ASA channel deploy fails with "Missing required Agentforce Service Agent" | <sessionHandlerAsa>{BotDevName}</sessionHandlerAsa> is missing from the XML — it's required at v67, not optional |
ASA channel deployed but SessionHandlerId is null after deploy | Bot was not Active at deploy time — run sf agent activate, confirm BotVersion.Status = Active, then redeploy |
| "Only active Agentforce Service Agents are supported" on deploy | Bot is inactive — run sf agent activate before deploying |
| Flow or ASA routing fails without fallback queue | sessionHandlerQueue is mandatory when sessionHandlerType is Flow or AgentforceServiceAgent |
| JWT verification not working | Connected app and certificate must be configured for the org |
| Custom parameters not collected | name must be unique per channel; parameterDataType defaults to Text |
| Automated responses not showing | Use exact type values (OptOutConfirmation, HelpResponse); XML-escape special characters |
| Channel deployed but messages not routing | Channel must be activated after deployment — it defaults to inactive |
| "You can't enable Session-Based Chat for verified users" | Set isSynchronousChatEnabled to false for Auth channels — session-based chat is only valid for UnAuth |
^[a-zA-Z][a-zA-Z0-9_]*$?masterLabel 40 characters or fewer?messagingChannelType set to EmbeddedMessaging?sessionHandlerType value set (Queue, Flow, User, or AgentforceServiceAgent)?sessionHandlerQueue in the XML?sessionHandlerFlow in the XML, plus sessionHandlerQueue as fallback?sessionHandlerUser in the XML, plus sessionHandlerQueue as fallback?sessionHandlerQueue and sessionHandlerAsa in the XML?SessionHandlerId and FallbackQueueId non-null after the deploy?embeddedConfig.authMode set to Auth?embeddedConfig.authMode set to UnAuth?chatAbandonmentTimeout a positive integer (minutes)?allowedFileTypes a comma-separated string with no spaces?maxFileSize a value between 1-5 MB?anonymousUserJwtExpirationTime set (default 360, range 60-4320)?verifiedUserJwtExpirationTime set (default 60, range 60-240)?type values use valid IDs (OptOutConfirmation, HelpResponse)?response text?OptOut keyword type defined?<keyword> elements (not comma-separated)?language set on each keyword block?IsActive=true)?Deliverables:
<source-path>/messagingChannels/<ChannelName>.messagingChannel-meta.xmlFile structure follows the template in assets/messaging_channel_template.xml.
| Need | Delegate to |
|---|---|
| Creating the Omni-Channel Flow for routing | automation-flow-generate skill |
| Creating permission sets for messaging agents | platform-permission-set-generate skill |
| Creating the Embedded Service Deployment | service-digital-engagement-deployment-configure skill |
| File | When to read |
|---|---|
assets/messaging_channel_template.xml | Before generating — use as the starting structure |
references/channel_settings.md | When configuring channel options beyond defaults |
scripts/check-api-version.sh | Phase 1 — verify org API version meets the passed minimum (67.0) |
scripts/normalize-channel-name.sh | Phase 1 — derive file API name from channel label |
examples/omni_flow_channel.xml | To verify output for Omni-Channel Flow routing |
examples/omni_queue_channel.xml | To verify output for Omni-Channel Queue routing |
examples/asa_agent_channel.xml | To verify output for Agentforce Service Agent routing |
© 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
SKILL.md and 7 other files (scripts, references, assets) in skills/service-digital-engagement-channel-configure of forcedotcom/sf-skills.
Open the folder on GitHubat commit 4bbae5c
Service Digital Engagement 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Service Digital Engagement Channel Configure this skillforcedotcom/sf-skills | 1.1k | — | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| Salesforce Flow Designgithub/awesome-copilot | 40k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Sf DeployJaganpro/sf-skills | 424 | — | ~2k | Automated safety check: Pass | MIT | |
| Sf Vlocity Build DeployJaganpro/sf-skills | 424 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Kubeshark Installerkubeshark/kubeshark | 12k | — | ~3.6k | Automated safety check: Notes | Apache-2.0 | |
| GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb | 6.7k | — | ~4k | Automated safety check: Notes | Apache-2.0 |
github/awesome-copilot
Salesforce Flow architecture decisions, flow type selection, bulk safety validation, and fault handling standards.
Jaganpro/sf-skills
Salesforce DevOps automation using sf CLI v2. An agent skill from Jaganpro/sf-skills.
Jaganpro/sf-skills
Salesforce Industries DataPack deployment automation using Vlocity Build.
kubeshark/kubeshark
Installs and configures Kubeshark on a Kubernetes cluster, choosing between the quick CLI path and a Helm install with custom values.
GreptimeTeam/greptimedb
Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.
metalbear-co/mirrord
Help users install and configure the mirrord Operator for team/enterprise environments.
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Works with
Categories
Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW). Service Digital Engagement Channel Configure is an agent skill from forcedotcom/sf-skills. Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW).
Service Digital Engagement Channel Configure fits situations like: the user needs to create; activate a messaging channel configured with Omni-Channel Flow; omni-Channel Queue; agentforce Service Agent routing.
Run `npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a claude-code`. Or copy the skill folder (skills/service-digital-engagement-channel-configure in forcedotcom/sf-skills) into .claude/skills/service-digital-engagement-channel-configure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill service-digital-engagement-channel-configure -a codex`. Or copy the skill folder (skills/service-digital-engagement-channel-configure in forcedotcom/sf-skills) into .agents/skills/service-digital-engagement-channel-configure in your project. Codex loads it when a task matches its description.
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-digital-engagement-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-digital-engagement-channel-configure, .gemini/skills/service-digital-engagement-channel-configure, .github/skills/service-digital-engagement-channel-configure and .opencode/skills/service-digital-engagement-channel-configure in your project.
Going by SKILL.md and its folder, Service Digital Engagement Channel Configure needs a shell for the scripts in its folder and the command-line tools its instructions call (sf). Our summary lists: A Bash shell.
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.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. 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.
Service Digital Engagement 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.
About 4.9k tokens (SKILL.md is roughly 20k 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 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Service Digital Engagement Channel Configure: Salesforce Flow Design (github/awesome-copilot, 40k stars), Sf Deploy (Jaganpro/sf-skills, 424 stars), Sf Vlocity Build Deploy (Jaganpro/sf-skills, 424 stars) and Kubeshark Installer (kubeshark/kubeshark, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.