Audit VIP Zendesk tickets using Claude Cowork
Prerequisites
- Claude Desktop with Cowork enabled
- Zendesk account with API access (email + API token)
- Zendesk subdomain (e.g.,
acmecorpif your URL isacmecorp.zendesk.com) - VIP organizations tagged with "vip" in Zendesk
- (Optional) Slack Bot Token and channel ID for automated alerts
Overview
Claude Cowork lets you set up a recurring task that audits your Zendesk tickets for missed VIP escalations — no code, no webhook infrastructure, no cron jobs. Claude polls the Zendesk API, cross-references tickets against your VIP organizations, and flags any that slipped through without a VIP tag. This is the fastest way to add a VIP safety net to your support workflow.
Step 1: Gather your Zendesk API credentials
You need three values:
- Subdomain — the part before
.zendesk.comin your URL (e.g.,acmecorp) - Email — your Zendesk agent email address
- API token — generate one in Admin Center → Apps and integrations → APIs → Zendesk API → Add API token
Authentication uses HTTP Basic with email/token:api_token as the credentials.
Step 2: Identify your VIP organizations
Make sure your VIP customer accounts are set up as organizations in Zendesk with the "vip" tag. You can verify by going to Admin Center → People → Organizations and checking that your key accounts have the tag.
If you haven't tagged them yet, see the Zendesk Triggers approach (Step 1) for instructions on adding organization tags.
Step 3: Create the Cowork task
Open Claude Desktop → Cowork tab → + New task.
Title: Audit and flag missed VIP tickets
Description:
You are a support ops assistant. Your job is to find Zendesk tickets from VIP organizations that weren't properly tagged and escalated.
Zendesk credentials:
- Subdomain: YOUR_SUBDOMAIN
- Auth: HTTP Basic — username: YOUR_EMAIL/token, password: YOUR_API_TOKEN
Steps:
1. Get the list of VIP organizations:
GET https://YOUR_SUBDOMAIN.zendesk.com/api/v2/organizations.json?per_page=100
Auth: Basic (email/token:api_token)
VIP organizations are the ones that have "vip" in their tags array.
2. Search for open/pending tickets without the "vip" tag:
GET https://YOUR_SUBDOMAIN.zendesk.com/api/v2/search.json?query=type:ticket status:open status:pending -tags:vip
3. For each ticket, check if its organization_id matches a VIP organization.
4. For any VIP ticket that's missing the tag:
a. Update the ticket to add the "vip" tag and set priority to "urgent":
PUT https://YOUR_SUBDOMAIN.zendesk.com/api/v2/tickets/{id}.json
Body: {"ticket": {"tags": [EXISTING_TAGS, "vip"], "priority": "urgent"}}
b. Do NOT remove existing tags — merge them with the new "vip" tag.
5. (Optional) If SLACK_BOT_TOKEN and SLACK_CHANNEL_ID are available, post a message for each flagged ticket:
POST https://slack.com/api/chat.postMessage
Authorization: Bearer SLACK_BOT_TOKEN
Body: {"channel": "CHANNEL_ID", "text": "Missed VIP ticket #ID: SUBJECT — flagged and escalated"}
6. Print a summary of tickets checked and VIP tickets flagged.
Important:
- Only add tags, never remove existing ones.
- Only process open or pending tickets.
- If a ticket has no organization_id, skip it.Replace YOUR_SUBDOMAIN, YOUR_EMAIL, and YOUR_API_TOKEN with your actual values. If you want Slack alerts, add your SLACK_BOT_TOKEN and SLACK_CHANNEL_ID in the description.
Step 4: Set the schedule
Frequency: Every hour
This gives the Zendesk trigger (if configured) time to handle most tickets natively, while the Cowork audit catches anything that slipped through.
For tighter coverage during business hours, set it to every 30 minutes.
If your machine sleeps or Claude Desktop closes, scheduled tasks are skipped. A VIP ticket created at 2 AM won't be caught until the next run after Claude Desktop opens. If you need 24/7 coverage, use the Agent Skill with a cron job or GitHub Actions.
Step 5: Run it manually first
Click Run now and watch the output. A typical run looks like this:
Loading VIP organizations...
Found 12 VIP organization(s)
Checking 34 untagged tickets...
#98234 "Cannot access billing portal" (Org: Acme Corp)
-> VIP org match — flagging ticket
-> Added "vip" tag, set priority to urgent
-> Slack alert sent
#98251 "API rate limit question" (Org: Globex Inc)
-> VIP org match — flagging ticket
-> Added "vip" tag, set priority to urgent
-> Slack alert sent
#98260 "General question about pricing" (Org: SmallCo)
-> Not a VIP org — skipped
Summary: Flagged 2 missed VIP ticket(s) out of 34 checked.Verify in Zendesk that the flagged tickets now have the "vip" tag and Urgent priority. If you configured Slack, check your channel for the alerts.
When to use this approach
- You want a VIP audit running today with no code or infrastructure to set up
- You're using the Zendesk trigger for instant escalation and want a backup that catches edge cases
- Your team is still building out VIP organization tagging and you expect some orgs to be added after tickets are created
- You want to experiment with VIP criteria before committing to a permanent automation
When to switch approaches
- You need instant VIP alerts on ticket creation (under 1 minute) — use the native Zendesk trigger approach
- You need 24/7 reliable auditing without depending on your laptop — use the Agent Skill with cron
- You want to include rich account details (ARR, plan tier, CSM) in the Slack alert — use the n8n approach, which can fetch organization custom fields and format them into Block Kit messages
For the strongest coverage, set up the native Zendesk trigger for instant VIP escalation and run this Cowork task hourly as a safety net. The trigger handles the real-time alerting; the audit catches anything the trigger missed because an organization wasn't tagged yet when the ticket came in.
Cost
Usage-based Claude Desktop pricing. Each run makes a small number of Zendesk API calls (list organizations, search tickets, update tickets) and optionally posts to Slack. API calls are included in your Zendesk plan.
Need help implementing this?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.