Monitor CSAT scores and alert Slack on low ratings using Claude Cowork
Prerequisites
- Claude Desktop with Cowork enabled
- Gorgias account email, API key, and domain
- Slack Incoming Webhook URL for your CSAT alerts channel
Overview
Claude Cowork lets you set up a recurring task that checks Gorgias for recent satisfaction survey responses, identifies low scores, and sends a Slack alert — all described in plain text. No code to write or maintain. Claude reads the task description, makes the API calls, and posts alerts on your behalf.
This is the fastest way to get CSAT alerting running if you don't want to configure Gorgias Rules or set up an n8n workflow.
Step 1: Set up a Slack Incoming Webhook
In Slack, go to Apps → Incoming Webhooks → Add to Slack:
- Choose the channel for alerts (e.g. #csat-alerts)
- Copy the Webhook URL
- Set the bot name to "CSAT Alert" for easy identification
You'll paste this URL into the Cowork task description.
Step 2: Create the Cowork task
Open Claude Desktop → Cowork tab → + New task.
Title: Check for low CSAT scores and alert Slack
Description:
You are a customer satisfaction monitor. Check Gorgias for recent satisfaction
survey responses and alert a Slack channel when a customer gives a low score.
Gorgias credentials:
- Domain: your-store
- Auth: HTTP Basic (username: you@company.com, password: YOUR_API_KEY)
Slack webhook URL: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
Step 1 — Get recent satisfaction surveys:
GET https://your-store.gorgias.com/api/satisfaction-surveys?order_by=created_datetime:desc&limit=30
Step 2 — For each survey with a score of 1 or 2 (out of 5):
Fetch the ticket details:
GET https://your-store.gorgias.com/api/tickets/{ticket_id}
Step 3 — Send a Slack alert for each low score:
POST to the Slack webhook URL with this JSON:
{
"blocks": [
{
"type": "header",
"text": {"type": "plain_text", "text": "Low CSAT Score: SCORE/5"}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Customer:* CUSTOMER_NAME"},
{"type": "mrkdwn", "text": "*Email:* CUSTOMER_EMAIL"},
{"type": "mrkdwn", "text": "*Subject:* TICKET_SUBJECT"},
{"type": "mrkdwn", "text": "*Agent:* ASSIGNED_AGENT"}
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {"type": "plain_text", "text": "Open Ticket"},
"url": "https://your-store.gorgias.com/app/ticket/TICKET_ID"
}
]
}
]
}
Step 4 — Tag the ticket as "csat-low":
PUT https://your-store.gorgias.com/api/tickets/{ticket_id}
Body: {"tags": [{"name": "csat-low"}]}
Step 5 — Print a summary of what you found:
- Total surveys checked
- Number of low scores found
- For each low score: ticket ID, customer name, score, and whether alert was sent
Only alert on surveys from the last 2 hours to avoid duplicate alerts across runs.
Skip any ticket that already has the "csat-low" tag.Cowork tasks only execute while Claude Desktop is open and your machine is awake. For reliable 24/7 monitoring, use the Agent Skill with a cron job or the native Gorgias Rules approach instead.
Step 3: Set the schedule
Frequency: Every 30-60 minutes during business hours
If your support team works 9am-6pm, schedule every 30 minutes during those hours. Low CSAT scores that arrive overnight will be caught on the first morning run.
Step 4: Run manually and review
Click Run now and watch the output. Claude will:
- Fetch recent satisfaction surveys
- Identify scores of 1 or 2
- Look up ticket details for each
- Post a Slack alert
- Tag the ticket in Gorgias
A typical run summary looks like:
Checked 30 recent satisfaction surveys. Found 2 low scores.
#15201 - Maria S. - Score: 1/5
Subject: "Damaged item received"
Agent: Sarah K.
-> Slack alert sent, ticket tagged csat-low
#15195 - James T. - Score: 2/5
Subject: "Late delivery"
Agent: Mike R.
-> Slack alert sent, ticket tagged csat-low
Summary: 2 alerts sent, 28 surveys above threshold.Step 5: Refine the alert threshold
To also catch "passive" scores (3 out of 5), update the task description:
Change "score of 1 or 2" to "score of 1, 2, or 3" in both Step 2 and the summary.
Alert on 1-2 scores first. These are customers who are actively unhappy and most likely to churn. Once your team has a follow-up process in place for detractors, expand to include 3s if you want to catch passives too.
Step 6: Build a follow-up process
The Slack alert is only useful if someone acts on it. Establish a simple follow-up protocol:
- The agent who handled the ticket reviews the thread and identifies what went wrong
- A senior agent or team lead reaches out to the customer within 4 hours
- The follow-up message acknowledges the poor experience and offers a concrete resolution
- After follow-up, add a
csat-followed-uptag to the ticket
Update the Cowork task to skip tickets that already have csat-followed-up in addition to csat-low.
When to use this approach
- You want CSAT alerting running in under 10 minutes with no code
- Your team works standard hours and doesn't need 24/7 real-time alerts
- You have moderate survey volume (under 50 responses/day)
When to switch to another approach
- You need instant alerts the moment a low score arrives → use Gorgias native Rules
- You need alerts running 24/7 without depending on your laptop → use the Agent Skill with cron
- You want to enrich alerts with order history or route different scores to different channels → use n8n
Need help implementing this?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.