Support Ticket Escalation
Old fragile flow
POST /api/tickets/:id/escalate
→ update ticket status
→ page on-call
→ create Slack thread
→ write audit row
→ maybe page twice on retryCauset version
escalate_ticket intent
→ ticket_escalated
→ oncall_paged
→ slack_thread_created
App keeps tickets table in sync via event bridgeSample intent
actions:
escalate_ticket:
state: support_ticket
entity_id_expr: intent.ticket_id
input:
ticket_id: { type: string, required: true }
reason: { type: string, required: true }
severity: { type: string, required: true }Sample events
ticket_escalated
oncall_paged
slack_thread_created
escalation_acknowledgedSample query
queries:
ticket_escalation_status:
from: ticket_escalation_status
where:
ticket_id: { eq: input.ticket_id }Timeline output
escalate_ticket (tkt_42)
✓ ticket_escalated
✓ oncall_paged
✗ slack_thread_created (failed)What you can inspect
- Escalation reason and severity on the intent payload
- Which notification side effects succeeded
- Whether a duplicate escalate was rejected
What you can replay or repair
- Retry Slack creation on a fork with idempotency
- Repair projection so the agent UI shows
escalated - Audit the full escalation history for compliance
Related: Support Copilot (AI) · Replay.