How to Build Support Escalation Workflows in DenchClaw
Learn how to build customer support escalation workflows in DenchClaw CRM to catch critical issues fast, route to the right person, and protect key accounts.
How to Build Support Escalation Workflows in DenchClaw
Support escalations don't fail because teams don't care — they fail because the information is scattered. A P1 issue lands in email. It doesn't get flagged. The account manager doesn't know. Three days later the CEO of a $200k customer is on the phone asking why nobody called them.
DenchClaw gives you a CRM where support tickets, account data, and escalation workflows live together — with an AI agent that can route escalations automatically and alert the right person in seconds.
Here's how to build a support escalation system in DenchClaw.
What a Good Escalation System Needs#
- A ticket tracking object — structured, with severity and status fields
- Account context — linking tickets to companies so you know the contract value and health
- Escalation tiers — clear definitions of what triggers each level
- Automated routing — the agent fires alerts to the right people
- SLA tracking — time from open to first response and resolution
Step 1: Create Your Support Tickets Object#
Tell the agent:
"Create a support_tickets object with these fields: title (text), description (richtext), customer (relation to company), contact (relation to people), priority (enum), status (enum), assigned_to (text), opened_date (date), first_response_date (date), resolved_date (date), escalated (boolean), escalation_tier (enum), account_tier (enum)"
# support_tickets .object.yaml
name: support_tickets
icon: alert-circle
default_view: kanban
view_settings:
kanbanField: Status
fields:
- name: Title
type: text
- name: Description
type: richtext
- name: Customer
type: relation
related_object: company
- name: Contact
type: relation
related_object: people
- name: Priority
type: enum
options: [P1 - Critical, P2 - High, P3 - Medium, P4 - Low]
- name: Status
type: enum
options: [Open, In Progress, Waiting on Customer, Escalated, Resolved, Closed]
- name: Assigned To
type: text
- name: Opened Date
type: date
- name: First Response Date
type: date
- name: Resolved Date
type: date
- name: Escalated
type: text # boolean stored as text
- name: Escalation Tier
type: enum
options: [None, Tier 1 - Support Lead, Tier 2 - Engineering, Tier 3 - Executive]
- name: Account Tier
type: enum
options: [Enterprise, Mid-Market, SMB, Trial]Step 2: Define Your Escalation Tiers#
Clear escalation criteria removes ambiguity and prevents the "is this bad enough to escalate?" paralysis:
| Tier | Trigger | Owner | SLA |
|---|---|---|---|
| Tier 1 | P2+ issue open > 4 hours without response | Support Lead | 1 hour response |
| Tier 2 | P1 issue, any data loss, or service outage | Engineering Lead | 30 min response |
| Tier 3 | Enterprise customer P1, or any tier 2 unresolved > 2h | Customer Success VP + Account Exec | Immediate |
Document these in an entry document on your support_tickets object or in a workspace doc.
Step 3: Link Tickets to Account Data#
The power of building escalations in a CRM (rather than a standalone help desk) is account context. When a ticket comes in from Acme Corp, you can instantly see:
- Contract value: $180,000/year
- Health tier: Yellow (declining usage)
- Renewal date: 62 days from now
- Support tickets this month: 4 (this is their 5th)
- Account owner: Sarah Chen
This changes how urgently you respond. A P2 from a $2k SMB is not the same as a P2 from a $180k account renewing in 2 months.
Build a view that shows open tickets with account context:
- name: Open Tickets with Account Context
filters:
- field: Status
operator: in
values: [Open, In Progress, Escalated]
sort:
- field: Priority
direction: asc
- field: Opened Date
direction: ascStep 4: Automate Escalation Detection#
This is where the AI agent earns its keep. Set up escalation monitoring:
"Every 30 minutes, check for support tickets that meet these escalation criteria:
- P1 tickets open more than 30 minutes without a first response date: escalate to Tier 2
- P2 tickets from Enterprise accounts open more than 4 hours: escalate to Tier 1
- Any ticket open more than 48 hours without resolution: escalate to Tier 3 When escalating, update the Escalation Tier field, set Status to 'Escalated', and message me on Telegram with the ticket title, customer name, contract value, and how long it's been open."
The agent creates a monitoring cron job. You'll receive Telegram alerts like:
"🚨 ESCALATION: Acme Corp — 'Unable to export data' (P1) Open for: 47 minutes | No first response yet Account Value: $180k | Renewal: 62 days | Health: Yellow Escalation Tier: 2 (Engineering) Assigned to: (unassigned) — ACTION NEEDED"
Step 5: Build an Escalation Kanban#
The kanban view on your support_tickets object is your escalation board:
default_view: kanban
view_settings:
kanbanField: StatusColumns: Open → In Progress → Escalated → Waiting on Customer → Resolved → Closed
The Escalated column becomes your hot list. Cards there are sorted by account tier and priority, so the most critical issues are always at the top.
Step 6: Track SLA Compliance#
Add a calculated SLA status to your tickets. Create an action field that calculates time-to-first-response:
#!/usr/bin/env python3
import os
from datetime import datetime, date
opened = os.environ.get("OPENED_DATE")
first_response = os.environ.get("FIRST_RESPONSE_DATE")
priority = os.environ.get("PRIORITY")
if not opened:
print('{"type":"error","message":"No opened date found"}')
exit(1)
opened_dt = datetime.strptime(opened, "%Y-%m-%d")
now = datetime.now()
hours_open = (now - opened_dt).total_seconds() / 3600
sla_targets = {
"P1 - Critical": 0.5, # 30 minutes
"P2 - High": 4, # 4 hours
"P3 - Medium": 24, # 24 hours
"P4 - Low": 72, # 72 hours
}
target = sla_targets.get(priority, 24)
status = "BREACHED" if hours_open > target and not first_response else "Within SLA"
print(f'{{"type":"status","message":"SLA Status: {status} | Hours open: {hours_open:.1f} | Target: {target}h"}}')Step 7: Post-Escalation Review#
After a P1 or Tier 3 escalation resolves, document what happened:
"Log a post-escalation review for Acme Corp's export issue: root cause was a database migration that locked the export table for 2 hours. Resolved by rolling back the migration. Prevention: add export service health check to deployment checklist. Follow-up: schedule QBR with Acme to debrief and offer a service credit."
This goes into the ticket's entry document and into the company's record. The next time Acme comes up in a sales call or renewal conversation, this history is there.
Connecting Escalations to Your Customer Success Workflow#
The best escalation workflows close the loop with customer success:
- P1 ticket opened → alert support lead + CS owner
- If no first response in SLA → escalate to engineering + CS VP
- If enterprise customer → account executive personally notified
- Post-resolution → CS schedules follow-up call, logs outcome in CRM
- Monthly review → query all escalations to identify recurring patterns
Ask the agent: "Show me all Enterprise accounts that had more than 2 escalated tickets in Q1 and their current health tier"
This query flags accounts that need proactive attention before their renewal window opens.
Frequently Asked Questions#
Can DenchClaw replace a dedicated help desk like Zendesk?#
DenchClaw's support tracking is best used as an escalation management layer on top of your existing help desk, not a replacement. Keep Zendesk for the full ticket lifecycle and first-line support; sync escalated or high-priority tickets into DenchClaw where your account context lives.
How do I link tickets from Zendesk or Intercom into DenchClaw?#
Set up a webhook: when a ticket in Zendesk reaches a certain status (escalated, P1), it POSTs to a DenchClaw webhook. The agent creates a corresponding entry in your support_tickets object and links it to the matching company. This gives you CRM-level context without replacing your support tool.
What's a good escalation SLA for SMBs vs enterprise?#
A reasonable starting point: P1 enterprise = 30-minute response, P1 SMB = 2-hour response; P2 enterprise = 4-hour response, P2 SMB = 24-hour response. Adjust based on your team's capacity and customer expectations. Document these explicitly in your escalation policy.
How do I handle escalations when the account executive is traveling?#
Add a "Backup Owner" field to your company object. The escalation cron job checks this field and notifies both the primary owner and backup. For Tier 3 escalations, always notify both.
Can I track support escalation trends over time?#
Yes. Because every escalated ticket is a DuckDB entry, you can query trends easily: escalations per month, escalation rate by account tier, resolution time trends. Ask the agent to build a monthly escalation report.
Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →
