Turn Zendesk tickets into prioritized support work with owners, replies, and SLA escalations. — Claude Skill
A Claude Skill for Claude Code by Claude Office Skills — run /zendesk-automation in Claude·Updated Jun 13, 2026·vclaude-office-skills/skills@zendesk-automation
Turns a Zendesk queue into a prioritized support plan: incident clusters, SLA risk, assignees, macros, escalation notes, and customer replies.
- Reads Zendesk ticket exports, queue summaries, customer notes, and priority rules.
- Groups duplicate tickets into incidents, how-to requests, billing issues, product signals, and normal queue work.
- Recommends priority, assignee or group, tags, macro replies, internal notes, and escalation path.
- Flags SLA risk, enterprise customer impact, and decisions that need a human before bulk updates.
A support lead scans Zendesk one ticket at a time, guesses urgency, asks in Slack who owns the issue, and writes replies from scratch while the SLA clock keeps running.
Run /zendesk-automation with the Zendesk export and support rules. The skill returns priority groups, owner suggestions, macros, escalation notes, and human-review warnings.
Who this is for
What it does
Turn overnight tickets into a clear queue order with priority, owner, reply type, and what must be handled before the SLA slips.
Spot when many tickets describe one customer-facing problem, group them under one incident, and prepare the internal escalation note.
Choose which tickets can use a saved reply, which need a personal response, and which need more information before support replies.
Group repeated requests into product themes without treating every feature request as an urgent support incident.
How it works
Paste a Zendesk queue export, ticket summaries, or copied ticket text with customer tier, status, tags, and message body.
Add the routing rules that matter: SLA, customer tier, product area, incident threshold, billing policy, or escalation channel.
The skill clusters related tickets, separates incidents from routine requests, and proposes Zendesk fields, owners, replies, and escalation notes.
A support lead reviews the recommendations before updating Zendesk, sending customer replies, or notifying Product and Engineering.
Input options
Ticket ID, requester, company, customer tier, subject, status, tags, SLA clock, assignee, and latest customer message.
Example
Queue snapshot: - 18 tickets: checkout timeout on Safari - 6 tickets: enterprise invoice export blocked - 14 tickets: two-factor reset questions - 3 duplicate requests: bulk user upload Need: priority, routing, macro, SLA risk, and Jira escalation.
| Customer Tier | Issue Type | Response SLA | Resolution SLA | Queue decision | |---|---|---|---|---| | Enterprise | Checkout failure | 15 minutes | 4 hours | P1 incident, route to Payments | | Enterprise | Invoice export | 1 hour | 8 hours | P2, route to Billing Support | | Business/Standard | 2FA reset | 4-8 hours | 24-48 hours | Macro + normal queue | | Any | Duplicate upload request | 8 hours | 48 hours | Merge duplicates, tag feature_request |
```yaml
routing_rules:
- name: checkout_failure
conditions: [tag: checkout, browser: safari]
assign_group: payments_support
priority: urgent
- name: invoice_export
conditions: [contains: invoice, customer_tier: enterprise]
assign_group: billing_support
priority: high
```We are investigating checkout timeouts affecting some Safari users. If your purchase is urgent, try another browser while we isolate the cause. We will update this ticket by 09:45 UTC.
Create Jira bug `PAY`: Safari checkout timeout. Link all 18 related Zendesk tickets, include affected browser/region, and set incident label `support_p1`.
Metrics this improves
Works with
Notify support incident channels and share escalation context that should not be sent to customers.
Create or link engineering follow-up when a support cluster becomes a product bug or incident.
Use ticket exports, tags, status, SLA clocks, customer tier, assignee, and message body as the queue source.
Works anywhere
Paste the notes, exports, screenshots, or summaries you already have. The skill works without a connected system.
Connect the relevant support, analytics, CRM, or data tool when you want fresher source evidence.
Want to use Zendesk Support Automation?
Choose how to get started.
Install and run this skill locally on your computer.
Open a terminal on your computer and paste this command:
This downloads the skill with all its files to your computer:
Add -g at the end to make it available in all your projects.
Start Claude Code, then type the command:
Zendesk Automation
Comprehensive skill for automating Zendesk support workflows and ticket management.
Core Workflows
1. Ticket Triage Pipeline
INCOMING TICKET FLOW:
┌─────────────────┐
│ New Ticket │
└────────┬────────┘
▼
┌─────────────────┐
│ AI Analysis │
│ - Intent │
│ - Sentiment │
│ - Urgency │
└────────┬────────┘
▼
┌─────────────────┐
│ Categorize │
│ - Type │
│ - Product │
│ - Skill needed │
└────────┬────────┘
▼
┌─────────────────┐
│ Route & Assign │
│ - Team │
│ - Agent │
│ - Priority │
└────────┬────────┘
▼
┌─────────────────┐
│ Auto-Response │
│ (if applicable)│
└─────────────────┘
2. Routing Rules
routing_rules:
- name: billing_issues
conditions:
- field: subject
contains: ["billing", "invoice", "charge", "refund", "payment"]
- field: tags
includes: ["billing"]
actions:
- set_group: billing_team
- set_priority: high
- add_tags: ["billing_routed"]
- name: technical_support
conditions:
- field: subject
contains: ["error", "bug", "not working", "crash"]
- field: product
equals: "software"
actions:
- set_group: tech_support
- set_priority: normal
- add_tags: ["technical"]
- name: enterprise_escalation
conditions:
- field: organization
tier: enterprise
- field: priority
equals: urgent
actions:
- set_group: enterprise_team
- set_priority: urgent
- notify: slack_channel
3. Priority Matrix
| Customer Tier | Issue Type | Response SLA | Resolution SLA |
|---|---|---|---|
| Enterprise | Critical | 15 minutes | 4 hours |
| Enterprise | High | 1 hour | 8 hours |
| Business | Critical | 1 hour | 8 hours |
| Business | Normal | 4 hours | 24 hours |
| Standard | All | 8 hours | 48 hours |
Auto-Response Templates
Common Issue Responses
auto_responses:
password_reset:
trigger:
keywords: ["password", "reset", "forgot", "login"]
response: |
Hi {{ticket.requester.name}},
I understand you're having trouble accessing your account.
Here's how to reset your password:
1. Go to {{settings.login_url}}/forgot-password
2. Enter your email address
3. Check your inbox for the reset link
4. Create a new password
If you don't receive the email within 5 minutes,
please check your spam folder.
Let me know if you need any further assistance!
actions:
- add_tags: ["auto_replied", "password_reset"]
- set_status: pending
shipping_inquiry:
trigger:
keywords: ["shipping", "tracking", "delivery", "order status"]
response: |
Hi {{ticket.requester.name}},
Thanks for reaching out about your order!
I've looked up your recent order and here's the status:
{{#if order.tracking_number}}
- Order #: {{order.id}}
- Status: {{order.status}}
- Tracking: {{order.tracking_number}}
- Estimated Delivery: {{order.estimated_delivery}}
{{else}}
Your order is being processed and tracking information
will be available within 24 hours.
{{/if}}
Is there anything else I can help with?
Ticket Management
Macro Library
macros:
- name: request_more_info
actions:
- add_comment: |
Thank you for contacting us. To better assist you,
could you please provide:
1. Your account email
2. Steps to reproduce the issue
3. Any error messages you're seeing
4. Screenshots if possible
- set_status: pending
- add_tags: ["awaiting_info"]
- name: escalate_to_engineering
actions:
- add_internal_note: "Escalated to engineering team"
- set_group: engineering
- set_priority: high
- add_tags: ["escalated", "engineering"]
- notify: engineering_slack
- name: close_resolved
actions:
- add_comment: |
I'm glad we could resolve this for you!
If you have any other questions, feel free to
reach out anytime. We're here to help.
Have a great day!
- set_status: solved
- add_tags: ["resolved"]
Bulk Operations
bulk_actions:
- name: close_stale_tickets
schedule: "0 0 * * *" # Daily
conditions:
- status: pending
- last_update_days: 7
actions:
- add_comment: "Closing due to no response. Please reopen if needed."
- set_status: solved
- add_tags: ["auto_closed"]
- name: escalate_breaching_sla
schedule: "*/15 * * * *" # Every 15 min
conditions:
- sla_breach_in_minutes: 30
actions:
- set_priority: urgent
- notify: team_lead
- add_tags: ["sla_at_risk"]
SLA Management
SLA Policies
sla_policies:
- name: enterprise_sla
conditions:
organization_tag: enterprise
targets:
first_reply:
urgent: 15 # minutes
high: 60
normal: 240
resolution:
urgent: 240
high: 480
normal: 1440
- name: standard_sla
conditions:
default: true
targets:
first_reply:
urgent: 60
high: 240
normal: 480
resolution:
urgent: 480
high: 1440
normal: 2880
SLA Dashboard
SLA PERFORMANCE - THIS WEEK
═══════════════════════════════════════
First Reply SLA:
Enterprise ████████████████████ 98% ✓
Business ██████████████████░░ 94% ✓
Standard █████████████████░░░ 89% ⚠
Resolution SLA:
Enterprise ████████████████████ 96% ✓
Business █████████████████░░░ 91% ✓
Standard ████████████████░░░░ 85% ⚠
TICKETS AT RISK:
┌──────────┬──────────┬───────────┐
│ Ticket │ Customer │ Time Left │
├──────────┼──────────┼───────────┤
│ #45231 │ Acme Corp│ 12 min │
│ #45198 │ TechStart│ 28 min │
│ #45156 │ DataFlow │ 45 min │
└──────────┴──────────┴───────────┘
AI-Powered Features
Sentiment Analysis
sentiment_analysis:
enabled: true
actions:
negative:
- add_tags: ["negative_sentiment"]
- set_priority: +1 # Increase priority
- notify: team_lead
frustrated:
- add_tags: ["frustrated_customer"]
- route_to: senior_agents
- add_internal_note: "Customer appears frustrated"
Intent Detection
intent_detection:
categories:
- name: billing_inquiry
keywords: ["charge", "invoice", "refund", "bill"]
confidence_threshold: 0.8
- name: technical_issue
keywords: ["error", "bug", "broken", "crash"]
confidence_threshold: 0.75
- name: feature_request
keywords: ["wish", "would be nice", "suggest", "feature"]
confidence_threshold: 0.7
- name: cancellation
keywords: ["cancel", "stop", "end subscription"]
confidence_threshold: 0.85
actions:
- route_to: retention_team
- set_priority: high
Integration Workflows
Slack Integration
slack_integration:
notifications:
- trigger: new_urgent_ticket
channel: "#support-urgent"
message: "🚨 New urgent ticket: {{ticket.subject}}"
- trigger: sla_warning
channel: "#support-alerts"
message: "⚠️ Ticket #{{ticket.id}} approaching SLA breach"
- trigger: negative_csat
channel: "#support-feedback"
message: "📉 Low CSAT received for ticket #{{ticket.id}}"
JIRA Integration
jira_integration:
sync_rules:
- zendesk_tag: bug_confirmed
create_jira:
project: DEV
issue_type: Bug
priority_map:
urgent: Highest
high: High
normal: Medium
sync_fields:
- description
- attachments
link_back: true
Analytics & Reporting
Key Metrics
SUPPORT METRICS DASHBOARD
═══════════════════════════════════════
Volume:
Today's Tickets: 156 (+12% vs avg)
Open Tickets: 234
Backlog: 45
Performance:
Avg First Reply: 42 min (target: 60 min) ✓
Avg Resolution: 4.2 hrs (target: 8 hrs) ✓
One-Touch Resolution: 34%
Satisfaction:
CSAT Score: 4.6/5.0 ⭐
NPS: +45
Response Quality: 92%
Agent Performance:
┌────────────┬────────┬──────────┬──────┐
│ Agent │ Solved │ Avg Time │ CSAT │
├────────────┼────────┼──────────┼──────┤
│ Sarah │ 28 │ 3.1 hrs │ 4.8 │
│ Mike │ 25 │ 3.5 hrs │ 4.7 │
│ Lisa │ 22 │ 4.0 hrs │ 4.6 │
└────────────┴────────┴──────────┴──────┘
Best Practices
- Quick First Response: Acknowledge tickets quickly, even if resolution takes longer
- Use Macros Wisely: Personalize templated responses
- Tag Consistently: Enable better routing and reporting
- Monitor SLAs: Set up alerts before breaches
- Capture Feedback: Send CSAT surveys after resolution
- Regular Training: Update agents on common issues
Reference documents
name: Zendesk Automation description: Automate customer support workflows with Zendesk ticket management, routing, and analytics version: 1.0.0 author: Claude Office Skills category: support tags:
- zendesk
- helpdesk
- tickets
- customer-support
- automation department: support models:
- claude-3-opus
- claude-3-sonnet
- gpt-4
mcp:
server: helpdesk-mcp
tools:
- zendesk_create_ticket
- zendesk_update_ticket
- zendesk_search
- zendesk_macros capabilities:
- Ticket creation and routing
- Auto-response generation
- SLA monitoring
- Agent assignment input:
- Support requests
- Ticket data
- Customer information
- Priority criteria output:
- Ticket responses
- Routing decisions
- Performance reports
- SLA dashboards languages:
- en
- zh related_skills:
- slack-workflows
- customer-success
- intercom-automation
Zendesk Automation
Comprehensive skill for automating Zendesk support workflows and ticket management.
Core Workflows
1. Ticket Triage Pipeline
INCOMING TICKET FLOW:
┌─────────────────┐
│ New Ticket │
└────────┬────────┘
▼
┌─────────────────┐
│ AI Analysis │
│ - Intent │
│ - Sentiment │
│ - Urgency │
└────────┬────────┘
▼
┌─────────────────┐
│ Categorize │
│ - Type │
│ - Product │
│ - Skill needed │
└────────┬────────┘
▼
┌─────────────────┐
│ Route & Assign │
│ - Team │
│ - Agent │
│ - Priority │
└────────┬────────┘
▼
┌─────────────────┐
│ Auto-Response │
│ (if applicable)│
└─────────────────┘
2. Routing Rules
routing_rules:
- name: billing_issues
conditions:
- field: subject
contains: ["billing", "invoice", "charge", "refund", "payment"]
- field: tags
includes: ["billing"]
actions:
- set_group: billing_team
- set_priority: high
- add_tags: ["billing_routed"]
- name: technical_support
conditions:
- field: subject
contains: ["error", "bug", "not working", "crash"]
- field: product
equals: "software"
actions:
- set_group: tech_support
- set_priority: normal
- add_tags: ["technical"]
- name: enterprise_escalation
conditions:
- field: organization
tier: enterprise
- field: priority
equals: urgent
actions:
- set_group: enterprise_team
- set_priority: urgent
- notify: slack_channel
3. Priority Matrix
| Customer Tier | Issue Type | Response SLA | Resolution SLA |
|---|---|---|---|
| Enterprise | Critical | 15 minutes | 4 hours |
| Enterprise | High | 1 hour | 8 hours |
| Business | Critical | 1 hour | 8 hours |
| Business | Normal | 4 hours | 24 hours |
| Standard | All | 8 hours | 48 hours |
Auto-Response Templates
Common Issue Responses
auto_responses:
password_reset:
trigger:
keywords: ["password", "reset", "forgot", "login"]
response: |
Hi {{ticket.requester.name}},
I understand you're having trouble accessing your account.
Here's how to reset your password:
1. Go to {{settings.login_url}}/forgot-password
2. Enter your email address
3. Check your inbox for the reset link
4. Create a new password
If you don't receive the email within 5 minutes,
please check your spam folder.
Let me know if you need any further assistance!
actions:
- add_tags: ["auto_replied", "password_reset"]
- set_status: pending
shipping_inquiry:
trigger:
keywords: ["shipping", "tracking", "delivery", "order status"]
response: |
Hi {{ticket.requester.name}},
Thanks for reaching out about your order!
I've looked up your recent order and here's the status:
{{#if order.tracking_number}}
- Order #: {{order.id}}
- Status: {{order.status}}
- Tracking: {{order.tracking_number}}
- Estimated Delivery: {{order.estimated_delivery}}
{{else}}
Your order is being processed and tracking information
will be available within 24 hours.
{{/if}}
Is there anything else I can help with?
Ticket Management
Macro Library
macros:
- name: request_more_info
actions:
- add_comment: |
Thank you for contacting us. To better assist you,
could you please provide:
1. Your account email
2. Steps to reproduce the issue
3. Any error messages you're seeing
4. Screenshots if possible
- set_status: pending
- add_tags: ["awaiting_info"]
- name: escalate_to_engineering
actions:
- add_internal_note: "Escalated to engineering team"
- set_group: engineering
- set_priority: high
- add_tags: ["escalated", "engineering"]
- notify: engineering_slack
- name: close_resolved
actions:
- add_comment: |
I'm glad we could resolve this for you!
If you have any other questions, feel free to
reach out anytime. We're here to help.
Have a great day!
- set_status: solved
- add_tags: ["resolved"]
Bulk Operations
bulk_actions:
- name: close_stale_tickets
schedule: "0 0 * * *" # Daily
conditions:
- status: pending
- last_update_days: 7
actions:
- add_comment: "Closing due to no response. Please reopen if needed."
- set_status: solved
- add_tags: ["auto_closed"]
- name: escalate_breaching_sla
schedule: "*/15 * * * *" # Every 15 min
conditions:
- sla_breach_in_minutes: 30
actions:
- set_priority: urgent
- notify: team_lead
- add_tags: ["sla_at_risk"]
SLA Management
SLA Policies
sla_policies:
- name: enterprise_sla
conditions:
organization_tag: enterprise
targets:
first_reply:
urgent: 15 # minutes
high: 60
normal: 240
resolution:
urgent: 240
high: 480
normal: 1440
- name: standard_sla
conditions:
default: true
targets:
first_reply:
urgent: 60
high: 240
normal: 480
resolution:
urgent: 480
high: 1440
normal: 2880
SLA Dashboard
SLA PERFORMANCE - THIS WEEK
═══════════════════════════════════════
First Reply SLA:
Enterprise ████████████████████ 98% ✓
Business ██████████████████░░ 94% ✓
Standard █████████████████░░░ 89% ⚠
Resolution SLA:
Enterprise ████████████████████ 96% ✓
Business █████████████████░░░ 91% ✓
Standard ████████████████░░░░ 85% ⚠
TICKETS AT RISK:
┌──────────┬──────────┬───────────┐
│ Ticket │ Customer │ Time Left │
├──────────┼──────────┼───────────┤
│ #45231 │ Acme Corp│ 12 min │
│ #45198 │ TechStart│ 28 min │
│ #45156 │ DataFlow │ 45 min │
└──────────┴──────────┴───────────┘
AI-Powered Features
Sentiment Analysis
sentiment_analysis:
enabled: true
actions:
negative:
- add_tags: ["negative_sentiment"]
- set_priority: +1 # Increase priority
- notify: team_lead
frustrated:
- add_tags: ["frustrated_customer"]
- route_to: senior_agents
- add_internal_note: "Customer appears frustrated"
Intent Detection
intent_detection:
categories:
- name: billing_inquiry
keywords: ["charge", "invoice", "refund", "bill"]
confidence_threshold: 0.8
- name: technical_issue
keywords: ["error", "bug", "broken", "crash"]
confidence_threshold: 0.75
- name: feature_request
keywords: ["wish", "would be nice", "suggest", "feature"]
confidence_threshold: 0.7
- name: cancellation
keywords: ["cancel", "stop", "end subscription"]
confidence_threshold: 0.85
actions:
- route_to: retention_team
- set_priority: high
Integration Workflows
Slack Integration
slack_integration:
notifications:
- trigger: new_urgent_ticket
channel: "#support-urgent"
message: "🚨 New urgent ticket: {{ticket.subject}}"
- trigger: sla_warning
channel: "#support-alerts"
message: "⚠️ Ticket #{{ticket.id}} approaching SLA breach"
- trigger: negative_csat
channel: "#support-feedback"
message: "📉 Low CSAT received for ticket #{{ticket.id}}"
JIRA Integration
jira_integration:
sync_rules:
- zendesk_tag: bug_confirmed
create_jira:
project: DEV
issue_type: Bug
priority_map:
urgent: Highest
high: High
normal: Medium
sync_fields:
- description
- attachments
link_back: true
Analytics & Reporting
Key Metrics
SUPPORT METRICS DASHBOARD
═══════════════════════════════════════
Volume:
Today's Tickets: 156 (+12% vs avg)
Open Tickets: 234
Backlog: 45
Performance:
Avg First Reply: 42 min (target: 60 min) ✓
Avg Resolution: 4.2 hrs (target: 8 hrs) ✓
One-Touch Resolution: 34%
Satisfaction:
CSAT Score: 4.6/5.0 ⭐
NPS: +45
Response Quality: 92%
Agent Performance:
┌────────────┬────────┬──────────┬──────┐
│ Agent │ Solved │ Avg Time │ CSAT │
├────────────┼────────┼──────────┼──────┤
│ Sarah │ 28 │ 3.1 hrs │ 4.8 │
│ Mike │ 25 │ 3.5 hrs │ 4.7 │
│ Lisa │ 22 │ 4.0 hrs │ 4.6 │
└────────────┴────────┴──────────┴──────┘
Best Practices
- Quick First Response: Acknowledge tickets quickly, even if resolution takes longer
- Use Macros Wisely: Personalize templated responses
- Tag Consistently: Enable better routing and reporting
- Monitor SLAs: Set up alerts before breaches
- Capture Feedback: Send CSAT surveys after resolution
- Regular Training: Update agents on common issues
Source marketplace page: https://github.com/claude-office-skills/skills/blob/HEAD/zendesk-automation/SKILL.md
Install command: npx skills add claude-office-skills/skills@zendesk-automation