1
Escalation Procedure (Core Flow)
The main path every ticket follows, from inbound call to closure. Shows the three-tier escalation spine.
flowchart TD
START(("📞 Inbound Call
/ Ticket Received"))
START --> LOG["Step 1 — Log Ticket
Capture: Caller, Contractor,
Issue, Screenshots"]
LOG --> SEV["Step 2 — Classify Severity
(See Severity Guide)"]
SEV --> P1CHECK{"Is this P1 Critical?
(System down / All users)"}
P1CHECK -->|"Yes 🔴"| IMMEDIATE["⚠️ Skip L1 — Escalate Immediately
Call L3 On-Call + Notify L2"]
P1CHECK -->|"No"| L1_TRY["Step 3 — L1 Resolution Attempt
· Use Support Tools (NotebookLM / FAQ)
· Apply standard troubleshooting
· Max 15 minutes"]
L1_TRY --> L1_DONE{"Resolved
within 15 min?"}
L1_DONE -->|"Yes ✅"| CLOSE_L1["Close Ticket
(See Close Procedure)"]
L1_DONE -->|"No"| ESC_L2["📤 Step 4 — Escalate to L2
Transfer ticket with full notes
Inform caller of escalation"]
IMMEDIATE --> L3
ESC_L2 --> L2
L2["L2 — App SupportInvestigates & applies fix"]
L2 --> L2_DONE{"L2 resolved?"}
L2_DONE -->|"Yes ✅"| CLOSE_L2["Close Ticket"]
L2_DONE -->|"No"| ESC_L3["📤 Step 5 — Escalate to L3"]
ESC_L3 --> L3
L3["L3 — Dev / Infra
(Barry + On-Call Dev)
Code fix / server recovery"]
L3 --> CLOSE_L3["Close Ticket"]
CLOSE_L1 --> END(("✅ Done"))
CLOSE_L2 --> END
CLOSE_L3 --> END
style START fill:#1B3A5C,stroke:#1B3A5C,color:#fff
style END fill:#388E3C,stroke:#388E3C,color:#fff
style IMMEDIATE fill:#FFCDD2,stroke:#D32F2F,color:#B71C1C
style L1_TRY fill:#E8F5E9,stroke:#388E3C,color:#1B5E20
style L2 fill:#FFF8E1,stroke:#F57C00,color:#E65100
style L3 fill:#FFEBEE,stroke:#D32F2F,color:#B71C1C
style LOG fill:#E3F2FD,stroke:#1565C0,color:#0D47A1
style SEV fill:#E3F2FD,stroke:#1565C0,color:#0D47A1
style CLOSE_L1 fill:#F5F5F5,stroke:#666,color:#333
style CLOSE_L2 fill:#F5F5F5,stroke:#666,color:#333
style CLOSE_L3 fill:#F5F5F5,stroke:#666,color:#333
Key rules:
- P1 Critical skips L1 entirely and goes straight to L3 on-call.
- L1 has a 15-minute timer — if unresolved, escalate immediately.
- Tickets never skip tiers unless classified P1 or explicitly directed by management.
2
Severity Classification Guide
Decision tree to determine P1/P2/P3/P4 with ZWIS-specific examples. Aligned to Contract SLA §7.3.
flowchart TD
START(("🎯 Start
Classify Incoming Issue"))
START --> Q1{"Q1: Is the system
completely unreachable
OR are ALL users unable
to login?"}
Q1 -->|"Yes"| P1
Q1 -->|"No"| Q2
Q2{"Q2: Is a key module
broken for a whole
contractor group
or site?"}
Q2 -->|"Yes"| P2
Q2 -->|"No"| Q3
Q3{"Q3: Is it a functional
issue with a
workaround available?"}
Q3 -->|"Yes"| P3
Q3 -->|"No — serious functional issue"| P2
Q3 -->|"Just display glitch
/ enhancement
/ how-to"| Q4
Q4{"Q4: Is it cosmetic,
how-to question, or
feature request?"}
Q4 -->|"Yes"| P4
Q4 -->|"No — has operational impact"| P3
P1["🔴 CRITICAL (Severity 1)
⏱ Response: 15 min · Resolution: 1 hr
Examples:
• System completely down
• All users can't login
• Database corruption
• Indoor positioning total failure
• Airside clock-in totally broken"]
P2["🟠 HIGH (Severity 2)
⏱ Response: 15 min · Resolution: 2 hrs
Examples:
• Roster not loading for Contractor A
• Clock-in failing at Terminal 2
• Report generation timeout
• Partial location tracking failure
• Push notifications broken"]
P3["🟡 MEDIUM (Severity 3)
⏱ Response: 15 min · Resolution: 4 hrs
Examples:
• One user's password reset
• Slow page load (>5s)
• Single report rendering wrong
• One beacon offline
• Notification delay for 1 user"]
P4["🟢 LOW (Severity 4)
⏱ Response: 15 min · Resolution: 8 hrs
Examples:
• Typo in UI label
• Request to add new column
• How-to question (training)
• UI alignment issue
• Feature enhancement request"]
P1 --> TIP1[/"💡 Tip: When in doubt,
classify ONE LEVEL HIGHER
and downgrade later"/]
P2 --> TIP1
P3 --> TIP1
P4 --> TIP1
style START fill:#1B3A5C,stroke:#1B3A5C,color:#fff
style P1 fill:#FFCDD2,stroke:#D32F2F,color:#B71C1C
style P2 fill:#FFE0B2,stroke:#F57C00,color:#E65100
style P3 fill:#FFF9C4,stroke:#FBC02D,color:#F57F17
style P4 fill:#C8E6C9,stroke:#4CAF50,color:#2E7D32
style TIP1 fill:#E1F5FE,stroke:#0288D1,color:#01579B
style Q1 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C
style Q2 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C
style Q3 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C
style Q4 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C
Contract SLA (AA §7.3) — All severities share the same 15-minute response time:
Critical: 1 hr resolution
High: 2 hr resolution
Medium: 4 hr resolution
Low: 8 hr resolution
3
Support Tools Resolving Flow
The 5-tool cascade CS agents use to resolve issues before escalating. NotebookLM → FAQ → Known Issues → Dashboard → Admin Panel.
flowchart TD
START(("🔍 Issue Classified
(P2/P3/P4)
Ready to Resolve"))
START --> T1["Tool 1 — 🤖 NotebookLM
· Type natural-language query
· Example: 'contractor cannot clock in at T2'
· Review AI answer + cited sources"]
T1 --> T1_CHECK{"Clear solution
found?"}
T1_CHECK -->|"Yes ✅"| APPLY1["Guide caller through
the solution step-by-step"]
T1_CHECK -->|"No — answer unclear
or no match"| T2
T2["Tool 2 — 📋 FAQ Spreadsheet
· Filter by module / keyword
· Match scenario to documented cases
· Review workaround steps"]
T2 --> T2_CHECK{"Matching
FAQ entry?"}
T2_CHECK -->|"Yes ✅"| APPLY2["Apply documented
resolution steps"]
T2_CHECK -->|"No match"| T3
T3["Tool 3 — 📝 Known Issues Log
· Check recent entries (last 7 days)
· Look for similar symptoms
· Review workaround status"]
T3 --> T3_CHECK{"Known issue
with workaround?"}
T3_CHECK -->|"Yes ✅"| APPLY3["Inform caller it's known
Provide workaround + ETA"]
T3_CHECK -->|"No"| T4
T4["Tool 4 — 📊 Health Dashboard
· Check system status (up/down)
· Check API response times
· Check login success rate"]
T4 --> T4_CHECK{"System issue
detected?"}
T4_CHECK -->|"Yes 🚨"| OUTAGE["⚠️ Potential outage
→ Re-classify to P1
→ Immediate escalation"]
T4_CHECK -->|"No — system healthy"| T5
T5["Tool 5 — 🔧 Admin Panel
(Read-only access)
· Verify user account status
· Check user roles & permissions
· Confirm reported data"]
T5 --> T5_CHECK{"Issue
reproduced or
confirmed?"}
T5_CHECK -->|"Yes"| ESCALATE["📤 Escalate to L2
with full diagnostic notes"]
T5_CHECK -->|"No — can't reproduce"| ASK["Ask caller for more info:
· Screenshots
· Exact steps
· Time of issue"]
ASK --> T1
APPLY1 --> RESOLVED{"Issue
resolved?"}
APPLY2 --> RESOLVED
APPLY3 --> RESOLVED
RESOLVED -->|"Yes ✅"| CLOSE(("→ Go to
Close Procedure"))
RESOLVED -->|"No"| ESCALATE
ESCALATE --> L2(("→ L2 Escalation"))
OUTAGE --> L3(("→ L3 Escalation"))
style START fill:#1B3A5C,stroke:#1B3A5C,color:#fff
style CLOSE fill:#388E3C,stroke:#388E3C,color:#fff
style L2 fill:#F57C00,stroke:#F57C00,color:#fff
style L3 fill:#D32F2F,stroke:#D32F2F,color:#fff
style T1 fill:#E3F2FD,stroke:#1565C0,color:#0D47A1
style T2 fill:#E8F5E9,stroke:#388E3C,color:#1B5E20
style T3 fill:#FFF8E1,stroke:#F9A825,color:#F57F17
style T4 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C
style T5 fill:#FCE4EC,stroke:#C2185B,color:#880E4F
style OUTAGE fill:#FFCDD2,stroke:#D32F2F,color:#B71C1C
style ESCALATE fill:#FFE0B2,stroke:#F57C00,color:#E65100
Tool priority order — try in sequence: NotebookLM is fastest for natural-language queries, FAQ for documented scenarios, Known Issues Log for ongoing problems, Dashboard for system-level diagnosis, and Admin Panel for account verification. Escalate to L2 once diagnostic notes are compiled.
4
Ticket Close Procedure
The 6-step closure protocol, including caller verification, KB update, and shift handover.
flowchart TD
START(("✅ Issue Resolved
(by L1 / L2 / L3)"))
START --> S1["Step 1 — Verify with Caller
· Confirm issue no longer occurs
· Ask caller to test the fix
· Ask if any other concerns"]
S1 --> VERIFY{"Caller confirms
resolution?"}
VERIFY -->|"No ❌"| REOPEN["🔄 Reopen Ticket
Re-investigate / re-classify
→ Return to resolution flow"]
VERIFY -->|"Yes ✅"| S2
S2["Step 2 — Document Resolution
· Resolution steps taken
· Root cause (if known)
· Time to resolve
· Tier that resolved (L1/L2/L3)"]
S2 --> S3{"Was this a
new solution not
in existing KB?"}
S3 -->|"Yes"| S3_UPDATE["Step 3a — Update Knowledge Base
· Add new entry to NotebookLM
· Update FAQ spreadsheet
· Tag with module + symptom keywords"]
S3 -->|"No"| S4
S3_UPDATE --> S4
S4{"Was this
P1 or P2?"}
S4 -->|"Yes"| S4_KNOWN["Step 3b — Update Known Issues Log
· Add to monthly report
· Flag for RCA within 48 hrs
· Notify project team"]
S4 -->|"No"| S5
S4_KNOWN --> S5
S5["Step 4 — Close Communication
· Send closure email / message
· Include: issue summary + resolution
· Invite feedback if needed"]
S5 --> S6["Step 5 — Close Ticket in System
· Status: Resolved → Closed
· Tag: Module / Category
· Tag: Severity / Tier resolved
· Capture time-to-resolve metric"]
S6 --> S7["Step 6 — Shift Handover Note
(If close to shift end)
· Add to handover log if
follow-up needed
· Flag recurring patterns"]
S7 --> END(("✅ Ticket Closed"))
REOPEN --> RESOLVE(("→ Back to
Resolution Flow"))
style START fill:#1B3A5C,stroke:#1B3A5C,color:#fff
style END fill:#388E3C,stroke:#388E3C,color:#fff
style RESOLVE fill:#F57C00,stroke:#F57C00,color:#fff
style REOPEN fill:#FFCDD2,stroke:#D32F2F,color:#B71C1C
style S1 fill:#E3F2FD,stroke:#1565C0,color:#0D47A1
style S2 fill:#E8F5E9,stroke:#388E3C,color:#1B5E20
style S3_UPDATE fill:#FFF8E1,stroke:#F9A825,color:#F57F17
style S4_KNOWN fill:#FFE0B2,stroke:#F57C00,color:#E65100
style S5 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C
style S6 fill:#E0F7FA,stroke:#00838F,color:#006064
style S7 fill:#FCE4EC,stroke:#C2185B,color:#880E4F
Critical rules for closure:
- Never close a ticket without explicit caller confirmation the issue is resolved.
- New solutions must be added to the Knowledge Base so the next agent can find them.
- P1/P2 tickets trigger mandatory Root Cause Analysis within 48 hours.