@salesforce/afv-skills 1.40.0 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/package.json +1 -1
  2. package/skills/automation-flow-generate/SKILL.md +32 -43
  3. package/skills/experience-portal-create/SKILL.md +497 -0
  4. package/skills/experience-portal-create/assets/report-template.md +30 -0
  5. package/skills/experience-portal-create/references/mcp-invocation.md +288 -0
  6. package/skills/experience-portal-create/references/post-creation-activate-publish.md +165 -0
  7. package/skills/experience-portal-create/references/templates.md +253 -0
  8. package/skills/experience-ui-bundle-features-generate/SKILL.md +5 -1
  9. package/skills/experience-ui-bundle-frontend-generate/SKILL.md +2 -0
  10. package/skills/experience-ui-bundle-frontend-generate/references/page.md +1 -0
  11. package/skills/platform-datamask-run/SKILL.md +345 -0
  12. package/skills/platform-datamask-run/references/api-surface.md +130 -0
  13. package/skills/platform-datamask-run/references/policy-authoring.md +185 -0
  14. package/skills/platform-datamask-run/references/run-and-abort.md +116 -0
  15. package/skills/platform-datamask-run/scripts/poll-job.sh +115 -0
  16. package/skills/platform-dataspace-access-configure/SKILL.md +51 -3
  17. package/skills/platform-dataspace-access-configure/scripts/inspect-dataspace-scopes.sh +56 -0
  18. package/skills/platform-lightning-type-widget-coordinate/references/build-plan-format.md +1 -0
  19. package/skills/platform-sandbox-configure/SKILL.md +17 -2
  20. package/skills/platform-trial-org-create/SKILL.md +175 -0
  21. package/skills/platform-trial-org-create/examples/create_request.json +9 -0
  22. package/skills/platform-trial-org-create/examples/error_response.json +41 -0
  23. package/skills/platform-trial-org-create/examples/success_response.json +27 -0
  24. package/skills/platform-trial-org-create/references/error_codes.md +42 -0
  25. package/skills/platform-trial-org-create/references/signup_request_fields.md +69 -0
  26. package/skills/platform-trial-org-create/scripts/create_signup_request.sh +175 -0
  27. package/skills/platform-trial-org-create/scripts/get_signup_request.sh +155 -0
  28. package/skills/platform-widget-generate/SKILL.md +47 -6
  29. package/skills/platform-widget-generate/examples/conditional.json +3 -3
  30. package/skills/platform-widget-generate/examples/list-with-foreach.json +2 -2
  31. package/skills/platform-widget-generate/examples/single-object.json +2 -2
  32. package/skills/platform-widget-generate/references/widget-bundle-layout.md +1 -1
  33. package/skills/service-agentforce-channel-configure/SKILL.md +271 -0
  34. package/skills/service-agentforce-channel-configure/references/agent-wiring.md +97 -0
  35. package/skills/service-agentforce-channel-configure/references/channel-branch-email.md +145 -0
  36. package/skills/service-agentforce-channel-configure/references/channel-branch-voice.md +69 -0
  37. package/skills/service-agentforce-channel-configure/references/channel-types.md +61 -0
  38. package/skills/service-agentforce-channel-configure/references/live-traffic-gate.md +86 -0
  39. package/skills/service-agentforce-channel-configure/references/queue-resolution.md +135 -0
  40. package/skills/service-agentforce-channel-configure/references/routing-flow.md +384 -0
  41. package/skills/service-catalog-template-deploy/SKILL.md +310 -0
  42. package/skills/service-catalog-template-deploy/references/cli-invocation.md +258 -0
  43. package/skills/service-catalog-template-deploy/scripts/activate-verify.mjs +164 -0
  44. package/skills/service-catalog-template-deploy/scripts/build-deploy-payload.mjs +94 -0
  45. package/skills/service-catalog-template-deploy/scripts/resolve-template.mjs +331 -0
  46. package/skills/service-catalog-template-search/SKILL.md +212 -0
  47. package/skills/service-catalog-template-search/references/cli-invocation.md +128 -0
  48. package/skills/service-catalog-template-search/scripts/classify-catalog.mjs +205 -0
  49. package/skills/service-concierge-portal-generate/SKILL.md +126 -0
  50. package/skills/service-concierge-portal-generate/references/portal-deploy-runbook.md +1428 -0
  51. package/skills/service-digital-engagement-channel-configure/SKILL.md +46 -6
  52. package/skills/service-digital-engagement-channel-configure/assets/messaging_channel_template.xml +2 -1
  53. package/skills/service-digital-engagement-channel-configure/examples/asa_agent_channel.xml +4 -1
  54. package/skills/service-helpagent-coordinate/README.md +8 -2
  55. package/skills/service-helpagent-coordinate/SKILL.md +126 -130
  56. package/skills/service-helpagent-coordinate/assets/help-agent-spec.md +70 -53
  57. package/skills/service-helpagent-coordinate/references/agent-script.md +571 -457
  58. package/skills/service-helpagent-coordinate/references/channel-voice.md +38 -9
  59. package/skills/service-helpagent-coordinate/references/channel-web-chat.md +173 -49
  60. package/skills/service-helpagent-coordinate/references/output-report-format.md +126 -0
  61. package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +153 -0
  62. package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +79 -0
  63. package/skills/service-itsm-agentic-setup-agentforce-coordinate/scripts/verify-child-verdict.mjs +35 -0
  64. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +271 -0
  65. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/references/cli-invocation.md +265 -0
  66. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-enable-plan.mjs +220 -0
  67. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-final-report.mjs +102 -0
  68. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/record-enable-result.mjs +73 -0
  69. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +206 -0
  70. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/references/cli-invocation.md +194 -0
  71. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/scripts/classify-readiness.mjs +223 -0
  72. package/skills/service-itsm-agentic-setup-cmdb-configure/SKILL.md +45 -7
  73. package/skills/service-itsm-agentic-setup-cmdb-configure/references/mcp-invocation.md +45 -5
  74. package/skills/service-itsm-agentic-setup-configure/SKILL.md +116 -0
  75. package/skills/service-itsm-agentic-setup-configure/examples/output-templates.md +64 -0
  76. package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +158 -0
  77. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/cli-invocation.md +361 -0
  78. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/error-taxonomy.md +44 -0
  79. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/reactivation.md +66 -0
  80. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/report-format.md +66 -0
  81. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/specialized-templates.md +148 -0
  82. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/workflow-detail.md +169 -0
  83. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/build-create-body.mjs +116 -0
  84. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/classify-agent-existence.mjs +185 -0
  85. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/classify-preflight.mjs +168 -0
  86. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/create-scratch-dir.mjs +58 -0
  87. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/render-report.mjs +197 -0
  88. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +186 -0
  89. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/action-availability.md +51 -0
  90. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/cli-invocation.md +345 -0
  91. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/error-taxonomy.md +44 -0
  92. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/reactivation.md +63 -0
  93. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/report-format.md +44 -0
  94. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/workflow-detail.md +149 -0
  95. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/build-create-body.mjs +110 -0
  96. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-action-availability.mjs +201 -0
  97. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-activate-result.mjs +135 -0
  98. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-agent-existence.mjs +194 -0
  99. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-preflight.mjs +158 -0
  100. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/create-scratch-dir.mjs +58 -0
  101. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/render-report.mjs +191 -0
  102. package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +133 -0
  103. package/skills/service-itsm-agentic-setup-incident-management/examples/output-templates.md +71 -0
  104. package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +308 -0
  105. package/skills/service-itsm-agentic-setup-incident-sla-configure/assets/attach-milestone.json +23 -0
  106. package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md +193 -0
  107. package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/output-templates.md +57 -0
  108. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/mcp-invocation.md +394 -0
  109. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +266 -0
  110. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/cli-invocation.md +106 -0
  111. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/helper-contracts.md +142 -0
  112. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/permset-topology.md +82 -0
  113. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-action-surface.mjs +137 -0
  114. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-assignment-state.mjs +99 -0
  115. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-permset-availability.mjs +120 -0
  116. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/resolve-target-user.mjs +86 -0
  117. package/skills/service-itsm-agentic-setup-uel-user-create/SKILL.md +284 -0
  118. package/skills/service-itsm-agentic-setup-uel-user-create/references/mcp-invocation.md +302 -0
  119. package/skills/service-itsm-channels-coordinate/SKILL.md +472 -0
  120. package/skills/service-itsm-incident-mgmt-configure/SKILL.md +212 -0
  121. package/skills/service-itsm-incident-mgmt-configure/references/mcp-invocation.md +225 -0
  122. package/skills/service-itsm-incident-priority-configure/SKILL.md +53 -12
  123. package/skills/service-itsm-swarming-configure/SKILL.md +212 -0
  124. package/skills/service-itsm-teams-configure/SKILL.md +395 -0
  125. package/skills/service-itsm-teams-configure/references/azure-credential-population.md +213 -0
  126. package/skills/service-itsm-teams-configure/references/gotchas.md +23 -0
  127. package/skills/service-itsm-teams-coordinate/SKILL.md +175 -0
  128. package/skills/service-itsm-teams-coordinate/examples/output-templates.md +85 -0
  129. package/skills/service-itsm-teams-debug/SKILL.md +144 -0
  130. package/skills/service-itsm-teams-debug/references/configuration-checklists.md +277 -0
  131. package/skills/service-itsm-teams-debug/references/report-generation.md +95 -0
  132. package/skills/service-itsm-teams-employee-agent-configure/SKILL.md +139 -0
  133. package/skills/service-itsm-teams-employee-agent-configure/assets/Teams_AgentForce.EmbeddedServiceConfig-meta.xml +43 -0
  134. package/skills/service-itsm-teams-employee-agent-configure/references/teams-embedded-employee-agent.md +480 -0
  135. package/skills/service-itsm-teams-itdesk-configure/SKILL.md +232 -0
  136. package/skills/service-itsm-teams-itservice-configure/SKILL.md +391 -0
