G2
Operate G2 through your OOMOL-connected account. This skill calls the g2 connector with the oo CLI; OOMOL injects credentials server-side, so you never handle raw tokens.
Running an action
Assume the user has already installed the oo CLI, signed in, and connected G2. Do not run oo auth login or open the connection URL proactively — just run the action. Fall back to First-time setup only when a command actually fails with an auth or connection error.
1. Inspect the contract to get the authoritative input/output schema before building a payload:
oo connector schema "g2" --action "<action_name>"
2. Run the action with a JSON payload that matches the input schema:
oo connector run "g2" --action "<action_name>" --data '<json>' --json
--datatakes a JSON object string or@path/to/file.json; omit it to send{}.- The response is
{ "data": ..., "meta": { "executionId": "..." } }; the execution id lives undermeta.executionId.
Each action is listed below with a one-line description; actions that change state carry a [write] or [destructive] tag. Before constructing --data, fetch the action’s live schema with oo connector schema to get its authoritative input fields.
Available actions
add_research_board_product— Add a product to a research board. [write]add_research_board_products— Add multiple products to a research board. [write]create_product_mapping— Create a product mapping. No scope required. [write]create_research_board— Create a research board. [write]delete_research_board— Delete a research board. [destructive]get_activate_settings— Retrieves G2 Activate settings for a product. Requiresg2_activate.readscope.get_category— Get a G2 category by UUID or slug, optionally including related categories and products.get_credit_account— Retrieve credit account details for an organization. No scope required. Retrieve API metering credit account details including balance and total credits. Use?include=deductionsto include the last month of deductions in the response.get_my_product_review— Show review for a product. ⚠️ G2 is currently restricting access to this endpoint. This endpoint retrieves the review for a specific product owned by the current user.get_product— Get a G2 product by UUID or slug. Requires products.read permission.get_product_ratings— A product’s ratings. Requiresproducts.ratings.readscope.get_question— Shows a single question. Requiresquestions.readscope.get_report— Get a licensed report and its product snapshots. Requiresreports.readscope. The report type selects the response shape:gridreturnsgrid_reportswith Grid product scores;momentumreturnsmomentum_reportswith Momentum Grid product scores;implementationreturnsimplementation_reportswith Implementation Index scores;relationshipreturnsrelationship_reportswith Relationship Index scores;resultsreturnsresults_reportswith Results Index scores;usabilityreturnsusability_reportswith Usability Index scores. Addinclude=report_productsto receive the product snapshots. Unsupported report types do not match a route (404).get_research_board— Get a research board.get_screenshot— Shows a screenshot. Requiresscreenshots.readscope.get_unlocked_company— Shows a single unlocked company with resolved contacts. Requiresg2_activate.readscope.get_vendor— Shows a single vendor. Requiresvendors.readscope.list_all_category_features— List all category product features grouped by category. Requiresproduct_features.readscope.list_all_product_features— List all product features grouped by product. Requiresproduct_features.readscope.list_categories— List G2 categories with name, slug and date filters.list_category_features— List features for a specific category. Requiresproduct_features.readscope.list_credit_deductions— Retrieve aggregated credit deductions by month and year. No scope required. Retrieve credit account deductions aggregated by month and year. Use filter parameters to narrow results: -filter[month]: Filter by month (1-12) -filter[year]: Filter by year (e.g., 2024)list_data_solutions_reviews— Lists reviews with all Data Solutions fields. Requiresds_reviews.readscope. ⚠️ BETA API: This endpoint is a beta endpoint and it definition might change by the official release.list_data_subscriptions— Lists data subscriptions for given partner and account. Requiresdata_subscriptions.readscope. Data Subscriptions require a Partner ID and appropriate scope. Contact G2 for a unique Partner ID.list_locked_companies— Lists locked companies (masked) showing intent for a product. Requiresg2_activate.readscope.list_market_intelligence_reviews— List Market Intelligence reviews for one product. Requires products.reviews.read and Market Intelligence access; competitor products in meta must be queried separately.list_market_signals— Retrieve buyer intent signals for a date range. Requiresmarket_signals.readscope. Retrieve buyer intent signals (interactions) for specific categories. Returns one result per buyer intent interaction within the specified date range. Each interaction includes the category UUID, company name, and domain. If no dates are provided, defaults to today for both start and end date. Results are paginated using cursor-based pagination (default 25, max 250 per page).list_owned_products— List all products owned by current account. ⚠️ G2 is currently restricting access to this endpoint. This endpoint shows subscription-specific product information, of products that the current account has ownership of.list_product_badges— Lists medals (badges) awarded to given product. Requiresproduct.badges.readscope.list_product_competitors— Lists competitors related to given product. No scope required.list_product_discussions— Lists discussions related to given product. Requiresproducts.discussions.readscope.list_product_downloads— Lists Downloads related to given product. Requiresproducts.downloads.readscope.list_product_features— List features for a specific product. Requiresproduct_features.readscope.list_product_integration_reviews— Lists integration reviews for given product. Requiresintegration_reviews.readscope.list_product_mappings— List of product mappings. No scope required.list_product_reviews— List standard or removed G2 product reviews. Requires products.reviews.read and the corresponding product license.list_product_screenshots— Lists Screenshots related to given product. Requiresproducts.screenshots.readscope.list_product_snippets— Lists reviews of given product. Requiresproducts.snippets.readscope.list_product_video_reviews— Lists video reviews related to given product. Requiresproducts.video_reviews.readscope.list_product_videos— Lists videos related to given product. Requiresproducts.videos.readscope.list_products— Search G2 products by name, category, domain, rating or other filters. Requires products.read permission.list_questions— List of questions. Requiresquestions.readscope.list_reports— Discover licensed Grid, Momentum, Usability, Implementation, Results and Relationship reports. Lists released Grid, Momentum, Usability, Implementation, Relationship, and Results report snapshots accessible through claimed or owned products. Each item is a reports resource with a report_type attribute; sparse fields use fields[reports]. Requires reports.read and an active report entitlement. One-off purchases do not require a Content Access subscription. Year is the named report season year (for example Winter 2025), not the calendar-quarter label. The legacy product-ID endpoint remains unchanged.list_research_board_products— List products on a research board.list_research_boards— List research boards for current user.list_screenshots— Lists screenshots. Requiresscreenshots.readscope.list_unlocked_companies— Lists unlocked companies for a product. Requiresg2_activate.readscope.list_vendors— List of vendors. Requiresvendors.readscope.query_buyer_intent— Browse buyer intent interactions (product-agnostic). Requiresbuyer_intent.readscope. Query buyer intent data across one or more products in a single request. Pass product_id to specify which products, or omit to use your assigned products. Supports multi-product queries — the data is not scoped to a single subject product.query_product_buyer_intent— Browse buyer intent interactions for a product. Requiresbuyer_intent.readscope. Query buyer intent data using an analytical query interface. ## Query Language This endpoint uses an OLAP-style query language that supports: - Dimensions: Group and categorize data (e.g., company_name, company_domain, day) - Measures: Aggregate numerical values (e.g., total_activity, visitor_count) - Filters: Apply conditions to limit results ### Filter Operators Filters use the formatdimension_filters[name_suffix]wherenameis the dimension name andsuffixindicates the operation: -_eq: Equals (exact match) -_not_eq: Not equals -_cont: Contains (substring match) -_not_cont: Does not contain -_gt: Greater than -_gteq: Greater than or equal -_lt: Less than -_lteq: Less than or equal -_present: Field has a value -_empty: Field is empty ### Time Series vs Aggregated Data - Aggregated: Request dimensions withoutdayfor company-level summaries - Time Series: Includedaydimension for daily breakdowns over time ### Sorting Results Use thesortparameter to order results by any dimension or measure: - Ascending:sort=company_nameorsort=total_activity- Descending:sort=-company_intent_score(prefix with-) - Default: Results are sorted by-company_intent_score(highest intent first) Available sort fields include all dimensions and measures listed above. ### Signal Types Thesignal_typedimension identifies the type of buyer activity on G2 (e.g.,profile,pricing,compare). ### Competitive Signals Results include activity on both your product and competitor products in your categories. Compareleft_product_idtosubject_product_idto distinguish the two: -left_product_id=subject_product_id: Direct signal — activity on your product. -left_product_id≠subject_product_id: Competitive signal — activity on a competitor. Thesignal_typeindicates what the buyer did (e.g., viewed the competitor’sprofileorpricingpage). Useleft_product_name/left_product_slugto identify the competitor. ### Examples - Company summary:dimensions=company_name,company_domain&measures=total_activity- Time series:dimensions=company_name,day&measures=company_intent_score- Filtered:dimension_filters[company_name_cont]=Acme&dimensions=company_name- Sorted by activity:dimensions=company_name&measures=total_activity&sort=-total_activity- Competitive activity:dimensions=company_name,signal_type,left_product_name,left_product_id&measures=total_activityquery_sandbox_buyer_intent— Browse sandbox buyer intent interactions for a product. No scope is required to access this sandbox endpoint ⚠️ Sandbox API: This endpoint is a sandbox endpoint and is data limited. Only data between 6 months to 1 year ago will be available. Query buyer intent data using an analytical query interface. ## Query Language This endpoint uses an OLAP-style query language that supports: - Dimensions: Group and categorize data (e.g., company_name, company_domain, day) - Measures: Aggregate numerical values (e.g., total_activity, visitor_count) - Filters: Apply conditions to limit results ### Filter Operators Filters use the formatdimension_filters[name_suffix]wherenameis the dimension name andsuffixindicates the operation: -_eq: Equals (exact match) -_not_eq: Not equals -_cont: Contains (substring match) -_not_cont: Does not contain -_gt: Greater than -_gteq: Greater than or equal -_lt: Less than -_lteq: Less than or equal -_present: Field has a value -_empty: Field is empty ### Time Series vs Aggregated Data - Aggregated: Request dimensions withoutdayfor company-level summaries - Time Series: Includedaydimension for daily breakdowns over time ### Sorting Results Use thesortparameter to order results by any dimension or measure: - Ascending:sort=company_nameorsort=total_activity- Descending:sort=-company_intent_score(prefix with-) - Default: Results are sorted by-company_intent_score(highest intent first) Available sort fields include all dimensions and measures listed above. ### Examples - Company summary:dimensions=company_name,company_domain&measures=total_activity- Time series:dimensions=company_name,day&measures=company_intent_score- Filtered:dimension_filters[company_name_cont]=Acme&dimensions=company_name- Sorted by activity:dimensions=company_name&measures=total_activity&sort=-total_activityremove_research_board_product— Remove a product from a research board. [write]remove_research_board_products— Remove multiple products from a research board. [write]search_activate_industries— Match a free-text business description to NAICS industry names. Requiresg2_activate.readscope.submit_product_review— Submit or update a review for a product. ⚠️ G2 is currently restricting access to this endpoint. This endpoint allows the user to submit or update a review for a specific product. The review is based on predefined questions and answers.’ [write]unlock_companies— Spends G2 Activate credits to unlock one or more locked companies. Requiresg2_activate.writescope. Accepts 1-25 opaquesigtokens from the locked_companies response and spends credits to reveal each company’s identity. Always returns 200 — per-sig failures land inmeta.skipped[]rather than as HTTP errors. Idempotent: replaying an already-unlocked sig costs 0 credits and returns the existing record. [write]update_activate_settings— Updates G2 Activate settings for a product. Requiresg2_activate.writescope. [write]update_product_mapping— Update a product mapping. No scope required. [write]update_research_board— Update a research board. [write]
Safety
- Untagged actions are reads (get / list / search) — safe to run directly.
- Actions tagged
[write]change G2 state — confirm the exact payload and effect with the user before running. - Actions tagged
[destructive]remove or overwrite data — always confirm the target and get explicit approval first.
First-time setup
These are one-time steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.
-
oo: command not found— install the oo CLI (other platforms: https://cli.oomol.com/install-guide.md):curl -fsSL https://cli.oomol.com/install.sh | bash # macOS / Linuxirm https://cli.oomol.com/install.ps1 | iex # Windows PowerShell -
Not signed in / authentication error — sign in to your OOMOL account once:
oo auth login -
scope_missing/credential_expired/app_not_ready/app_not_found— G2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: API key) at:https://console.oomol.com/app-connections?provider=g2 -
HTTP 402 /
OOMOL_INSUFFICIENT_CREDIT— billing stop. Recharge athttps://console.oomol.com/billing/token-rechargebefore retrying.
Resources
- G2 homepage: https://www.g2.com