G2 Product Review
Surface high-value sales signals from G2 reviews including vendor pain points, switching intent, and quantified business impact from decision-makers.
Sales intelligence signals extracted from G2 product reviews - identifying companies experiencing pain with their current vendor, switching intent, and quantified business impact.
Why This Signal Matters
- Authentic vendor feedback - Real user experiences with quantified business impact
- Switching intent detection - Identify companies actively evaluating alternatives
- Decision-maker complaints - Prioritize signals from VPs, Directors, and C-level
- Competitor intelligence - See which alternatives are being considered
Available Subtypes
| Subtype Enum | Category | Description |
|---|---|---|
g2ActiveChurn | risk | Explicit statements about leaving or having left the product |
g2CompetitorMentions | competitive | Any mention of switching to/from competitors |
g2CustomerSupportComplaints | feedback | Slow response, unresolved tickets, poor service quality |
g2IntegrationProblems | technology | Broken APIs, sync failures, compatibility issues |
g2MissingFeatures | feedback | Critical features users need but product lacks |
g2PricingConcerns | financial | Too expensive, hidden fees, poor ROI, price hikes |
g2RecurringProductIssues | feedback | Same bug or problem mentioned in 2+ reviews (systemic issue) |
g2ReliabilityIssues | risk | Downtime, crashes, data loss, instability |
g2UsabilityIssues | feedback | Hard to use, steep learning curve, bad UX |
Signal Categories
Signals are organized into these categories:
| Category | Description |
|---|---|
feedback | |
risk | |
financial | |
technology | |
competitive |
Schema
{
"signal_id": "26693532-548d-4898-b96c-b3281bf2cc1b",
"signal_type": "g2-product-review",
"signal_subtype": "g2ReliabilityIssues",
"detected_at": "2026-01-11T23:39:53Z",
"association": "company",
"company": {
"name": "Acme CRM",
"domain": "acmecrm.com",
"linkedin_url": "https://www.linkedin.com/company/acme-crm",
"industries": [
"CRM Software"
],
"employee_count_low": null,
"employee_count_high": null,
"description": "Acme CRM provides customer relationship management solutions for small and medium businesses."
},
"data": {
"summary": "VP of Sales Operations at a >1000 employee company reports monthly outages costing approximately $50K in lost deals. Multiple users confirm 3+ outages per month affecting demo reliability. The reviewer is 'actively evaluating HubSpot' as an alternative.",
"relevance_score": 88,
"confidence": "high",
"themes": [
"monthly outages",
"lost revenue",
"demo failures",
"reliability concerns"
],
"pain_categories": [
"revenue_impact",
"churn_risk"
],
"switching_intent": {
"detected": true,
"urgency": "considering",
"signal_phrase": "actively evaluating HubSpot"
},
"quantified_impact": {
"has_numbers": true,
"metrics": [
"$50K lost",
"3 outages/month",
"4 hours/week wasted"
]
},
"decision_maker_complaint": {
"is_decision_maker": true,
"title": "VP of Sales Operations",
"company_size": ">1000 emp."
},
"product_info": {
"product_name": "Acme CRM",
"product_category": "CRM Software",
"product_url": "https://www.g2.com/products/acme-crm/reviews",
"current_rating": 3.8,
"total_reviews": 156,
"review_count_90d": 12,
"rating_distribution": {
"5_star": 45,
"4_star": 50,
"3_star": 30,
"2_star": 20,
"1_star": 11
},
"top_competitors": [
"HubSpot",
"Salesforce",
"Pipedrive"
],
"competitors_mentioned_in_reviews": [
"HubSpot",
"Pipedrive"
]
},
"evidence": [
{
"quote": "cost us at least 2 deals worth $25K each",
"reviewer_name": "Sarah M.",
"reviewer_title": "VP of Sales Operations",
"reviewer_company_size": ">1000 employees",
"review_date": "2025-12-15"
},
{
"quote": "actively evaluating HubSpot as our primary CRM",
"reviewer_name": "Sarah M.",
"reviewer_title": "VP of Sales Operations",
"reviewer_company_size": ">1000 employees",
"review_date": "2025-12-15"
}
]
},
"insight": {
"headline": "VP of Sales reports monthly outages costing $50K in lost deals",
"detail": "VP of Sales Operations at a >1000 employee company reports monthly outages costing approximately $50K in lost deals.",
"relevance": 0.88,
"confidence": "high"
},
"tags": [
"reliability",
"enterprise",
"revenue impact",
"active evaluation"
],
"source": "g2_reviews",
"batch_id": "2026-01-11-17-39-08"
}
Field Reference
Core Fields
| Field | Type | Required | Description |
|---|---|---|---|
signal_id | string (UUID) | ✓ | Unique identifier for this signal |
signal_type | string | ✓ | Always "g2-product-review" |
signal_subtype | string | ✓ | Specific signal subtype (g2RecurringProductIssues, g2CustomerSupportComplaints, g2ReliabilityIssues, g2UsabilityIssues, g2PricingConcerns, g2IntegrationProblems, g2MissingFeatures, g2CompetitorMentions, g2ActiveChurn) |
detected_at | string (ISO 8601) | ✓ | When the signal was detected |
association | string | ✓ | Entity association type - always "company" |
tags | array[string] | Signal tags for filtering | |
source | string | Data source - always "g2_reviews" | |
batch_id | string | Processing batch identifier |
Company Object
| Field | Type | Required | Description |
|---|---|---|---|
company.name | string | ✓ | Vendor/seller name |
company.domain | string | ✓ | Company domain |
company.linkedin_url | string (URL) | Company LinkedIn URL | |
company.industries | array[string] | Industry classifications | |
company.employee_count_low | integer | Lower bound of employee count | |
company.employee_count_high | integer | Upper bound of employee count | |
company.description | string | Company description (truncated to 500 chars) |
Data Object
| Field | Type | Required | Description |
|---|---|---|---|
data.summary | string | ✓ | 2-4 sentence summary connecting WHO complained, WHAT the problem is, QUANTIFIED IMPACT, and WHAT THEY'RE DOING |
data.relevance_score | integer | ✓ | Relevance score 0-100 (90+ exceptional, 80-89 high value, 70-79 solid, 60-69 moderate, 50-59 weak) |
data.confidence | string | Confidence level in signal accuracy (high, medium, low) | |
data.themes | array[string] | Key themes extracted from reviews | |
data.pain_categories | array[string] | Standardized pain category tags | |
data.switching_intent.detected | boolean | Whether switching intent was detected | |
data.switching_intent.urgency | string | Urgency of switching intent (immediate, considering, none) | |
data.switching_intent.signal_phrase | string | Exact phrase indicating switching intent | |
data.quantified_impact.has_numbers | boolean | Whether quantified metrics were found | |
data.quantified_impact.metrics | array[string] | Extracted metrics (dollars, time, percentages, counts) | |
data.decision_maker_complaint.is_decision_maker | boolean | Whether complaint is from a decision-maker (C-level, VP, Director, Owner) | |
data.decision_maker_complaint.title | string | Reviewer's job title | |
data.decision_maker_complaint.company_size | string | Reviewer's company size | |
data.product_info.product_name | string | G2 product name | |
data.product_info.product_category | string | G2 product category | |
data.product_info.product_url | string (URL) | G2 product review page URL | |
data.product_info.current_rating | float | Current G2 rating (0-5) | |
data.product_info.total_reviews | integer | Total number of reviews on G2 | |
data.product_info.review_count_90d | integer | Number of reviews in last 90 days | |
data.product_info.rating_distribution | object | Rating distribution by star count | |
data.product_info.top_competitors | array[string] | Top competitors listed on G2 | |
data.product_info.competitors_mentioned_in_reviews | array[string] | Competitors mentioned in the analyzed reviews | |
data.evidence | array[string] | Supporting evidence from reviews | |
data.evidence[].quote | string | Direct quote from review (max 500 chars) | |
data.evidence[].reviewer_name | string | Reviewer name | |
data.evidence[].reviewer_title | string | Reviewer job title | |
data.evidence[].reviewer_company_size | string | Reviewer company size | |
data.evidence[].review_date | string (ISO 8601) | Date of the review |
Insight Object
| Field | Type | Required | Description |
|---|---|---|---|
insight.headline | string | 12-18 word headline summarizing WHO + ACTION/PROBLEM + QUANTIFIED IMPACT | |
insight.detail | string | Detailed summary (same as data.summary) | |
insight.relevance | float | Relevance score as decimal (0.0-1.0) | |
insight.confidence | string | Confidence level (high, medium, low) |
Coverage
- Refresh: Weekly
- Coverage: Products with 5+ reviews on G2
Updated about 16 hours ago
