Skip to main content

Ticket Escalation

The escalation system allows both clients and agents to flag tickets for urgent attention. There are two escalation paths: Emergency (immediate alerts) and Higher Priority (daily digest).


Escalation Types

TypeTriggerResponse
EmergencyClient or agent selects "Emergency"Immediate email + SMS to PMs and assigned staff
Higher PriorityClient or agent selects "Higher Priority"Added to daily escalation digest (7:30 AM CST)

How Escalation Works (Agent Side)

Escalating a Ticket

  1. Open the ticket
  2. Click the Escalate button
  3. Select escalation level:
    • Higher Priority — normal escalation (digest)
    • Emergency — immediate multi-channel alert
  4. Add a reason/note explaining why
  5. Click Submit Escalation

What Happens — Emergency

Agent submits Emergency escalation
→ Immediate email to: PMs + assigned staff + department manager
→ SMS alert to PMs (via Twilio, if opted in)
→ Browser notification to subscribed staff
→ Ticket flagged with escalation badge
→ Recorded in ost_ticket_escalations

What Happens — Higher Priority

Agent submits Higher Priority escalation
→ Recorded in ost_ticket_escalations
→ Ticket flagged with escalation badge
→ Included in next morning's escalation digest (7:30 AM CST)
→ Digest email sent to PMs and department managers

Escalation Cooldown

A 48-hour cooldown prevents repeated escalations on the same ticket:

  • After escalating, the same ticket cannot be escalated again for 48 hours
  • This applies to both clients and agents
  • The cooldown is per-ticket, not per-user
  • Emergency overrides do NOT bypass the cooldown

Checking Cooldown Status

The escalation button will show:

  • Available: "Escalate" button active
  • On Cooldown: Button disabled with countdown timer
  • Already Escalated: Shows current escalation status

The AJAX endpoint GET /tickets/check_escalation/{tid} returns the cooldown status.


Escalation Digest

Daily Digest Email

Sent at 7:30 AM CST daily via cron-escalation-digest.php:

Recipients: All PMs + department managers with escalated tickets

Contents:

  • List of tickets escalated since last digest
  • Escalation type and reason for each
  • Client name and organization
  • Current assignee
  • Direct link to each ticket

Configuring the Digest

The digest cron runs on a schedule. To adjust timing, modify the cron schedule for cron-escalation-digest.php.


De-Escalation

To remove an escalation flag:

  1. Open the ticket
  2. The escalation badge shows in the header
  3. Click De-escalate or resolve the ticket normally
  4. Closing the ticket automatically clears the escalation
note

De-escalation does not reverse SMS or email alerts already sent. It only removes the visual flag and excludes the ticket from future digests.


Viewing Escalated Tickets

Escalation Queue

PMs and department managers can view all escalated tickets:

  1. Navigate to the ticket list
  2. Filter by escalation status
  3. Or check the PM Dashboard (scp/pm.php) escalation widget

Escalation Badge

Escalated tickets show a visual indicator:

  • 🔴 Emergency — red badge
  • 🟡 Higher Priority — yellow badge
  • No badge — not escalated

Client-Initiated Escalation

Clients can also escalate from the client portal:

At Ticket Creation

When creating a new ticket, clients see an escalation dropdown:

  • None — standard processing
  • Higher Priority — flags for daily digest
  • Emergency — triggers immediate alerts

On Existing Tickets

  1. Client opens their ticket
  2. Clicks Escalate button
  3. Selects level and provides reason
  4. Same 48-hour cooldown applies

See Client Portal → Escalation for client-facing documentation.


Escalation Tracking

All escalations are recorded in ost_ticket_escalations:

FieldDescription
ticket_idThe escalated ticket
escalation_typeemergency or higher_priority
escalated_byStaff ID or client user ID
reasonFree-text reason provided
created_atWhen escalation was submitted
digest_sentWhether included in a digest email
resolved_atWhen de-escalated or closed

Best Practices

  1. Reserve Emergency for true emergencies — production-down, security incidents, data loss
  2. Provide clear reasons — helps PMs triage without opening the ticket
  3. Check AI urgency first — if AI already flagged CRITICAL, PMs are already alerted
  4. Don't escalate for speed — escalation is for urgency, not impatience
  5. Follow up after escalating — don't escalate and walk away; stay engaged
  6. Communicate with the client — let them know their escalation was received