@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.
- package/package.json +1 -1
- package/skills/automation-flow-generate/SKILL.md +32 -43
- package/skills/experience-portal-create/SKILL.md +497 -0
- package/skills/experience-portal-create/assets/report-template.md +30 -0
- package/skills/experience-portal-create/references/mcp-invocation.md +288 -0
- package/skills/experience-portal-create/references/post-creation-activate-publish.md +165 -0
- package/skills/experience-portal-create/references/templates.md +253 -0
- package/skills/experience-ui-bundle-features-generate/SKILL.md +5 -1
- package/skills/experience-ui-bundle-frontend-generate/SKILL.md +2 -0
- package/skills/experience-ui-bundle-frontend-generate/references/page.md +1 -0
- package/skills/platform-datamask-run/SKILL.md +345 -0
- package/skills/platform-datamask-run/references/api-surface.md +130 -0
- package/skills/platform-datamask-run/references/policy-authoring.md +185 -0
- package/skills/platform-datamask-run/references/run-and-abort.md +116 -0
- package/skills/platform-datamask-run/scripts/poll-job.sh +115 -0
- package/skills/platform-dataspace-access-configure/SKILL.md +51 -3
- package/skills/platform-dataspace-access-configure/scripts/inspect-dataspace-scopes.sh +56 -0
- package/skills/platform-lightning-type-widget-coordinate/references/build-plan-format.md +1 -0
- package/skills/platform-sandbox-configure/SKILL.md +17 -2
- package/skills/platform-trial-org-create/SKILL.md +175 -0
- package/skills/platform-trial-org-create/examples/create_request.json +9 -0
- package/skills/platform-trial-org-create/examples/error_response.json +41 -0
- package/skills/platform-trial-org-create/examples/success_response.json +27 -0
- package/skills/platform-trial-org-create/references/error_codes.md +42 -0
- package/skills/platform-trial-org-create/references/signup_request_fields.md +69 -0
- package/skills/platform-trial-org-create/scripts/create_signup_request.sh +175 -0
- package/skills/platform-trial-org-create/scripts/get_signup_request.sh +155 -0
- package/skills/platform-widget-generate/SKILL.md +47 -6
- package/skills/platform-widget-generate/examples/conditional.json +3 -3
- package/skills/platform-widget-generate/examples/list-with-foreach.json +2 -2
- package/skills/platform-widget-generate/examples/single-object.json +2 -2
- package/skills/platform-widget-generate/references/widget-bundle-layout.md +1 -1
- package/skills/service-agentforce-channel-configure/SKILL.md +271 -0
- package/skills/service-agentforce-channel-configure/references/agent-wiring.md +97 -0
- package/skills/service-agentforce-channel-configure/references/channel-branch-email.md +145 -0
- package/skills/service-agentforce-channel-configure/references/channel-branch-voice.md +69 -0
- package/skills/service-agentforce-channel-configure/references/channel-types.md +61 -0
- package/skills/service-agentforce-channel-configure/references/live-traffic-gate.md +86 -0
- package/skills/service-agentforce-channel-configure/references/queue-resolution.md +135 -0
- package/skills/service-agentforce-channel-configure/references/routing-flow.md +384 -0
- package/skills/service-catalog-template-deploy/SKILL.md +310 -0
- package/skills/service-catalog-template-deploy/references/cli-invocation.md +258 -0
- package/skills/service-catalog-template-deploy/scripts/activate-verify.mjs +164 -0
- package/skills/service-catalog-template-deploy/scripts/build-deploy-payload.mjs +94 -0
- package/skills/service-catalog-template-deploy/scripts/resolve-template.mjs +331 -0
- package/skills/service-catalog-template-search/SKILL.md +212 -0
- package/skills/service-catalog-template-search/references/cli-invocation.md +128 -0
- package/skills/service-catalog-template-search/scripts/classify-catalog.mjs +205 -0
- package/skills/service-concierge-portal-generate/SKILL.md +126 -0
- package/skills/service-concierge-portal-generate/references/portal-deploy-runbook.md +1428 -0
- package/skills/service-digital-engagement-channel-configure/SKILL.md +46 -6
- package/skills/service-digital-engagement-channel-configure/assets/messaging_channel_template.xml +2 -1
- package/skills/service-digital-engagement-channel-configure/examples/asa_agent_channel.xml +4 -1
- package/skills/service-helpagent-coordinate/README.md +8 -2
- package/skills/service-helpagent-coordinate/SKILL.md +126 -130
- package/skills/service-helpagent-coordinate/assets/help-agent-spec.md +70 -53
- package/skills/service-helpagent-coordinate/references/agent-script.md +571 -457
- package/skills/service-helpagent-coordinate/references/channel-voice.md +38 -9
- package/skills/service-helpagent-coordinate/references/channel-web-chat.md +173 -49
- package/skills/service-helpagent-coordinate/references/output-report-format.md +126 -0
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +153 -0
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +79 -0
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/scripts/verify-child-verdict.mjs +35 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +271 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/references/cli-invocation.md +265 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-enable-plan.mjs +220 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-final-report.mjs +102 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/record-enable-result.mjs +73 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +206 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/references/cli-invocation.md +194 -0
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/scripts/classify-readiness.mjs +223 -0
- package/skills/service-itsm-agentic-setup-cmdb-configure/SKILL.md +45 -7
- package/skills/service-itsm-agentic-setup-cmdb-configure/references/mcp-invocation.md +45 -5
- package/skills/service-itsm-agentic-setup-configure/SKILL.md +116 -0
- package/skills/service-itsm-agentic-setup-configure/examples/output-templates.md +64 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +158 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/cli-invocation.md +361 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/error-taxonomy.md +44 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/reactivation.md +66 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/report-format.md +66 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/specialized-templates.md +148 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/workflow-detail.md +169 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/build-create-body.mjs +116 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/classify-agent-existence.mjs +185 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/classify-preflight.mjs +168 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/create-scratch-dir.mjs +58 -0
- package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/render-report.mjs +197 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +186 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/action-availability.md +51 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/cli-invocation.md +345 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/error-taxonomy.md +44 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/reactivation.md +63 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/report-format.md +44 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/workflow-detail.md +149 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/build-create-body.mjs +110 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-action-availability.mjs +201 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-activate-result.mjs +135 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-agent-existence.mjs +194 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-preflight.mjs +158 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/create-scratch-dir.mjs +58 -0
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/render-report.mjs +191 -0
- package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +133 -0
- package/skills/service-itsm-agentic-setup-incident-management/examples/output-templates.md +71 -0
- package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +308 -0
- package/skills/service-itsm-agentic-setup-incident-sla-configure/assets/attach-milestone.json +23 -0
- package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md +193 -0
- package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/output-templates.md +57 -0
- package/skills/service-itsm-agentic-setup-incident-sla-configure/references/mcp-invocation.md +394 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +266 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/cli-invocation.md +106 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/helper-contracts.md +142 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/permset-topology.md +82 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-action-surface.mjs +137 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-assignment-state.mjs +99 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-permset-availability.mjs +120 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/resolve-target-user.mjs +86 -0
- package/skills/service-itsm-agentic-setup-uel-user-create/SKILL.md +284 -0
- package/skills/service-itsm-agentic-setup-uel-user-create/references/mcp-invocation.md +302 -0
- package/skills/service-itsm-channels-coordinate/SKILL.md +472 -0
- package/skills/service-itsm-incident-mgmt-configure/SKILL.md +212 -0
- package/skills/service-itsm-incident-mgmt-configure/references/mcp-invocation.md +225 -0
- package/skills/service-itsm-incident-priority-configure/SKILL.md +53 -12
- package/skills/service-itsm-swarming-configure/SKILL.md +212 -0
- package/skills/service-itsm-teams-configure/SKILL.md +395 -0
- package/skills/service-itsm-teams-configure/references/azure-credential-population.md +213 -0
- package/skills/service-itsm-teams-configure/references/gotchas.md +23 -0
- package/skills/service-itsm-teams-coordinate/SKILL.md +175 -0
- package/skills/service-itsm-teams-coordinate/examples/output-templates.md +85 -0
- package/skills/service-itsm-teams-debug/SKILL.md +144 -0
- package/skills/service-itsm-teams-debug/references/configuration-checklists.md +277 -0
- package/skills/service-itsm-teams-debug/references/report-generation.md +95 -0
- package/skills/service-itsm-teams-employee-agent-configure/SKILL.md +139 -0
- package/skills/service-itsm-teams-employee-agent-configure/assets/Teams_AgentForce.EmbeddedServiceConfig-meta.xml +43 -0
- package/skills/service-itsm-teams-employee-agent-configure/references/teams-embedded-employee-agent.md +480 -0
- package/skills/service-itsm-teams-itdesk-configure/SKILL.md +232 -0
- package/skills/service-itsm-teams-itservice-configure/SKILL.md +391 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: service-itsm-agentic-setup-incident-management
|
|
3
|
+
description: "Orchestrator skill for setting up Incident Management features in Salesforce Service Cloud ITSM. Use when the user asks to set up incident management, configure ITSM incident features, wants a guided walkthrough of incident management configuration, or asks what incident features are available to configure. Presents the available Incident Management capabilities and delegates each selection to a specialized child skill — currently SLA & Milestones — while tracking progress across the setup. Triggers on: set up incident management, configure ITSM incident features, incident management walkthrough, incident management capabilities, what incident features can I configure. DO NOT TRIGGER when: the user asks about a specific feature directly (e.g., an SLA alone without mentioning incident management setup), asks to create, clone, or provision users, Case management setup, or general ITSM questions without setup intent."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.2"
|
|
6
|
+
domains: ["Service"]
|
|
7
|
+
relatedSkills:
|
|
8
|
+
- "service-itsm-agentic-setup-incident-sla-configure"
|
|
9
|
+
- "service-itsm-incident-mgmt-configure"
|
|
10
|
+
- "service-itsm-incident-priority-configure"
|
|
11
|
+
allowed-tools: Read AskUserQuestion
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Incident Management Setup Orchestrator
|
|
15
|
+
|
|
16
|
+
Guide the user through setting up Incident Management features in Salesforce Service Cloud ITSM by presenting the available capabilities, delegating to specialized child skills, and tracking progress.
|
|
17
|
+
|
|
18
|
+
## Goal
|
|
19
|
+
|
|
20
|
+
Act as the coordinator for Incident Management feature configuration. Present the user with a menu of configurable features, invoke the appropriate child skill for each selection, and after each feature completes, return to the menu with updated progress until the user is done.
|
|
21
|
+
|
|
22
|
+
## Behavior
|
|
23
|
+
|
|
24
|
+
### 0. Reuse what the session already knows
|
|
25
|
+
|
|
26
|
+
Before running any preflight below, check whether the same fact was already established
|
|
27
|
+
earlier in this conversation. Cache-eligible facts for this orchestrator:
|
|
28
|
+
|
|
29
|
+
- **Master switch state** — reuse **only when the master switch was confirmed
|
|
30
|
+
enabled** by an earlier read or flip in this conversation. A cached "off" value
|
|
31
|
+
MUST NOT let step 2 skip: the delegation exists precisely to flip an off switch
|
|
32
|
+
on with user confirmation before downstream feature setup runs.
|
|
33
|
+
- **Already-completed features** — features the user (or a child skill) reported "Done"
|
|
34
|
+
in an earlier turn stay "Done" — do not re-run their child skill unless the user asks
|
|
35
|
+
to reconfigure.
|
|
36
|
+
- **Target org** — if the target org was already confirmed earlier in the conversation,
|
|
37
|
+
reuse it; do not re-ask.
|
|
38
|
+
|
|
39
|
+
**When in doubt, re-check.** Skip only when the earlier fact is unambiguously in context
|
|
40
|
+
AND you have not switched orgs. If the user hints at a different org, or a child skill's
|
|
41
|
+
write elsewhere in the session could have invalidated the cached state (e.g., the master
|
|
42
|
+
switch was toggled off after being confirmed on), re-run the check. A wrong skip on a
|
|
43
|
+
live org write is worse than a duplicated read.
|
|
44
|
+
|
|
45
|
+
### 1. Extract context from conversation
|
|
46
|
+
|
|
47
|
+
Before presenting options, scan chat history for:
|
|
48
|
+
|
|
49
|
+
- Which features the user has already set up (skip or mark as done)
|
|
50
|
+
- Any preferences or constraints mentioned (e.g., "we only need the SLA milestones")
|
|
51
|
+
- The target org (if mentioned)
|
|
52
|
+
- Business context that informs which features are relevant
|
|
53
|
+
|
|
54
|
+
### 2. Ensure the Incident Management master switch is on (prerequisite)
|
|
55
|
+
|
|
56
|
+
Every Incident Management feature below depends on the org-level `service-cloud-itsm-incident` master switch being enabled — SLA milestones and downstream features cannot function while the switch is off. Before showing the feature menu, delegate to `service-itsm-incident-mgmt-configure` to read current state; if the switch is already on, it is a no-op — otherwise it confirms with the user before flipping it. **Skip this delegation only when the master switch was already confirmed *enabled* in this session — see Behavior step 0**. A cached "off" or unknown state MUST fall through to the delegation; a wrong skip here would silently let downstream feature setup run against an org where the master is off.
|
|
57
|
+
|
|
58
|
+
### 3. Present the Incident Management feature menu as a multi-select
|
|
59
|
+
|
|
60
|
+
Show the user what's available and what's done. Only features with a working child skill appear in the menu. Emit the **Feature menu** template from `examples/output-templates.md` AND, in the same response, a single `AskUserQuestion` call with `multiSelect: true` whose options mirror the rendered rows — the table is the visual view; the tool call is how the selection is collected. Both MUST appear together, never one without the other. Selecting one feature is valid; selecting several enqueues them for sequential handling in step 4. Do NOT show placeholder features that cannot be executed. Additional Incident Management features (Major Incident Management, Custom Fields, incident permission assignment, user provisioning) will be added to this menu as their child skills become available.
|
|
61
|
+
|
|
62
|
+
### 4. Delegate to child skills for each selected feature in order
|
|
63
|
+
|
|
64
|
+
Handle the user's selected features sequentially in dependency order (or the order given). For each selected feature, invoke the corresponding child skill:
|
|
65
|
+
|
|
66
|
+
| # | Feature | Child Skill |
|
|
67
|
+
|---|---------|-------------|
|
|
68
|
+
| 1 | SLA & Milestones | `service-itsm-agentic-setup-incident-sla-configure` |
|
|
69
|
+
| 2 | Priority Matrix | `service-itsm-incident-priority-configure` |
|
|
70
|
+
|
|
71
|
+
### 5. After each feature completes
|
|
72
|
+
|
|
73
|
+
Once a child skill finishes:
|
|
74
|
+
|
|
75
|
+
1. **Update the status** — mark the completed feature as "Done"
|
|
76
|
+
2. **Suggest the next logical step** — if another feature is available, recommend it based on the dependency order
|
|
77
|
+
3. **Re-present the menu** with updated status — use the **Post-feature progress** template in `examples/output-templates.md`
|
|
78
|
+
|
|
79
|
+
### 6. Completion summary
|
|
80
|
+
|
|
81
|
+
When the user says they're done (or all available features are configured), present a final summary using the **Completion summary** template in `examples/output-templates.md`.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Feature Dependencies & Recommended Order
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
1. SLA & Milestones (attaches time-based commitments to incidents)
|
|
89
|
+
2. Priority Matrix (derives Incident.Priority from Impact × Urgency)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Additional Incident Management features (Major Incident Management, Custom Fields, incident permission assignment, user provisioning) will be added to this menu as their child skills merge.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Rules
|
|
97
|
+
|
|
98
|
+
- ALWAYS show "(via service-itsm-agentic-setup-incident-management)" in the setup header
|
|
99
|
+
- ALWAYS run the Incident Management master-switch prerequisite (Behavior step 2) before showing the feature menu, unless the user has already confirmed the switch is on earlier in this conversation — every downstream feature depends on it
|
|
100
|
+
- ALWAYS present the feature menu before configuring any selected feature — do not assume which feature the user wants (the master-switch prerequisite in Behavior step 2 is the only permitted action before the menu)
|
|
101
|
+
- ALWAYS present the feature menu as a multi-select — accept a set of one or more features in a single interaction
|
|
102
|
+
- ALWAYS pair the rendered feature-menu table with an `AskUserQuestion` (`multiSelect: true`) call in the same response — the table is the visual view; the tool call is the selection channel. Emitting the table alone breaks the selection channel; emitting the tool call alone hides the visual view
|
|
103
|
+
- NEVER set up a feature without the user selecting it (explicit selection confirms intent and avoids partial configurations if the user cancels mid-flow; for "set up everything" requests, use the sequential-confirmation loop in the rule below rather than batching all features in one pass)
|
|
104
|
+
- NEVER show features that do not have a working child skill
|
|
105
|
+
- If the user says "set up everything" or "all", walk through each available feature sequentially in the recommended order, confirming between each step
|
|
106
|
+
- Track progress across the conversation — do not re-present completed features as "Not done"
|
|
107
|
+
- Do not show Salesforce record IDs in any output — use human-readable names only
|
|
108
|
+
- If the user asks to create, clone, or provision users, or to assign incident permission sets, tell them those features are not yet available in this orchestrator and will be added as their child skills merge
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Verification checklist
|
|
113
|
+
|
|
114
|
+
Before emitting any menu or summary in this skill, mentally confirm each of the following. If any box is unchecked, adjust the output before sending.
|
|
115
|
+
|
|
116
|
+
- [ ] The header line ends with `(via service-itsm-agentic-setup-incident-management)`
|
|
117
|
+
- [ ] The Incident Management master switch has been confirmed on (via `service-itsm-incident-mgmt-configure`) before the feature menu is emitted, unless the user already confirmed it earlier in this conversation
|
|
118
|
+
- [ ] Only features with a working child skill are shown; placeholder features are hidden
|
|
119
|
+
- [ ] The feature menu is presented as a multi-select (single-select only if the user has already named a specific feature)
|
|
120
|
+
- [ ] The feature menu emitted BOTH the ASCII table AND an `AskUserQuestion` (`multiSelect: true`) presenting the same options in the same response — never one without the other
|
|
121
|
+
- [ ] Each feature row's `Status` column reflects the actual tracked state from the conversation (`Not done`, `In progress`, or `Done`) — not a hard-coded default
|
|
122
|
+
- [ ] For a completion summary, the header line and closing line are chosen by the rubric in `examples/output-templates.md` (all `Done` → *Complete*; any `Not done`/`In progress` → *Finished*)
|
|
123
|
+
- [ ] A feature is being configured only because the user explicitly selected it (or is being walked through sequentially with confirmation under an "all" / "everything" request)
|
|
124
|
+
- [ ] The next action delegates to a child skill, never configures a feature inline
|
|
125
|
+
- [ ] No Salesforce record IDs appear in the output — human-readable names only
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Reference File Index
|
|
130
|
+
|
|
131
|
+
| File | When to read |
|
|
132
|
+
|------|--------------|
|
|
133
|
+
| `examples/output-templates.md` | Behavior steps 3, 5, and 6 — feature menu (multi-select), post-feature progress, and completion summary text blocks |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Output Templates — service-itsm-agentic-setup-incident-management
|
|
2
|
+
|
|
3
|
+
Emit one of these text blocks at the corresponding step in the workflow. Only features with a
|
|
4
|
+
working child skill appear — hide placeholder rows.
|
|
5
|
+
|
|
6
|
+
## Feature menu (Behavior step 3)
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
Incident Management Setup (via service-itsm-agentic-setup-incident-management)
|
|
10
|
+
|
|
11
|
+
Here are the features available for Incident Management. Select one or more to configure:
|
|
12
|
+
|
|
13
|
+
┌───┬───────────────────────────────┬──────────────────────────────────────────────────┬──────────┐
|
|
14
|
+
│ # │ Feature │ Description │ Status │
|
|
15
|
+
├───┼───────────────────────────────┼──────────────────────────────────────────────────┼──────────┤
|
|
16
|
+
│ 1 │ SLA & Milestones │ Create a MilestoneType, SLA Policy, and │ Not done │
|
|
17
|
+
│ │ │ Entitlement so Incidents inherit SLA milestones │ │
|
|
18
|
+
│ 2 │ Priority Matrix │ Enable and shape the Impact × Urgency grid that │ Not done │
|
|
19
|
+
│ │ │ derives Priority on Incident records │ │
|
|
20
|
+
└───┴───────────────────────────────┴──────────────────────────────────────────────────┴──────────┘
|
|
21
|
+
|
|
22
|
+
Reply with the numbers of the features you want to set up (one or more, e.g. `1,2`).
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Post-feature progress (Behavior step 5)
|
|
26
|
+
|
|
27
|
+
Example after the SLA & Milestones child skill completes (Priority Matrix still `Not done`):
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
SLA & Milestones — configured successfully
|
|
31
|
+
(via service-itsm-agentic-setup-incident-sla-configure)
|
|
32
|
+
|
|
33
|
+
┌───┬───────────────────────────────┬──────────┐
|
|
34
|
+
│ # │ Feature │ Status │
|
|
35
|
+
├───┼───────────────────────────────┼──────────┤
|
|
36
|
+
│ 1 │ SLA & Milestones │ Done │
|
|
37
|
+
│ 2 │ Priority Matrix │ Not done │
|
|
38
|
+
└───┴───────────────────────────────┴──────────┘
|
|
39
|
+
|
|
40
|
+
The next logical step is Priority Matrix — say `2` to configure it now, or `done` to finish.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Completion summary (Behavior step 6)
|
|
44
|
+
|
|
45
|
+
The completion summary fires either (a) after every feature completes, or (b) when the user says
|
|
46
|
+
they are finished — even if some features are still `Not done`. When rendering:
|
|
47
|
+
|
|
48
|
+
- Substitute each feature's row with its actual tracked status: `Done`, `In progress`, or `Not done`.
|
|
49
|
+
Do NOT hard-code `Done`.
|
|
50
|
+
- Choose the header line based on whether every feature is `Done`:
|
|
51
|
+
- All features `Done` → `Incident Management Setup — Complete`
|
|
52
|
+
- Any feature still `Not done` or `In progress` → `Incident Management Setup — Finished`
|
|
53
|
+
- Choose the closing line based on state:
|
|
54
|
+
- All `Done` → `Your Incident Management features are configured.`
|
|
55
|
+
- Otherwise → `You have finished the features you selected. The remaining features can be resumed later by re-invoking this orchestrator.`
|
|
56
|
+
|
|
57
|
+
Example — user finished the setup with both features configured:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
Incident Management Setup — Complete
|
|
61
|
+
(via service-itsm-agentic-setup-incident-management)
|
|
62
|
+
|
|
63
|
+
┌───────────────────────────────┬──────────┐
|
|
64
|
+
│ Feature │ Status │
|
|
65
|
+
├───────────────────────────────┼──────────┤
|
|
66
|
+
│ SLA & Milestones │ Done │
|
|
67
|
+
│ Priority Matrix │ Done │
|
|
68
|
+
└───────────────────────────────┴──────────┘
|
|
69
|
+
|
|
70
|
+
Your Incident Management features are configured.
|
|
71
|
+
```
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: service-itsm-agentic-setup-incident-sla-configure
|
|
3
|
+
description: "End-to-end Incident SLA setup for Service Cloud ITSM — creating a MilestoneType, an Incident-scoped SLA Policy (SlaProcess), attaching a Milestone with criteria, and wiring an Entitlement so Incidents derive an EntityMilestone with a computed TargetDate. Use when the user asks to configure SLA milestones on Incidents, create an SLA policy for Incident records, set up entitlement processes for ITSM, wire milestones so they appear on the Incident page, or enable SLA tracking for incident management. DO NOT TRIGGER when: the user asks about Case entitlements or Case SLA (not Incident), querying existing SLA policies without setup intent, general Entitlement sObject CRUD unrelated to Incident, or Milestone queries for reporting purposes only."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.4"
|
|
6
|
+
domains: ["Service"]
|
|
7
|
+
minApiVersion: "67.0"
|
|
8
|
+
relatedSkills:
|
|
9
|
+
- "service-itsm-incident-mgmt-configure"
|
|
10
|
+
- "service-itsm-incident-priority-configure"
|
|
11
|
+
accessCheck: []
|
|
12
|
+
mcpTools:
|
|
13
|
+
headless-360:
|
|
14
|
+
tools: ["describe", "discover", "dispatch", "dispatch_readonly"]
|
|
15
|
+
semver: ">=1.0.0"
|
|
16
|
+
allowed-tools: |
|
|
17
|
+
Read AskUserQuestion
|
|
18
|
+
mcp__headless-360__discover
|
|
19
|
+
mcp__headless-360__describe
|
|
20
|
+
mcp__headless-360__dispatch
|
|
21
|
+
mcp__headless-360__dispatch_readonly
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Configuring Incident SLA (End-to-End)
|
|
25
|
+
|
|
26
|
+
Configures a complete **Incident SLA pipeline** for Service Cloud ITSM — the chain that derives
|
|
27
|
+
an EntityMilestone (with a computed TargetDate) on every Incident that has an Entitlement. Every
|
|
28
|
+
operation runs through the **Salesforce-hosted Headless-360 MCP server** (server key `headless-360`)
|
|
29
|
+
via its four meta-tools (`discover`, `describe`, `dispatch_readonly`, `dispatch`). The org is derived
|
|
30
|
+
from the OAuth JWT — the skill never handles an org id, alias, or credentials. It also needs the
|
|
31
|
+
org-level **SLA Management for IT Service** setup item — a Setup Discovery feature plus a separate,
|
|
32
|
+
permanent **SLA Versioning** bit, both gated by Phase 0.5. Setup has four parts:
|
|
33
|
+
|
|
34
|
+
1. **MilestoneType** — define what you're measuring (e.g., "First Response").
|
|
35
|
+
2. **SLA Policy** — the SlaProcess scoped to Incident with entry/exit criteria.
|
|
36
|
+
3. **Milestone** — attach to the policy with a time trigger and filter criteria.
|
|
37
|
+
4. **Entitlement** — wire to an Account so Incidents with that Entitlement engage the SLA.
|
|
38
|
+
|
|
39
|
+
## Scope
|
|
40
|
+
|
|
41
|
+
- **In scope**: Creating MilestoneTypes, SLA Policies (SlaProcess), Milestones with criteria,
|
|
42
|
+
Entitlements, and verifying SLA engagement on Incident records — all via `headless-360` MCP.
|
|
43
|
+
- **In scope — prerequisite**: checking and (on confirmation) enabling the **SLA Management for IT
|
|
44
|
+
Service** setup item — the feature + SLA Versioning (Phase 0.5).
|
|
45
|
+
- **Out of scope**: Case SLA/entitlements; Assignment Rules; Escalation Rules; Notification
|
|
46
|
+
Rules; general Entitlement CRUD not related to Incident SLA; SLA reporting.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Routes at a glance
|
|
51
|
+
|
|
52
|
+
Reads dispatch through `mcp__headless-360__dispatch_readonly`, writes through
|
|
53
|
+
`mcp__headless-360__dispatch`. Both take raw HTTP:
|
|
54
|
+
`{"url": "<path>", "method": "GET|POST|PATCH|...", "body"?: {...}, "query_params"?: {...}}` — **not**
|
|
55
|
+
`{operation_id, arguments}`. Full request/response shapes live in `references/mcp-invocation.md`.
|
|
56
|
+
|
|
57
|
+
| Concern | Method + path | Body |
|
|
58
|
+
|---------|---------------|------|
|
|
59
|
+
| Master Incident Mgmt pref (read) | `GET /services/data/v67.0/connect/setup/discovery/features`, filter `apiName == "service-cloud-itsm-incident"` for `status` | — |
|
|
60
|
+
| SLA Mgmt prerequisite (Phase 0.5) | Feature `status`/`enable` + SLA Versioning read/PATCH on `EntitlementSettings` — see `references/mcp-invocation.md` | see ref |
|
|
61
|
+
| Preflight (Incident on) | `GET /services/data/v67.0/sobjects/Incident/describe` | — |
|
|
62
|
+
| Default BusinessHours | `GET /services/data/v67.0/query` (q via `query_params.q`) | — |
|
|
63
|
+
| Create MilestoneType | `POST /services/data/v67.0/connect/sla-management/milestone-types` | `{"name","description","recurrenceType"}` |
|
|
64
|
+
| Create SLA Policy | `POST /services/data/v67.0/connect/sla-management/sla-policies` | `{"name","processType":"Incident","businessHourId",...}` |
|
|
65
|
+
| Attach Milestone | `POST /services/data/v67.0/connect/sla-management/sla-policies/<id>/milestones` | `{"milestoneTypeId","timeTrigger","milestoneCriteria":[...]}` |
|
|
66
|
+
| Create Entitlement | `POST /services/data/v67.0/sobjects/Entitlement` | `{"Name","AccountId","SlaProcessId","BusinessHoursId","StartDate","EndDate"}` |
|
|
67
|
+
| Create test Incident | `POST /services/data/v67.0/sobjects/Incident` | `{"Subject","EntitlementId",...}` |
|
|
68
|
+
| Verify SLA policy | `GET /services/data/v67.0/query` (q for `SlaProcess`) | — |
|
|
69
|
+
| Verify engagement | `GET /services/data/v67.0/query` (q for `EntityMilestone`) | — |
|
|
70
|
+
|
|
71
|
+
**Response envelope**: SLA Management Connect, `/sobjects/…`, and `/query` are standard REST — the
|
|
72
|
+
`dispatch*` MCP tool returns the REST response directly (`{status_code, body}`); read `body`. Only
|
|
73
|
+
`/headless/invoke/…` Aura-controller routes are doubly wrapped (`body.body`) — this skill uses none.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Clarifying Questions
|
|
78
|
+
|
|
79
|
+
Ask only what you cannot infer from conversation context (pre-populate and note "(from
|
|
80
|
+
conversation)"). **Resolve the Phase 0.5 gate first, on its own.**
|
|
81
|
+
|
|
82
|
+
- **Which org?** `headless-360` binds to the current OAuth session; confirm the target before mutating.
|
|
83
|
+
- **Milestone strategy?** See Phase 1.4 — skipped when the prompt already names a shape, when the branch is a no-op, or when up-front authorization + a derivable shape are given.
|
|
84
|
+
- **Target Account?** Account to attach the Entitlement to.
|
|
85
|
+
- **Milestone criteria?** Default `Status != Closed`, plus pattern-specific filters.
|
|
86
|
+
|
|
87
|
+
Default suggestion: SLA Policy `Incident SLA Policy`, default BusinessHours, first active Account,
|
|
88
|
+
Entitlement `today → today + 1 year`, milestone strategy resolved per Phase 1.4.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Workflow
|
|
93
|
+
|
|
94
|
+
All steps are sequential. **Always read before you write.** Every call goes through
|
|
95
|
+
`mcp__headless-360__*` tools.
|
|
96
|
+
|
|
97
|
+
### Phase 0 — Reuse what the session already knows
|
|
98
|
+
|
|
99
|
+
Each Phase 1 read below carries a **skip-if-already-known** clause: skip only when the
|
|
100
|
+
same fact was produced this session **from a successful `dispatch_readonly` response
|
|
101
|
+
tied to the current org**. A user statement is not cache-eligible — a mistaken assertion
|
|
102
|
+
would produce a stale create. When the only source is a user statement, re-read.
|
|
103
|
+
|
|
104
|
+
- **Master Incident Management pref** — reuse only when the pref was read live this
|
|
105
|
+
session (successful `dispatch_readonly` on Setup Discovery, or a live read by
|
|
106
|
+
`service-itsm-incident-mgmt-configure`) AND `status` was `ENABLED` AND no write since.
|
|
107
|
+
A cached "not enabled" / unknown / user-asserted value is NOT cache-eligible — fall
|
|
108
|
+
through to step 1.
|
|
109
|
+
- **SLA Management feature + SLA Versioning** — reuse only if both were read live this session
|
|
110
|
+
(Phase 0.5) and unwritten since; else re-run Phase 0.5.
|
|
111
|
+
- **Incident describe / SLA-field presence** — if `Incident.describe` was already run against
|
|
112
|
+
the current org this session and the presence of `EntitlementId` / `SlaStartDate` /
|
|
113
|
+
`SlaExitDate` is in context, skip step 3 and reuse the answer.
|
|
114
|
+
- **Default BusinessHours id** — if a `BusinessHoursId` for the current org's default is
|
|
115
|
+
already captured, skip step 4.
|
|
116
|
+
- **Account id** — if the Account the user named (or the fallback first-active Account)
|
|
117
|
+
was already resolved to an `Id` this session, skip step 5.
|
|
118
|
+
- **Discover / describe of SLA Connect operations** — if the routes were already verified
|
|
119
|
+
as indexed this session, skip step 2.
|
|
120
|
+
|
|
121
|
+
**When in doubt, re-check.** Skip only when the earlier fact is unambiguously in context
|
|
122
|
+
AND you have not switched orgs — the `headless-360` MCP session binds to one org via the
|
|
123
|
+
JWT, so an org change is only possible if the session was re-authed mid-conversation. If
|
|
124
|
+
the user hints at a different org, or you cannot tell which org the earlier fact came
|
|
125
|
+
from, re-run the read. A wrong skip on a live org write is worse than a duplicated read.
|
|
126
|
+
|
|
127
|
+
### Phase 0.5 — SLA Management for IT Service prerequisite gate
|
|
128
|
+
|
|
129
|
+
**Resolve this gate on its own first — not batched with the clarifying questions. Its reads are
|
|
130
|
+
safe to run up front; still confirm the target org before the enable write.** Gate on the
|
|
131
|
+
org-level **SLA Management for IT Service** setup item before any Phase 2 mutation — two
|
|
132
|
+
independent bits: the Setup Discovery feature `service-cloud-itsm-manage-sla-policies` (Connect route,
|
|
133
|
+
**not** Tooling) and the separate, **permanent** **SLA Versioning** bit
|
|
134
|
+
(`EntitlementSettings.IsEntitlementVersioningEnabled`). Full call shapes, `enableBlockedReasons`
|
|
135
|
+
handling, and the permanence rule are in `references/mcp-invocation.md`.
|
|
136
|
+
|
|
137
|
+
- **Read both** (`dispatch_readonly`); feature `ENABLED` **and** versioning `true` → skip to Phase 1.
|
|
138
|
+
- **Confirm, then enable only what's off** (`AskUserQuestion`) — stop and relay if `enableBlockedReasons`
|
|
139
|
+
is non-empty; if versioning is off, flag it's **permanent**.
|
|
140
|
+
- **Enable, then re-read** — never trust the `201` / empty-`204` write response; require `ENABLED` /
|
|
141
|
+
`true` first.
|
|
142
|
+
|
|
143
|
+
### Phase 1 — Preflight & discovery
|
|
144
|
+
|
|
145
|
+
**On any `401` / `403` / `404` from a step below, halt and surface the raw error** — the org or client is not configured correctly. `401` → MCP auth (ECA not propagated / expired token). `403` → user perm missing OR ITSM Incident Management license/preference missing (`ITSMIncidentMgmtEnabled` / `IncidentMgmt.orgHasITSMOrgPermission`). `404` → `headless-360` server not activated OR Entitlement Management not enabled for Incident.
|
|
146
|
+
|
|
147
|
+
1. **Master Incident Management pref — direct read** *(skip conditions in Phase 0)*.
|
|
148
|
+
`dispatch_readonly` on `GET /services/data/v67.0/connect/setup/discovery/features`,
|
|
149
|
+
filter `features[]` client-side to `apiName == "service-cloud-itsm-incident"`, read
|
|
150
|
+
`status`. If `ENABLED`, proceed. **If not, delegate to `service-itsm-incident-mgmt-configure`
|
|
151
|
+
inline to enable** (it runs its own confirm-to-write), then re-read to verify. If the
|
|
152
|
+
user declines, halt — every SLA artifact below depends on the master being on. Full
|
|
153
|
+
call shape + why the setup-org-preferences endpoint 404s here is in
|
|
154
|
+
`references/mcp-invocation.md` (Preflight A).
|
|
155
|
+
2. **Discover the Connect operations** — *(skip if already verified this session — see Phase 0)*.
|
|
156
|
+
`mcp__headless-360__discover(query="sla-management milestone")` to confirm the SLA Management
|
|
157
|
+
Connect API is indexed, then `mcp__headless-360__describe(id=<operation_id>)`
|
|
158
|
+
for the `milestone-types`, `sla-policies`, and `sla-policies/{id}/milestones` POST operations to pull
|
|
159
|
+
their exact input schemas + HTTP routes. If `discover` returns nothing after rewording the query,
|
|
160
|
+
the corpus does not index this surface for the org — direct the user to **Setup → SLA/Entitlement
|
|
161
|
+
setup** and stop.
|
|
162
|
+
3. **Verify Incident Management + SLA fields** — *(skip if `Incident.describe` result for the
|
|
163
|
+
current org is already in context — see Phase 0)*. Otherwise `dispatch_readonly` on
|
|
164
|
+
`GET /services/data/v67.0/sobjects/Incident/describe` and confirm `fields[]` includes
|
|
165
|
+
`EntitlementId`, `SlaStartDate`, `SlaExitDate`. If the describe 404s or fields are missing, direct
|
|
166
|
+
the user to enable Entitlement Management for Incident and stop.
|
|
167
|
+
4. **Find default BusinessHours** — *(skip if `BusinessHoursId` for the current org's default is
|
|
168
|
+
already captured this session)*. Otherwise `dispatch_readonly` on `GET /services/data/v67.0/query` with
|
|
169
|
+
`query_params.q="SELECT Id, Name FROM BusinessHours WHERE IsActive = true AND IsDefault = true"`.
|
|
170
|
+
If `body.records` is empty, stop with a message to create default Business Hours in Setup. Capture
|
|
171
|
+
`BusinessHoursId`.
|
|
172
|
+
5. **Resolve the target Account** — *(skip if the Account the user named — or, absent a name,
|
|
173
|
+
the fallback first-active Account — is already resolved to an Id this session)*. Otherwise the
|
|
174
|
+
Entitlement in Phase 2 requires an `AccountId`, so resolve it now, before any mutation. If the
|
|
175
|
+
user named an Account, look it up by name via a `dispatch_readonly`
|
|
176
|
+
SOQL: `SELECT Id, Name FROM Account WHERE Name = '<escaped name>' LIMIT 1`. If the named Account is
|
|
177
|
+
not found, **stop and ask** — do NOT silently substitute a different Account. Only when the user
|
|
178
|
+
did **not** name one, fall back to the first active Account
|
|
179
|
+
(`SELECT Id, Name FROM Account WHERE IsDeleted = false ORDER BY CreatedDate LIMIT 1`) and surface
|
|
180
|
+
which Account you chose in the confirmation gate below. If no Account exists at all, stop with a
|
|
181
|
+
message to create one first. Capture `AccountId` and the Account name.
|
|
182
|
+
6. **Read existing SLA artifacts (idempotency probe)** — `dispatch_readonly` SOQL against
|
|
183
|
+
`SlaProcess` by name (`SELECT Id, Name FROM SlaProcess WHERE Name = '<name>' AND SObjectType = 'Incident' LIMIT 1` — the physical sObject field is `SObjectType`; `ProcessType` returns `INVALID_FIELD`),
|
|
184
|
+
`MilestoneType` by name for each type the strategy would create, `SlaMilestone` under the matched
|
|
185
|
+
`SlaProcess`, and `Entitlement` by name against the resolved Account. Record which artifacts
|
|
186
|
+
already exist. If **every** artifact the request would create already exists with the requested
|
|
187
|
+
configuration, Phase 1.4 skip condition (b) applies — set `noOp=true` and skip Phase 1.4 and
|
|
188
|
+
Phase 2. Any missing or divergent artifact means a mutation is required; proceed to Phase 1.4.
|
|
189
|
+
|
|
190
|
+
### Phase 1.4 — Milestone Strategy
|
|
191
|
+
|
|
192
|
+
Every SLA policy needs at least one milestone. Load `examples/milestone-patterns.md` — it lists the
|
|
193
|
+
Phase 1.4 skip conditions (concrete shape in prompt, idempotent no-op, explicit up-front
|
|
194
|
+
authorization) and the five strategy options (Single, Response + Resolution, Priority-tiered,
|
|
195
|
+
Escalation ladder, Custom/mixed) with their `AskUserQuestion` prompt, default numbers, and
|
|
196
|
+
MilestoneType-reuse rules. Skip conditions (c) still requires Phase 1.5 plan-narration before
|
|
197
|
+
dispatch. Multi-milestone selection expands to N milestone creates in Phase 2 step 10 (one POST per
|
|
198
|
+
milestone, `order` 1..N, all attached to the same SlaProcess).
|
|
199
|
+
|
|
200
|
+
### Phase 1.5 — Confirm before mutating
|
|
201
|
+
|
|
202
|
+
7. **Confirm the plan** — present the resolved configuration (target **org**, **SLA Policy** name,
|
|
203
|
+
resolved **Account** name, **Entitlement** date range, and the **full per-milestone list** from
|
|
204
|
+
Phase 1.4 — never collapse Priority-tiered / Custom to "N milestones").
|
|
205
|
+
|
|
206
|
+
**Skip the `AskUserQuestion` confirmation prompt** (still narrate the plan before dispatch)
|
|
207
|
+
when: up-front authorization was granted (note `(authorized in prompt)`); the branch is a no-op
|
|
208
|
+
(skip Phase 1.5 + Phase 2, report the no-op); or the plan was already confirmed in conversation
|
|
209
|
+
(note `(confirmed in conversation)`). Otherwise dispatch `AskUserQuestion` and require an
|
|
210
|
+
explicit "yes" before Phase 2. Everything before this step is read-only; everything after
|
|
211
|
+
mutates the org.
|
|
212
|
+
|
|
213
|
+
### Phase 2 — Create SLA Artifacts (exact order — each depends on the previous)
|
|
214
|
+
|
|
215
|
+
8. **Create MilestoneType(s)** — `POST /connect/sla-management/milestone-types`. One POST per
|
|
216
|
+
distinct MilestoneType required by the strategy. Reuse a single MilestoneType across milestones
|
|
217
|
+
that share a name (Priority-tiered "First Response" reuses one MilestoneType across all four
|
|
218
|
+
milestones); create separate MilestoneTypes for distinct concerns (Response + Resolution =
|
|
219
|
+
two MilestoneTypes; Escalation ladder = three). Capture each `id`.
|
|
220
|
+
9. **Create SLA Policy** — `POST /connect/sla-management/sla-policies` with `processType='Incident'`
|
|
221
|
+
and the `businessHourId` from Phase 1. Capture `id`. **The response echoes nulls — verify via
|
|
222
|
+
SOQL, not the response body.**
|
|
223
|
+
10. **Attach Milestone(s)** — load the request-body template from `assets/attach-milestone.json`
|
|
224
|
+
and, for each milestone in the strategy, populate `milestoneTypeId`, `timeTrigger`, `order`
|
|
225
|
+
(1..N in the strategy's order) and any per-pattern `filterItems` additions from
|
|
226
|
+
`examples/milestone-patterns.md`, then `POST /connect/sla-management/sla-policies/<slaId>/milestones`.
|
|
227
|
+
`milestoneCriteria` is mandatory (`filterType: RuleFilter`). Do **not** put `slaProcessId` in the
|
|
228
|
+
body — it is carried by the path. Multi-milestone strategies dispatch this call once per
|
|
229
|
+
milestone; if any milestone POST fails, halt and surface the raw error — do not continue with a
|
|
230
|
+
half-attached policy.
|
|
231
|
+
11. **Create Entitlement** — `POST /sobjects/Entitlement` linking the resolved Account (from Phase 1
|
|
232
|
+
step 5), the SLA Policy (`SlaProcessId`), and Business Hours. For immediate engagement, backdate
|
|
233
|
+
`StartDate` to yesterday.
|
|
234
|
+
|
|
235
|
+
### Phase 3 — Verify
|
|
236
|
+
|
|
237
|
+
12. **Verify the SLA Policy** — SOQL on `SlaProcess` (do not trust the create response).
|
|
238
|
+
13. **Create a test Incident** with `EntitlementId` pointing at the new Entitlement. For
|
|
239
|
+
Priority-tiered strategies, set a specific `Priority` on the test Incident (or create one test
|
|
240
|
+
Incident per Priority) so at least one milestone's criteria matches — otherwise no
|
|
241
|
+
`EntityMilestone` will spawn even though the policy is wired correctly.
|
|
242
|
+
14. **Verify engagement** — SOQL confirming `Incident.SlaStartDate` is populated and the expected
|
|
243
|
+
`EntityMilestone` row(s) exist with the correct `TargetDate`(s). For multi-milestone
|
|
244
|
+
strategies, expect one `EntityMilestone` per milestone whose criteria the Incident satisfies.
|
|
245
|
+
15. **Report results** using the output format below.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Rules / Constraints
|
|
250
|
+
|
|
251
|
+
| Constraint | Rationale |
|
|
252
|
+
|-----------|-----------|
|
|
253
|
+
| Gate on **SLA Management for IT Service** first (Phase 0.5) — feature `ENABLED` AND versioning `true`; confirm before enabling, versioning permanent, re-read after each write | Skipping risks a mid-flow 403/404; versioning can't be undone; writes don't confirm state |
|
|
254
|
+
| Discover + describe before any mutation | Catches a missing SLA surface / disabled Incident Management early |
|
|
255
|
+
| Ask (via `AskUserQuestion`) which milestone strategy to use — do not silently default to Single | Real ITSM policies almost always have more than one milestone; picking silently hides the choice from the user |
|
|
256
|
+
| Reuse one MilestoneType per shared name; create a distinct MilestoneType per distinct concern | The runtime keys milestones by MilestoneType — sharing collapses distinct concerns |
|
|
257
|
+
| For multi-milestone strategies, halt on any milestone POST failure — do not continue with a half-attached policy | The confirmation gate covers all N milestones together; partial attach diverges from the confirmed plan |
|
|
258
|
+
| Priority-tiered strategy: validate every `Priority` value against the live Incident picklist before dispatch | The server accepts any string on `filterItems.value` — an unknown Priority value silently makes the milestone dead code |
|
|
259
|
+
| Entitlement is standard sObject DML (not Connect API); `StartDate` controls status (future = Inactive) | Not part of the `/connect/sla-management/` surface |
|
|
260
|
+
| Verify SLA Policy via SOQL, not the create response | The create response echoes nulls |
|
|
261
|
+
| Never show Salesforce record IDs to the user | Use human-readable names and IncidentNumber |
|
|
262
|
+
|
|
263
|
+
Additional API quirks (payload rules, filter-operator enum, missing-criteria error) are documented in `references/mcp-invocation.md` — consult before dispatch.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Verification Checklist
|
|
268
|
+
|
|
269
|
+
- [ ] **SLA Management prerequisite gated (Phase 0.5)** — feature `ENABLED` AND `IsEntitlementVersioningEnabled` `true`; whatever was off was enabled only after confirmation (versioning flagged permanent) and re-read to verify, never trusting the write response; non-empty `enableBlockedReasons` halted the run.
|
|
270
|
+
- [ ] Master Incident Management pref was confirmed `ENABLED` via a live Setup Discovery read this session (or via an inline delegation to `service-itsm-incident-mgmt-configure` when it came back off). A user-asserted state is NOT a substitute for the live read.
|
|
271
|
+
- [ ] `discover` + `describe` (or the Incident describe) confirmed the SLA Management Connect operations.
|
|
272
|
+
- [ ] Incident describe returned 200 with `EntitlementId`, `SlaStartDate`, `SlaExitDate`.
|
|
273
|
+
- [ ] Default BusinessHours found.
|
|
274
|
+
- [ ] **Milestone strategy resolved** — via a Phase 1.4 skip condition (prompt named a shape / no-op branch / up-front authorization + derivable shape) OR via `AskUserQuestion`. A skipped `AskUserQuestion` under a valid skip condition is honoring the contract, not violating it. For Priority-tiered / Custom, every `Priority` / criteria value was validated against the live Incident picklist before dispatch.
|
|
275
|
+
- [ ] **Configuration confirmed OR skip condition met** — up-front authorization, no-op branch, prior confirmation in conversation, OR explicit "yes" via `AskUserQuestion`. In every case, the resolved plan (org, SLA name, account, entitlement range, per-milestone list) was narrated before Phase 2 dispatched.
|
|
276
|
+
- [ ] Artifacts created in order (MilestoneType(s) → Policy → Milestone(s) → Entitlement); each POST returned 201; any milestone POST failure halted the run (no partial attach). Trivially satisfied on no-op runs.
|
|
277
|
+
- [ ] SLA Policy verified via SOQL (not the create response). On no-op runs, the Phase-1 read is the verification.
|
|
278
|
+
- [ ] Test Incident has `SlaStartDate` populated (Priority chosen to match at least one criterion for Priority-tiered). Skip on no-op runs.
|
|
279
|
+
- [ ] At least one EntityMilestone exists with the correct TargetDate; for multi-milestone strategies, the expected milestone(s) are present. Skip on no-op runs.
|
|
280
|
+
- [ ] Before/after and summary shown. On no-op runs, the summary states the pre-existing configuration verbatim and reports "no changes made".
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Output Format
|
|
285
|
+
|
|
286
|
+
See `examples/output-templates.md` for the canonical failure / single-milestone success / multi-milestone success templates. Fill in the placeholders as-is. No record IDs in user-facing output. No files are produced — the skill mutates org configuration in place through headless-360 MCP dispatch.
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Reference File Index
|
|
291
|
+
|
|
292
|
+
| File | When to read |
|
|
293
|
+
|------|--------------|
|
|
294
|
+
| `references/mcp-invocation.md` | Every phase — exact `mcp__headless-360__*` call shapes, payload templates, response envelope, discovery, and gotchas (filter-operator enum, v67 routes, entitlement behavior) |
|
|
295
|
+
| `examples/milestone-patterns.md` | Phase 1.4 — the five milestone strategies (Single, Response + Resolution, Priority-tiered, Escalation ladder, Custom) with default times, criteria, MilestoneType reuse rules, and per-pattern filter-item extensions |
|
|
296
|
+
| `examples/output-templates.md` | Output Format — canonical failure / single-milestone success / multi-milestone success templates |
|
|
297
|
+
| `assets/attach-milestone.json` | Phase 2 step 10 — reusable request-body template for `POST /connect/sla-management/sla-policies/<slaId>/milestones`; substitute `milestoneTypeId`, `businessHoursId`, `timeTrigger`, `order`, and append per-pattern `filterItems` |
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Related Skills
|
|
302
|
+
|
|
303
|
+
This skill configures the end-to-end **Incident SLA** pipeline. Configuring the priority matrix
|
|
304
|
+
(Impact × Urgency → Priority) is a separate concern handled by
|
|
305
|
+
`service-itsm-incident-priority-configure` — if a Priority-tiered milestone strategy is requested
|
|
306
|
+
but the org's `Incident.Priority` picklist is missing values, direct the user to that skill first.
|
|
307
|
+
Other adjacent ITSM setup flows (Major Incident Management, custom fields on Incident / Problem /
|
|
308
|
+
ChangeRequest) are out of scope; use their dedicated skill when available.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"milestoneTypeId": "<milestoneTypeId from Phase 2 step 8>",
|
|
3
|
+
"businessHoursId": "<businessHoursId resolved in Phase 1>",
|
|
4
|
+
"timeTrigger": 60,
|
|
5
|
+
"order": 1,
|
|
6
|
+
"startTimeBasedOn": "SlaProcessCreatedDate",
|
|
7
|
+
"milestoneCriteria": [
|
|
8
|
+
{
|
|
9
|
+
"milestoneState": "Active",
|
|
10
|
+
"milestoneAgreementType": "Warning",
|
|
11
|
+
"filterType": "RuleFilter",
|
|
12
|
+
"filterItems": [
|
|
13
|
+
{
|
|
14
|
+
"table": "Incident",
|
|
15
|
+
"column": "Status",
|
|
16
|
+
"operator": "NotEqual",
|
|
17
|
+
"order": 1,
|
|
18
|
+
"value": "Closed"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|