Automate customer support workflows with Zendesk ticket management, routing, and analytics
npx skills add https://github.com/claude-office-skills/skills --skill Zendesk Automation
Comprehensive skill for automating Zendesk support workflows and ticket management.
INCOMING TICKET FLOW:
┌─────────────────┐
│ New Ticket │
└────────┬────────┘
▼
┌─────────────────┐
│ AI Analysis │
│ - Intent │
│ - Sentiment │
│ - Urgency │
└────────┬────────┘
▼
┌─────────────────┐
│ Categorize │
│ - Type │
│ - Product │
│ - Skill needed │
└────────┬────────┘
▼
┌─────────────────┐
│ Route & Assign │
│ - Team │
│ - Agent │
│ - Priority │
└────────┬────────┘
▼
┌─────────────────┐
│ Auto-Response │
│ (if applicable)│
└─────────────────┘
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
| 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_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?
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_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_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 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 │
└──────────┴──────────┴───────────┘
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:
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
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:
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
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 │
└────────────┴────────┴──────────┴──────┘
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Take claude-office-skills/zendesk automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.