service-itsm-channels-coordinate
Top-level interactive coordinator for Employee Service (ITSM) channel setup. Presents menu of channel setup options (Portal, Teams, Slack) and delegates to the corresponding skill. Use this for: 'setup ITSM channels', 'configure employee service channels', 'set up service cloud communication channels', 'I want to configure ITSM integrations', or any general request for ITSM channel/integration setup where the user hasn't specified exactly which channel they want. DO NOT TRIGGER for requests that already name a specific channel or child skill (e.g. 'configure Teams', 'set up Slack', 'create an employee portal', 'configure ITSM notifications') — route directly to the matching child skill instead.
Other options
Summary
Top-level interactive coordinator for Employee Service (ITSM) channel setup. Presents menu of channel setup options (Portal, Teams, Slack) and delegates to the corresponding skill. Use this for: 'setup ITSM channels', 'configure employee service channels', 'set up service cloud communication channels', 'I want to configure ITSM integrations', or any general request for ITSM channel/integration setup where the user hasn't specified exactly which channel they want. DO NOT TRIGGER for requests that already name a specific channel or child skill (e.g. 'configure Teams', 'set up Slack', 'create an employee portal', 'configure ITSM notifications') — route directly to the matching child skill instead.
Raw SKILL.md
13K bytes---
name: service-itsm-channels-coordinate
description: "Top-level interactive coordinator for Employee Service (ITSM) channel setup. Presents menu of channel setup options (Portal, Teams, Slack) and delegates to the corresponding skill. Use this for: 'setup ITSM channels', 'configure employee service channels', 'set up service cloud communication channels', 'I want to configure ITSM integrations', or any general request for ITSM channel/integration setup where the user hasn't specified exactly which channel they want. DO NOT TRIGGER for requests that already name a specific channel or child skill (e.g. 'configure Teams', 'set up Slack', 'create an employee portal', 'configure ITSM notifications') — route directly to the matching child skill instead."
metadata:
version: "1.0"
domains: ["Service"]
minApiVersion: "66.0"
relatedSkills:
- "experience-portal-create"
- "service-itsm-teams-configure"
- "service-itsm-teams-debug"
- "service-itsm-teams-employee-agent-configure"
- "service-itsm-teams-itdesk-configure"
- "service-itsm-teams-itservice-configure"
---
# Employee Service (ITSM) Channels Setup Coordinator
Interactive coordinator that presents a menu of ITSM channel setup options and delegates to the appropriate child skill based on user selection.
## Scope
- **In scope**: Presenting the channel setup menu to the user. Delegating to child skills based on selection (Portal, Teams, Slack). Validating prerequisites before delegation. Providing clear descriptions of each channel capability.
- **Out of scope**: Directly calling setup APIs for any channel — always delegate to the dedicated child skill. Channel-specific configuration details beyond the initial enablement. User permission assignment. Post-setup testing. ITSM notification preferences (a separate concern — handle those with the dedicated notification-preferences skill, not through this menu).
---
## Available Channel Setup Skills
This coordinator can invoke three distinct channel setup skills:
### 1. Portal Setup
**Skill:** `experience-portal-create`
**What it does:**
- Creates a Digital Experience portal for employee self-service
- Supports Employee Service, Partner, and Customer portals
**Prerequisites:**
- Vary by portal type
**Use when:** User wants to create a portal for employee self-service.
---
### 2. Microsoft Teams Setup
**Skill:** `service-itsm-teams-configure`
**What it does:**
- Enables the `service-cloud-itsm-teams-integration` Salesforce Go feature via headless-360's
feature-enablement Connect API — the only verified path that flips `ITSMTeamsEnabled` (direct
PATCH of the org preference is blocked with 401)
- Optionally enables the sibling `OrgHasITSMFulfillerTeams` / `OrgHasEmployeeServiceTeams` preferences
- Verifies `ITSMTeamsEnabled` afterward and reports the remaining manual (Microsoft-side) steps
**Prerequisites:**
- Teams ITSM add-on licenses
- Setup admin permissions
**Use when:** User wants Microsoft Teams integration for IT Service Desk or Employee Service apps.
**Teams sub-skills** `service-itsm-teams-configure` delegates to (surface these if the user asks for
a specific half): `service-itsm-teams-itdesk-configure` (fulfiller/IT Desk checklist),
`service-itsm-teams-itservice-configure` (employee/IT Service checklist),
`service-itsm-teams-employee-agent-configure` (embedded "Ask AI Agent"), and
`service-itsm-teams-debug` (diagnose a failing Teams setup — login, tab loading, agent, swarming, SSO).
Swarming (collaborative problem-solving) is configured **inside** the Teams setup flow, not as a
separate top-level channel option.
---
### 3. Slack Setup
**Skill:** the installed Slack ITSM setup skill — resolve it from the skills catalog at delegation
time by name pattern (see Choice 3 in the workflow); do not hardcode a single skill name.
**What it does:**
- Enables Slack integration for ITSM (Employee Service / IT Service on Slack)
- Configures the Slack workspace connection and required org preferences/permission sets
**Prerequisites:**
- Slack workspace with admin access
- Org has Slack integration enabled
**Use when:** User wants Slack integration for ITSM.
---
## Workflow
### Step 1: Present Menu to User
**Always present the menu** before proceeding:
```text
I can help you set up ITSM channels. Which channel would you like to configure?
**Choose one:**
1. **Portal Setup**
- Create Digital Experience portal for employee self-service
- Choose portal type during setup
- Prerequisites: Vary by portal type
2. **Microsoft Teams Setup**
- Enable Teams integration master toggle
- Provision authentication infrastructure
- Prerequisites: Teams ITSM licenses required
3. **Slack Setup**
- Enable Slack integration for ITSM
- Configure Slack workspace connection
- Prerequisites: Slack workspace with admin access
Please respond with the number (1, 2, or 3) of your choice.
```
**Do NOT proceed** until the user provides a choice.
---
### Step 2: Validate Prerequisites
Based on user's choice, check prerequisites **before** delegating to child skills:
#### For Choice 2 (Teams Integration):
1. Check if Teams master toggle API is accessible
2. Attempt to query current toggle state
3. If prerequisites fail, inform user about missing Teams ITSM licenses
**If prerequisites fail:**
- Explain what's missing (licenses, features, permissions)
- Offer alternative choices (e.g., suggest Slack if Teams licenses missing)
- Do NOT attempt to execute the chosen configuration
---
### Step 3: Delegate to Child Skill
#### Choice 1: Portal Setup
**Delegation:**
```text
Invoke the experience-portal-create skill.
```
The portal creation skill will handle all clarifying questions (portal type, name, URL prefix, etc.).
**After delegation:**
"Success: Portal setup delegated to experience-portal-create skill. Follow the prompts to complete portal creation."
---
#### Choice 2: Microsoft Teams Setup
**Delegation:**
```text
Invoke the service-itsm-teams-configure skill.
```
**On success:**
"Success: Microsoft Teams integration master toggle is enabled. Background provisioning in progress (2-5 minutes).
Next steps:
- Configure Azure AD application
- Set up Salesforce IT Desk and/or IT Service apps"
**On failure:**
"Failed: Teams integration failed: [error details]
Resolution:
- Verify org has Teams ITSM licenses
- Try option #3 (Slack) instead"
---
#### Choice 3: Slack Setup
**Resolve the delegation target deterministically from the skills catalog, then invoke the result.**
Do not decide by prose guesswork — look the skill up:
```text
1. Query the installed skills catalog for a Slack ITSM setup skill, in priority order:
a. any skill whose name matches ^service-itsm-slack-.*-configure$ (preferred)
b. any skill whose name matches ^(setup|service)-.*slack.*(configure|enable)$
2. If the lookup returns a skill → invoke that exact skill and stop.
3. If the lookup returns nothing → fall through to the manual instructions below.
```
**Manual instructions (only if the catalog lookup returned no Slack skill):**
"No Slack ITSM setup skill is installed in this environment. To configure Slack manually:
1. Navigate to: Setup → Integrations → Slack
2. Connect your Slack workspace
3. Configure Slack apps for ITSM"
---
## Decision Tree
```text
User requests ITSM channel setup
↓
Present menu (3 options)
↓
User selects option (1-3)
↓
Validate prerequisites (optional)
↓
├─ Choice 1: Invoke experience-portal-create
├─ Choice 2: Invoke service-itsm-teams-configure
└─ Choice 3: Resolve the Slack skill from the catalog, then invoke it (or manual instructions)
↓
Report outcome to user
↓
Suggest next steps
```
---
## Rules / Constraints
| Constraint | Rationale |
|---|---|
| Always present options before proceeding | User may not know what's possible or what their org supports |
| Validate prerequisites before delegating | Catch licensing/feature gaps early before invoking child skills |
| Notifications are not a menu option | ITSM notification preferences are a separate concern; route those requests to the dedicated notification-preferences skill, not through this coordinator |
| Swarming is configured inside Teams, not a top-level channel | Swarming requires Teams; it is handled within the Teams setup flow (`service-itsm-teams-configure`), so it is not offered as a separate menu option |
| Do not retry failed delegations | Child skills handle their own retries; surfacing error to user for decision |
| Partial success is acceptable | If Teams succeeds but Slack fails, user can retry Slack separately |
---
## Prerequisites by Choice
### Choice 1: Portal Setup
- Vary by portal type (see experience-portal-create skill)
### Choice 2: Teams Setup
- Teams ITSM licenses
- Setup admin permissions
### Choice 3: Slack Setup
- Slack workspace with admin access
- Org has Slack integration enabled
---
## Error Handling
### If user provides invalid choice:
"Please choose a valid option: 1, 2, or 3."
### If prerequisites check fails:
"I've detected that your org is missing [specific requirement].
I recommend choosing [alternative option] instead, which works with your current org configuration."
### If delegation fails:
"The [child skill name] encountered an error: [error message]
[Provide specific resolution steps based on error]"
### If user is unsure which to choose:
"Let me help you decide:
- **Do you want a portal for employee self-service?**
- Digital Experience portal → Choose #1
- **Do you want to enable a communication channel?**
- Microsoft Teams → Choose #2
- Slack → Choose #3
- Both → Run #2, then #3"
---
## Related Operations
After completing channel setup via this coordinator:
- **Configure channel-specific settings** — customize each channel's behavior
- **Set up Azure AD** — required for Teams (if Teams selected)
- **Configure ITSM notifications** — use the dedicated notification-preferences skill (separate from this coordinator)
- **Test channels** — verify each channel is working
To modify later:
- **Enable additional channels** — rerun this coordinator with different option
- **Disable channels** — use corresponding disable skills
- **Update channel settings** — navigate to Setup → [Channel] → Settings
---
## Embedded Agentforce Agent in Microsoft Teams
Making the embedded Agentforce agent actually **reply** inside the Teams custom client
("Salesforce Employee Assist" / "Ask AI Agent") is the hardest, most under-documented part of
Teams ITSM. It is now a dedicated skill:
**→ `service-itsm-teams-employee-agent-configure`**
The verified architecture is a **Web** Enhanced-messaging channel with **User Verification OFF
(auth mode false)** — the Teams client uses the scrt2 *unauthenticated* token endpoint — the
**`Teams_AgentForce`** custom-client Embedded Service Deployment, an Omni-Flow routing flow
targeting a **real, Active** Agentforce Employee Agent, and an **Agent Access permission set**
enabling that agent for the portal user. That skill also covers the key diagnostic: "agent joins
then leaves without replying" has two fixable causes — auth mode left ON (→ `/eventrouter/v1/sse`
401) and the portal user missing Agent Access — not an unfixable agent-runtime failure.
---
## API Type Classification
This coordinator:
- **Does NOT call APIs directly** — it delegates to child skills
- **Uses interactive menu** for user selection
- **Child skills handle all API calls**
Child skills used:
- `experience-portal-create` — Connect API
- `service-itsm-teams-configure` — headless-360 (Salesforce Go feature-enablement Connect API)
- Slack ITSM setup skill (resolved from catalog by name pattern) — child skill handles its own API calls
---
## Important Notes
1. **This is an interactive coordinator** — it MUST present the menu and wait for user choice before executing anything.
2. **Always delegate to child skills** — this coordinator doesn't implement channel-specific logic; it only routes to the appropriate skill.
3. **Some skills may not exist yet** — if a skill is not found, provide manual setup instructions so the user isn't blocked.
4. **Notifications are handled elsewhere** — ITSM notification preferences are not a channel-menu option; route those requests to the dedicated notification-preferences skill.
5. **Swarming lives inside Teams** — Swarming is not a standalone menu option; it is configured within the Teams setup flow (`service-itsm-teams-configure`), since it requires Teams.
6. **Prerequisites vary by channel** — each channel has different licensing and feature requirements.
7. **No retry logic** — this coordinator doesn't retry failed operations. Surface the error and let user decide next steps.
8. **Educational role** — help users understand what each channel does and which prerequisites they need.

