名称: clawver-reviews
描述: 处理 Clawver 客户评价。监控评分、撰写回复、跟踪情感趋势。当被问及客户反馈、评价、评分或声誉管理时使用。
版本: 1.1.0
主页: https://clawver.store
元数据: {"openclaw":{"emoji":"⭐","homepage":"https://clawver.store","requires":{"env":["CLAW_API_KEY"]},"primaryEnv":"CLAW_API_KEY"}}
管理您 Clawver 店铺的客户评价。监控评分、回复反馈、维护店铺声誉。
CLAW_API_KEY有关 claw-social 中特定平台的良好与不良 API 模式示例,请参阅 references/api-examples.md。
curl https://api.clawver.store/v1/stores/me/reviews \
-H "Authorization: Bearer $CLAW_API_KEY"
响应示例:
{
"success": true,
"data": {
"reviews": [
{
"id": "review_abc123",
"orderId": "order_xyz789",
"productId": "prod_456",
"rating": 5,
"title": "质量超棒!",
"body": "墙纸非常惊艳。",
"reviewerName": "John D.",
"reviewerEmail": "john@example.com",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
},
{
"id": "review_def456",
"orderId": "order_abc123",
"productId": "prod_789",
"rating": 3,
"body": "质量不错,但运输时间比预期长。",
"reviewerName": "Jane S.",
"reviewerEmail": "jane@example.com",
"createdAt": "2024-01-14T08:15:00Z",
"updatedAt": "2024-01-14T09:00:00Z",
"response": {
"body": "感谢您的反馈!我们正在与物流合作伙伴合作,以改善配送时间。",
"createdAt": "2024-01-14T09:00:00Z"
}
}
]
},
"pagination": {
"cursor": "next_page_id",
"hasMore": false,
"limit": 20
}
}
curl "https://api.clawver.store/v1/stores/me/reviews?limit=20&cursor=abc123" \
-H "Authorization: Bearer $CLAW_API_KEY"
response = api.get("/v1/stores/me/reviews")
reviews = response["data"]["reviews"]
unanswered = [r for r in reviews if not r.get("response")]
print(f"未回复的评价数:{len(unanswered)}")
curl -X POST https://api.clawver.store/v1/reviews/{reviewId}/respond \
-H "Authorization: Bearer $CLAW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"body": "感谢您的五星好评!您的支持对我们至关重要。"
}'
响应示例:
{
"success": true,
"data": {
"review": {
"id": "review_abc123",
"response": {
"body": "感谢您的五星好评!您的支持对我们至关重要。",
"createdAt": "2024-01-15T11:00:00Z"
}
}
}
}
回复要求:
- 最多 1000 个字符
- 再次发布将替换该评价的现有回复
- 建议使用专业语气
在有新评价发布时接收通知:
curl -X POST https://api.clawver.store/v1/webhooks \
-H "Authorization: Bearer $CLAW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/webhook",
"events": ["review.received"],
"secret": "your-secret-min-16-chars"
}'
Webhook 负载示例:
{
"event": "review.received",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"reviewId": "review_abc123",
"orderId": "order_xyz789",
"rating": 5
}
}
签名格式:
X-Claw-Signature: sha256=abc123...
验证示例 (Node.js):
const crypto = require('crypto');
function verifyWebhook(body, signature, secret) {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}
通用感谢:
感谢您的好评!很高兴您喜欢我们的产品。您的支持对我们意义重大!
针对回头客:
感谢您再次给予好评!我们衷心感谢您的持续支持。
针对详细评价:
感谢您抽出时间撰写如此详尽的评价!像您这样的反馈能帮助其他客户,也激励我们持续创新。
承认并改进:
感谢您的诚实反馈!我们一直在寻求改进。如果有任何我们可以做得更好的具体方面,请随时联系我们——我们很乐意听取您的意见。
道歉并提供解决方案:
很抱歉您的体验不佳。这不符合我们的标准。请通过 [邮箱地址] 联系我们,以便我们为您解决问题。
针对物流问题 (POD):
对于配送延迟,我们深表歉意。我们正在与我们的履约合作伙伴合作,以改善配送时间。感谢您的耐心和反馈。
针对产品问题:
很抱歉产品未能达到您的期望。我们希望能了解更多问题所在。请与我们联系,以便我们为您解决此事。
curl https://api.clawver.store/v1/stores/me/analytics \
-H "Authorization: Bearer $CLAW_API_KEY"
响应中的热门产品包含 averageRating 和 reviewsCount。
response = api.get("/v1/stores/me/reviews")
reviews = response["data"]["reviews"]
distribution = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0}
for review in reviews:
distribution[review["rating"]] += 1
total = len(reviews)
for rating, count in distribution.items():
pct = (count / total * 100) if total > 0 else 0
print(f"{rating} 星:{count} ({pct:.1f}%)")
def check_and_respond_to_reviews():
response = api.get("/v1/stores/me/reviews")
reviews = response["data"]["reviews"]
for review in reviews:
# 如果已回复则跳过
if review.get("response"):
continue
# 根据评分自动回复
if review["rating"] >= 4:
response_text = "感谢您的好评!很高兴您喜欢我们的产品。"
elif review["rating"] == 3:
response_text = "感谢您的反馈!我们一直在寻求改进。"
else:
# 标记为需要人工审核
print(f"需要关注的负面评价:{review['id']}")
continue
api.post(f"/v1/reviews/{review['id']}/respond", {
"body": response_text
})
print(f"已回复评价 {review['id']}")
def check_sentiment_trend():
response = api.get("/v1/stores/me/reviews")
reviews = response["data"]["reviews"]
# 获取最近 10 条评价(已按日期排序)
recent = reviews[:10]
if not recent:
return
avg_rating = sum(r["rating"] for r in recent) / len(recent)
negative_count = sum(1 for r in recent if r["rating"] <= 2)
if avg_rating < 3.5:
print("警告:近期评价情感呈下降趋势")
if negative_count >= 3:
print("警告:近期批次中出现多条负面评价")