@salesforce/afv-skills 1.60.0 → 1.62.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 +3 -3
- package/skills/agentforce-architecture-analyze/README.md +2 -1
- package/skills/agentforce-d360-analyze/README.md +1 -1
- package/skills/agentforce-generate/README.md +1 -0
- package/skills/crm-analytics-wave-generate/SKILL.md +212 -0
- package/skills/crm-analytics-wave-generate/assets/dashboard-template.json +66 -0
- package/skills/crm-analytics-wave-generate/assets/wapp-meta-template.xml +10 -0
- package/skills/crm-analytics-wave-generate/assets/wdash-meta-template.xml +6 -0
- package/skills/crm-analytics-wave-generate/assets/wdpr-meta-template.xml +11 -0
- package/skills/crm-analytics-wave-generate/examples/industry-binding-dashboard.wdash +67 -0
- package/skills/crm-analytics-wave-generate/examples/opportunity-revenue-recipe.wdpr +132 -0
- package/skills/crm-analytics-wave-generate/examples/pipeline-by-industry-quarter.wdpr +236 -0
- package/skills/crm-analytics-wave-generate/examples/wdpr-skeleton.wdpr +62 -0
- package/skills/crm-analytics-wave-generate/references/dashboard-authoring.md +157 -0
- package/skills/crm-analytics-wave-generate/references/dataset-hygiene.md +27 -0
- package/skills/crm-analytics-wave-generate/references/external-data-upload.md +61 -0
- package/skills/crm-analytics-wave-generate/references/method-decision-tree.md +12 -0
- package/skills/crm-analytics-wave-generate/references/r3-node-schema.md +194 -0
- package/skills/crm-analytics-wave-generate/references/scripts-reference.md +17 -0
- package/skills/crm-analytics-wave-generate/references/ui-section-template.md +68 -0
- package/skills/crm-analytics-wave-generate/scripts/check_connector_error.sh +53 -0
- package/skills/crm-analytics-wave-generate/scripts/create_app.js +59 -0
- package/skills/crm-analytics-wave-generate/scripts/deploy_and_run_recipe.js +122 -0
- package/skills/crm-analytics-wave-generate/scripts/fetch_dataset_xmd.js +59 -0
- package/skills/crm-analytics-wave-generate/scripts/find_unused_dataset_fields.js +96 -0
- package/skills/crm-analytics-wave-generate/scripts/gen_synthetic_dataset.js +137 -0
- package/skills/crm-analytics-wave-generate/scripts/patch_t_oppo_view.js +99 -0
- package/skills/crm-analytics-wave-generate/scripts/probe_recipe.js +47 -0
- package/skills/crm-analytics-wave-generate/scripts/upload_dataset.js +119 -0
- package/skills/crm-analytics-wave-generate/scripts/verify_dashboard_steps.js +99 -0
- package/skills/crm-analytics-wave-generate/scripts/verify_synthetic_dataset.js +86 -0
- package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +59 -20
- package/skills/service-itsm-agentic-setup-incident-management/examples/output-templates.md +5 -1
- package/skills/service-itsm-agentic-setup-incident-management/references/incident-persona-psg.md +2 -2
- package/skills/service-itsm-agentic-setup-incident-management/references/incident-preferences.md +2 -2
- package/skills/service-itsm-agentic-setup-incident-management/references/major-incident-management.md +5 -5
- package/skills/service-itsm-agentic-setup-incident-management/references/service-mgmt-privilege.md +5 -5
- package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +67 -100
- package/skills/service-itsm-agentic-setup-incident-sla-configure/assets/attach-milestone-action.json +2 -2
- package/skills/service-itsm-agentic-setup-incident-sla-configure/assets/attach-milestone.json +2 -2
- package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md +23 -22
- package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/output-templates.md +3 -3
- package/skills/service-itsm-agentic-setup-incident-sla-configure/references/mcp-invocation.md +182 -58
- package/skills/service-itsm-agentic-setup-incident-sla-configure/references/workflow.md +157 -88
- package/skills/service-de-channel-consent-configure/SKILL.md +0 -230
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: service-itsm-agentic-setup-incident-sla-configure
|
|
3
|
-
description: "End-to-end Incident SLA setup for Service Cloud ITSM —
|
|
3
|
+
description: "End-to-end Incident SLA setup for Service Cloud ITSM — the policy's Business Hours (reuse a named schedule, or create one from described hours or a time zone), MilestoneTypes, an Incident-scoped SLA Policy (SlaProcess), Milestones with criteria, and the Entitlement so Incidents get an EntityMilestone with a computed TargetDate. Use when the user asks to create or set up an Incident SLA policy (predefined or custom, with or without specific business hours), configure SLA milestones on Incidents, set up entitlement processes for ITSM, or enable SLA tracking for incident management. For Incidents, use this instead of the single-step SLA policy, milestone, or activation skills. 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
4
|
metadata:
|
|
5
|
-
version: "3.
|
|
5
|
+
version: "3.10"
|
|
6
6
|
domains: ["Service"]
|
|
7
7
|
minApiVersion: "67.0"
|
|
8
|
-
accessCheck:
|
|
9
|
-
- type: "userPerm"
|
|
10
|
-
value: "CustomizeApplication"
|
|
11
|
-
- type: "orgPerm"
|
|
12
|
-
value: "IncidentMgmt.orgHasITSMOrgPermission"
|
|
13
8
|
relatedSkills:
|
|
14
9
|
- "service-itsm-incident-mgmt-configure"
|
|
15
10
|
- "service-itsm-incident-priority-configure"
|
|
@@ -31,21 +26,22 @@ allowed-tools: |
|
|
|
31
26
|
Configures a complete **Incident SLA pipeline** for Service Cloud ITSM — the chain deriving an
|
|
32
27
|
EntityMilestone (with a computed TargetDate) on every Incident with an Entitlement, all via the
|
|
33
28
|
Salesforce-hosted **`headless-360`** MCP server (org from the OAuth JWT). Requires the org-level
|
|
34
|
-
**
|
|
29
|
+
**IT Service Management enablement** (the Phase 1a gate) and **SLA Management for IT Service**
|
|
30
|
+
setup item (the Phase 1b gate).
|
|
35
31
|
The custom pipeline (four ordered writes): **MilestoneType** (what you measure) → **SLA Policy**
|
|
36
32
|
(SlaProcess, Incident-scoped, created inactive, entry/exit criteria) → **Milestone** (time trigger +
|
|
37
33
|
criteria) → **activate the policy** (`createEntitlement=true`, which auto-provisions the Entitlement —
|
|
38
34
|
matching Incidents then engage the SLA **per-Incident via `EntitlementId`**, with no Account). An
|
|
39
35
|
org-wide auto-apply **entitlement criterion** is an *optional* fifth write, dispatched **only** on an
|
|
40
|
-
explicit always-match request (Phase
|
|
36
|
+
explicit always-match request (Phase 4A step 6) — never by default. (The predefined/OOB
|
|
41
37
|
seed fork differs — it does none of this by hand: a single seed call provisions the whole active
|
|
42
|
-
bundle — policy, milestones, and Entitlement — in one shot; see Phase
|
|
38
|
+
bundle — policy, milestones, and Entitlement — in one shot; see Phase 2 / Phase 4B.)
|
|
43
39
|
This skill owns all the Incident-SLA **interaction** (gates, forks, milestone strategy,
|
|
44
|
-
verification); the raw **write** operations are **delegated to the approved
|
|
40
|
+
verification); the raw **write** operations are **delegated to the approved SLA
|
|
45
41
|
leaf capabilities** (`csp-sun/MilestoneTypes`, `create-sla-policy`, `create-milestone`,
|
|
46
42
|
`create-milestone-action`, `activate-sla-policy`, `create-entitlement-criteria`), which own the
|
|
47
43
|
approved Connect contracts — discover → describe → dispatch each rather than re-deriving its shape here.
|
|
48
|
-
The Phase
|
|
44
|
+
The Phase 1b **enable** (+ Versioning) and Phase 4B **seed** writes delegate to
|
|
49
45
|
**`itsm-shakti/SLASettings`** (owns the SLA-Management settings surface) — same discover → describe → dispatch.
|
|
50
46
|
|
|
51
47
|
## Scope
|
|
@@ -54,8 +50,8 @@ The Phase 0.5 **enable** (+ Versioning) and Phase 2-OOB **seed** writes delegate
|
|
|
54
50
|
activation with its auto-provisioned Entitlement, and — only on an explicit org-wide always-match
|
|
55
51
|
request — the optional auto-apply criterion) + verifying SLA
|
|
56
52
|
engagement on Incident records; gating
|
|
57
|
-
**SLA Management for IT Service** (Phase
|
|
58
|
-
policy vs a custom one (Phase
|
|
53
|
+
**SLA Management for IT Service** (Phase 1b); offering the OOB *Standard Support for Incidents*
|
|
54
|
+
policy vs a custom one (Phase 2, Incident only) — all via `headless-360` MCP.
|
|
59
55
|
- **Out of scope**: Case SLA/entitlements; Assignment Rules; Escalation Rules; Notification
|
|
60
56
|
Rules; general Entitlement CRUD not related to Incident SLA; SLA reporting.
|
|
61
57
|
|
|
@@ -68,7 +64,7 @@ masked** (`557VW…R3XVYA0` still leaks) — in **any** user-facing text: interi
|
|
|
68
64
|
final report. Holds for artifacts you **created** *and* ones you **detected/reused** — name each (the
|
|
69
65
|
name you supplied on create, or matched on reuse), keep its Id internal (chaining only). Verifying or
|
|
70
66
|
matching via SOQL? Report the **verified attributes/name**, never the Id you queried by. **Looking *up*
|
|
71
|
-
an Id is the same rule** — resolving
|
|
67
|
+
an Id is the same rule** — resolving **Business Hours** (resolved, user-selected, or created in Phase 4A step 1) or an existing policy returns
|
|
72
68
|
`{Id, Name}`; narrate the resolved **name only** and keep the returned Id internal — **never** echo it
|
|
73
69
|
back as `Resolved "<name>" (001VW…)`. One
|
|
74
70
|
exception: on a **halt** you may relay the raw error body verbatim even if it embeds an Id —
|
|
@@ -76,7 +72,7 @@ don't hand-edit it.
|
|
|
76
72
|
|
|
77
73
|
- **Wrong:** `SLA policy created (552VW…)` · `Incident created (0ny…)` · `First Response → 557VW…R3XVYA0` (reuse)
|
|
78
74
|
- **Right:** `Created SLA policy "Standard Support for Incidents"` · `reusing the existing First Response
|
|
79
|
-
milestone type` · the test Incident is "the test Incident" until Phase
|
|
75
|
+
milestone type` · the test Incident is "the test Incident" until Phase 6, then its `IncidentNumber`;
|
|
80
76
|
milestones by `MilestoneType` name.
|
|
81
77
|
|
|
82
78
|
---
|
|
@@ -92,81 +88,49 @@ from `{status_code, body}`. Full route table with request/response shapes: `refe
|
|
|
92
88
|
## Clarifying Questions
|
|
93
89
|
|
|
94
90
|
Ask only what you cannot infer from context (pre-populate; note "(from conversation)"). **Resolve the
|
|
95
|
-
Phase
|
|
96
|
-
confirm before mutating); **milestone strategy?** (Phase
|
|
91
|
+
Phase 1a and Phase 1b gates first, in that order.** Then: **which org?** (`headless-360` binds to the current OAuth session —
|
|
92
|
+
confirm before mutating); **milestone strategy?** (Phase 3b); **milestone criteria?** (default
|
|
97
93
|
`Status != Closed` + pattern-specific filters). **Do not ask for an Account** — Incident has no
|
|
98
|
-
Account field; engagement is per-Incident via `EntitlementId`.
|
|
94
|
+
Account field; engagement is per-Incident via `EntitlementId`. **Business Hours:** ask only when the
|
|
95
|
+
user's choice is ambiguous or the org has none (Phase 3a step 4); never ask on the Predefined path.
|
|
99
96
|
|
|
100
|
-
Default suggestion: SLA Policy `Incident SLA Policy`, default
|
|
97
|
+
Default suggestion: SLA Policy `Incident SLA Policy`, suggested default Business Hours (confirmed at
|
|
98
|
+
Phase 3c), Entitlement
|
|
101
99
|
auto-provisioned on activation (no Account), engagement per-Incident via `EntitlementId`, milestone
|
|
102
|
-
strategy resolved per Phase
|
|
100
|
+
strategy resolved per Phase 3b.
|
|
103
101
|
|
|
104
102
|
---
|
|
105
103
|
|
|
106
104
|
## Workflow
|
|
107
105
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
- **Phase
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
`
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
- **Phase
|
|
135
|
-
|
|
136
|
-
the SLA Connect ops, Incident describe (`EntitlementId`/`SlaStartDate`/`SlaExitDate` **+ the live
|
|
137
|
-
`Incident.Priority` picklist** for Priority-tiered reconciliation), default BusinessHours,
|
|
138
|
-
idempotency probe. **No Account is resolved — Incident has no Account field; engagement is
|
|
139
|
-
per-Incident via `EntitlementId` (neither flow needs or asks for an Account).** Any
|
|
140
|
-
`401`/`403`/`404` → halt and surface the raw error.
|
|
141
|
-
- **Phase 1.4 — Milestone strategy.** Load `examples/milestone-patterns.md` (skip conditions + the
|
|
142
|
-
five strategies, defaults, MilestoneType-reuse). Never silently default to Single.
|
|
143
|
-
- **Phase 1.5 — Confirm before mutating.** Narrate the resolved plan (org, SLA name, engagement model
|
|
144
|
-
= per-Incident via `EntitlementId` (no Account), **full per-milestone list** — never collapse to "N
|
|
145
|
-
milestones"); require an explicit "yes" unless a skip
|
|
146
|
-
condition holds (up-front auth / no-op / prior confirmation). Everything after this mutates the org.
|
|
147
|
-
- **Phase 2 — Create SLA artifacts (delegated writes, exact order).** The skill decides every input;
|
|
148
|
-
**delegate each raw write to its approved csp-sun SLA leaf**. The **four ordered core writes**:
|
|
149
|
-
`MilestoneTypes` → `create-sla-policy` (created inactive) → `create-milestone` ×N →
|
|
150
|
-
`activate-sla-policy` (auto-provisions the Entitlement). Do not re-derive Connect shapes.
|
|
151
|
-
`create-entitlement-criteria` is an **optional step 12** — dispatch it **only** on an explicit
|
|
152
|
-
org-wide always-match request; otherwise engagement is per-Incident via `EntitlementId` and no
|
|
153
|
-
criterion is written. The **Priority reconciliation** lands at the milestone step: match every value to
|
|
154
|
-
the live picklist, drop/rename unmatched standard rows, **and add a milestone for each custom active
|
|
155
|
-
value**. Verify via SOQL, not the write response; halt on any milestone-create failure (no
|
|
156
|
-
half-attached policy).
|
|
157
|
-
- **Phase 2-OOB — Seed the predefined policy.** One call to the platform seeder route
|
|
158
|
-
(`PATCH /headless/invoke/platform/slasettings/save-selected-options`, body
|
|
159
|
-
`{"selectedOptions":["incident"]}` — values **lowercase**) provisions the whole active bundle:
|
|
160
|
-
the policy, its 2 MilestoneTypes + 6 milestones, and the Entitlement + auto-apply criteria — all
|
|
161
|
-
active, in one shot. No per-leaf csp-sun calls, no manual `POST /sobjects/Entitlement`, no activate
|
|
162
|
-
PATCH. Detect first (`GET /headless/invoke/platform/slasettings`, key `incident:true` = already
|
|
163
|
-
seeded) because the seeder isn't idempotent. Detect + seed **delegate to `itsm-shakti/SLASettings`**.
|
|
164
|
-
- **Phase 2.5 — Milestone actions (optional).** Only if warn/escalate/notify asked; apply to **every**
|
|
165
|
-
named milestone; confirm from `body.success` + non-empty `actionMappings`, not the `201`.
|
|
166
|
-
- **Phase 3 — Verify.** SOQL-confirm the policy read back `active=true`; create a test Incident on a
|
|
167
|
-
**non-lowest tier** (set `Urgency`/`Impact` — `Priority` is matrix-derived, not directly
|
|
168
|
-
insertable); confirm an `EntityMilestone` on the correct tier with a `TargetDate` (a null
|
|
169
|
-
`SlaStartDate` under auto-apply is a non-blocker). Then report.
|
|
106
|
+
Sequential — **always read before you write**; every call goes through `mcp__headless-360__*`.
|
|
107
|
+
**Per-phase detail (reads, delegated writes, API quirks) lives in `references/workflow.md` — read it
|
|
108
|
+
before executing.** Phase index and their non-negotiable gates:
|
|
109
|
+
|
|
110
|
+
- **Before you start — Reuse session state** only from a successful `dispatch_readonly` this session on this
|
|
111
|
+
org, unwritten since; a user statement is never cache-eligible.
|
|
112
|
+
- **Phase 1a — IT Service Management gate** (`service-cloud-itsm-setup`). `NOT_ENABLED` → one ack
|
|
113
|
+
(reversible) → direct enable → re-read.
|
|
114
|
+
- **Phase 1b — SLA Management gate.** SLA Management **and** the permanent SLA Versioning switch — two
|
|
115
|
+
writes, two separate acks (master, then permanence); delegate to `itsm-shakti/SLASettings`.
|
|
116
|
+
- **Phase 2 — Predefined vs Custom** (Incident only). Detect the seeded policy first; read the live
|
|
117
|
+
`Incident.Priority` picklist before the fork (custom values → recommend Custom); warn if the
|
|
118
|
+
priority matrix is off (only the default tier fires); Business Hours note only if the user
|
|
119
|
+
specified hours. Predefined → 4B → 5 (if asked) → 6 → **STOP**;
|
|
120
|
+
Custom → 3a → 3b → 3c → 4A → 5 (if asked) → 6.
|
|
121
|
+
- **Phase 3a — Preflight.** Master Incident Mgmt (`service-cloud-itsm-incident`; `NOT_AVAILABLE` →
|
|
122
|
+
HALT, `NOT_ENABLED` → one ack + delegate), `discover`/`describe` the SLA ops, Incident describe,
|
|
123
|
+
resolve Business Hours, idempotency probe. No Account. `401`/`403`/`404` → halt with the raw error.
|
|
124
|
+
- **Phase 3b — Milestone strategy** per `examples/milestone-patterns.md`.
|
|
125
|
+
- **Phase 3c — Confirm** the full plan (Business Hours by name, every milestone) before any write.
|
|
126
|
+
- **Phase 4A — Create** (Business Hours first if planned, step 1) → `MilestoneTypes` →
|
|
127
|
+
`create-sla-policy` → `create-milestone` ×N → `activate-sla-policy`; optional step 6 criterion
|
|
128
|
+
only on an explicit always-match request.
|
|
129
|
+
- **Phase 4B — Seed** via `save-selected-options` (`{"selectedOptions":["incident"]}`), delegated
|
|
130
|
+
to `itsm-shakti/SLASettings`; verify and name its Business Hours.
|
|
131
|
+
- **Phase 5 — Milestone actions** (only if asked) on every named milestone.
|
|
132
|
+
- **Phase 6 — Verify** via SOQL + a non-lowest-tier test Incident with an `EntityMilestone`; matrix
|
|
133
|
+
off or still order-1 after one retry → stop and report the other tiers unchecked.
|
|
170
134
|
|
|
171
135
|
---
|
|
172
136
|
|
|
@@ -174,16 +138,18 @@ non-negotiable gates (constraints table + verification checklist below):
|
|
|
174
138
|
|
|
175
139
|
| Constraint | Rationale |
|
|
176
140
|
|-----------|-----------|
|
|
177
|
-
| Gate **
|
|
178
|
-
|
|
|
141
|
+
| Gate **IT Service Management enablement** first (Phase 1a, before Phase 1b) — exact apiName `service-cloud-itsm-setup`, never a look-alike; `NOT_ENABLED` → tell the user plainly + a single ack to enable (reversible) or stop; the enable write is dispatched **directly** (no owning SOR exists yet) and re-read to confirm | Higher-level org gate sits above every ITSM feature, including the Master Incident Mgmt pref below |
|
|
142
|
+
| Gate **SLA Management** first (Phase 1b) — **two separate writes** (SLA Management, then the one-way **SLA Versioning**); **two separate acks (master, then permanence) — never merged**; decline/blocked/verify-fail → **HALT**; re-read + report real state | Versioning is irreversible; writes don't confirm state |
|
|
143
|
+
| Offer **predefined (OOB)** first (Phase 2, Incident only); detect before seed; if chosen, seed → verify → **STOP** (no custom upsell) | OOB seed isn't idempotent — re-seed duplicates |
|
|
179
144
|
| `discover` + `describe` before any mutation | Catches a missing SLA surface / disabled Incident Mgmt early |
|
|
180
145
|
| Ask (`AskUserQuestion`) the milestone strategy — never silently default to Single | Real ITSM policies have >1 milestone |
|
|
181
146
|
| Reuse one MilestoneType per shared name; a distinct one per distinct concern | Runtime keys milestones by MilestoneType |
|
|
182
147
|
| Multi-milestone: halt on any milestone-create failure (no half-attached policy) | Partial attach diverges from the confirmed plan |
|
|
183
148
|
| Priority-tiered: reconcile every `Priority` value against the live picklist before dispatch — drop/rename standard rows that don't match **and add a milestone for each custom active value** the org added | Server accepts any string → an unknown value is a dead milestone; a custom value with no milestone gets no SLA |
|
|
184
|
-
| **Delegate every write to its approved
|
|
149
|
+
| **Delegate every write to its approved SLA leaf** (`MilestoneTypes`, `create-sla-policy`, `create-milestone`, `create-milestone-action`, `activate-sla-policy`, `create-entitlement-criteria`) — the skill decides inputs, the leaf owns the contract. Scoped inline exceptions (no served owning SOR yet): the Phase 1a enable and the Phase 4A step 1 Business Hours create | Single contract-owner per write; the skill re-deriving Connect shapes drifts from the served leaves |
|
|
150
|
+
| **Business Hours** (Custom): honor a named schedule, described calendar, or time zone (time zone only → ask 24×7 (recommended) or custom hours; reuse a match, else create one after the Phase 3c confirm); zero active → offer a 24×7 create. Never set `IsDefault` or modify an existing record. Predefined: the seeder always uses the org default — warn only if the user specified hours | Default 24×7 or the customer's own calendar; `BusinessHours` is not API-deletable, so creates are confirmed first |
|
|
185
151
|
| **Custom flow**: activation provisions the auto-Entitlement (`activate-sla-policy`: `isActive` + `createEntitlement` as **QUERY params**) — matching Incidents then engage **per-Incident via `EntitlementId`** (**not** a manual sObject Entitlement, and no Account). An org-wide auto-apply criterion via `create-entitlement-criteria` is **optional** — only on an explicit always-match request, never by default. **OOB seed path**: one seeder call (`save-selected-options`, lowercase `selectedOptions`) provisions the entire active bundle incl. the Entitlement — no per-leaf calls, no manual `POST /sobjects/Entitlement`, no activate PATCH | Custom: one call activates **and** provisions, so a manual `POST /sobjects/Entitlement` would duplicate it. OOB: the platform seeder builds and activates the whole default bundle server-side, so the skill neither rebuilds it leaf-by-leaf nor provisions the Entitlement by hand |
|
|
186
|
-
| **No record Id in any message** (see Output contract, incl. reused artifacts); `AskUserQuestion` labels customer-facing (no "demo"/internal defaults) |
|
|
152
|
+
| **No record Id in any message** (see Output contract, incl. reused artifacts); `AskUserQuestion` labels customer-facing (no "demo"/internal defaults) | Leaked Ids / internal framing look unprofessional to the customer |
|
|
187
153
|
| **Another Incident policy already active + Custom chosen → narrate coexistence only.** The custom policy is targeted **per-Incident via `EntitlementId`** (Incident has no Account field to scope on) and **additive**; the existing (predefined/broad) policy stays the org-wide one. **Never offer, plan, or perform — in the fork *or* the closing report —** deactivating an existing policy, reordering its entitlement criteria, **broadening the custom policy to match-all / auto-apply-to-all, or "deciding/resolving precedence" across policies**. Target specific Incidents via `EntitlementId`; the existing policy stays active (see `references/workflow.md` → Coexistence) | Changing a policy the user didn't ask to touch is out of scope — this skill configures a *new* coexisting custom policy, not edits to an existing one. Deactivating (`activate-sla-policy` *can* send `isActive=false`) or re-ranking another policy's criteria risks disrupting a live SLA, and no leaf arbitrates cross-policy precedence (predefined: no un-seed path, manual delete only). Both are meant to coexist — the agent otherwise improvises an out-of-scope deactivation/reorder/precedence upsell |
|
|
188
154
|
|
|
189
155
|
Additional API quirks: `references/mcp-invocation.md`.
|
|
@@ -192,18 +158,19 @@ Additional API quirks: `references/mcp-invocation.md`.
|
|
|
192
158
|
|
|
193
159
|
## Verification Checklist
|
|
194
160
|
|
|
195
|
-
- [ ] **
|
|
196
|
-
- [ ] **
|
|
161
|
+
- [ ] **IT Service Management enablement gated (Phase 1a)** — exact apiName `service-cloud-itsm-setup` read `ENABLED` via live read, or the user explicitly acked an enable (reversible) that a re-read confirms; declined / unexpected status → **HALTED** before Phase 1b.
|
|
162
|
+
- [ ] **SLA Management gated (Phase 1b)** — SLA Management + SLA Versioning both on (two separate writes), only after the **permanence ack** (separate from the master ack); reported state = a re-read, not the write. Declined / blocked / verify-fail → **HALTED** before Phase 2/3a, no artifacts.
|
|
163
|
+
- [ ] **Predefined vs Custom offered (Phase 2)** — with the feature ON, OOB *Standard Support for Incidents* offered first; if present, reported not re-seeded; if chosen, seeded (2 MilestoneTypes + 6 milestones + Entitlement), verified, **no** custom offer after.
|
|
197
164
|
- [ ] Master Incident Mgmt pref (exact `service-cloud-itsm-incident`) `ENABLED` via live read, or delegated when `NOT_ENABLED` (`NOT_AVAILABLE` → HALT) — not a user assertion, not a look-alike.
|
|
198
165
|
- [ ] `discover`/`describe` confirmed the SLA Connect ops.
|
|
199
166
|
- [ ] Incident describe returned 200 with `EntitlementId`, `SlaStartDate`, `SlaExitDate`.
|
|
200
|
-
- [ ]
|
|
201
|
-
- [ ] **Milestone strategy resolved** — Phase
|
|
202
|
-
- [ ] **Configuration confirmed OR skip condition met** (up-front auth / no-op / prior confirmation / "yes"); the resolved plan (org, SLA name, engagement model = per-Incident via `EntitlementId` (no Account), per-milestone list) narrated before Phase
|
|
203
|
-
- [ ] Writes **delegated to the
|
|
204
|
-
- [ ] **Milestone actions (Phase
|
|
205
|
-
- [ ] SLA Policy verified via SOQL, not the create response (no-op: the Phase-
|
|
206
|
-
- [ ] Test Incident has ≥1 EntityMilestone on the **correct tier** with a `TargetDate` (the engagement proof; Priority matched for Priority-tiered); expected milestone(s) present. `SlaStartDate` populated confirms it too, but may be null when the Entitlement is auto-applied via criteria — not a failure. Skip on no-op.
|
|
167
|
+
- [ ] Active Business Hours resolved and named in the confirmed plan — the user's named schedule / a matching calendar / the org default / a user-selected record, or a create (described calendar or 24×7 when none exist) confirmed at Phase 3c, then SOQL-verified active. Predefined: the seeded policy's Business Hours reported by name (or "none").
|
|
168
|
+
- [ ] **Milestone strategy resolved** — Phase 3b skip condition OR `AskUserQuestion`; Priority-tiered / Custom reconciled every `Priority`/criteria value against the live picklist before dispatch (dropped/renamed unmatched standard rows **and** added a milestone for each custom active `Priority` value).
|
|
169
|
+
- [ ] **Configuration confirmed OR skip condition met** (up-front auth / no-op / prior confirmation / "yes"); the resolved plan (org, SLA name, Business Hours by name, engagement model = per-Incident via `EntitlementId` (no Account), per-milestone list) narrated before Phase 4A.
|
|
170
|
+
- [ ] Writes **delegated to the SLA leaves** in order — the four core writes: MilestoneType(s) → Policy → Milestone(s) → activate + auto-Entitlement (the optional org-wide auto-apply criterion only if explicitly requested); any milestone-create failure halted (no partial attach). Trivial on no-op.
|
|
171
|
+
- [ ] **Milestone actions (Phase 5)** — if requested, attached to **every** named milestone; each confirmed from `body.success` + `actionMappings`, not the `201`; full set narrated before write.
|
|
172
|
+
- [ ] SLA Policy verified via SOQL, not the create response (no-op: the Phase-3a read is the verification).
|
|
173
|
+
- [ ] Test Incident has ≥1 EntityMilestone on the **correct tier** with a `TargetDate` (the engagement proof; Priority matched for Priority-tiered); expected milestone(s) present. Matrix off / still order-1 after one retry → reported "other tiers not checked" + pointed to `service-itsm-incident-priority-configure`, no recreate loop. `SlaStartDate` populated confirms it too, but may be null when the Entitlement is auto-applied via criteria — not a failure. Skip on no-op.
|
|
207
174
|
- [ ] **No record Id in any message** — interim narration *and* final report; artifacts by name, test Incident by `IncidentNumber` (see Output contract).
|
|
208
175
|
- [ ] Before/after + summary shown; no-op states the pre-existing config verbatim + "no changes made".
|
|
209
176
|
|
|
@@ -219,11 +186,11 @@ Use the `examples/output-templates.md` templates; fill placeholders as-is. The s
|
|
|
219
186
|
|
|
220
187
|
| File | When to read |
|
|
221
188
|
|------|--------------|
|
|
222
|
-
| `references/workflow.md` | Executing — the full step-by-step Phase
|
|
189
|
+
| `references/workflow.md` | Executing — the full step-by-step Phase 1–6 detail (per-phase reads, delegated writes, API quirks); the constraints table + verification checklist stay in this SKILL.md body |
|
|
223
190
|
| `references/mcp-invocation.md` | Every phase — call shapes, templates, response envelope, discovery, gotchas |
|
|
224
|
-
| `examples/milestone-patterns.md` | Phase
|
|
225
|
-
| `assets/attach-milestone.json` | Phase
|
|
226
|
-
| `assets/attach-milestone-action.json` | Phase
|
|
191
|
+
| `examples/milestone-patterns.md` | Phase 3b — the five strategies: times, criteria, MilestoneType reuse, filter extensions |
|
|
192
|
+
| `assets/attach-milestone.json` | Phase 4A step 4 — milestone POST body; substitute ids/timeTrigger/order; append `filterItems` |
|
|
193
|
+
| `assets/attach-milestone-action.json` | Phase 5 — Warn/Escalate action body templates (Field Update); pair with mcp-invocation.md (Milestone Actions) |
|
|
227
194
|
| `examples/output-templates.md` | Output Format — success/partial report templates; fill placeholders, no record Id |
|
|
228
195
|
|
|
229
196
|
---
|
package/skills/service-itsm-agentic-setup-incident-sla-configure/assets/attach-milestone-action.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_notes": "Phase
|
|
2
|
+
"_notes": "Phase 5 request-body templates for POST /connect/sla-management/sla-policies/<slaId>/milestones/<milestoneId>/actions. Send EXACTLY ONE action sub-object per call. timeLength/timeUnit live INSIDE checkpoint. timeUnit is Minutes|Hours|Days only. Never send isInitiationCheckpoint. Confirm success from body.success + non-empty body.actionMappings (+ triggerId for timed checkpoints), not the 201. UNIQUENESS: the actionFieldUpdate name/developerName must be unique per milestone (a WorkflowFieldUpdate DeveloperName is unique on the Incident object) — attaching the same-named action to a second milestone fails with DUPLICATE_DEVELOPER_NAME. Suffix both with the milestone (e.g. _FR for First Response, _RES for Resolution). These mirror the example bodies in references/mcp-invocation.md (Milestone Actions — see 'Milestone-action bodies') — keep the two in sync.",
|
|
3
3
|
|
|
4
4
|
"warningAction": {
|
|
5
5
|
"_notes": "Warn BEFORE target. timeLength = round(targetMinutes * (1 - X/100)). 2-hr (120-min) milestone, warn at 75% -> 30 min before. Default action = Field Update raising Urgency = High. NOTE: Incident.Priority is DERIVED from Impact x Urgency and is NOT directly updateable (createable:false/updateable:false) — a Field Update targeting Priority fails INVALID_FIELD_FOR_INSERT_UPDATE, so escalate by driving its updateable inputs (Urgency here, Impact on breach). Replace <MS> in name/developerName with a per-milestone suffix. For a custom-field target, put its 00N... CustomField id in columnEnumOrId (not the __c API name).",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
|
|
36
36
|
"istBusinessHours": {
|
|
37
|
-
"_notes": "'IST business hours' is a POLICY-level BusinessHours, not a milestone-action field. Resolve-then-create: reuse an existing BusinessHours with TimeZoneSidKey='Asia/Kolkata' if present, else POST /sobjects/BusinessHours with this body (confirm first; BusinessHours is NOT API-deletable). Attach via the policy/Entitlement BusinessHoursId.
|
|
37
|
+
"_notes": "'IST business hours' is a POLICY-level BusinessHours, not a milestone-action field. Resolve-then-create: reuse an existing BusinessHours with TimeZoneSidKey='Asia/Kolkata' if present, else POST /sobjects/BusinessHours with this body (confirm first; BusinessHours is NOT API-deletable). Attach via the policy/Entitlement BusinessHoursId. ignoreMilestoneBusinessHours only changes how time remaining is displayed; target dates still follow these Business Hours.",
|
|
38
38
|
"Name": "IST Business Hours",
|
|
39
39
|
"TimeZoneSidKey": "Asia/Kolkata",
|
|
40
40
|
"MondayStartTime": "09:00:00.000Z",
|
package/skills/service-itsm-agentic-setup-incident-sla-configure/assets/attach-milestone.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"milestoneTypeId": "<milestoneTypeId from Phase
|
|
3
|
-
"businessHoursId": "<businessHoursId resolved in Phase
|
|
2
|
+
"milestoneTypeId": "<milestoneTypeId from Phase 4A step 2>",
|
|
3
|
+
"businessHoursId": "<businessHoursId resolved in Phase 3a>",
|
|
4
4
|
"timeTrigger": 60,
|
|
5
5
|
"order": 1,
|
|
6
6
|
"startTimeBasedOn": "MILESTONE_CRITERIA",
|
package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Milestone Strategy Patterns — Incident SLA
|
|
2
2
|
|
|
3
|
-
Phase
|
|
4
|
-
"Phase
|
|
3
|
+
Phase 3b of the SLA workflow either infers the milestone strategy from the user's prompt (see
|
|
4
|
+
"Phase 3b skip conditions" below) or asks the user to pick one. This file lists each option with
|
|
5
5
|
its default configuration, MilestoneType-reuse rules, and the exact `Attach Milestone` payloads
|
|
6
|
-
that Phase
|
|
6
|
+
that Phase 4A step 4 dispatches. Every `filterItems.operator` value here uses the exact enum the
|
|
7
7
|
server accepts — `Equals`, `NotEqual` — never `!=` or `Equal`.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
## Phase
|
|
11
|
+
## Phase 3b skip conditions (do NOT dispatch `AskUserQuestion` when any hold)
|
|
12
12
|
|
|
13
13
|
Every SLA policy needs at least one milestone, but the strategy question is skipped when the
|
|
14
14
|
milestone shape is already determined by the request:
|
|
@@ -17,14 +17,14 @@ milestone shape is already determined by the request:
|
|
|
17
17
|
first-response trigger", "Response + Resolution defaults", "per-priority tiers". Extract the
|
|
18
18
|
described milestone(s) verbatim (time, criteria, name) and use the pattern defaults below. Do
|
|
19
19
|
NOT re-ask.
|
|
20
|
-
- **(b) The eventual branch is an idempotent no-op** — Phase
|
|
21
|
-
(every requested artifact already exists with matching configuration). Skip Phase
|
|
22
|
-
Phase
|
|
20
|
+
- **(b) The eventual branch is an idempotent no-op** — Phase 3a step 6 established `noOp=true`
|
|
21
|
+
(every requested artifact already exists with matching configuration). Skip Phase 3b, skip
|
|
22
|
+
Phase 4A, and report the no-op verbatim citing the read evidence.
|
|
23
23
|
- **(c) Explicit up-front authorization** — a phrase that unambiguously waives the confirm gate
|
|
24
24
|
(`"you have my explicit authorization to create"`, `"do not re-ask me to confirm"`,
|
|
25
25
|
`"proceed without asking"`) **and** a concrete milestone shape is derivable per (a). A passing
|
|
26
26
|
mention ("build it", "go ahead") is NOT sufficient by itself. Waives the interactive confirm;
|
|
27
|
-
does NOT waive Phase
|
|
27
|
+
does NOT waive Phase 3c plan-narration — dispatch only after SLA Policy name, the engagement model
|
|
28
28
|
(per-Incident via `EntitlementId`; no Account), and the per-milestone list have been written to the
|
|
29
29
|
response.
|
|
30
30
|
|
|
@@ -34,7 +34,8 @@ dispatch `AskUserQuestion` with the five options below. Priority-tiered requires
|
|
|
34
34
|
|
|
35
35
|
All strategies share these defaults unless overridden:
|
|
36
36
|
|
|
37
|
-
- `businessHoursId`: the
|
|
37
|
+
- `businessHoursId`: the Business Hours Id resolved in Phase 3a step 4, or created in Phase 4A step 1 (suggested default or
|
|
38
|
+
user-selected)
|
|
38
39
|
- `startTimeBasedOn`: `MILESTONE_CRITERIA` (timer starts when the milestone's criteria first match; this is the OOB default — send this exact token, see `references/mcp-invocation.md` Attach Milestone)
|
|
39
40
|
- `milestoneAgreementType`: `SLA` — inside each `milestoneCriteria[]` item (mandatory per the UI). Valid UI values are `SLA` (customer-facing) or `OLA` (internal); the API accepts any string because the underlying field is `Text(40)` with no server-side picklist, but the UI renders unrecognized values as blank
|
|
40
41
|
- `milestoneState`: `ACTIVE` (**uppercase — the server matches this value case-sensitively**; `Active`/`active` silently fail to register the criterion) inside `milestoneCriteria[]`
|
|
@@ -44,7 +45,7 @@ All strategies share these defaults unless overridden:
|
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
47
|
-
## AskUserQuestion prompt (Phase
|
|
48
|
+
## AskUserQuestion prompt (Phase 3b, only when no skip condition applies)
|
|
48
49
|
|
|
49
50
|
```text
|
|
50
51
|
Question: How many milestones do you want on this SLA policy?
|
|
@@ -63,16 +64,16 @@ Before rendering options 3 and 5, confirm the live `Incident.Priority` picklist
|
|
|
63
64
|
the pattern against them in **both** directions: if any value used in a default row is missing from
|
|
64
65
|
the org's picklist, drop that milestone; and if the org has **added** active Priority values beyond
|
|
65
66
|
the four default tiers, add a milestone for each so no active Priority value is left without one.
|
|
66
|
-
Note both adjustments in the Phase-
|
|
67
|
+
Note both adjustments in the Phase-3c confirmation.
|
|
67
68
|
|
|
68
69
|
**Hard gate — never assume the picklist.** The reconciliation above requires the *actual* live
|
|
69
70
|
`Incident.Priority` picklist. Do **not** present the Priority-tiered milestone list, and do **not**
|
|
70
71
|
state or imply that the picklist "is the four standard tiers" / "needs no reconciliation", **from
|
|
71
72
|
assumption**. The four standard tiers (Critical/High/Moderate/Low) are only *defaults* — they are
|
|
72
73
|
NOT what the org necessarily has. You may present the tier list **only after** the live
|
|
73
|
-
`Incident.Priority` describe (Phase
|
|
74
|
+
`Incident.Priority` describe (Phase 3a step 3) has actually been dispatched **this session** and you
|
|
74
75
|
have its `fields[].picklistValues` in hand. If it has not run yet — e.g. Custom was invoked
|
|
75
|
-
**directly**, skipping the Phase
|
|
76
|
+
**directly**, skipping the Phase 2 fork where the describe is normally pulled forward — run
|
|
76
77
|
`GET /services/data/v{version}/sobjects/Incident/describe` **now**, before offering or rendering any
|
|
77
78
|
per-priority list, and derive the tiers from its **active** `picklistValues`. An org-added active
|
|
78
79
|
value such as `Emergency` MUST appear as its own milestone; silently defaulting to four tiers leaves
|
|
@@ -84,11 +85,11 @@ those Incidents with no milestone and no SLA engagement.
|
|
|
84
85
|
|
|
85
86
|
Dispatch every pattern below via `mcp__headless-360__dispatch` with `method: "POST"` and
|
|
86
87
|
`url: "/services/data/v{version}/connect/sla-management/sla-policies/<slaId>/milestones"` (substitute
|
|
87
|
-
the SLA policy id captured in Phase
|
|
88
|
+
the SLA policy id captured in Phase 4A step 3). The reusable request-body template lives at
|
|
88
89
|
`assets/attach-milestone.json` — load and populate it rather than reconstructing the JSON.
|
|
89
90
|
|
|
90
91
|
Substitute per-pattern: `milestoneTypeId` is the id returned when you created the MilestoneType,
|
|
91
|
-
`businessHoursId` is the id resolved in Phase
|
|
92
|
+
`businessHoursId` is the id resolved in Phase 3a, and `timeTrigger` + `order` come from the
|
|
92
93
|
pattern's row. `filterItems` in the template carries the base "Status != Closed" row that every
|
|
93
94
|
pattern shares; each pattern's table lists **additional** row objects to append to `filterItems`
|
|
94
95
|
(same schema: `table`, `column`, `operator`, `order`, `value`) — do not replace the base row, add
|
|
@@ -136,7 +137,7 @@ concurrently on its own 8-hour timer.
|
|
|
136
137
|
|
|
137
138
|
Assumes the standard `Critical / High / Moderate / Low` picklist (some orgs and prompts label the
|
|
138
139
|
mid tier `Medium` instead of `Moderate` — same P3 tier, different label). Reconcile the four default
|
|
139
|
-
rows against the **live `Incident.Priority` picklist** (from the Phase-
|
|
140
|
+
rows against the **live `Incident.Priority` picklist** (from the Phase-3a Incident describe) before
|
|
140
141
|
dispatch, handling every difference:
|
|
141
142
|
|
|
142
143
|
- **Renamed** value → rename the milestone's filter to the live label (e.g. `Medium` for the P3 tier).
|
|
@@ -145,7 +146,7 @@ dispatch, handling every difference:
|
|
|
145
146
|
- **Added / custom active** value (any active Priority value not covered by the four default rows) →
|
|
146
147
|
**add a milestone for it** so those Incidents still engage an SLA. Reuse the `Incident First Response`
|
|
147
148
|
MilestoneType, filter `Incident.Priority Equals <customValue>`, and confirm its `timeTrigger` with the
|
|
148
|
-
user in Phase
|
|
149
|
+
user in Phase 3c (offer a sensible default from the nearest standard tier). Do **not** silently skip a
|
|
149
150
|
custom value — an uncovered active Priority means those Incidents get no milestone and no SLA engagement.
|
|
150
151
|
|
|
151
152
|
The multi-item `filterItems` array combines with `AND` by default — both `Status != Closed` AND
|
|
@@ -168,7 +169,7 @@ Incident create (e.g. via the Priority Matrix), the milestone re-evaluates on th
|
|
|
168
169
|
|
|
169
170
|
All three run concurrently once their criteria match (`startTimeBasedOn: MILESTONE_CRITERIA`) — the "ladder" is enforced by the timers,
|
|
170
171
|
not by chaining. To fire automation at a milestone's warning/violation checkpoint (warn before
|
|
171
|
-
target, escalate on breach), attach a **milestone action** in Phase
|
|
172
|
+
target, escalate on breach), attach a **milestone action** in Phase 5 — see
|
|
172
173
|
`references/mcp-invocation.md` (Milestone Actions). (Strictly *sequential* chaining across separate
|
|
173
174
|
milestones is a different mechanism — workflow SLA actions — and remains out of scope.)
|
|
174
175
|
|
|
@@ -191,7 +192,7 @@ For each milestone `i` from 1 to N (where N is confirmed up front):
|
|
|
191
192
|
5. **Criteria value** — validated against the live picklist for picklist fields; free-form
|
|
192
193
|
otherwise.
|
|
193
194
|
|
|
194
|
-
After collecting all N milestones, render the full list in Phase
|
|
195
|
+
After collecting all N milestones, render the full list in Phase 3c confirmation and require an
|
|
195
196
|
explicit "yes" before dispatching the create loop.
|
|
196
197
|
|
|
197
198
|
**Custom-mixed example** (Response for all + per-category resolution):
|
|
@@ -211,7 +212,7 @@ before creating the MilestoneType or attaching the milestone.
|
|
|
211
212
|
## Predefined preset — "Standard Support for Incidents" (OOB)
|
|
212
213
|
|
|
213
214
|
This is Salesforce's out-of-box predefined Incident SLA policy — a fixed priority-tiered preset offered
|
|
214
|
-
at the Phase
|
|
215
|
+
at the Phase 2 fork (not one of the Phase 3b custom options above). It pairs an **Acknowledge Within**
|
|
215
216
|
and a **Resolve Within** milestone per priority tier:
|
|
216
217
|
|
|
217
218
|
| tier | Acknowledge Within | Resolve Within |
|
|
@@ -239,7 +240,7 @@ never a re-seed).
|
|
|
239
240
|
| Issue | Detail |
|
|
240
241
|
|-------|--------|
|
|
241
242
|
| MilestoneType reuse vs. create | Priority-tiered = 1 MilestoneType reused 4 times. Response + Resolution = 2 types. Escalation ladder = 3 types. |
|
|
242
|
-
| Priority-tiered needs a Priority | The test Incident in Phase
|
|
243
|
+
| Priority-tiered needs a Priority | The test Incident in Phase 6 must derive a `Priority` value matching one of the milestones — otherwise no EntityMilestone spawns. `Priority` is not directly insertable — set `Impact` and `Urgency` so the org's matrix derives the target Priority (see `references/mcp-invocation.md` → Verify SLA engagement) — subject to the Phase 6 step 2 stopping rule. |
|
|
243
244
|
| Multi-milestone partial-failure | If milestone #2 of N fails to attach, halt and surface the raw error. Do NOT continue attaching #3..N — the policy will be half-configured. |
|
|
244
245
|
| `order` field | Numeric 1..N. Not load-bearing for runtime evaluation (all milestones fire independently), but controls display order in the UI. |
|
|
245
|
-
| Priority-tiered + Priority Matrix skill | `Incident.Priority` is
|
|
246
|
+
| Priority-tiered + Priority Matrix skill | `Incident.Priority` is derived from the Impact × Urgency matrix only when the matrix is **on** (`IncPriorityMatrixEnabled`); when it is off, every Incident gets the org's default priority, so only that tier's milestone fires. `service-itsm-incident-priority-configure` turns the matrix on and configures the mapping — run it first (see `references/mcp-invocation.md` → Priority matrix flag). |
|
package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/output-templates.md
CHANGED
|
@@ -12,7 +12,7 @@ Display the error from the `dispatch` response (`{status_code, body}`) exactly a
|
|
|
12
12
|
Incident SLA Setup Complete (via service-itsm-agentic-setup-incident-sla-configure)
|
|
13
13
|
|
|
14
14
|
Artifacts created:
|
|
15
|
-
Milestone Type: <name> (
|
|
15
|
+
Milestone Type: <name> (No Recurrence)
|
|
16
16
|
SLA Policy: <name> (Active, Incident)
|
|
17
17
|
Milestone: <time> min, criteria: <criteria summary>
|
|
18
18
|
Entitlement: <name> (auto-provisioned; no Account — Incident engages per-Incident via EntitlementId)
|
|
@@ -35,7 +35,7 @@ Incident SLA Setup Complete (via service-itsm-agentic-setup-incident-sla-configu
|
|
|
35
35
|
Strategy: <Response + Resolution | Priority-tiered | Escalation ladder | Custom>
|
|
36
36
|
|
|
37
37
|
Artifacts created:
|
|
38
|
-
Milestone Types: <name1>, <name2>, ... (
|
|
38
|
+
Milestone Types: <name1>, <name2>, ... (No Recurrence)
|
|
39
39
|
SLA Policy: <name> (Active, Incident)
|
|
40
40
|
Milestones:
|
|
41
41
|
#1 <MilestoneType name> <time> min criteria: <summary>
|
|
@@ -62,7 +62,7 @@ Verification:
|
|
|
62
62
|
No test Incident was created, so EntityMilestone firing was not exercised in this run.
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
## Success — milestone actions (Phase
|
|
65
|
+
## Success — milestone actions (Phase 5, when Warn/Escalate was requested)
|
|
66
66
|
|
|
67
67
|
Append this **Milestone Actions** block to the multi-milestone success report above — do not emit it
|
|
68
68
|
alone. The report must still carry the policy, both milestones (name, time, criteria), the
|