{"skill":{"slug":"clawver-reviews","displayName":"Clawver Reviews","summary":"Handle Clawver customer reviews. Monitor ratings, craft responses, track sentiment trends. Use when asked about customer feedback, reviews, ratings, or reputation management.","description":"---\nname: clawver-reviews\ndescription: Handle Clawver customer reviews. Monitor ratings, craft responses, track sentiment trends. Use when asked about customer feedback, reviews, ratings, or reputation management.\nversion: 1.1.0\nhomepage: https://clawver.store\nmetadata: {\"openclaw\":{\"emoji\":\"⭐\",\"homepage\":\"https://clawver.store\",\"requires\":{\"env\":[\"CLAW_API_KEY\"]},\"primaryEnv\":\"CLAW_API_KEY\"}}\n---\n\n# Clawver Reviews\n\nManage customer reviews on your Clawver store. Monitor ratings, respond to feedback, and maintain your store's reputation.\n\n## Prerequisites\n\n- `CLAW_API_KEY` environment variable\n- Active store with completed orders\n\nFor platform-specific good and bad API patterns from `claw-social`, use `references/api-examples.md`.\n\n## List Reviews\n\n### Get All Reviews\n\n```bash\ncurl https://api.clawver.store/v1/stores/me/reviews \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"reviews\": [\n      {\n        \"id\": \"review_abc123\",\n        \"orderId\": \"order_xyz789\",\n        \"productId\": \"prod_456\",\n        \"rating\": 5,\n        \"title\": \"Amazing quality!\",\n        \"body\": \"The wallpapers are stunning.\",\n        \"reviewerName\": \"John D.\",\n        \"reviewerEmail\": \"john@example.com\",\n        \"createdAt\": \"2024-01-15T10:30:00Z\",\n        \"updatedAt\": \"2024-01-15T10:30:00Z\"\n      },\n      {\n        \"id\": \"review_def456\",\n        \"orderId\": \"order_abc123\",\n        \"productId\": \"prod_789\",\n        \"rating\": 3,\n        \"body\": \"Good quality but shipping took longer than expected.\",\n        \"reviewerName\": \"Jane S.\",\n        \"reviewerEmail\": \"jane@example.com\",\n        \"createdAt\": \"2024-01-14T08:15:00Z\",\n        \"updatedAt\": \"2024-01-14T09:00:00Z\",\n        \"response\": {\n          \"body\": \"Thank you for your feedback! We're working with our shipping partner to improve delivery times.\",\n          \"createdAt\": \"2024-01-14T09:00:00Z\"\n        }\n      }\n    ]\n  },\n  \"pagination\": {\n    \"cursor\": \"next_page_id\",\n    \"hasMore\": false,\n    \"limit\": 20\n  }\n}\n```\n\n### Pagination\n\n```bash\ncurl \"https://api.clawver.store/v1/stores/me/reviews?limit=20&cursor=abc123\" \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n```\n\n### Filter Unanswered Reviews\n\n```python\nresponse = api.get(\"/v1/stores/me/reviews\")\nreviews = response[\"data\"][\"reviews\"]\nunanswered = [r for r in reviews if not r.get(\"response\")]\nprint(f\"Unanswered reviews: {len(unanswered)}\")\n```\n\n## Respond to Reviews\n\n```bash\ncurl -X POST https://api.clawver.store/v1/reviews/{reviewId}/respond \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"body\": \"Thank you for your kind review! We appreciate your support.\"\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"review\": {\n      \"id\": \"review_abc123\",\n      \"response\": {\n        \"body\": \"Thank you for your kind review! We appreciate your support.\",\n        \"createdAt\": \"2024-01-15T11:00:00Z\"\n      }\n    }\n  }\n}\n```\n\n**Response requirements:**\n- Maximum 1000 characters\n- Posting again replaces the existing response for that review\n- Professional tone recommended\n\n## Review Webhook\n\nGet notified when new reviews are posted:\n\n```bash\ncurl -X POST https://api.clawver.store/v1/webhooks \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://your-server.com/webhook\",\n    \"events\": [\"review.received\"],\n    \"secret\": \"your-secret-min-16-chars\"\n  }'\n```\n\n**Webhook payload:**\n```json\n{\n  \"event\": \"review.received\",\n  \"timestamp\": \"2024-01-15T10:30:00Z\",\n  \"data\": {\n    \"reviewId\": \"review_abc123\",\n    \"orderId\": \"order_xyz789\",\n    \"rating\": 5\n  }\n}\n```\n\n**Signature format:**\n```\nX-Claw-Signature: sha256=abc123...\n```\n\n**Verification (Node.js):**\n```javascript\nconst crypto = require('crypto');\n\nfunction verifyWebhook(body, signature, secret) {\n  const expected = 'sha256=' + crypto\n    .createHmac('sha256', secret)\n    .update(body)\n    .digest('hex');\n  return crypto.timingSafeEqual(\n    Buffer.from(signature),\n    Buffer.from(expected)\n  );\n}\n```\n\n## Response Templates\n\n### Positive Reviews (4-5 stars)\n\n**Generic thank you:**\n```\nThank you for your wonderful review! We're thrilled you love the product. Your support means everything to us!\n```\n\n**For repeat customers:**\n```\nThank you for another great review! We truly appreciate your continued support.\n```\n\n**For detailed reviews:**\n```\nThank you for taking the time to write such a thoughtful review! Feedback like yours helps other customers and motivates us to keep creating.\n```\n\n### Neutral Reviews (3 stars)\n\n**Acknowledge and improve:**\n```\nThank you for your honest feedback! We're always looking to improve. If there's anything specific we can do better, please reach out—we'd love to hear from you.\n```\n\n### Negative Reviews (1-2 stars)\n\n**Apologize and offer solution:**\n```\nWe're sorry to hear about your experience. This isn't the standard we aim for. Please contact us at [email] so we can make this right.\n```\n\n**For shipping issues (POD):**\n```\nWe apologize for the shipping delay. We're working with our fulfillment partner to improve delivery times. Thank you for your patience and feedback.\n```\n\n**For product issues:**\n```\nWe're sorry the product didn't meet your expectations. We'd like to understand more about what went wrong. Please reach out to us so we can resolve this for you.\n```\n\n## Analytics\n\n### Overall Rating from Store Analytics\n\n```bash\ncurl https://api.clawver.store/v1/stores/me/analytics \\\n  -H \"Authorization: Bearer $CLAW_API_KEY\"\n```\n\nTop products in the response include `averageRating` and `reviewsCount`.\n\n### Rating Distribution\n\n```python\nresponse = api.get(\"/v1/stores/me/reviews\")\nreviews = response[\"data\"][\"reviews\"]\n\ndistribution = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0}\nfor review in reviews:\n    distribution[review[\"rating\"]] += 1\n\ntotal = len(reviews)\nfor rating, count in distribution.items():\n    pct = (count / total * 100) if total > 0 else 0\n    print(f\"{rating} stars: {count} ({pct:.1f}%)\")\n```\n\n## Automated Review Management\n\n### Daily Review Check\n\n```python\ndef check_and_respond_to_reviews():\n    response = api.get(\"/v1/stores/me/reviews\")\n    reviews = response[\"data\"][\"reviews\"]\n    \n    for review in reviews:\n        # Skip if already responded\n        if review.get(\"response\"):\n            continue\n        \n        # Auto-respond based on rating\n        if review[\"rating\"] >= 4:\n            response_text = \"Thank you for your wonderful review! We're thrilled you love the product.\"\n        elif review[\"rating\"] == 3:\n            response_text = \"Thank you for your feedback! We're always looking to improve.\"\n        else:\n            # Flag for manual review\n            print(f\"Negative review needs attention: {review['id']}\")\n            continue\n        \n        api.post(f\"/v1/reviews/{review['id']}/respond\", {\n            \"body\": response_text\n        })\n        print(f\"Responded to review {review['id']}\")\n```\n\n### Sentiment Monitoring\n\n```python\ndef check_sentiment_trend():\n    response = api.get(\"/v1/stores/me/reviews\")\n    reviews = response[\"data\"][\"reviews\"]\n    \n    # Get last 10 reviews (already sorted by date)\n    recent = reviews[:10]\n    \n    if not recent:\n        return\n    \n    avg_rating = sum(r[\"rating\"] for r in recent) / len(recent)\n    negative_count = sum(1 for r in recent if r[\"rating\"] <= 2)\n    \n    if avg_rating < 3.5:\n        print(\"Warning: Recent review sentiment is declining\")\n    \n    if negative_count >= 3:\n        print(\"Warning: Multiple negative reviews in recent batch\")\n```\n\n## Best Practices\n\n1. **Respond quickly** - Aim to respond within 24 hours\n2. **Be professional** - Avoid defensive or argumentative responses\n3. **Take it offline** - For complex issues, invite customers to email\n4. **Thank everyone** - Even negative reviewers deserve acknowledgment\n5. **Learn from feedback** - Use recurring themes to improve products\n6. **Don't incentivize** - Never offer discounts for positive reviews\n\n## Impact on Store\n\n- Reviews display on product pages\n- Average rating shows on store profile\n- Higher ratings improve marketplace visibility\n- Responding to reviews builds trust with future buyers\n","tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":2076,"installsAllTime":78,"installsCurrent":3,"stars":1,"versions":2},"createdAt":1770343526482,"updatedAt":1778486040582},"latestVersion":{"version":"1.0.1","createdAt":1770950766990,"changelog":"Version 1.1.0\n\n- Added reference to platform-specific API usage examples in a new references/api-examples.md file.\n- Updated API response field names for reviews (e.g., \"id\" to \"review_abc123\").\n- Changed review response behavior: posting again replaces an existing response (can now edit responses).\n- Updated pagination structure in review list API responses for clarity.\n- Various wording, field, and code example improvements in documentation for accuracy and consistency.","license":null},"metadata":{"setup":[{"key":"CLAW_API_KEY","required":true}],"os":null,"systems":null},"owner":{"handle":"nwang783","userId":"s1759jsznh2vb664q345vn362d884wq5","displayName":"nwang783","image":"https://avatars.githubusercontent.com/u/149958172?v=4"},"moderation":null}