npx skills add ...
npx skills add forcedotcom/sf-skills --skill service-itsm-teams-coordinate
End-to-end autopilot orchestrator for setting up Microsoft Teams integration in Salesforce Service Cloud ITSM — runs the whole flow (enable the Teams for Employee Service Go feature, register the Microsoft Entra app, populate Named Credentials, configure the IT Desk and IT Service checklists, turn on Swarming, and optionally embed the Agentforce agent) in one continuous pass, stopping only at the points a human must act. Use when the user asks to set up Microsoft Teams for ITSM end to end, 'set up teams for it service', 'do the whole teams itsm setup', 'configure microsoft teams for employee service', or wants a guided Teams ITSM walkthrough. Delegates each stage to a specialized child skill while driving the sequence itself. DO NOT TRIGGER when the user asks to enable Teams alone, configure just the IT Desk or IT Service checklist alone, or enable Swarming alone — delegate directly to the specific child skill in those cases.
npx skills add forcedotcom/sf-skills --skill service-itsm-teams-coordinate
Drive the complete Microsoft Teams for Employee Service (ITSM) setup as one continuous flow. Delegate each stage to its specialized child skill, but own the sequence yourself and keep going through every stage without stopping to ask permission between stages. Halt only at the points where a human genuinely must act — nowhere else.
Take the user from nothing to a working Teams ITSM integration (IT Desk + IT Service, Swarming, and — if they want it — the embedded Agentforce agent) in a single guided run. The child skills carry the verified API detail; this skill is the conductor that runs them in order and manages the handoffs.
Do everything with no midway stop unless the user must supply something or perform an off-platform action. Do not re-present a menu between stages, do not ask "shall I continue?" after each stage, and do not ask the user to click Setup toggles this skill's children can do via API. Move straight from one stage to the next, reporting progress as you go.
There are exactly three mandatory halts and one branch in the whole flow:
! umask 077; printf '%s' 'PASTE-SECRET' > <secret-file> && echo written) and reads it from that
file. Keep the leading ! — it runs the line in this session's Bash so the file persists. The agent
never prints, echoes, or logs the value.If the user goes silent at a halt, stop and wait — do not fabricate the value or skip ahead. Every other transition is automatic.
Within each stage, execute one operation at a time. The child skills make real, state-changing API calls; run a single operation, confirm it succeeded, then proceed — never batch state-changing calls into one parallel block. "No midway stop" means no permission gate between stages, not firing writes in parallel.
Invoke service-itsm-teams-configure for the feature-enable half only (its Steps 1–3): enable
service-cloud-itsm-teams-integration and confirm ITSMTeamsEnabled reads true. Report progress,
then continue straight into Stage 2 — do not stop here.
Still within service-itsm-teams-configure (its Step 4a): give the user the exact Azure/Entra
app-registration clicks including the Microsoft Graph permissions it lists, and
HALT until they provide the credentials. The Client ID and Tenant ID are non-secret
identifiers — accept them in chat. The Client Secret is confidential: never request it in the
conversation. Give the user one exact copy-paste command that writes it to a gitignored secret file
(! umask 077; printf '%s' 'PASTE-SECRET' > <secret-file> && echo written) and read it from that
file. Keep the leading ! — it runs the line in this session's Bash so the file persists. Never
print or echo it. The moment the identifiers are given and the secret is in the file:
MSTeamsSetupClientCredentialsEC Named Credential and the
microsoft_auth_provider Auth Provider yourself, via API — nothing manual (the child skill's
Step 5 and its azure-credential-population reference carry the exact API bodies). Read the
secret from the file at call time — do not inline the raw value into any logged text.Invoke service-itsm-teams-itdesk-configure. Drive its whole checklist:
OrgHasITSMFulfillerTeams org preference (via API).TeamsForITSrvcsUser + MicrosoftGraphAccess, plus the API Enabled login permission set
(commonly Teams_Employee_ApiAccess) — required for login, not optional.service-itsm-swarming-configure
(enables service-cloud-swarming and sets SWARM_COLLABORATION_TOOL = "Teams").Username), and
HALT until the user replies "installed." Then continue to Stage 4.Invoke service-itsm-teams-itservice-configure. Drive its whole checklist:
OrgHasEmployeeServiceTeams org preference (via API).TeamsForEmployeeUser (the dialog assigns only this one — not MicrosoftGraphAccess), plus
the API Enabled login permission set the child's login prerequisites require.SLACK_PREFERRED_SITE) via API.Ask the user to open the IT Desk app in Teams and sign in with the fulfiller credentials, and
the IT Service app with the UEL/employee credentials, and confirm both load. If either fails,
route to service-itsm-teams-debug for the pass/fail login diagnostic before proceeding.
Once IT Desk login is confirmed, tell the user that IT Desk's Ask Agentforce works automatically — no further setup is needed on the fulfiller side.
Tell the user the IT Service side has pending work: the embedded Agentforce agent ("Ask AI Agent")
does not reply until its messaging channel + Key Set + Embedded Service Deployment are built.
Ask whether they want to set it up now (use AskUserQuestion). If no, go to the completion
summary. If yes, run Stage 8.
Invoke service-itsm-teams-employee-agent-configure. It builds — 100% via API — the Web
messaging channel with User Verification ON + a JWKS_URL Key Set, the Teams_AgentForce
Embedded Service Deployment (publish), the routing flow, and the Agent Access permission set on the
portal user. Then tell the user to retest from a brand-new Teams chat to confirm the agent replies.
Blocked/waiting
and hold at the halt — do not mark it done and do not skip ahead.When the flow ends (Stage 7 "no", or Stage 8 done, or a hard block the user chose not to resolve), summarize each stage's real status. Header: all stages complete → Complete; any stage still blocked/waiting → Incomplete (action required) with the exact next step; otherwise Finished.
Before emitting any progress message or summary, confirm:
(via service-itsm-teams-coordinate).In progress, Blocked/waiting, or
Done) — not a hard-coded default.Done.| File | When to read |
|---|---|
examples/output-templates.md | Progress and completion-summary text blocks |