Product Reviews

Surface high-value sales signals from G2 reviews including vendor pain points, switching intent, and quantified business impact from decision-makers.

Product Reviews surface what real users are saying about software vendors on G2 — complaints, switching intent, quantified business impact, and decision-maker frustrations that signal active displacement opportunities.

We analyze G2 reviews across 2M+ companies, scanning for 9 signal types that matter for sales intelligence. Our model extracts switching intent phrases ("we're evaluating alternatives"), quantified impact ("cost us $50K in lost pipeline"), and decision-maker complaints (filtering for VP/Director/C-level titles). Multiple reviews mentioning the same issue get aggregated into a single signal with supporting quotes from each reviewer.

Each signal includes structured evidence — reviewer quotes, titles, star ratings, and review URLs — so you can validate the intelligence and use it directly in outreach.

Reviewers are anonymous — like Reddit, you get unfiltered sentiment without individual identity. We're working to de-anonymize where possible.

📎

See real delivered dataSample Files

Subtypes represent the specific pattern detected across product reviews — from competitive displacement to feature gaps to pricing concerns.

Available Subtypes (9)
Subtype EnumDescription
ActiveChurnExplicit statements about leaving or having left the product
CompetitorMentionsMentions of switching to or evaluating competitors
CustomerSupportComplaintsSlow response, unresolved tickets, poor service quality
IntegrationProblemsBroken APIs, sync failures, compatibility issues
MissingFeaturesCritical features users need but product lacks
PricingConcernsToo expensive, hidden fees, poor ROI, price hikes
RecurringProductIssuesSame bug or problem mentioned in 2+ reviews (systemic)
ReliabilityIssuesDowntime, crashes, data loss, instability
UsabilityIssuesHard to use, steep learning curve, bad UX

Categories group subtypes into higher-level themes — a common way to filter signals by sales motion or use case.

Signal Categories
CategoryDescription
feedbackUser experience and feature feedback
riskChurn risk and reliability concerns
financialPricing and ROI concerns
technologyIntegration and technical issues
competitiveCompetitor comparisons and switching

Example Signal

What a single entry looks like in a delivered signal file:

{
  "signal_id": "1cb8bd74-e7c9-4c41-b7aa-9c6f19f72e5d",
  "batch_id": "2026-03-01-00-00-00",
  "signal_type": "g2-product-review",
  "signal_subtype": "CompetitorMentions",
  "detected_at": "2026-02-28T09:22:47.312Z",
  "association": "company",
  "company": {
    "name": "6sense",
    "domain": "6sense.com",                   // match on domain
    "linkedin_url": "linkedin.com/company/6sense",  // or match on LinkedIn URL
    "industries": ["Software Development", "Marketing Technology"],
    "employee_count_low": 1001,
    "employee_count_high": 2000
  },
  "contact": [],
  "data": {
    "headline": "Director of Demand Gen Switching from 6sense to Demandbase, Cites 70% of Intent Data Unactionable",
    "summary": "Multiple mid-market marketing leaders report 6sense intent data quality has degraded since their last funding round. Director of Demand Gen at a 500-person SaaS company actively migrating...",
    "product_name": "6sense Revenue AI",
    "source_page_url": "https://www.g2.com/products/6sense-revenue-ai/reviews",
    "relevance": 92,                          // 0-100; 90+ = decision-maker + switching intent
    "switching_intent": {
      "detected": true,
      "urgency": "immediate",
      "signal_phrase": "We started our Demandbase POC last month and are not renewing 6sense"
    },
    "quantified_impact": {
      "has_numbers": true,
      "metrics": [
        "70% of intent signals unactionable",
        "$120K annual contract",
        "3 months to get onboarding support"
      ]
    },
    "decision_maker_complaint": {
      "is_decision_maker": true,
      "title": "Director of Demand Generation"
    },
    "competitors_mentioned": [
      "Demandbase",
      "Bombora",
      "ZoomInfo"
    ],
    "evidence": [
      {
        "quote": "70% of the intent signals 6sense surfaces are unactionable — accounts that have zero fit or timing. We started our Demandbase POC last month and are not renewing...",
        "reviewer_name": "Michael T.",
        "reviewer_title": "Director of Demand Generation @Mid-Market SaaS (400-600)",
        "review_date": "2026-02-18",
        "review_url": "https://www.g2.com/products/6sense-revenue-ai/reviews/6sense-review-9851432",
        "star_rating": 2.0
      },
      {
        "quote": "Took 3 months to get proper onboarding support after signing a $120K contract. By then half our team had lost confidence in the platform...",
        "reviewer_name": "Sarah P.",
        "reviewer_title": "VP Marketing @Series C Startup",
        "review_date": "2026-02-10",
        "review_url": "https://www.g2.com/products/6sense-revenue-ai/reviews/6sense-review-9847891",
        "star_rating": 1.0
      }
    ]
  }
}