@@ -0,0 +1,472 @@
1
+ ---
2
+ name: service-itsm-channels-coordinate
3
+ description: "Top-level interactive coordinator for Employee Service (ITSM) channel setup. Presents menu of channel setup options (Teams, Slack, Swarming, Notifications, Portal) 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', 'enable Swarming', 'configure ITSM notifications', 'create an employee portal') — route directly to the matching child skill instead."
4
+ metadata:
5
+ version: "1.0"
6
+ domains: ["Service"]
7
+ mcpTools:
8
+ headless-360:
9
+ tools: ["dispatch"]
10
+ semver: ">=1.0.0"
11
+ relatedSkills:
12
+ - "experience-portal-create"
13
+ - "service-itsm-swarming-configure"
14
+ - "service-itsm-teams-configure"
15
+ - "service-itsm-teams-debug"
16
+ - "service-itsm-teams-employee-agent-configure"
17
+ - "service-itsm-teams-itdesk-configure"
18
+ - "service-itsm-teams-itservice-configure"
19
+ ---
20
+
21
+ # Employee Service (ITSM) Channels Setup Coordinator
22
+
23
+ Interactive coordinator that presents a menu of ITSM channel setup options and delegates to the appropriate child skill based on user selection.
24
+
25
+ ## Scope
26
+
27
+ - **In scope**: Presenting the channel setup menu to the user. Delegating to child skills based on selection (Teams, Swarming, Portal). Validating prerequisites before delegation. Providing clear descriptions of each channel capability. **Notifications is the one exception** — no dedicated notifications child skill exists yet, so this coordinator enables the notification-channel org preferences inline for that choice (see Choice 4); those are the only setup-API writes it performs itself.
28
+ - **Out of scope**: Directly calling setup APIs for any channel that has a dedicated child skill (Teams, Swarming, Portal — always delegate). Channel-specific configuration details beyond the initial enablement. User permission assignment. Post-setup testing.
29
+
30
+ ---
31
+
32
+ ## Available Channel Setup Skills
33
+
34
+ This coordinator can invoke five distinct channel setup skills:
35
+
36
+ ### 1. Microsoft Teams Setup
37
+ **Skill:** `service-itsm-teams-configure`
38
+
39
+ **What it does:**
40
+ - Enables the `service-cloud-itsm-teams-integration` Salesforce Go feature via headless-360's
41
+ feature-enablement Connect API — the only verified path that flips `ITSMTeamsEnabled` (direct
42
+ PATCH of the org preference is blocked with 401)
43
+ - Optionally enables the sibling `OrgHasITSMFulfillerTeams` / `OrgHasEmployeeServiceTeams` preferences
44
+ - Verifies `ITSMTeamsEnabled` afterward and reports the remaining manual (Microsoft-side) steps
45
+
46
+ **Prerequisites:**
47
+ - Teams ITSM add-on licenses
48
+ - Setup admin permissions
49
+
50
+ **Use when:** User wants Microsoft Teams integration for IT Service Desk or Employee Service apps.
51
+
52
+ **Teams sub-skills** `service-itsm-teams-configure` delegates to (surface these if the user asks for
53
+ a specific half): `service-itsm-teams-itdesk-configure` (fulfiller/IT Desk checklist),
54
+ `service-itsm-teams-itservice-configure` (employee/IT Service checklist),
55
+ `service-itsm-teams-employee-agent-configure` (embedded "Ask AI Agent"), and
56
+ `service-itsm-teams-debug` (diagnose a failing Teams setup — login, tab loading, agent, swarming, SSO).
57
+
58
+ ---
59
+
60
+ ### 2. Slack Setup
61
+ **Skill:** the installed Slack ITSM setup skill — resolve it from the skills catalog at delegation
62
+ time by name pattern (see Choice 2 in the workflow); do not hardcode a single skill name.
63
+
64
+ **What it does:**
65
+ - Enables Slack integration for ITSM (Employee Service / IT Service on Slack)
66
+ - Configures the Slack workspace connection and required org preferences/permission sets
67
+
68
+ **Prerequisites:**
69
+ - Slack workspace with admin access
70
+ - Org has Slack integration enabled
71
+
72
+ **Use when:** User wants Slack integration for ITSM.
73
+
74
+ ---
75
+
76
+ ### 3. Swarming Setup
77
+ **Skill:** `service-itsm-swarming-configure`
78
+
79
+ **What it does:**
80
+ - Enables the `service-cloud-swarming` Salesforce Go feature via headless-360's feature-enablement
81
+ Connect API
82
+ - Sets the "Select a Collaboration Tool" picklist to `Teams` via
83
+ `PATCH /services/data/v67.0/setup/org/values/SWARM_COLLABORATION_TOOL` — fully automated, no
84
+ manual click required
85
+
86
+ **Prerequisites:**
87
+ - Microsoft Teams integration (Swarming requires Teams — run `service-itsm-teams-configure` first)
88
+
89
+ **Use when:** User wants collaborative problem-solving for ITSM.
90
+
91
+ ---
92
+
93
+ ### 4. Notifications Setup
94
+ **Skill:** none yet — handled inline by this coordinator (see Choice 4)
95
+
96
+ **What it does:**
97
+ - Enables the master Notifications feature
98
+ - Configures notification channels: Email, In-App, Slack, Teams
99
+
100
+ **Prerequisites:**
101
+ - Multi-channel Notifications feature enabled
102
+ - View Setup + Customize Application permissions
103
+
104
+ **Use when:** User wants to enable multi-channel notifications for ITSM events.
105
+
106
+ **Note:** For demo, execute inline until dedicated skill is created.
107
+
108
+ ---
109
+
110
+ ### 5. Portal Setup
111
+ **Skill:** `experience-portal-create`
112
+
113
+ **What it does:**
114
+ - Creates a Digital Experience portal for employee self-service
115
+ - Supports Employee Service, Partner, and Customer portals
116
+
117
+ **Prerequisites:**
118
+ - Vary by portal type
119
+
120
+ **Use when:** User wants to create a portal for employee self-service.
121
+
122
+ ---
123
+
124
+ ## Workflow
125
+
126
+ ### Step 1: Present Menu to User
127
+
128
+ **Always present the menu** before proceeding:
129
+
130
+ ```text
131
+ I can help you set up ITSM channels. Which channel would you like to configure?
132
+
133
+ **Choose one:**
134
+
135
+ 1. **Microsoft Teams Setup**
136
+ - Enable Teams integration master toggle
137
+ - Provision authentication infrastructure
138
+ - Prerequisites: Teams ITSM licenses required
139
+
140
+ 2. **Slack Setup**
141
+ - Enable Slack integration for ITSM
142
+ - Configure Slack workspace connection
143
+ - Prerequisites: Slack workspace with admin access
144
+
145
+ 3. **Swarming Setup**
146
+ - Enable Swarming for collaborative problem-solving
147
+ - Configure Swarming channels (requires Teams)
148
+ - Prerequisites: Teams integration + Swarming feature
149
+
150
+ 4. **Notifications Setup**
151
+ - Enable multi-channel notifications (Email, In-App, Slack, Teams)
152
+ - Configure notification delivery channels
153
+ - Prerequisites: Multi-channel Notifications feature
154
+
155
+ 5. **Portal Setup**
156
+ - Create Digital Experience portal for employee self-service
157
+ - Choose portal type during setup
158
+ - Prerequisites: Vary by portal type
159
+
160
+ Please respond with the number (1, 2, 3, 4, or 5) of your choice.
161
+ ```
162
+
163
+ **Do NOT proceed** until the user provides a choice.
164
+
165
+ ---
166
+
167
+ ### Step 2: Validate Prerequisites
168
+
169
+ Based on user's choice, check prerequisites **before** delegating to child skills:
170
+
171
+ #### For Choice 1 or 3 (Teams Integration):
172
+ 1. Check if Teams master toggle API is accessible
173
+ 2. Attempt to query current toggle state
174
+ 3. If prerequisites fail, inform user about missing Teams ITSM licenses
175
+
176
+ #### For Choice 2 or 4 (Notifications):
177
+ 1. Check if Notifications preference APIs are accessible
178
+ 2. Verify Multi-channel Notifications feature is available
179
+
180
+ **If prerequisites fail:**
181
+ - Explain what's missing (licenses, features, permissions)
182
+ - Offer alternative choices (e.g., suggest #4 if Teams licenses missing)
183
+ - Do NOT attempt to execute the chosen configuration
184
+
185
+ ---
186
+
187
+ ### Step 3: Delegate to Child Skill
188
+
189
+ #### Choice 1: Microsoft Teams Setup
190
+
191
+ **Delegation:**
192
+ ```text
193
+ Invoke the service-itsm-teams-configure skill.
194
+ ```
195
+
196
+ **On success:**
197
+ "Success: Microsoft Teams integration master toggle is enabled. Background provisioning in progress (2-5 minutes).
198
+
199
+ Next steps:
200
+ - Configure Azure AD application
201
+ - Set up Salesforce IT Desk and/or IT Service apps"
202
+
203
+ **On failure:**
204
+ "Failed: Teams integration failed: [error details]
205
+
206
+ Resolution:
207
+ - Verify org has Teams ITSM licenses
208
+ - Try option #4 (Notifications) instead"
209
+
210
+ ---
211
+
212
+ #### Choice 2: Slack Setup
213
+
214
+ **Resolve the delegation target deterministically from the skills catalog, then invoke the result.**
215
+ Do not decide by prose guesswork — look the skill up:
216
+
217
+ ```text
218
+ 1. Query the installed skills catalog for a Slack ITSM setup skill, in priority order:
219
+ a. any skill whose name matches ^service-itsm-slack-.*-configure$ (preferred)
220
+ b. any skill whose name matches ^(setup|service)-.*slack.*(configure|enable)$
221
+ 2. If the lookup returns a skill → invoke that exact skill and stop.
222
+ 3. If the lookup returns nothing → fall through to the manual instructions below.
223
+ ```
224
+
225
+ **Manual instructions (only if the catalog lookup returned no Slack skill):**
226
+ "No Slack ITSM setup skill is installed in this environment. To configure Slack manually:
227
+ 1. Navigate to: Setup → Integrations → Slack
228
+ 2. Connect your Slack workspace
229
+ 3. Configure Slack apps for ITSM"
230
+
231
+ ---
232
+
233
+ #### Choice 3: Swarming Setup
234
+
235
+ **Delegation:**
236
+ ```text
237
+ Invoke the service-itsm-swarming-configure skill.
238
+ ```
239
+
240
+ **On success:**
241
+ "Success: Swarming feature enabled, and the Collaboration Tool is now set to Teams — 'Set Teams as
242
+ Collaboration Tool for Swarming' is fully complete, no manual click needed."
243
+
244
+ **On failure:**
245
+ "Failed: Swarming setup failed: [error details]
246
+
247
+ Resolution:
248
+ - Ensure Microsoft Teams integration is enabled first (use option #1)
249
+ - Verify org has the Swarming feature entitlement"
250
+
251
+ ---
252
+
253
+ #### Choice 4: Notifications Setup
254
+
255
+ **Inline enablement (in-scope exception — no dedicated notifications child skill exists yet).**
256
+ Unlike the other choices, this branch enables the notification-channel org preferences itself. Issue
257
+ the writes with `mcp__headless-360__dispatch` (`PATCH`, full `/services/data/vXX.0/...` path). When a
258
+ dedicated `setup-itsm-notifications-*` child skill lands, delegate to it and drop this inline block.
259
+
260
+ **Step 4.1: Enable Master Notifications Preference**
261
+ ```text
262
+ PATCH /services/data/v66.0/setup/org/preferences/Notifications
263
+ Body: {"desiredState": true}
264
+ ```
265
+
266
+ **Step 4.2: Enable Individual Channels**
267
+ ```text
268
+ PATCH /services/data/v66.0/setup/org/preferences/EmailNotifications
269
+ Body: {"desiredState": true}
270
+
271
+ PATCH /services/data/v66.0/setup/org/preferences/InAppNotifications
272
+ Body: {"desiredState": true}
273
+
274
+ PATCH /services/data/v66.0/setup/org/preferences/SlackNotifications
275
+ Body: {"desiredState": true}
276
+
277
+ PATCH /services/data/v66.0/setup/org/preferences/TeamsNotifications
278
+ Body: {"desiredState": true}
279
+ ```
280
+
281
+ **On success:**
282
+ "Success: All notification channels enabled:
283
+ - Email Notifications
284
+ - In-App Notifications
285
+ - Slack Notifications
286
+ - Teams Notifications
287
+
288
+ Next steps:
289
+ - Create notification definitions at: Setup → Service → Notifications
290
+ - Configure ITSM event triggers
291
+ - Customize message templates"
292
+
293
+ **On failure:**
294
+ "Failed: Notification channels setup failed: [error details]
295
+
296
+ Resolution:
297
+ - Verify org has Multi-channel Notifications feature
298
+ - Confirm you have Customize Application permission"
299
+
300
+ ---
301
+
302
+ #### Choice 5: Portal Setup
303
+
304
+ **Delegation:**
305
+ ```text
306
+ Invoke the experience-portal-create skill.
307
+ ```
308
+
309
+ The portal creation skill will handle all clarifying questions (portal type, name, URL prefix, etc.).
310
+
311
+ **After delegation:**
312
+ "Success: Portal setup delegated to experience-portal-create skill. Follow the prompts to complete portal creation."
313
+
314
+ ---
315
+
316
+ ## Decision Tree
317
+
318
+ ```text
319
+ User requests ITSM channel setup
320
+ ↓
321
+ Present menu (5 options)
322
+ ↓
323
+ User selects option (1-5)
324
+ ↓
325
+ Validate prerequisites (optional)
326
+ ↓
327
+ ├─ Choice 1: Invoke service-itsm-teams-configure
328
+ ├─ Choice 2: Resolve the Slack skill from the catalog, then invoke it (or manual instructions)
329
+ ├─ Choice 3: Invoke service-itsm-swarming-configure
330
+ ├─ Choice 4: Execute notifications setup inline (demo mode)
331
+ └─ Choice 5: Invoke experience-portal-create
332
+ ↓
333
+ Report outcome to user
334
+ ↓
335
+ Suggest next steps
336
+ ```
337
+
338
+ ---
339
+
340
+ ## Rules / Constraints
341
+
342
+ | Constraint | Rationale |
343
+ |---|---|
344
+ | Always present options before proceeding | User may not know what's possible or what their org supports |
345
+ | Validate prerequisites before delegating | Catch licensing/feature gaps early before invoking child skills |
346
+ | Choice 4 uses manual API calls, not a child skill | No existing skill for "notifications without specific channels" |
347
+ | Do not retry failed delegations | Child skills handle their own retries; surfacing error to user for decision |
348
+ | Partial success is acceptable | If Teams succeeds but Notifications fails, user can retry Notifications separately |
349
+
350
+ ---
351
+
352
+ ## Prerequisites by Choice
353
+
354
+ ### Choice 1: Teams Setup
355
+ - Teams ITSM licenses
356
+ - Setup admin permissions
357
+
358
+ ### Choice 2: Slack Setup
359
+ - Slack workspace with admin access
360
+ - Org has Slack integration enabled
361
+
362
+ ### Choice 3: Swarming Setup
363
+ - Microsoft Teams integration (required for Swarming — run Choice 1 first)
364
+
365
+ ### Choice 4: Notifications Setup
366
+ - Multi-channel Notifications feature enabled
367
+ - View Setup + Customize Application permissions
368
+
369
+ ### Choice 5: Portal Setup
370
+ - Vary by portal type (see experience-portal-create skill)
371
+
372
+ ---
373
+
374
+ ## Error Handling
375
+
376
+ ### If user provides invalid choice:
377
+ "Please choose a valid option: 1, 2, 3, 4, or 5."
378
+
379
+ ### If prerequisites check fails:
380
+ "I've detected that your org is missing [specific requirement].
381
+
382
+ I recommend choosing [alternative option] instead, which works with your current org configuration."
383
+
384
+ ### If delegation fails:
385
+ "The [child skill name] encountered an error: [error message]
386
+
387
+ [Provide specific resolution steps based on error]"
388
+
389
+ ### If user is unsure which to choose:
390
+ "Let me help you decide:
391
+
392
+ - **Do you want to enable communication channels?**
393
+ - Microsoft Teams → Choose #1
394
+ - Slack → Choose #2
395
+ - Both → Run #1, then #2
396
+
397
+ - **Do you want collaborative problem-solving?**
398
+ - Swarming (requires Teams) → Choose #1 first, then #3
399
+
400
+ - **Do you want notifications for ITSM events?**
401
+ - Multi-channel notifications → Choose #4
402
+
403
+ - **Do you want a portal for employee self-service?**
404
+ - Digital Experience portal → Choose #5"
405
+
406
+ ---
407
+
408
+ ## Related Operations
409
+
410
+ After completing channel setup via this coordinator:
411
+
412
+ - **Configure channel-specific settings** — customize each channel's behavior
413
+ - **Create notification definitions** — configure ITSM event triggers (if Notifications selected)
414
+ - **Set up Azure AD** — required for Teams (if Teams selected)
415
+ - **Test channels** — verify each channel is working
416
+
417
+ To modify later:
418
+ - **Enable additional channels** — rerun this coordinator with different option
419
+ - **Disable channels** — use corresponding disable skills
420
+ - **Update channel settings** — navigate to Setup → [Channel] → Settings
421
+
422
+ ---
423
+
424
+ ## Embedded Agentforce Agent in Microsoft Teams
425
+
426
+ Making the embedded Agentforce agent actually **reply** inside the Teams custom client
427
+ ("Salesforce Employee Assist" / "Ask AI Agent") is the hardest, most under-documented part of
428
+ Teams ITSM. It is now a dedicated skill:
429
+
430
+ **→ `service-itsm-teams-employee-agent-configure`**
431
+
432
+ The verified architecture is a **Web** Enhanced-messaging channel with **User Verification OFF
433
+ (auth mode false)** — the Teams client uses the scrt2 *unauthenticated* token endpoint — the
434
+ **`Teams_AgentForce`** custom-client Embedded Service Deployment, an Omni-Flow routing flow
435
+ targeting a **real, Active** Agentforce Employee Agent, and an **Agent Access permission set**
436
+ enabling that agent for the portal user. That skill also covers the key diagnostic: "agent joins
437
+ then leaves without replying" has two fixable causes — auth mode left ON (→ `/eventrouter/v1/sse`
438
+ 401) and the portal user missing Agent Access — not an unfixable agent-runtime failure.
439
+
440
+ ---
441
+
442
+ ## API Type Classification
443
+
444
+ This coordinator:
445
+ - **Does NOT call APIs directly** (except for Choice 4 demo mode) — it delegates to child skills
446
+ - **Uses interactive menu** for user selection
447
+ - **Child skills handle all API calls**
448
+
449
+ Child skills used:
450
+ - `service-itsm-teams-configure` — headless-360 (Salesforce Go feature-enablement Connect API)
451
+ - Slack ITSM setup skill (resolved from catalog by name pattern) — child skill handles its own API calls
452
+ - `service-itsm-swarming-configure` — headless-360 (Salesforce Go feature-enablement Connect API)
453
+ - Notifications — no dedicated child skill yet; handled inline via Connect API (see Choice 4)
454
+ - `experience-portal-create` — Connect API
455
+
456
+ ---
457
+
458
+ ## Important Notes
459
+
460
+ 1. **This is an interactive coordinator** — it MUST present the menu and wait for user choice before executing anything.
461
+
462
+ 2. **Always delegate to child skills** — this coordinator doesn't implement channel-specific logic; it only routes to the appropriate skill.
463
+
464
+ 3. **Some skills may not exist yet** — if a skill is not found, provide manual setup instructions so the user isn't blocked.
465
+
466
+ 4. **Choice 4 (Notifications) executes inline** — no dedicated notifications child skill exists yet, so this coordinator enables the notification-channel preferences directly (see Choice 4). When such a skill lands, delegate to it and drop the inline block.
467
+
468
+ 5. **Prerequisites vary by channel** — each channel has different licensing and feature requirements.
469
+
470
+ 6. **No retry logic** — this coordinator doesn't retry failed operations. Surface the error and let user decide next steps.
471
+
472
+ 7. **Educational role** — help users understand what each channel does and which prerequisites they need.
@@ -0,0 +1,212 @@
1
+ ---
2
+ name: service-itsm-incident-mgmt-configure
3
+ description: "Reads and toggles the master Incident Management setting on a Salesforce ITSM org — the org-level switch that turns Incident Management on or off. Reads current state before writing, is idempotent, and requires explicit user confirmation before any change. Use when the user wants to enable, disable, toggle, view, or turn on/off Incident Management (Service ITSM) at the org level. DO NOT TRIGGER for Default Field Validations for Incidents, Auto Closure of Child Incidents, Email-to-Incident sub-toggles, Problem Management, Change Management, Case Management, ITSM External Client App setup, or Incident Priority Matrix configuration (use the service-itsm-incident-priority-configure skill)."
4
+ metadata:
5
+ version: "1.1"
6
+ domains: ["Service"]
7
+ minApiVersion: "67.0"
8
+ mcpTools:
9
+ headless-360:
10
+ tools: ["describe", "discover", "dispatch", "dispatch_readonly"]
11
+ semver: ">=1.0.0"
12
+ accessCheck:
13
+ - type: "userPerm"
14
+ value: "CustomizeApplication"
15
+ - type: "orgPerm"
16
+ value: "IncidentMgmt.orgHasITSMOrgPermission"
17
+ allowed-tools: |
18
+ Read AskUserQuestion
19
+ mcp__headless-360__discover
20
+ mcp__headless-360__describe
21
+ mcp__headless-360__dispatch
22
+ mcp__headless-360__dispatch_readonly
23
+ ---
24
+
25
+ # Configuring ITSM Incident Management (master toggle)
26
+
27
+ Read and toggle the **master Incident Management** setting on a Salesforce ITSM org. This is the org-level switch that turns Incident Management on or off. Enabling it also brings up its sub-features on the server side, so a full enablement is a single operation on the master.
28
+
29
+ Writes are **idempotent** (skipped when the current status already matches the requested state), the skill always **reads before it writes**, and an explicit **confirm-to-write** checkpoint is required before any mutation.
30
+
31
+ ## What this skill controls
32
+
33
+ | Preference (Setup UI label) | In scope |
34
+ |-----------------------------|----------|
35
+ | Incident Management enablement (master) | Yes — read and toggle |
36
+ | Default Field Validations for Incidents, Auto Closure of Child Incidents, Email-to-Incident sub-toggles, Incident Priority Matrix, Problem/Change/Case Management, ITSM External Client App setup | No |
37
+
38
+ For the exact URLs, wire shapes, and worked examples for the master read and write, see `references/mcp-invocation.md`.
39
+
40
+ ## Scope
41
+
42
+ - **In scope**: read and toggle the master Incident Management preference.
43
+ - **Out of scope**: Default Field Validations for Incidents (`IncidentValidationsEnabled`); Incident Priority Matrix configuration; Auto Closure of Child Incidents and Email-to-Incident sub-toggles; Problem Management; Change Management; Case Management; ITSM External Client App setup; other ITSM prefs (`IncidentTriageAgentEnabled`, `IncAssignWithAgentEnabled`, `AssignedGroupValidationEnabled`); broadcast-channel prefs; creation or configuration of Incident, Problem, or ChangeRequest records.
44
+
45
+ ---
46
+
47
+ ## Preconditions
48
+
49
+ Before the skill can call anything on `headless-360`, the target org and MCP client must be configured. If any of these are unmet, the tools will surface as `401`, `403`, or `404` on the first call; **do not fabricate state — surface the raw error and stop**.
50
+
51
+ 1. **Server activated on the org**: Setup → MCP Servers → `headless-360` → **Activate**. Activation can take up to ~2 minutes.
52
+ 2. **External Client App wired**: an ECA in the org with OAuth scopes `mcp_api` and `refresh_token`, JWT-based access tokens enabled, PKCE required. ECA propagation can take up to 30 minutes.
53
+ 3. **API v67.0+**: required for the read and write routes this skill uses.
54
+ 4. **MCP client registration**: the client (adk-eval / Claude Code) has an `additionalServers.headless-360` entry pointing to the correct env URL (see `references/mcp-invocation.md`).
55
+
56
+ If any precondition fails, the tools return one of:
57
+ - `401 Unauthorized` → ECA not propagated, wrong scopes, or expired token.
58
+ - `403 Forbidden` → user lacks perm, or org missing `IncidentMgmt.orgHasITSMOrgPermission`.
59
+ - `404 Not Found` → server not activated on the org.
60
+
61
+ Report the raw response verbatim rather than guessing which precondition failed.
62
+
63
+ ---
64
+
65
+ ## Architecture — How configuration works
66
+
67
+ | Step | What happens | Tool |
68
+ |------|--------------|------|
69
+ | Preflight | Confirm the target routes are reachable | `describe`, `dispatch_readonly` |
70
+ | Read schema | Fetch the request/response contract for the read and the write | `describe` |
71
+ | Read current state | Fetch the current status of the master preference | `dispatch_readonly` |
72
+ | Decide operation | View / enable / disable — inferred from the prompt | — |
73
+ | Confirm-to-write | Present `(status: current → requested)` and require explicit "yes" | — |
74
+ | Apply change | Enable or disable the master via the write route | `dispatch` |
75
+ | Verify | Re-read and compare against the requested state | `dispatch_readonly` |
76
+
77
+ **Idempotency**: after the Phase-3 read, if the current state already matches the requested state, skip Phase 5 and treat the operation as a no-op. `references/mcp-invocation.md` documents the exact status field and match rule.
78
+
79
+ **Read-only tool selection**: use `dispatch_readonly` for the read. Use `dispatch` for the write. The server refuses mutating operations through `dispatch_readonly`.
80
+
81
+ **Wire shape**: `dispatch` and `dispatch_readonly` both take `{"url": "/services/data/...", "method": "GET|POST|PATCH|...", "body"?: {...}, "query_params"?: {...}}`. See `references/mcp-invocation.md` for the exact request/response shapes; call `describe` at runtime to confirm.
82
+
83
+ ---
84
+
85
+ ## Clarifying Questions
86
+
87
+ Ask only what is not already in conversation context:
88
+
89
+ | Field | Description | Default |
90
+ |-------|-------------|---------|
91
+ | Requested direction | Explicit `enable` / `disable` (or `on` / `off`) | REQUIRED — no defaults; ask if the user only said "toggle" without a direction |
92
+ | Confirm write | Explicit "yes" before any `dispatch` mutation | **REQUIRED** — see Phase 4 |
93
+
94
+ If the user says "toggle" without specifying a direction, ask for the direction before Phase 4. Do not infer it from the current state.
95
+
96
+ ---
97
+
98
+ ## Workflow
99
+
100
+ All steps run against the `headless-360` MCP server; the tool namespace is `mcp__headless-360__<tool-name>`.
101
+
102
+ ### Phase 0 — Reuse what the session already knows
103
+
104
+ Each preflight read below carries a **skip-if-already-known** clause. Before calling any
105
+ read endpoint, check whether an earlier turn in this session already produced the same
106
+ fact from a successful tool response tied to the current org (a prior invocation of this
107
+ skill, a parent orchestrator's live read, or an earlier `dispatch_readonly` this run).
108
+ **An explicit user statement is NOT a substitute** for a live read of the master
109
+ preference — user assertions can be stale or mistaken, and this skill relies on the read
110
+ being the source of truth for the confirmation payload and the Phase-6 idempotency verify.
111
+ When the only source is a user statement, re-read.
112
+
113
+ - **`describe` of the master read/write routes** — if the request/response schemas were
114
+ already fetched against the current org this session, skip Phase 1 and Phase 2 and
115
+ reuse the cached schema. `describe` output is stable within a session.
116
+ - **Current master preference state** — if the master `IncidentMgmtEnabled` value for
117
+ the current org was already read this session **via a successful `dispatch_readonly`
118
+ response** (Phase 3 result from an earlier run of this skill, or a parent orchestrator
119
+ that already asked us to check), skip Phase 3 and reuse the recorded "before" value.
120
+ A user's verbal claim that the switch is on or off is **not** cache-eligible.
121
+
122
+ **When in doubt, re-check.** Skip only when the earlier fact is unambiguously in context
123
+ AND you have not switched orgs — the `headless-360` MCP session binds to one org via the
124
+ JWT, so an org change is only possible if the session was re-authed mid-conversation. If
125
+ the user hints at a different org, or you cannot tell which org the earlier fact came
126
+ from, re-run the read. Note: any `dispatch` write elsewhere in the session that could
127
+ have flipped the master (this skill's Phase 5, or an admin change via another tool) also
128
+ invalidates the cache — re-read. A wrong skip on a live org write is worse than a
129
+ duplicated read.
130
+
131
+ ### Phase 1 — Preflight (`discover` / `describe`)
132
+
133
+ 1. *(Skip if the operation schemas were already verified this session — see Phase 0.)*
134
+ Call `describe` on the read/write routes (or `discover` with a query like `"ITSM incident management setup discovery"` if the operation IDs are unknown). Confirm the operations exist and their argument schemas match `references/mcp-invocation.md`.
135
+ 2. If any tool call returns `401` / `403` / `404`, halt and surface the raw error — the org or client is not configured correctly (see Preconditions).
136
+
137
+ ### Phase 2 — Load Schemas (`describe`)
138
+
139
+ 3. *(Skip if the schema for each operation is already cached this session — see Phase 0.)*
140
+ For each operation the invocation will use, call `describe` and cache the returned request/response schema. **Do not hard-code the argument shape from the reference doc** — read it from `describe`; the docs are a working expectation, the runtime contract is whatever `describe` returns.
141
+
142
+ ### Phase 3 — Read Current State (`dispatch_readonly`)
143
+
144
+ 4. *(Skip if the current master state for this org was already read this session AND no
145
+ write has flipped it since — see Phase 0.)*
146
+ Read the current state of the master preference using the read route documented in `references/mcp-invocation.md`. Record the value as the "before" state for the Phase-4 confirmation and the Phase-6 verify.
147
+
148
+ For a view-only request, stop after Phase 3 and go to Phase 7 to report.
149
+
150
+ ### Phase 4 — Decide Operation + Confirm-to-Write (REQUIRED for any write)
151
+
152
+ 5. Decide the operation from the user's prompt (view / enable / disable). If the user said "toggle" without a direction, ask for the direction first.
153
+
154
+ 6. **Present the target payload** via `AskUserQuestion` as `(Master Incident Management: <current> → <requested>)`. Require an explicit "yes" before proceeding. **Proceed to Phase 5 ONLY on explicit "yes".** On "no", stop and report the current state without writing.
155
+
156
+ ### Phase 5 — Apply the Change (skip for view-only)
157
+
158
+ 7. Apply the idempotency rule from `references/mcp-invocation.md`: if the current state already matches the requested state, skip Phase 5 and mark the operation as an idempotent no-op.
159
+
160
+ 8. Otherwise, dispatch the write via `dispatch` using the enable or disable route documented in `references/mcp-invocation.md`. Enabling the master brings up the Incident Management sub-features on the server side — no separate calls are needed to turn them on. Disabling the master leaves those sub-features at their last-set values.
161
+
162
+ 9. On error (`4xx`, `5xx`), record the raw response verbatim and stop.
163
+
164
+ ### Phase 6 — Verify (`dispatch_readonly`)
165
+
166
+ 10. Re-issue the Phase-3 read and compare against the requested state per the rule in `references/mcp-invocation.md`. If they differ, treat it as a failed write and report the raw server response verbatim.
167
+
168
+ ### Phase 7 — Report
169
+
170
+ 11. Present a before/after summary:
171
+ - View: `Master Incident Management: <current-status>`.
172
+ - Toggle: `Master Incident Management: <before> → <after>` with verdict `SUCCEEDED` / `ALREADY-<state>` / `FAILED`.
173
+ - On Phase-6 mismatch: `write FAILED — server state differs from request. Server response: <verbatim>`.
174
+
175
+ ---
176
+
177
+ ## Rules / Constraints
178
+
179
+ | Constraint | Rationale |
180
+ |-----------|-----------|
181
+ | All operations run through the four hosted `headless-360` tools | The hosted MCP is the required transport |
182
+ | Read the argument schema for each operation via `describe` before calling `dispatch` / `dispatch_readonly` | The runtime contract is what `describe` returns; do not hard-code |
183
+ | Use `dispatch_readonly` for the read; use `dispatch` for the write | The server refuses mutating operations through `dispatch_readonly` |
184
+ | Always set/expect API **v67.0** minimum | The read and write routes require v67+ |
185
+ | Read live state before writing | The Phase-3 fetch is the source of truth for the confirmation prompt, the idempotency check, and the Phase-6 verify |
186
+ | **REQUIRED confirm-to-write checkpoint** before any `dispatch` mutation | Toggling this pref mutates org state; user must approve the exact plan |
187
+ | Idempotent — skip `dispatch` when the current state already matches the requested state | Avoids no-op writes; see `references/mcp-invocation.md` for the exact match rule |
188
+ | Report exact error text from the MCP tool response | The server surfaces the underlying error message verbatim |
189
+ | On `401` / `403` / `404` in Phase 1, halt and surface the raw error | The failing precondition is diagnosable only from the raw response |
190
+ | Do not put an orgId or Core URL in the `dispatch` arguments | The server derives the target org from the JWT issuer on the request |
191
+
192
+ ---
193
+
194
+ ## Verification Checklist
195
+
196
+ Before reporting completion of any mutation, confirm each of the following. If any item is unchecked, do not report success — surface what is missing.
197
+
198
+ - [ ] Phase 1 preflight (`describe` / `discover`) returned the operation without a `401` / `403` / `404`; if any was returned, the raw error was surfaced and the run halted.
199
+ - [ ] Phase 3 read against the master preference returned a status and that value was recorded as the "before" state.
200
+ - [ ] Phase 4 confirm-to-write presented `(Master Incident Management: <current> → <requested>)` via `AskUserQuestion` and the user replied with an explicit "yes" — no write dispatched on any other response (silence, "maybe", "looks good", implicit approval).
201
+ - [ ] Idempotency: if the current state already matched the requested state, Phase 5 was skipped and the run was reported as an idempotent no-op — no `dispatch` write was issued.
202
+ - [ ] Phase 5 write used `dispatch` (not `dispatch_readonly`) with the wire shape from `references/mcp-invocation.md`; on any `4xx` / `5xx`, the raw response was surfaced and the run halted.
203
+ - [ ] Phase 6 verify re-issued the Phase-3 read and the post-write state matched the user-approved target; any diff was reported as `write FAILED — server state differs from request`.
204
+ - [ ] The final report gave a before/after for the master preference with verdict `SUCCEEDED` / `ALREADY-<state>` / `FAILED`.
205
+
206
+ ---
207
+
208
+ ## Reference File Index
209
+
210
+ | File | When to read |
211
+ |------|--------------|
212
+ | `references/mcp-invocation.md` | Exact tool call shapes for the master read and write, MCP-client registration recipe for `headless-360` in `mcp-config.json`, External Client App setup checklist (`mcp_api` scope, PKCE, JWT), Headless-360 error taxonomy, and a worked enable/disable example |