Faq
asgeirtj/system_prompts_leaks
Explain how this assistant works and help users understand computer access, confirmation or login blocks, and Slack errors.
Configure the "Set Up Self Service for Employees on Slack" / "Slack for Employee Service" checklist for Employee Service (ITSM) on Slack — the employee side, covering the Slack for Employee Service…
$ npx skills add forcedotcom/sf-skills --skill service-itsm-slack-itservice-configure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills service-itsm-slack-itservice-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-itsm-slack-itservice-configure .claude/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-itsm-slack-itservice-configure into .claude/skills/service-itsm-slack-itservice-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-configure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills service-itsm-slack-itservice-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-itsm-slack-itservice-configure .agents/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-itsm-slack-itservice-configure into .agents/skills/service-itsm-slack-itservice-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-itsm-slack-itservice-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-itsm-slack-itservice-configure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills service-itsm-slack-itservice-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-itsm-slack-itservice-configure .cursor/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-itsm-slack-itservice-configure into .cursor/skills/service-itsm-slack-itservice-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-configure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills service-itsm-slack-itservice-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-itsm-slack-itservice-configure .gemini/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-itsm-slack-itservice-configure into .gemini/skills/service-itsm-slack-itservice-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-configure .github/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-itsm-slack-itservice-configure into .github/skills/service-itsm-slack-itservice-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-configure .opencode/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/service-itsm-slack-itservice-configure into .opencode/skills/service-itsm-slack-itservice-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-itsm-slack-itservice-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-itsm-slack-itservice-configureConfigure the "Set Up Self Service for Employees on Slack" / "Slack for Employee Service" checklist for Employee Service (ITSM) on Slack — the employee side, covering the Slack for Employee Service…
Service Itsm Slack Itservice Configure is an agent skill from forcedotcom/sf-skills. Configure the "Set Up Self Service for Employees on Slack" / "Slack for Employee Service" checklist for Employee Service (ITSM) on Slack — the employee side, covering the Slack for Employee Service org preference, Employee Slack Notifications permission-set assignment, employee portal (Digital Experience site) enablement/selection, and connecting Slack to a Preferred Digital Experience Site. Use this for: 'set up Slack for Employee Service', 'assign Employee Slack Notifications permission set', 'manage user…
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/connect-agentforce-to-slack.md`, `references/manage-slack-connection.md` and `references/manage-user-access.md`).
It sits in Sales & Support, covering Help center and FAQ content. It works with Slack, Salesforce and Microsoft Teams. 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.
6 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 these tools, so the agent can use them without asking each time:
ReadAskUserQuestionBashmcp__headless-360__discovermcp__headless-360__describemcp__headless-360__dispatchmcp__headless-360__dispatch_readonlyFrom allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
slack.comFrom 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 Itsm Slack Itservice Configure loads about 5.9k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 235 tokens; SKILL.md has 2,323 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, AskUserQuestion, Bash, mcp__headless-360__discover, mcp__headless-360__describe, mcp__headlessAutomated 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,323 words, ~5,878 tokens.
.claude/skills/service-itsm-slack-itservice-configure/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Complete the "Set Up Self Service for Employees on Slack" checklist group — the employee side of Employee Service (ITSM) on Slack, so employees can create and manage their own tickets from Slack. Every operation dispatches through headless-360.
Execute one step at a time. These are real state-changing writes — run one operation, confirm it succeeded, then proceed. Don't batch setup calls into one parallel block.
Step 1 is a blocking gate. The Slack↔Salesforce connection request is Slack-admin-side. Every run, display the Step 1 block and STOP until the user confirms the request was sent — no API call (not even reads) before that. If unconfirmed, Slack setup is not done.
Speak plainly; keep internals in reasoning. Never surface tooling names, raw error codes, internal endpoints, developer names, or record Ids — translate to plain language ("Slack for Employee Service is now on") and refer to users/sites by human-readable Name. Begin each user-facing summary with the stamp
(via service-itsm-slack-itservice-configure).
EmployeeServiceSlackEnabled; assign all three core permsets —
EmployeeSlackNotifications + ItsmPortalUelUserPermset + an API-Enabled permset — to each
confirmed employee user; list the employee portal; set the Preferred Digital Experience Site
(SLACK_PREFERRED_SITE). Also read connection status.service-itsm-agentic-setup-employee-agent-configure), read-check the
connection, then guide the UI-only writes.Prerequisite: the org must have Employee Service (ITSM) licensing/permission — EmployeeServiceSlackEnabled
is only editable then (see Gotchas). An employee portal should exist or be created via experience-portal-create.
Connecting the org to a Slack workspace starts Slack-admin-side — no Salesforce API. Hard gate: present only Part 1 (request) verbatim, then HALT and wait for the user to confirm ("ok" / "done"); make no API call yet, and if unconfirmed, Slack setup is not done. Don't front-load Salesforce-side approval — you try to confirm that yourself in Step 2.
Connecting the org to Slack starts with a Slack-admin-side request — there's no Salesforce API for
it, so I can't do it for you. Do Part 1 now; after that I'll check the Salesforce side myself.
── PART 1 — Request a Salesforce connection in Slack (Slack desktop app) ──
1. Click your workspace name in the sidebar.
2. Hover over Tools & settings, then click Manage Salesforce organisations.
3. Click on Connect Salesforce org in the top-right corner.
4. Enter your Salesforce org URL.
5. Choose whether to use Email or SAML NameID for the Account mapping field. If you like,
toggle Automatic account mapping off to manually map accounts.
6. Click on Request connection, then click on OK. Your request will be sent to Salesforce for
approval.
Full walkthrough (all three parts — request, Salesforce approval, Slack activation):
https://slack.com/intl/en-in/help/articles/30754346665747-Connect-Salesforce-and-Slack
Once you've sent the "Request connection" (Part 1), reply "ok".Don't send the user to Salesforce right away — try to confirm the connection yourself first, and only guide the Salesforce-side approve/activate if you can't. Then enable the Employee Service org preference.
2a. TRY TO READ the connection via API (headless users have no Setup UI, so read rather than send them there blind):
mcp__headless-360__dispatch_readonly(
method: "GET",
url: "/services/data/v67.0/connect/slackbridge/connections"
)Returns {team:{status, teamName, teamDomain, teamId}, currentUserMapping:{salesforceUserId, slackUserId}}
(verified 200). Branch on team.status:
CONNECTED → already approved and live. Name the workspace by teamName; skip Parts 2 & 3 and
go straight to 2c (enable the preference). (A null currentUserMapping.salesforceUserId means this
user isn't mapped to a Slack user yet — mention it; it doesn't block the connection.)team: null / not-connected / errors → you CANNOT confirm it yet. This endpoint is CONNECTED-only
and blind to a pending/requested connection, so a null does not mean the request is absent.
Never say it "didn't land" or "isn't on the Salesforce side". Say only that no activated connection
shows via API yet, then 2b.2b. Only if you couldn't confirm (team:null / pending), PASTE Part 2 and Part 3, then HALT. Part 2 is
the Salesforce-side approval + mapping field (default Email; ask if the org uses SAML) — genuinely
UI-only, so guide it, don't fake an approve API. Point the user at the pending view Setup → Manage Slack Connection (/lightning/setup/SlackWorkspaces/home). Wait for "ok"
(approved + activated) before 2c.
── PART 2 — Approve the connection on the Salesforce side (guided) ──
1. Go to Setup → Manage Slack Connection (/lightning/setup/SlackWorkspaces/home).
2. Find the pending request and Approve it.
3. Set the Account mapping field to Email (default) — or SAML NameID if your org uses SAML.
── PART 3 — Activate the connection back in Slack (Slack desktop app) ──
Do this after the connection is approved on the Salesforce side. Owners / Salesforce-admin system
role in Slack can activate:
1. Click your workspace name in the sidebar.
2. Hover over Tools & settings, then click Manage Salesforce organisations.
3. Select the pending connection.
4. Review the connection details, then click Activate.
Reply "ok" once the connection is approved and activated, and I'll continue with the Salesforce setup.Read yes, approve no — do not fake it. Reading status is real; approving the connection and setting the mapping field are genuinely UI-only. Don't invent a
/connect/slack…approve call or claim it approved. Details / API evidence:references/manage-slack-connection.md.
2c. Turn on Slack for Employee Service. A direct org-preference toggle (reachable via PATCH). Enable
it yourself via API; don't ask the user to flip the Setup toggle. Read first (idempotent — skip the write
if already enabled):
mcp__headless-360__dispatch_readonly(
method: "GET",
url: "/services/data/v67.0/setup/org/preferences/EmployeeServiceSlackEnabled"
)Expect 200 {"isPreferenceEnabled": <bool>}. If false, enable it:
mcp__headless-360__dispatch(
method: "PATCH",
url: "/services/data/v67.0/setup/org/preferences/EmployeeServiceSlackEnabled",
body: { "desiredState": true }
)Expect 200 {"isPreferenceEnabled": true}. Re-run the GET to confirm. Tell the user it's enabled — don't
ask them to flip the toggle themselves.
Verified: the REST preference name is
EmployeeServiceSlackEnabled(not the Metadata-API nameenableEmployeeServiceSlack; guessed variants404). See Gotchas for the write-access gate.
Slack for Employee Service surfaces self-service through a Digital Experience portal. List the org's sites and confirm an employee portal exists (this list feeds the Preferred Site selection in Step 5):
mcp__headless-360__dispatch_readonly(
method: "GET",
url: "/services/data/v67.0/connect/communities"
)Each entry carries id (the Network Id, 0DB...), name, status, templateName, siteUrl.
Present the list and identify the employee portal (templateName "Employee Portal" / "Agentforce
Employee Center"). If no portal exists — or Digital Experiences isn't enabled (the call errors /
returns nothing) — hand off to experience-portal-create (covers org-level enablement too), then return.
The Go page's "Manage User Access" step assigns permission sets to each confirmed employee user (never all active users — ask which user(s), then assign). Always assign all three core permsets to each confirmed user — don't ask the user to choose a "notifications-only" vs "full" scope; the three together are what makes Slack for Employee Service actually usable (notifications + record visibility + API access), and under-assigning silently breaks record access:
EmployeeSlackNotifications — Slack notifications on ticket updates (the core of the step).ItsmPortalUelUserPermset ("ITSM Portal Uel User") — read/create/edit on Incident, Service
Request, Case (self-service) — lets the employee see/work their own records.PermissionSet, PermissionsApiEnabled = true, e.g.
Name Slack_ApiAccess / label "Slack API Access"). See references/manage-user-access.md.Agent access is separate and conditional — assign it only if the user opts into the Agentforce
agent in Slack (Step 6): the per-agent Agent_Access permset (the agent's BotDefinition
SetupEntityAccess); reverse-lookup, create if absent. Never Access_Agents (fails on an employee
license). Mechanics: references/connect-agentforce-to-slack.md.
Warn the user before assigning — their email must match their Slack user's email. The permset grants only the ability to receive notifications; the Salesforce↔Slack link comes from the connection's account-mapping field (default
User.Emailmust equal the Slack-account email, or they map to no Slack user and notifications go nowhere. AnullcurrentUserMapping.salesforceUserIdfrom Step 2 means unmapped. (SAML NameID: same rule, that identifier.) Surface this before you assign, so the user can pick users whose emails match.
Flow: query active users (page ≤10), classify with the helper script (don't eyeball — early pages are
full of system/integration accounts), ask which to grant, look up each permset Id fresh, POST one
PermissionSetAssignment per user per permset, classify each response with the script.
→ references/manage-user-access.md — query + POST bodies, the classify-user-access.mjs contracts,
the email-match + license gotchas, and the ItsmPortalUelUserPermset / API-Enabled / agent-access grants.
Writes the org value SLACK_PREFERRED_SITE (shared, cross-feature — see Gotchas).
Live site) and tell them.GET /services/data/v67.0/setup/org/values/SLACK_PREFERRED_SITE first (stringValue = current
Network Id or "None"); skip the write if already the chosen site's Id.dispatch PATCH to the same path with body { "orgValue": "<site Network Id>" } — the
site's Network Id (0DB... from connect/communities, not urlPathPrefix); re-read to confirm.SLACK_PREFERRED_SITE and the Step-4 permset writes all return 200/201 even when the site can't
serve the employee — a "success" summary is then wrong: IT Service lists come back empty /
access-denied. Activation, membership, and publication are three distinct states — verify each;
a failure of any is blocking — do not report setup complete. Remediation for any gap is
programmatic (hand to experience-portal-create, which owns the activate/add-member/publish
paths), UI as fallback — not UI-only:
SELECT Status FROM Network WHERE Id = '<site Id>'; if != 'Live', hand off.SELECT Id FROM NetworkMember WHERE NetworkId = '<site Id>' AND MemberId = '<user Id>'; 0 rows → hand off (add the profile/permset to Members).Network.Status = 'Live' does not prove the pages are published (a never-published
site 404s); if it was only activated, hand off to publish.→ references/site-membership-verification.md — exact queries, remediation, and the silent-success failure mode.
First, have the user verify their records show in Slack — HALT before Agentforce. Catch a visibility failure here rather than blame it on the agent later:
Before we (optionally) add the Agentforce agent, verify records show in Slack:
1. In Slack → Agents & tools → Apps → search "Salesforce" → Open app.
2. Confirm your self-service records show — Incident, Service Request, Case lists.
Reply "ok" once you see them. If a list says "Nothing turned up", the self-service permset
(ItsmPortalUelUserPermset) or email mapping isn't right — tell me and we'll fix it first.Only after the user confirms records are visible, ask whether they also want an Agentforce agent to reply in Slack; if not, stop here — setup is complete without it. If yes, the Go page's Configure Agentforce for Slack group has two items that make an agent actually reply in Slack:
Ensure the agent exists first — the IT Service Employee Agent. Check the org (query below); if
missing, hand off to service-itsm-agentic-setup-employee-agent-configure (provisions templates,
creates, activates), then return. (Fulfiller: service-itsm-agentic-setup-fulfiller-agent-configure.)
mcp__headless-360__dispatch_readonly(
method: "GET", url: "/services/data/v67.0/query",
queryParams: { "q": "SELECT Id, DeveloperName, MasterLabel FROM BotDefinition WHERE DeveloperName = 'IT_Service_Employee_Agent'" }
)The connection is UI-only for writes — read-check state first, guide, don't fake it. No public API
adds the Slack connection or installs the agent into a workspace. Read-check before sending the user to
Setup: workspace connection via Step 2's /connect/slackbridge/connections (CONNECTED ⇒ live). The
agent↔Slack link has no read — eyeball the Builder's Connections node. Then guide whatever's missing.
If the "+" next to Connections isn't clickable, the version is Committed (locked) — connections add only on a Draft. Click New Version first; the + enables (version-lock, not Active/Inactive — deactivating does not unlock). After + → Add connection → Slack → Add to agent: Save → Commit Version → Activate.
→ references/connect-agentforce-to-slack.md — verbatim click-paths (both sides), manage-after-install
actions, prerequisites, and the no-API evidence. Display these to the user.
| Issue | Detail |
|---|---|
REST preference name is EmployeeServiceSlackEnabled, not the Metadata name | /setup/org/preferences/{name} uses EmployeeServiceSlackEnabled (Metadata field enableEmployeeServiceSlack differs). Write access is gated (userCanManageEmployees) — on a non-ITSM org the PATCH may be rejected; surface the error, don't retry. |
SLACK_PREFERRED_SITE org value | orgValue = the site's Network Id (0DB...), not urlPathPrefix. Read it back after writing to confirm. |
slackbridge/connections is CONNECTED-only — team: null ≠ no connection | GET /connect/slackbridge/connections populates team only after activation; a pending connection reads {team: null} yet exists and shows in Setup → Manage Slack Connection (Aura-only, no REST mirror). Never report a null as "request didn't land"; say "no activated connection visible via API yet" and cross-check Setup. No approve/activate endpoint. Details: references/manage-slack-connection.md. |
| Version prefix required | headless-360 dispatch/dispatch_readonly don't resolve API versions — pass the full /services/data/vXX.0/... prefix. |
Step 4 permset — EmployeeSlackNotifications, not SlackServiceUser; may be license-gated | Assign the employee-side EmployeeSlackNotifications (+ ItsmPortalUelUserPermset for self-service record visibility — Incident/Service Request/Case, not Problem/Change); SlackServiceUser is a fulfiller-side one that does not satisfy this step. Some licenses can't hold the PSL (400 FIELD_INTEGRITY_EXCEPTION) — hard "wrong license" stop, not retryable. Details: references/manage-user-access.md. |
| Step 4 API-Enabled permset — reuse or create | The user needs a permset with API Enabled for the Slack app to call Connect APIs. Reuse any existing API-Enabled permset the org has; if none, create a minimal Slack-named PermissionSet (PermissionsApiEnabled = true, e.g. Slack_ApiAccess). Details: references/manage-user-access.md. |
| Writes succeed but Slack shows no records → site inactive/unpublished or user not a member | SLACK_PREFERRED_SITE and permset writes return 200/201 even when the site is UnderConstruction, its pages are unpublished, or the user has no NetworkMember row — so "success" is misleading. Step 5b verifies three distinct states (activation Network.Status = 'Live'; a NetworkMember per Step-4 user; publication — Live does not prove pages published) before any success. Remediation is programmatic — hand to experience-portal-create (owns activate/add-member/publish), UI as fallback, not UI-only. Details: references/site-membership-verification.md. |
Before emitting any user-facing summary, confirm each of the following:
/connect/slackbridge/connections first; CONNECTED → Parts 2 & 3 skipped; a
team: null phrased as "no activated connection visible via API yet" (+ Setup → Manage Slack Connection),
never "request didn't land"; Parts 2 (approve, no fake approve-API) & 3 pasted only if unconfirmed.(via service-itsm-slack-itservice-configure) stamp; no tooling names, error
codes, endpoints, developer names, or record Ids — names are human-readable.EmployeeServiceSlackEnabled, SLACK_PREFERRED_SITE)
checked first and the write skipped when already in the desired state.scripts/classify-user-access.mjs (not eyeballed); all
three core permsets always assigned to each confirmed user — EmployeeSlackNotifications (not
SlackServiceUser), ItsmPortalUelUserPermset, and an API-Enabled permset (reused else created) — no
"notifications-only" scope offered; Agent_Access (never Access_Agents) only if the user wants the
agent; assigned to confirmed user(s) only; wrong-license surfaced, not retried.Network.Status = 'Live'), publication (pages
published — not implied by Live), and a NetworkMember per Step-4 user all confirmed (else blocking, hand
remediation to experience-portal-create) — not skipped on 200/201.Each step's → pointer names its reference:
references/manage-slack-connection.md (Step 2) ·
references/manage-user-access.md + references/record-visibility.md (Step 4) ·
references/site-membership-verification.md (Step 5b) ·
references/connect-agentforce-to-slack.md (Step 6).scripts/classify-user-access.mjs — flag-users tags User rows; classify-assignment classifies a
PermissionSetAssignment POST as success/wrong-license/other-error.| Skill | When to use instead / alongside |
|---|---|
service-itsm-agentic-setup-employee-agent-configure | Builds/activates the IT Service Employee Agent connected in Step 6; delegated to. |
service-itsm-agentic-setup-fulfiller-agent-configure | Builds/activates the Fulfiller Agent — alternative Step 6 agent. |
experience-portal-create | Creates the employee Digital Experience portal this skill selects. |
service-itsm-channels-coordinate | Top-level menu across ITSM channels — Slack, Swarming, Notifications, Portal. |
© 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 6 other files (scripts, references) in skills/service-itsm-slack-itservice-configure of forcedotcom/sf-skills.
Open the folder on GitHubat commit 4bbae5c
Service Itsm Slack Itservice 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 Itsm Slack Itservice Configure this skillforcedotcom/sf-skills | 1.1k | — | ~5.9k | Automated safety check: Notes | Apache-2.0 | |
| Faqasgeirtj/system_prompts_leaks | 69k | — | ~2.4k | Automated safety check: Pass | CC0-1.0 | |
| Integrationsbutterbase-ai/butterbase-skills | 534 | — | ~832 | Automated safety check: Pass | MIT | |
| Airbyte AgentKilo-Org/kilo-marketplace | 190 | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Services Extension Consumptionforcedotcom/salesforcedx-vscode | 1k | — | ~5k | Automated safety check: Pass | BSD-3-Clause | |
| Soql Lib Query Builderbeyond-the-cloud-dev/soql-lib | 154 | — | ~4.3k | Automated safety check: Pass | MIT |
asgeirtj/system_prompts_leaks
Explain how this assistant works and help users understand computer access, confirmation or login blocks, and Slack errors.
butterbase-ai/butterbase-skills
Use BEFORE recommending or installing any third-party SaaS SDK for email (Resend, SendGrid, Postmark, Mailgun), SMS (Twilio), messaging (Slack), calendar (Google Calendar), CRM (HubSpot…
Kilo-Org/kilo-marketplace
Drive the airbyte-agent CLI to manage Airbyte connectors, workspaces, and organizations.
forcedotcom/salesforcedx-vscode
Consume the salesforcedx-vscode-services extension API. An agent skill from forcedotcom/salesforcedx-vscode.
beyond-the-cloud-dev/soql-lib
Builds Salesforce SOQL queries using the SOQL Lib fluent builder API (SOQL.cls).
Jaganpro/sf-skills
Salesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows.
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
Configure the "Set Up Self Service for Employees on Slack" / "Slack for Employee Service" checklist for Employee Service (ITSM) on Slack — the employee side, covering the Slack for Employee Service…. Service Itsm Slack Itservice Configure is an agent skill from forcedotcom/sf-skills. Configure the "Set Up Self Service for Employees on Slack" / "Slack for Employee Service" checklist for Employee Service (ITSM) on Slack — the employee side, covering the Slack for Employee Service org preference, Employee Slack Notifications permission-set assignment, employee portal (Digital Experience site) enablement/selection, and connecting Slack to a Preferred Digital Experience Site.
Service Itsm Slack Itservice Configure fits situations like: the Microsoft Teams equivalents (service-itsm-teams-itservice-configure); for turning ITSM notification preferences on.
Run `npx skills add forcedotcom/sf-skills --skill service-itsm-slack-itservice-configure -a claude-code`. Or copy the skill folder (skills/service-itsm-slack-itservice-configure in forcedotcom/sf-skills) into .claude/skills/service-itsm-slack-itservice-configure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill service-itsm-slack-itservice-configure -a codex`. Or copy the skill folder (skills/service-itsm-slack-itservice-configure in forcedotcom/sf-skills) into .agents/skills/service-itsm-slack-itservice-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-itsm-slack-itservice-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-itsm-slack-itservice-configure, .gemini/skills/service-itsm-slack-itservice-configure, .github/skills/service-itsm-slack-itservice-configure and .opencode/skills/service-itsm-slack-itservice-configure in your project.
Going by SKILL.md and its folder, Service Itsm Slack Itservice Configure needs JavaScript for the scripts in its folder. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, AskUserQuestion, Bash, mcp__headless-360__discover, mcp__headless-360__describe, mcp__headless-360__dispatch, mcp__headless-360__dispatch_readonly.
SKILL.md names 1 domain. In commands or code: slack.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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.
Service Itsm Slack Itservice 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 5.9k tokens (SKILL.md is roughly 24k 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 8.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Service Itsm Slack Itservice Configure: Faq (asgeirtj/system_prompts_leaks, 69k stars), Integrations (butterbase-ai/butterbase-skills, 534 stars), Airbyte Agent (Kilo-Org/kilo-marketplace, 190 stars) and Services Extension Consumption (forcedotcom/salesforcedx-vscode, 1k 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.