Voice of customer Independent solution

Review & Sentiment Insights

Continuously reads your reviews, support tickets and Q&A, then surfaces what customers actually love, hate and ask for — quantified by theme, product and trend, so merchandising and product teams act on signal not anecdotes.

The problem

Customer feedback is a goldmine nobody has time to read

Reviews, tickets and Q&A hold the clearest signal about defects, sizing issues and buying objections — but at thousands per month it's unreadable, so teams guess instead of knowing.

This solution reads all of it, clusters it into themes, and quantifies each one by volume and sentiment trend, per product and category.

Primary objective
Convert unstructured customer feedback into ranked, actionable themes across the catalog.
How it works

Collect → classify → cluster → surface insights

Collect
Reviews, tickets, Q&A, social
Classify
Sentiment, topic, product aspect
Cluster
Group into recurring themes
Surface
Ranked, trended dashboards
What it does
  • ✓ Aspect-based sentiment
  • ✓ Theme clustering & trends
  • ✓ Defect & returns signals
  • ✓ Objection & FAQ mining
  • ✓ Per-SKU & category rollups
  • ✓ Alerting on spikes
Built with
  • ✓ Embeddings for clustering
  • ✓ Claude for aspect analysis
  • ✓ Review & helpdesk connectors
  • ✓ Time-series trend store
  • ✓ BI / Slack export
Feeds into
  • ✓ Product Content (objections)
  • ✓ Support Copilot (FAQs)
  • ✓ Lifecycle Messaging (praise)
  • ✓ Merchandising decisions
Under the hood

Aspect-based sentiment extraction

Each review is broken into aspects with a sentiment, so a single mixed review contributes signal to the right themes instead of one blunt score.

insights/aspects.py PYTHON
from anthropic import Anthropic
client = Anthropic()

def extract_aspects(review: str) -> list:
    prompt = f"""Break this review into aspects.
Review: {review}
For each: {{"aspect": str, "sentiment": "pos|neu|neg", "quote": str}}.
Reply as a JSON list."""
    msg = client.messages.create(
        model="claude-sonnet-4-20250514", max_tokens=600, temperature=0,
        messages=[{"role": "user", "content": prompt}],
    )
    return parse_json(msg.content[0].text)  # -> clustered downstream
Outcomes
1000s
Reviews/month read
Ranked
Themes by volume
Per-SKU
Defect signals
Trends
Sentiment over time

Hear what every customer is telling you

Great alongside the Support Copilot and Product Content Generator.

Start a conversation →
More E-commerce solutions
Review & Sentiment Insights | Smort