gplay-review-management
Review monitoring, filtering, and automated responses for Google Play. Use when managing user reviews and feedback.
Summary
- Purpose
- Helps retrieve, filter, inspect, and analyze Google Play reviews, with examples for replying to reviewers and monitoring feedback.
- When to use
- Use it to search reviews by rating, date, language, or keywords, inspect a specific review, calculate rating metrics, or build reply and monitoring workflows.
- Outputs
- It provides gplay and shell examples for listing or filtering reviews, retrieving review details, calculating aggregates, submitting replies, and monitoring unreplied feedback.
Upstream changes (3, latest included 2026-07-04)
439c9ae fix(skills): audit cleanup — correct every command, cut dead weight, add drift guardrail (#3) Added an example for translating review text with `--translation-language` and removed the reply templates and response best-practices sections. 13309f2 fix: correct --review-id to --review in review management skill Updated the review retrieval and reply examples, including the automation script, to use `--review` instead of `--review-id`. acb31df Initial commit: Google Play CLI Skills repository Added the initial Google Play review-management guide with examples for listing and filtering reviews, replying, automation, analytics, and monitoring. npx skills add "lettucebo/Skills#v2.2.0@gplay-review-management" --full-depth ⚠ Available after v2.2.0 is published
Review Management for Google Play
Use this skill when you need to monitor and respond to user reviews.
List Reviews
Get all reviews
gplay reviews list --package com.example.app
Get all reviews with pagination
gplay reviews list --package com.example.app --paginate
Table output (human-readable)
gplay reviews list \
--package com.example.app \
--output table
Filter Reviews
By rating
# Get 1-star reviews
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.rating == 1)'
# Get 5-star reviews
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.rating == 5)'
# Get reviews with 3 stars or less
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.rating <= 3)'
By date
# Reviews from last 7 days
DATE_7_DAYS_AGO=$(date -u -v-7d +%Y-%m-%dT%H:%M:%SZ)
gplay reviews list --package com.example.app \
| jq --arg date "$DATE_7_DAYS_AGO" \
'.reviews[] | select(.comments[0].userComment.lastModified.time > $date)'
By language
# English reviews only
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.comments[0].userComment.language == "en")'
Machine-translated review text
Use the built-in --translation-language flag to get review text translated by Google, rather than reading it in the original language:
gplay reviews list --package com.example.app --translation-language en-US
Reviews containing keywords
# Find reviews mentioning "crash"
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.comments[0].userComment.text | contains("crash"))'
Get Specific Review
gplay reviews get \
--package com.example.app \
--review REVIEW_ID
Reply to Reviews
gplay reviews reply \
--package com.example.app \
--review REVIEW_ID \
--text "Thank you for your feedback! We've fixed this issue in version 1.2.3."
Automated Review Response
Script to reply to unreplied 1-star reviews
#!/bin/bash
PACKAGE="com.example.app"
# Get all unreplied 1-star reviews
gplay reviews list --package $PACKAGE --paginate \
| jq -r '.reviews[] | select(.rating == 1 and (.comments | length == 1)) | .reviewId' \
| while read REVIEW_ID; do
echo "Replying to review: $REVIEW_ID"
gplay reviews reply \
--package $PACKAGE \
--review "$REVIEW_ID" \
--text "Thank you for your feedback. We're sorry to hear about your experience. Please email support@example.com so we can help resolve this issue."
done
Review Analytics
Count reviews by rating
gplay reviews list --package com.example.app --paginate \
| jq '[.reviews[] | .rating] | group_by(.) | map({rating: .[0], count: length})'
Average rating calculation
gplay reviews list --package com.example.app --paginate \
| jq '[.reviews[].rating] | add / length'
Most common words in reviews
gplay reviews list --package com.example.app --paginate \
| jq -r '.reviews[].comments[0].userComment.text' \
| tr '[:upper:]' '[:lower:]' \
| tr -s ' ' '\n' \
| sort | uniq -c | sort -rn | head -20
Monitor for Specific Issues
Find crash-related reviews
gplay reviews list --package com.example.app --paginate \
| jq '.reviews[] | select(.comments[0].userComment.text | test("crash|freeze|hang"; "i"))'
Find reviews mentioning competitors
gplay reviews list --package com.example.app --paginate \
| jq '.reviews[] | select(.comments[0].userComment.text | test("competitor_name"; "i"))'
Find reviews with refund requests
gplay reviews list --package com.example.app --paginate \
| jq '.reviews[] | select(.comments[0].userComment.text | test("refund|money back"; "i"))'
Monitoring Dashboard
Create a simple review dashboard:
#!/bin/bash
PACKAGE="com.example.app"
echo "=== Review Dashboard ==="
echo ""
# Total reviews
TOTAL=$(gplay reviews list --package $PACKAGE --paginate | jq '.reviews | length')
echo "Total reviews: $TOTAL"
# Rating distribution
echo ""
echo "Rating distribution:"
gplay reviews list --package $PACKAGE --paginate \
| jq -r '.reviews[] | .rating' \
| sort | uniq -c | sort -rn
# Avg rating
AVG=$(gplay reviews list --package $PACKAGE --paginate \
| jq '[.reviews[].rating] | add / length')
echo ""
echo "Average rating: $AVG"
# Unreplied reviews
UNREPLIED=$(gplay reviews list --package $PACKAGE --paginate \
| jq '[.reviews[] | select(.comments | length == 1)] | length')
echo ""
echo "Unreplied reviews: $UNREPLIED"
# Recent 1-star
echo ""
echo "Recent 1-star reviews:"
gplay reviews list --package $PACKAGE \
| jq -r '.reviews[] | select(.rating == 1) | "\(.comments[0].userComment.lastModified.time): \(.comments[0].userComment.text)"' \
| head -5
Scheduled Review Check
Daily review check (cron)
# Add to crontab
0 9 * * * /path/to/check-reviews.sh
check-reviews.sh
#!/bin/bash
PACKAGE="com.example.app"
# Get unreplied 1-star and 2-star reviews
UNREPLIED=$(gplay reviews list --package $PACKAGE \
| jq '[.reviews[] | select(.rating <= 2 and (.comments | length == 1))] | length')
if [ "$UNREPLIED" -gt 0 ]; then
echo "⚠️ You have $UNREPLIED unreplied negative reviews!"
# Send notification (email, Slack, etc.)
fi
Integration with Support System
Forward reviews to support email:
#!/bin/bash
# Get reviews mentioning "support" or "help"
gplay reviews list --package com.example.app --paginate \
| jq -r '.reviews[] | select(.comments[0].userComment.text | test("support|help"; "i")) |
"Review ID: \(.reviewId)\nRating: \(.rating)\nText: \(.comments[0].userComment.text)\n---"' \
| mail -s "Support Reviews" support@example.com