What this is
Negative reviews can sit under five-star ratings until someone notices days later. By then the customer may have already posted publicly. This workflow routes negative feedback to your team right away.
Each review is classified by Claude and logged to Google Sheets. Negative reviews also trigger a Slack alert and an automatic acknowledgment email so the customer knows you received their feedback.
How it runs
The flow is linear with one branch. A JavaScript step normalizes the incoming fields. Claude classifies the review and returns JSON with sentiment, confidence, a one-line summary, and whether a human should respond. Another script merges that output with the original review and prepares the Slack message.
Every review is written to Google Sheets, regardless of sentiment. A Switch step reads the classification: positive and neutral reviews end there. Negative reviews continue to Slack and Resend, which sends an acknowledgment email with a reference number.
The steps
- JavaScript (map_review_fields): Cleans the incoming payload and fills in missing fields.
- Claude (llm_claude_1): JSON-only prompt. Temperature 0.1 keeps classification consistent for the same review text.
- JavaScript (format_review_record): Combines the review with Claude's analysis and builds the Slack message for downstream steps.
- Google Sheets (google_sheets_1): Appends a row for every review. Ten columns: ID, timestamp, name, email, rating, sentiment, confidence, summary, needs-response, full text.
- Switch (negative_review_switch): Negative reviews go to the alert branch. All others exit.
- Slack (slack_messaging_1): Posts to your support channel. Optional so a Slack outage does not block the customer email.
- Resend (resend_send_mail_1): Sends an acknowledgment email with the review ID as reference.
Design notes
Reviews are logged to Google Sheets before the sentiment branch. Keeping positive and neutral reviews in the sheet gives you a baseline to spot drift in Claude's classifications over time.
Slack is optional; the customer email is not. If Slack is unavailable, the customer still gets a reply. Internal alerts are helpful, but the acknowledgment email is the critical path.
Setup
- Connect Claude, Google Sheets, Slack, and Resend.
- Create a sheet with columns A through J and paste the spreadsheet ID into the
google_sheets_1step. - Point Slack at your support channel.
- Replace
REPLACE_WITH_YOUR_SENDER_EMAILin the Resend step with your verified sender. - Trigger with a payload containing
reviewer_name,email,rating, andreview_text.
When to use it
- Reviews matter for your growth (SaaS, e-commerce, app store listings).
- Your support team is small and cannot monitor review feeds in real time.
- You want faster responses before unhappy customers escalate publicly.