agentforce-architectur…
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA…
Wires an existing, active Agentforce agent to a channel by resolving a fallback queue, setting up inbound routing (either PATCH SessionHandlerId on the MessagingChannel, or an inbound RoutingFlow for Voice/Email), and optionally configuring outbound escalation. Use when the user
Claude Code
$ npx -y skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure --agent claude-code
Codex
$ npx skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure -a codex -y
Cursor
$ npx skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure -a cursor -y
Gemini CLI
$ npx skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure -a gemini-cli -y
GitHub Copilot
$ npx skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure -a github-copilot -y
OpenCode
$ npx skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure -a opencode -y
Windsurf
$ npx skills add forcedotcom/sf-skills --skill service-agentforce-channel-configure -a windsurf -y
name: service-agentforce-channel-configure
description: "Wires an existing, active Agentforce agent to a channel by resolving a fallback queue, setting up inbound routing (either PATCH SessionHandlerId on the MessagingChannel, or an inbound RoutingFlow for Voice/Email), and optionally configuring outbound escalation. Use when the user wants to add a channel to an existing agent, connect an agent to a messaging or voice channel, route Voice or Email-to-Case to an Agentforce agent, or set up a fallback queue for an agent channel. Also applies to an existing Help Agent. The channel infrastructure must already exist — this skill adds routing. DO NOT TRIGGER when the agent does not yet exist or still needs Help Agent setup (use agentforce-generate or service-helpagent-coordinate), when setting up Email-to-Case with an agent end-to-end (use service-email-to-case-configure), when creating the MessagingChannel itself (use service-digital-engagement-channel-configure), or when creating an Embedded Service Deployment (use service-digital-engagement-deployment-configure)."
allowed-tools: Bash Read Write Edit Glob Grep AskUserQuestion
metadata:
version: "1.1"
domains: ["Service", "Agentforce"]
minApiVersion: "67.0"
relatedSkills:
- "agentforce-generate"
- "service-agentforce-human-escalation-configure"
- "service-digital-engagement-channel-configure"
- "service-digital-engagement-deployment-configure"
- "service-email-to-case-configure"
- "service-helpagent-coordinate"
cliTools:
- tool: ["python3"]
semver: ">=3.8"
- tool: ["sf"]
semver: ">=2.0.0"
accessCheck: "OrgPermissions.EinsteinAgentPlatform"Adds inbound routing between an existing channel and an existing Agentforce agent. The agent receives work items from the channel; a fallback queue handles overflow when the agent is unavailable.
This skill is generic — it works for any Agentforce agent, not just the Help Agent template.
**In scope:**
**Out of scope:**
---
Validate AGENT_DEVELOPER_NAME matches `^[A-Za-z][A-Za-z0-9_]{0,79}$`, and every other input per `references/input-validation.md`, before the first command. On a mismatch, stop and ask; never escape and continue.
---
Steps are sequential. Read `references/channel-types.md` first to confirm the routing branch before proceeding.
This skill performs **metadata/data writes** (MessagingChannel edits, RoutingFlow deploys, agent republish). Before any write, classify the target org and refuse real production:
sf data query --target-org $ORG --json \ --query "SELECT Id, IsSandbox, TrialExpirationDate, OrganizationType FROM Organization LIMIT 1"
Never bypass this gate — a mistaken production write here reroutes live customer traffic.
1. **Confirm the agent exists and has an active version:**
# Get the definition
sf data query --target-org $ORG --json \
--query "SELECT Id, DeveloperName, MasterLabel FROM BotDefinition WHERE DeveloperName='{AGENT_DEVELOPER_NAME}'"
# Check for an Active version
sf data query --target-org $ORG --json \
--query "SELECT Id, Status FROM BotVersion WHERE BotDefinitionId='{BOT_DEFINITION_ID}' AND Status='Active' LIMIT 1"Stop with a clear message if the definition is not found or no version has `Status = Active`.
> **Branch A caveat — an Active BotVersion is necessary but NOT sufficient to bind as `sessionHandlerAsa`.** The platform only accepts an agent that is provisioned/connected as a *deployable Agentforce Service Agent* (typically an `ExternalCopilot`). Binding an agent that is merely Active
This repository provides Salesforce agent skills, plugins, and sample apps for building applications.
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA…
Use this skill to Upgrade Einstein Bots into Agentforce agents end-to-end in a single pass, orchestrating per-bot Agent Spec…
Data Cloud 360° view of a single Agentforce session. TRIGGER when user asks to trace, inspect, summarize, or describe a specific…
Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates,…
Analyze production Agentforce agent behavior using session traces and Data Cloud, and manage Agent Health Monitoring (AHM)…
Use to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.