Alert your team in Slack when a VIP customer opens a Gorgias ticket using Claude Cowork
Prerequisites
- Claude Desktop with Cowork enabled
- Gorgias account email, API key, and domain
- Slack Incoming Webhook URL for your escalation channel
- A definition of "VIP" — either a customer tag in Gorgias or a spend/order threshold
Overview
Claude Cowork lets you set up a recurring task that polls Gorgias for new tickets, identifies those from high-value customers, and posts a formatted Slack alert with ticket context and customer details — no code, no webhook infrastructure required. This is the quickest way to get VIP escalation alerting in place, especially for teams that don't have a dedicated ops engineer.
Step 1: Create a Slack Incoming Webhook
In Slack:
- Go to api.slack.com/apps → your app → Incoming Webhooks
- Toggle on → Add New Webhook to Workspace
- Choose your VIP escalation channel (e.g.,
#support-vip) - Copy the webhook URL
Step 2: Decide how to identify VIPs
Choose the method that works for your data:
Option A — Gorgias customer tag: Manually tag your best customers with vip in Gorgias (open a customer profile → Tags → add vip). Claude checks for this tag in the ticket payload.
Option B — Shopify LTV threshold: If Gorgias is connected to Shopify, Claude can read shopify_total_spent from the customer meta object and compare it to your threshold. No manual tagging required.
Note which option you're using — you'll include it in the task description.
Step 3: Create the Cowork task
Open Claude Desktop → Cowork tab → + New task.
Title: VIP customer Slack alert
Description (Option A — tag-based):
You are a customer support monitoring assistant. Check for new support tickets from VIP customers and alert the team in Slack.
Gorgias credentials:
- Domain: your-store
- Auth: HTTP Basic — username: you@company.com, password: YOUR_API_KEY
Slack Incoming Webhook: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
Steps:
1. Fetch open tickets created in the last 90 minutes:
GET https://your-store.gorgias.com/api/tickets?status=open&limit=50
2. For each ticket, check if the customer has a "vip" tag:
Look at ticket.requester.meta.tags — if any tag has name = "vip", this is a VIP ticket.
3. For VIP tickets, post a Slack message to the webhook URL:
POST [your Slack webhook URL]
Content-Type: application/json
Body:
{
"text": "🚨 VIP Customer — New Support Ticket",
"blocks": [
{"type": "header", "text": {"type": "plain_text", "text": "🚨 VIP Customer — New Ticket"}},
{"type": "section", "fields": [
{"type": "mrkdwn", "text": "*Customer*\n[name]"},
{"type": "mrkdwn", "text": "*Subject*\n[subject]"}
]},
{"type": "section", "text": {"type": "mrkdwn", "text": "*Message*\n[first 300 chars of message body]"}},
{"type": "section", "text": {"type": "mrkdwn", "text": "<https://your-store.gorgias.com/app/ticket/[id]|Open in Gorgias>"}}
]
}
Fill in [name], [subject], [first 300 chars of message body], and [id] from the ticket data.
4. Print a summary of tickets checked and alerts sent.
Do not re-alert on the same ticket ID if you've already sent an alert. Keep a running list of alerted ticket IDs in a local JSON file at ~/.vip-alerted.json.Description (Option B — LTV-based):
Same as above, but replace Step 2 with:
2. For each ticket, fetch the customer's profile:
GET https://your-store.gorgias.com/api/customers/{ticket.requester.id}
Check ticket.requester.meta.shopify_total_spent.
If the value is >= 500 (or your threshold), treat as a VIP ticket.Step 4: Set the schedule
Frequency: Every 30 minutes during business hours
For after-hours VIP coverage, increase frequency or switch to the Agent Skill + cron approach for 24/7 operation.
If your machine sleeps or Claude closes, scheduled tasks are skipped. A ticket from a VIP customer at 11 PM won't trigger an alert until the next run after Claude Desktop opens again. If overnight coverage matters, use the Agent Skill with a cron job on a server.
Step 5: Test it manually
Click Run now and watch the output. Check your Slack channel — a VIP alert should appear within seconds if any VIP tickets are in the queue.
If no VIP tickets exist for testing, temporarily change the threshold in your description (e.g., >= 0 to match all customers), run once to verify the Slack message format, then revert.
A typical run output:
Checking recent Gorgias tickets for VIP customers...
Fetched 18 tickets from the last 90 minutes.
Ticket #15020 — "My order never arrived" (Emma T.) → checking...
Customer: Emma T. | Tag: vip ✓
→ Slack alert sent
Ticket #15023 — "Return request" (John D.) → checking...
Customer: John D. | No vip tag
→ Skipped
Ticket #15027 — "Billing question" (Lisa K.) → checking...
Customer: Lisa K. | Tag: vip ✓
→ Already alerted (skipping duplicate)
Done. 1 new alert sent.Step 6: Respond in Slack
Brief your team on the alert format and set expectations:
- Alerts appear in
#support-vipwithin 30 minutes of ticket creation - The "Open in Gorgias" link goes directly to the ticket
- The first agent to see the alert should claim and respond to the ticket
- VIP tickets should get a response within 1 hour regardless of the general queue SLA
When to use this approach
- You want VIP alerting running today with no infrastructure setup
- Your VIP ticket volume is low enough that 30-minute batching is acceptable (typically true for most mid-market brands)
- You're still defining what "VIP" means and want to experiment with thresholds easily
When to switch approaches
- You need real-time alerts (under 5 minutes) → use Gorgias native Rules + HTTP integration or n8n with a webhook trigger
- You need 24/7 reliable alerting without depending on your laptop → use the Agent Skill with cron or GitHub Actions
- You want to auto-assign VIP tickets as part of the same workflow → use n8n, which can chain multiple API calls in one workflow
Need help implementing this?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.