Automation: Customer Message Triage and Response System
What This Builds
Every customer email you receive gets automatically classified (urgent / routine / spam), summarized in 1 sentence, and routed to a prioritized list you review each morning. Instead of digging through a chaotic inbox, you open one Google Sheet or Slack message each day with a clear action queue. urgent items flagged first, routine messages pre-drafted, spam already ignored.
Prerequisites
- Comfortable using ChatGPT for customer service responses (Level 3)
- A Gmail account or Gorgias/Zendesk account for customer emails
- A Zapier account (free tier works for basic automation; paid for multi-step)
- A Google Sheets or Slack account for your triage output
- OpenAI API key (get one at platform.openai.com. costs pennies per email)
The Concept
A Zapier automation is like a pipeline that connects two apps: when something happens in App A, do something in App B. Here, the pipeline is: new customer email → send it to ChatGPT → ChatGPT classifies and summarizes → result lands in Google Sheets or Slack as a triage row.
Think of it as hiring a virtual intern whose only job is to read every incoming email and put it in the right pile before you arrive at your desk.
Build It Step by Step
Part 1: Set Up Your Zapier Account and Google Sheet
- Go to zapier.com and create a free account (or sign in)
- Create a new Google Sheet called "Customer Message Triage"
- Add these column headers in Row 1:
- A: Timestamp
- B: From
- C: Subject
- D: Original Message (truncated)
- E: Priority (Urgent / Routine / Spam)
- F: Summary
- G: Suggested Response
- H: Status (Action Needed / Done)
Part 2: Build the Zapier Automation
Step 1: Create a New Zap
- In Zapier, click Create Zap
- Name it: "Customer Email Triage"
Step 2: Set Up the Trigger (Gmail)
- Click Trigger → search for Gmail
- Choose event: New Email
- Connect your Gmail account
- Set filter: Inbox only (or your customer service label if you use Gmail labels)
- Test the trigger. Zapier will show a sample email
Step 3: Add the OpenAI Classifier Action
- Click + to add an action → search for OpenAI (ChatGPT)
- Choose action event: Send Prompt
- Connect your OpenAI account (you'll need an API key from platform.openai.com)
- In the Prompt field, type:
You are an e-commerce customer service classifier. Analyze this customer email and respond ONLY with a JSON object in this exact format:
{
"priority": "Urgent|Routine|Spam",
"summary": "One sentence summary of what the customer needs",
"response_draft": "A brief 2-3 sentence response draft"
}
Priority rules:
- Urgent: damaged item, missing order, account suspension threat, A-to-Z claim, item never arrived
- Routine: return request, tracking question, product question, general inquiry
- Spam: promotional emails, automated notifications, irrelevant
Customer email:
Subject: [map to Gmail "Subject" field]
From: [map to Gmail "From" field]
Body: [map to Gmail "Body Plain" field, first 500 characters]
- Click Map variables. connect the Subject, From, and Body fields from the Gmail trigger
Step 4: Add the Google Sheets Action
- Add another action → search for Google Sheets
- Choose event: Create Spreadsheet Row
- Connect your Google account
- Select your "Customer Message Triage" spreadsheet and the main sheet
- Map the columns:
- Timestamp → Gmail "Date"
- From → Gmail "From"
- Subject → Gmail "Subject"
- Original Message → Gmail "Body Plain" (first 200 chars)
- Priority → OpenAI response → parse "priority" from JSON
- Summary → OpenAI response → parse "summary" from JSON
- Suggested Response → OpenAI response → parse "response_draft" from JSON
- Status → Type "Action Needed" as static text
Note on JSON parsing: Zapier's formatter tool can extract JSON fields. Add a Zapier Formatter step between OpenAI and Google Sheets, choose Utilities → Extract Pattern to pull the priority, summary, and response_draft values from the JSON output.
Part 3: Test and Refine
- Click Test Zap. Zapier will run a test using the sample email from your trigger
- Check your Google Sheet. you should see a new row appear with classification and summary
- Send yourself a test email that looks like a damage complaint. verify it gets classified as "Urgent"
- Turn the Zap ON
Real Example: A Day Using This System
Setup: Your Zap has been running for 3 days.
Input (what happened overnight): 7 customer emails arrived. 2 tracking questions, 1 damage complaint, 1 automated order confirmation (spam), 3 "where is my order" messages.
Output (what you see in Google Sheets at 9am):
| Priority | Summary | Suggested Response |
|---|---|---|
| Urgent | Customer received cracked product, wants replacement | "We're so sorry to hear your [product] arrived damaged. We'd like to make this right immediately. can you send a photo of the damage so we can process a replacement?" |
| Routine | Customer asking for tracking number on order #1234 | "Your order #1234 has shipped! Here's your tracking link: [tracking]. It should arrive by..." |
| Spam | Automated FedEx tracking update | (ignore) |
Time saved: Instead of reading 7 emails cold, you open one Google Sheet with a prioritized queue and pre-drafted responses ready to personalize and send.
What to Do When It Breaks
- OpenAI step times out → Add a 2-second delay before the OpenAI step in Zapier; or reduce the email body to 300 characters in the prompt
- JSON parsing fails → The AI sometimes adds extra text before the JSON. In your Formatter step, use the regex pattern
\{[\s\S]*\}to extract just the JSON object - Emails not triggering → Check your Gmail label filter, if you moved emails to a label, make sure the Zap is watching that label specifically
- Wrong priority classification → Add examples to the prompt: "Example of Urgent: 'My package never arrived and tracking hasn't updated in 10 days.'"
Variations
- Simpler version: Skip the OpenAI step and just use Zapier to copy all customer emails to a Google Sheet, no AI classification, but still centralized. Takes 20 minutes to build.
- Extended version: Add a Slack action that pings your #customer-service channel for "Urgent" emails immediately, while "Routine" emails go to the daily sheet. You'll never miss a critical message again.
What to Do Next
- This week: Build and test the basic version with Gmail + OpenAI + Google Sheets
- This month: Add conditional routing. Urgent emails trigger an immediate Slack DM; Routine emails go to the daily triage sheet
- Advanced: Connect the "suggested response" column back to Gmail via a button or trigger. one-click send with the AI draft, reviewed by you
Advanced guide for e-commerce coordinator professionals. These techniques require a paid OpenAI API key (typically $1-5/month for moderate email volume) and a Zapier account.