Review reply drafts
Turns a batch of reviews into a triage list and one draft reply per review. The owner edits and posts; nothing here publishes anything.
Inputs
- Reviews: a CSV or pasted list with
site,date,rating,reviewer(first name or handle as shown publicly) andtext. See examples/reviews.csv. - Owner facts: business name, sign-off name, tone notes ("warm, short, no exclamation marks"), and how unhappy customers reach the owner privately (phone or address the owner gave). If any of these are missing, ask once; do not invent a phone number or address.
- Never-automate phrases from the owner's brief, if the business has them.
When the reviews come from the owner's mailbox, read them only through the AHL Action Gateway (gmail.search, gmail.read). The agent holds an agent token, never the owner's password or the review site's login, and stores no credentials in files or prompts.
Steps
- Read each review once. Note the rating, what the reviewer liked, what went wrong, and any names, dates or details they mention.
- Rate it with a one-line reason:
urgent: mentions safety, injury, illness, discrimination, a named staff member in a complaint, a legal word (lawyer, sue, report, inspector), or a health or medical detail.owner: 1 or 2 stars, or a specific complaint about price, billing, a refund or a broken promise.routine: everything else, including mixed reviews with no specific demand.
- Draft a reply for every review, urgent ones included, so the owner never starts from a blank page:
- 2 to 4 sentences. Thank them by the name they used publicly. Mention one specific thing they said, so the reply is not generic.
- Poor reviews: acknowledge the experience, do not argue with the facts, and invite them to contact the owner privately using the owner's stated contact route.
- Keep it free of anything the reviewer did not already make public: no visit dates, order numbers, treatments, appointments or account details. For a health practice, do not confirm the reviewer was ever a patient.
- No admissions of fault, no refunds, credits, discounts or free items, and no promise of a change the owner has not confirmed. Write
[OWNER: offer?]where the owner may want to add one. - No accusations that the review is fake and no threats of any kind. Businesses may answer reviews in public, but the FTC rule on reviews bars suppressing them through threats, intimidation or false accusations (FTC Q&A). If a review looks fake, say so in the triage note for the owner, not in the reply.
- Check each draft against the never-automate phrases and the rules in step 3. Rewrite any draft that fails.
- Save drafts. Write the output file below. If the owner wants drafts in their mailbox, create them with
gmail.draft(ormanual.draftwhen there is no connected Gmail) through the gateway. In rehearsal the gateway holds every draft for the owner; that is expected.
Output
One markdown file, urgent first, then owner, then routine. Match examples/expected-output.md:
## Urgent (1)
### Google, 2026-09-28, 1 star, "Dana"
Why urgent: names a staff member and says a child was hurt.
Draft reply:
> ...
Suggested next step for the owner: ...
End with a line counting reviews by rating and listing any review that looks fake or off-topic, with the reason.
Edge cases
- Review in another language: draft the reply in that language and add an English translation below it for the owner.
- No text, rating only: a one-line thank-you for 4 or 5 stars; for 1 or 2 stars, a short invitation to get in touch.
- Reviewer shares their own phone, email or health details: never repeat them in the reply; mark the review
urgentso the owner decides whether to ask the site to hide it. - Same reviewer, several sites: draft each separately and note the duplicate.
- An employee or relative of the owner left the review: flag it for the owner; the FTC Q&A expects that relationship to be disclosed.
Never
- Post, publish, flag or report a review, or ask a site to remove one.
- Offer money, refunds, discounts or gifts, or ask a reviewer to change or delete a review.
- Repeat personal, health or order details in a public reply, or confirm someone is a patient or client.
- Accuse a reviewer of lying or threaten legal action.
- Write reviews, or draft text for anyone to post as a customer.
- Log in to a review site or keep any password, token or session cookie.
Hand over
The owner gets the triage file and the drafts. They check: each urgent review has a next step they agree with; every reply sounds like them; nothing in a reply reveals more than the reviewer said; any [OWNER: offer?] marker is resolved or removed. The owner posts each reply from their own account and tells the agent which were posted.
The skill folder
Every file in the folder. Download each one into a folder with the same layout, or copy it.
review-reply-drafts/ SKILL.md examples/expected-output.md examples/reviews.csv
SKILL.md
---
name: review-reply-drafts
description: Drafts a short reply in the owner's voice for each new online review, rates each review routine, owner or urgent, and lists the urgent ones first. Use when an owner forwards review notifications or pastes a batch of reviews from Google, Yelp or another site and wants replies ready to edit and post. Drafts only; the owner posts every reply.
metadata:
ahl-category: front
ahl-jobs: reviews, support
ahl-industries: restaurant, hotel, salon, dental, ecommerce, plumbing
ahl-connectors: gmail, google-business-profile
ahl-workflows: front--06-draft-review-replies-and-flag-bad-ones, front--2026-ecommerce-moderate-product-reviews-without-suppression, operations--1503-hotel-reviews-to-fix-list
ahl-human-check: The owner reads, edits and posts every reply from their own account; urgent reviews go to the owner the same day.
ahl-proposed-status: approved
ahl-version: 1
ahl-sources: |
FTC — The Consumer Reviews and Testimonials Rule: Questions and Answers — https://www.ftc.gov/business-guidance/resources/consumer-reviews-testimonials-rule-questions-answers — 2026-10-06
---
# Review reply drafts
Turns a batch of reviews into a triage list and one draft reply per review. The owner edits and posts; nothing here publishes anything.
## Inputs
- **Reviews**: a CSV or pasted list with `site`, `date`, `rating`, `reviewer` (first name or handle as shown publicly) and `text`. See [examples/reviews.csv](examples/reviews.csv).
- **Owner facts**: business name, sign-off name, tone notes ("warm, short, no exclamation marks"), and how unhappy customers reach the owner privately (phone or address the owner gave). If any of these are missing, ask once; do not invent a phone number or address.
- **Never-automate phrases** from the owner's brief, if the business has them.
When the reviews come from the owner's mailbox, read them only through the AHL Action Gateway (`gmail.search`, `gmail.read`). The agent holds an agent token, never the owner's password or the review site's login, and stores no credentials in files or prompts.
## Steps
1. **Read each review once.** Note the rating, what the reviewer liked, what went wrong, and any names, dates or details they mention.
2. **Rate it** with a one-line reason:
- `urgent`: mentions safety, injury, illness, discrimination, a named staff member in a complaint, a legal word (lawyer, sue, report, inspector), or a health or medical detail.
- `owner`: 1 or 2 stars, or a specific complaint about price, billing, a refund or a broken promise.
- `routine`: everything else, including mixed reviews with no specific demand.
3. **Draft a reply** for every review, urgent ones included, so the owner never starts from a blank page:
- 2 to 4 sentences. Thank them by the name they used publicly. Mention one specific thing they said, so the reply is not generic.
- Poor reviews: acknowledge the experience, do not argue with the facts, and invite them to contact the owner privately using the owner's stated contact route.
- Keep it free of anything the reviewer did not already make public: no visit dates, order numbers, treatments, appointments or account details. For a health practice, do not confirm the reviewer was ever a patient.
- No admissions of fault, no refunds, credits, discounts or free items, and no promise of a change the owner has not confirmed. Write `[OWNER: offer?]` where the owner may want to add one.
- No accusations that the review is fake and no threats of any kind. Businesses may answer reviews in public, but the FTC rule on reviews bars suppressing them through threats, intimidation or false accusations (FTC Q&A). If a review looks fake, say so in the triage note for the owner, not in the reply.
4. **Check each draft** against the never-automate phrases and the rules in step 3. Rewrite any draft that fails.
5. **Save drafts.** Write the output file below. If the owner wants drafts in their mailbox, create them with `gmail.draft` (or `manual.draft` when there is no connected Gmail) through the gateway. In rehearsal the gateway holds every draft for the owner; that is expected.
## Output
One markdown file, urgent first, then owner, then routine. Match [examples/expected-output.md](examples/expected-output.md):
```
## Urgent (1)
### Google, 2026-09-28, 1 star, "Dana"
Why urgent: names a staff member and says a child was hurt.
Draft reply:
> ...
Suggested next step for the owner: ...
```
End with a line counting reviews by rating and listing any review that looks fake or off-topic, with the reason.
## Edge cases
- **Review in another language**: draft the reply in that language and add an English translation below it for the owner.
- **No text, rating only**: a one-line thank-you for 4 or 5 stars; for 1 or 2 stars, a short invitation to get in touch.
- **Reviewer shares their own phone, email or health details**: never repeat them in the reply; mark the review `urgent` so the owner decides whether to ask the site to hide it.
- **Same reviewer, several sites**: draft each separately and note the duplicate.
- **An employee or relative of the owner left the review**: flag it for the owner; the FTC Q&A expects that relationship to be disclosed.
## Never
- Post, publish, flag or report a review, or ask a site to remove one.
- Offer money, refunds, discounts or gifts, or ask a reviewer to change or delete a review.
- Repeat personal, health or order details in a public reply, or confirm someone is a patient or client.
- Accuse a reviewer of lying or threaten legal action.
- Write reviews, or draft text for anyone to post as a customer.
- Log in to a review site or keep any password, token or session cookie.
## Hand over
The owner gets the triage file and the drafts. They check: each urgent review has a next step they agree with; every reply sounds like them; nothing in a reply reveals more than the reviewer said; any `[OWNER: offer?]` marker is resolved or removed. The owner posts each reply from their own account and tells the agent which were posted.
examples/expected-output.md
# Review replies, week of 2026-09-27 (invented example: Juniper Street Kitchen, sign-off "Sam") Owner facts used: sign-off "Sam, owner"; private contact route "call the restaurant and ask for Sam". Tone: warm, short, no exclamation marks. ## Urgent (1) ### Google, 2026-09-28, 1 star, "Dana" Why urgent: says a child slipped on a wet floor (safety) and names a staff member in a complaint. Draft reply: > Dana, I'm sorry to read this, and I want to hear what happened. Please call the restaurant and ask for me, Sam, so we can talk it through directly. > Sam, owner Suggested next step for the owner: check the incident and cleaning log for 2026-09-28 and speak to the staff on shift before replying; talk to your insurer if anyone was hurt. The reply does not admit fault or discuss the staff member. ## Owner (2) ### Google, 2026-09-29, 2 stars, "R.L." Why owner: billing complaint (double charge) and a missed callback. Draft reply: > R.L., I'm sorry you were charged twice and that nobody called you back. That should not happen. Please call the restaurant and ask for me, Sam, and I'll look into it with you. [OWNER: offer?] > Sam, owner Suggested next step for the owner: look for a duplicate charge in the card terminal report for 2026-09-29; any refund is your decision, made privately. ### Yelp, 2026-09-27, 3 stars, "Marcus T." Why owner: specific complaint about a broken promise (reservation not honoured on time). Draft reply: > Marcus, thank you for the kind words about the food, and I'm sorry you waited so long despite having a reservation. I'd like to hear more about that evening, so please call the restaurant and ask for me, Sam. > Sam, owner ## Routine (2) ### Google, 2026-09-27, 5 stars, "Priya" Draft reply: > Priya, thank you. We're glad the brisket tacos and the patio heaters made for a good evening, and we look forward to seeing you and your sister. > Sam, owner ### Yelp, 2026-09-30, 4 stars, "Ana G." (Spanish) Draft reply: > Ana, muchas gracias. Nos alegra que le gustara la sopa, y tomamos nota sobre el volumen de la música. > Sam, dueño English for the owner: "Ana, thank you very much. We're glad you liked the soup, and we've noted the point about the music volume." --- Counts: 5 reviews (one 5, one 4, one 3, one 2, one 1). None look fake or off-topic.
examples/reviews.csv
site,date,rating,reviewer,text Google,2026-09-27,5,Priya,"Best brisket tacos in town and the patio heaters made a cold night lovely. Will be back with my sister." Yelp,2026-09-27,3,Marcus T.,"Food was good but we waited 40 minutes for a table even though we had a reservation." Google,2026-09-28,1,Dana,"Our server Kyle ignored us and my son slipped on a wet floor by the restroom. No sign, nobody came to help." Google,2026-09-29,2,R.L.,"Charged twice for the same order on my card. Called and nobody called back." Yelp,2026-09-30,4,Ana G.,"La sopa estaba deliciosa, pero la música estaba muy fuerte."
Use it in Claude Code
Put the folder at .claude/skills/review-reply-drafts/ in your project (or ~/.claude/skills/review-reply-drafts/ to use it in every project). Claude Code finds SKILL.md there and uses the skill when a request matches its description.
Other agents that read the Agent Skills format take the same folder.
Sources
- FTC: The Consumer Reviews and Testimonials Rule: Questions and AnswersChecked 6 Oct 2026