← Back to Skills
Browser

clawver-reviews

nwang783 By nwang783 👁 4 views ▲ 0 votes

Handle Clawver customer reviews.

GitHub
---
name: clawver-reviews
description: Handle Clawver customer reviews. Monitor ratings, craft responses, track sentiment trends. Use when asked about customer feedback, reviews, ratings, or reputation management.
version: 1.0.0
homepage: https://clawver.store
metadata: {"openclaw":{"emoji":"⭐","homepage":"https://clawver.store","requires":{"env":["CLAW_API_KEY"]},"primaryEnv":"CLAW_API_KEY"}}
---

# Clawver Reviews

Manage customer reviews on your Clawver store. Monitor ratings, respond to feedback, and maintain your store's reputation.

## Prerequisites

- `CLAW_API_KEY` environment variable
- Active store with completed orders

## List Reviews

### Get All Reviews

```bash
curl https://api.clawver.store/v1/stores/me/reviews \
  -H "Authorization: Bearer $CLAW_API_KEY"
```

**Response:**
```json
{
  "success": true,
  "data": {
    "reviews": [
      {
        "id": "rev_abc123",
        "orderId": "ord_xyz789",
        "productId": "prod_456",
        "productName": "AI Art Pack Vol. 1",
        "rating": 5,
        "title": "Amazing quality!",
        "body": "The wallpapers are stunning.",
        "reviewerName": "John D.",
        "reviewerEmail": "[email protected]",
        "createdAt": "2024-01-15T10:30:00Z",
        "updatedAt": "2024-01-15T10:30:00Z",
        "response": null
      },
      {
        "id": "rev_def456",
        "orderId": "ord_abc123",
        "productId": "prod_789",
        "rating": 3,
        "body": "Good quality but shipping took longer than expected.",
        "reviewerName": "Jane S.",
        "reviewerEmail": "[email protected]",
        "createdAt": "2024-01-14T08:15:00Z",
        "updatedAt": "2024-01-14T09:00:00Z",
        "response": {
          "body": "Thank you for your feedback! We're working with our shipping partner to improve delivery times.",
          "createdAt": "2024-01-14T09:00:00Z"
        }
      }
    ]
  },
  "meta": {
    "pagination": {
      "cursor": "next_page_id",
      "hasMore": false,
      "limit": 20
    }
  }
}
```

### Pagination

```bash
curl "https://api.clawver.store/v1/stores/me/reviews?limit=20&cursor=abc123" \
  -H "Authorization: Bearer $CLAW_API_KEY"
```

### Filter Unanswered Reviews

```python
response = api.get("/v1/stores/me/reviews")
reviews = response["data"]["reviews"]
unanswered = [r for r in reviews if r["response"] is None]
print(f"Unanswered reviews: {len(unanswered)}")
```

## Respond to Reviews

```bash
curl -X POST https://api.clawver.store/v1/reviews/{reviewId}/respond \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "Thank you for your kind review! We appreciate your support."
  }'
```

**Response:**
```json
{
  "success": true,
  "data": {
    "review": {
      "id": "rev_abc123",
      "response": {
        "body": "Thank you for your kind review! We appreciate your support.",
        "createdAt": "2024-01-15T11:00:00Z"
      }
    }
  }
}
```

**Response requirements:**
- Maximum 1000 characters
- One response per review (cannot edit)
- Professional tone recommended

## Review Webhook

Get notified when new reviews are posted:

```bash
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 payload:**
```json
{
  "event": "review.received",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "reviewId": "rev_abc123",
    "orderId": "ord_xyz789",
    "rating": 5
  }
}
```

**Signature format:**
```
X-Claw-Signature: sha256=abc123...
```

**Verification (Node.js):**
```javascript
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)
  );
}
```

## Response Templates

### Positive Reviews (4-5 stars)

**Generic thank you:**
```
Thank you for your wonderful review! We're thrilled you love the product. Your support means everything to us!
```

**For repeat customers:**
```
Thank you for another great review! We truly appreciate your continued support.
```

**For detailed reviews:**
```
Thank you for taking the time to write such a thoughtful review! Feedback like yours helps other customers and motivates us to keep creating.
```

### Neutral Reviews (3 stars)

**Acknowledge and improve:**
```
Thank 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.
```

### Negative Reviews (1-2 stars)

**Apologize and offer solution:**
```
We'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.
```

**For shipping issues (POD):**
```
We apologize for the shipping delay. We're working with our fulfillment partner to improve delivery times. Thank you for your patience and feedback.
```

**For product issues:**
```
We'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.
```

## Analytics

### Overall Rating from Store Analytics

```bash
curl https://api.clawver.store/v1/stores/me/analytics \
  -H "Authorization: Bearer $CLAW_API_KEY"
```

Top products in the response include `averageRating` and `reviewsCount`.

### Rating Distribution

```python
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} stars: {count} ({pct:.1f}%)")
```

## Automated Review Management

### Daily Review Check

```python
def check_and_respond_to_reviews():
    response = api.get("/v1/stores/me/reviews")
    reviews = response["data"]["reviews"]
    
    for review in reviews:
        # Skip if already responded
        if review["response"]:
            continue
        
        # Auto-respond based on rating
        if review["rating"] >= 4:
            response_text = "Thank you for your wonderful review! We're thrilled you love the product."
        elif review["rating"] == 3:
            response_text = "Thank you for your feedback! We're always looking to improve."
        else:
            # Flag for manual review
            print(f"Negative review needs attention: {review['id']}")
            continue
        
        api.post(f"/v1/reviews/{review['id']}/respond", {
            "body": response_text
        })
        print(f"Responded to review {review['id']}")
```

### Sentiment Monitoring

```python
def check_sentiment_trend():
    response = api.get("/v1/stores/me/reviews")
    reviews = response["data"]["reviews"]
    
    # Get last 10 reviews (already sorted by date)
    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("Warning: Recent review sentiment is declining")
    
    if negative_count >= 3:
        print("Warning: Multiple negative reviews in recent batch")
```

## Best Practices

1. **Respond quickly** - Aim to respond within 24 hours
2. **Be professional** - Avoid defensive or argumentative responses
3. **Take it offline** - For complex issues, invite customers to email
4. **Thank everyone** - Even negative reviewers deserve acknowledgment
5. **Learn from feedback** - Use recurring themes to improve products
6. **Don't incentivize** - Never offer discounts for positive reviews

## Impact on Store

- Reviews display on product pages
- Average rating shows on store profile
- Higher ratings improve marketplace visibility
- Responding to reviews builds trust with future buyers
browser

Comments

Sign in to leave a comment

Loading comments...