AA ZWIS • CS Training Materials

Customer Service Flow Diagrams

Escalation, Classification, Resolution & Closure Procedures
📄 Version 1.0 📅 Review: Monthly 🔒 Confidential 👥 CS Team + App Support + Dev Team
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.