Automate Post-Ticket CSAT Follow-Up Emails: Build a Set-It-and-Forget-It Workflow
What This Builds
Every time you close a ticket, a personalized follow-up email goes out to the customer automatically — without you lifting a finger. The email is generated by ChatGPT using the customer's name and case type from the ticket, then sent via Gmail. You get credit for professional follow-ups on every single resolved case, not just the ones you had time to write manually.
Instead of sending 0-5 follow-up emails per day because you're too busy, this sends 40 — one for every ticket you close.
Prerequisites
- Comfortable using ChatGPT Plus for drafting (Level 3)
- Zendesk as your ticketing system (employer-provided)
- Gmail for email (personal or work account)
- Zapier account — free tier works to start, Starter plan ($19.99/mo) needed for multi-step zaps
- Supervisor approval — confirm with your manager before automating outbound emails to customers
The Concept
A Zapier automation is like a chain of dominoes: one event triggers a series of automatic actions without you doing anything. In this case:
Trigger (Domino 1): A ticket is marked "Solved" in Zendesk Action 1 (Domino 2): Zapier sends the ticket details (customer name, case type) to ChatGPT and asks it to write a follow-up email Action 2 (Domino 3): The ChatGPT-generated email is sent from your Gmail account to the customer
You set it up once. After that, every ticket closure triggers the chain automatically.
Build It Step by Step
Part 1: Set Up Your Zapier Account
- Go to zapier.com and create a free account
- From the dashboard, click "Create Zap" (the orange button)
- You'll see a canvas with "Trigger" and "Action" blocks — this is where you build the chain
Part 2: Configure the Zendesk Trigger
Click the "Trigger" block and search for "Zendesk"
Select "Zendesk" and choose the event: "Ticket Updated"
Click "Sign in to Zendesk" — you'll need your Zendesk subdomain (e.g., yourcompany.zendesk.com) and login credentials
After connecting, set the trigger conditions:
- Filter: "Status" → "Is" → "Solved"
- This means the zap only fires when a ticket is marked Solved (not just Updated)
Click "Test trigger" — Zapier will pull a recent Solved ticket to use as sample data. You should see ticket fields like customer name, subject, and description.
What you should see: A list of data fields from a real ticket: requester name, ticket subject, ticket ID, tags, etc.
Troubleshooting: If the test returns no data, make sure you have at least one ticket in "Solved" status in Zendesk from the past few days.
Part 3: Add the ChatGPT Action
Click the "+" to add an action after the trigger
Search for "ChatGPT" (by OpenAI) and select it
Choose the action event: "Send Message" or "Conversation"
Connect your OpenAI account (you'll need an API key from platform.openai.com → API Keys → Create new secret key)
In the "User Message" field, build your dynamic prompt using Zapier's field picker:
Write a brief, professional customer service follow-up email for this resolved ticket.
Customer name: [Select "Requester Name" from Zapier field picker]
Ticket subject: [Select "Subject" from Zapier field picker]
Instructions:
- Thank the customer for contacting us
- Confirm their issue has been resolved
- Invite them to reach out if they need anything else
- Tone: warm, professional, brief (under 80 words)
- Sign it: [Your name], Customer Service Team
Do not include a subject line — just the email body.
- Click "Test action" — you should get a generated email as the output.
What you should see: A complete follow-up email personalized with the customer's name and case subject, around 60-80 words.
Troubleshooting: If you get a billing error from OpenAI, you need to add a payment method at platform.openai.com → Billing. OpenAI API usage costs roughly $0.01-0.02 per email generated — for 40 emails/day, approximately $0.40-0.80/day.
Part 4: Add the Gmail Send Action
Click "+" to add another action
Search for "Gmail" and select it
Choose action event: "Send Email"
Connect your Gmail account
Configure the fields:
- To: [Select "Requester Email" from the Zendesk trigger data]
- From: Your email address
- Subject: "Following up on your recent support request — [select Ticket Subject]"
- Body: [Select the ChatGPT output from the previous action step]
Click "Test action" — this will send a real test email. Use a ticket where the customer email is your own test email address, or check with your manager about sending a live test.
What you should see: An email arrives in the "To" inbox with the personalized ChatGPT-generated message.
Part 5: Test and Refine
- Turn the Zap on (toggle in the top right)
- Solve a test ticket in Zendesk
- Wait 1-5 minutes — Zapier runs on a polling interval for free/starter plans
- Check that the email was sent and looks right
Common adjustments after first test:
- Email too long: Add "Under 60 words" to the ChatGPT prompt
- Tone too formal: Add "conversational and friendly" to the tone instruction
- Wrong sender name: Update the "Sign it" line in the ChatGPT prompt
Real Example: End-to-End Walkthrough
Setup:
- Zendesk connected, trigger: ticket status = Solved
- ChatGPT prompt includes customer name and ticket subject as dynamic fields
- Gmail configured to send from your work email
Input (what triggers the workflow):
- You mark ticket #8841 as Solved in Zendesk
- Ticket: Customer "Maria Chen" — subject: "Replacement request for damaged item"
ChatGPT generates: "Hi Maria, thank you for reaching out about your replacement request. I'm glad we were able to get that resolved for you. Please don't hesitate to contact us again if you need anything — we're always happy to help. Best, [Your Name], Customer Service Team"
Email sent to: Maria Chen's email on file
Time saved: 3-5 minutes that you didn't spend writing and sending a manual follow-up
Time you spent: Zero — you were already working your next ticket
What to Do When It Breaks
- Zap not firing: Check Zapier's "Task History" — if the trigger is not recognizing "Solved" status, verify the trigger filter is set correctly. Some Zendesk configurations use different status labels.
- ChatGPT returning empty output: Check your OpenAI API billing — API access stops if the account balance runs out. Add credits at platform.openai.com.
- Emails going to spam: Add a note to your Zapier Gmail action to include a plain-text footer: "This is a follow-up from your recent customer service inquiry." Spam filters prefer structured, non-promotional content.
- Wrong customer email address: Verify that Zapier is pulling "Requester Email" not "Assignee Email" from the Zendesk trigger data.
Variations
- Simpler version: If ChatGPT API setup is too complex, replace the ChatGPT step with a fixed template in Zapier — use Zapier's "Formatter" tool to insert the customer name into a pre-written follow-up template
- Extended version: Add a Slack notification to yourself when the email sends (so you know it went out) by adding a Slack action after the Gmail step
What to Do Next
- This week: Get manager approval, build the zap, test with 5 tickets
- This month: Monitor email replies — if customers respond to follow-ups, you'll start seeing patterns in what they need post-resolution
- Advanced: Add a second branch: if the ticket has a tag "high-value-customer," send a more personalized version with an offer for a loyalty discount
Advanced guide for Customer Service Representatives. Requires Zapier Starter plan ($19.99/mo), OpenAI API access (~$0.50-$1.00/day depending on volume), and supervisor approval for automated customer emails.