You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Enhance SLA Breach Risk functionality and UI integration
- Increased max_length for agent prompt to 5000
- Added fields parameter to list and search tickets for selective data retrieval
- Updated timeout for usecase demo agent to 300 seconds
- Introduced SLA Breach Risk demo with detailed prompt and ticket analysis
- Added E2E tests for SLA Breach Risk demo page
description="Search tickets by text across summary, description, notes, resolution, requester, group, city. Returns JSON array.",
395
+
description="Search tickets by text across summary, description, notes, resolution, requester, group, city. Optional fields param (comma-separated) to limit returned fields. Returns JSON array.",
Copy file name to clipboardExpand all lines: frontend/src/features/usecase-demo/demoDefinitions.js
+69Lines changed: 69 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,33 @@ const OPS_DEFAULT_PROMPT = `Analysiere Tickets zu "Outlook" oder "E-Mail" und er
4
4
Liefere nur eine kurze, handlungsorientierte Zusammenfassung mit Prioritäten und nächstem Schritt.
5
5
Nutze ausschließlich CSV-Daten und nenne die verwendeten Ticket-IDs in Fließtext.`
6
6
7
+
constSLA_BREACH_DEFAULT_PROMPT=`Find all tickets where the "assignee" field is empty (no individual person assigned — note: Status "Assigned" means assigned to a group, NOT to a person. A ticket can have Status="Assigned" and still have no individual assignee).
8
+
9
+
IMPORTANT: When calling csv_list_tickets, use the "fields" parameter to request ONLY the fields you need: "id,summary,priority,urgency,assignee,assigned_group,created_at". Also use has_assignee=false to filter server-side. This avoids fetching unnecessary data.
10
+
11
+
Check these tickets against priority-based SLA thresholds measuring time since created_at (the reported date).
12
+
13
+
IMPORTANT: For the reference timestamp ("now"), do NOT use the current system time. Instead, find the most recent date across all date fields in the CSV data and use that as "now". This ensures meaningful age calculations for demo/historical data.
14
+
15
+
SLA thresholds by priority:
16
+
- Critical (1): 4 hours
17
+
- High (2): 24 hours (1 day)
18
+
- Medium (3): 72 hours (3 days)
19
+
- Low (4): 120 hours (5 days)
20
+
21
+
For each matching ticket, compute:
22
+
- age_hours: hours elapsed from reported_date to the reference timestamp
23
+
- sla_threshold_hours: the SLA threshold for its priority
24
+
- breach_status: "breached" if age_hours > sla_threshold_hours, "at risk" if age_hours > 0.75 * sla_threshold_hours, otherwise "ok"
25
+
26
+
Return ALL tickets with breach_status "breached" or "at risk". Group them by breach_status (all "breached" first, then all "at risk"), and within each group sort by age_hours descending.
27
+
28
+
Output a JSON array of objects with these fields: ticket_id, summary, priority, urgency, assigned_group (the team responsible), assignee (should be empty for all results), reported_date, age_hours (rounded to 1 decimal), sla_threshold_hours, breach_status.
29
+
After the JSON block, provide a short markdown summary that:
30
+
1. States the reference timestamp used
31
+
2. Groups ticket counts by breach_status and assigned_group
32
+
3. Recommends actions for the most critical breaches`
33
+
7
34
/**
8
35
* Add new demos here to create additional pages without duplicating UI logic.
9
36
* Each definition configures route, prompt, and which result views are rendered.
'Identifies tickets assigned to a support group but with no individual assignee, that are approaching or have exceeded priority-based SLA thresholds. Helps teams prioritize pickup before service level agreements are breached.',
119
+
promptLabel: 'SLA Breach Prompt',
120
+
promptDescription:
121
+
'Edit thresholds or filters in the prompt, then run the agent to scan for at-risk tickets.',
122
+
defaultPrompt: SLA_BREACH_DEFAULT_PROMPT,
123
+
runHistoryLimit: 25,
124
+
pollIntervalMs: 2000,
125
+
resultViews: ['table','markdown'],
126
+
resultSectionTitle: 'SLA Breach Results',
127
+
resultSectionDescription:
128
+
'Tickets at risk or already past their SLA threshold, sorted by severity.',
title: 'Affected Tickets (Group-Assigned, No Individual Assignee)',
133
+
description:
134
+
'These tickets are routed to a support group but no individual has picked them up. The "Assigned Group" column shows the responsible team; "Assignee" is empty for all.',
<mxCell id="8wV5sjgPgGiqjB_m4-tT-2" value=""What do I need to describe a new usecase for this demo project"?" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
0 commit comments