Field Reference

Standard envelope and entity fields are shared across all signals — see Schema and Resolution. The fields below are specific to this signal:

Signal-Specific Fields

The data object contains everything unique to this signal type — the intelligence extracted from aggregated G2 reviews.

FieldTypeDescription
headlinestring12–20 word headline summarizing WHO + PROBLEM + IMPACT. Designed for notifications and list views. Always includes the reviewer's seniority level and the core complaint
summarystring2–4 sentence summary explaining who complained, what the problem is, and what impact it's having. Written for a salesperson to quickly assess whether this signal creates a displacement opportunity
product_namestringName of the reviewed product (e.g., "6sense Revenue AI", "ZoomInfo SalesOS"). Useful for filtering by specific competitor products
source_page_urlstring (URL)URL of the G2 review page. Useful for manual verification or linking in outreach
relevanceinteger (0–100)Relevance score where 90+ = exceptional (decision-maker + switching intent), 80–89 = high value, 70–79 = solid signal, 60–69 = moderate. Useful for prioritization
competitors_mentionedarray[string]Competitors mentioned in the reviews — companies the reviewer is switching to, evaluating, or comparing against. The core intelligence for competitive displacement motions

Switching Intent

The switching_intent nested object captures whether reviewers are actively moving away from the product.

FieldTypeDescription
switching_intent.detectedbooleanWhether switching intent was detected in any of the aggregated reviews
switching_intent.urgencystringUrgency level: immediate (actively in evaluation/migration), considering (evaluating but no timeline), or none. Useful for prioritizing outreach timing
switching_intent.signal_phrasestringExact phrase from a review indicating switching intent. Useful for quoting in personalized outreach or validating the signal

Quantified Impact

The quantified_impact nested object captures specific numbers mentioned in reviews.

FieldTypeDescription
quantified_impact.has_numbersbooleanWhether any quantified metrics were extracted from the reviews
quantified_impact.metricsarray[string]Extracted metrics as natural language strings (e.g., "$120K annual contract", "70% of signals unactionable"). Useful for building ROI-focused outreach

Decision Maker Complaint

The decision_maker_complaint nested object identifies whether the complaint comes from someone with purchasing authority.

FieldTypeDescription
decision_maker_complaint.is_decision_makerbooleanWhether the complaint is from a decision-maker (C-level, VP, Director, Owner, Founder). Signals with true are significantly more actionable for sales
decision_maker_complaint.titlestringReviewer's job title. Useful for understanding who within the org is experiencing the problem

Evidence Array

The evidence array contains individual review quotes that support the signal.

FieldTypeDescription
evidence[].quotestringDirect quote from the review (max 500 chars). The specific language the reviewer used — useful for personalized outreach or fact-checking
evidence[].reviewer_namestringReviewer first name and last initial, or "Anonymous"
evidence[].reviewer_titlestringReviewer's self-reported job title on G2. May include company size context
evidence[].review_datestring (date)Date the review was posted. Useful for recency filtering
evidence[].review_urlstring (URL)Direct link to the specific review on G2. Useful for verification
evidence[].star_ratingfloatStar rating given by this reviewer (1.0–5.0). Lower ratings correlate with stronger displacement signals

Timing & Delivery

  • detected_at is when we processed the review batch. Use evidence[].review_date for when individual reviews were posted.
  • One signal per subtype per product per 30-day window. The same product can have multiple signal subtypes active simultaneously (e.g., both PricingConcerns and ActiveChurn), but each subtype fires only once per cycle.
  • Each delivery arrives in a timestamped folder. Treat all signals in a new folder as recent — no need to diff against prior deliveries.

Coverage

  • Refresh: Monthly
  • Coverage: 2,000,000+ companies
  • Best for: Competitive displacement, churn prevention, market intelligence, ABM triggers for companies losing customers to you

Contact Sales →