Data to AI™ / Gemini/HubSpot

Query HubSpot from Gemini CLI and Code Assist

Give RevOps engineers and finance analysts HubSpot deal, stage and owner data in the terminal, so configs, checks and CSVs come from extracted CRM records.

Better answers, fewer tokens.

  • Lower AI costs for the same work
  • More accurate, reliable answers
  • Read-only
  • Uses the HubSpot data you already sync
  • SOC 2 Type II certified
Gemini CLI
Connected to Dataddo

How long did the deals we won in September spend in each stage?

Gemini Answer · HubSpot

The 23 deals won in September took 31 days on average from qualification to contract. Decision maker bought-in was the slowest stage, at 12 days or 39% of the cycle.

Stage LabelDealsAvg days in stageShare of cycle
Qualified to buy Properties History 23619%
Presentation scheduled Properties History 23929%
Decision maker bought-in Properties History 231239%
Contract sent Properties History 23413%

Days are measured between dealstage change Timestamps in Properties History, with Stage IDs mapped to Stage Label through Deal Pipelines.

source
HubSpot · as of Mon 06:40 UTC
covers
Deals won 1-30 Sep 2026
Example answer · fictional account and figures
HubSpot in Gemini

Questions Gemini can answer from your HubSpot data

HubSpot is a marketing, sales and service platform. Dataddo extracts its CRM records, such as deals, line items, quotes and owners, with custom fields on every object, plus pipeline stages and property change history.

Stage map as a JSON fixture

Ask Gemini

Read Deal Pipelines through the dataddo server and write config/hubspot-stages.json with Pipeline ID, Stage ID, Stage Label and Stage Probability for every stage.

A revenue engineer keeps the stage map the billing service relies on in version control. Gemini CLI regenerates it after sales ops renames a stage, and the diff shows exactly which Stage Label or probability moved.

Owner check before a routing deploy

Ask Gemini

Compare hubspot_owner_id on open Deals with Owner ID in Owners and list any deal whose owner is missing or not Is Active.

Before shipping a change to lead routing, a developer runs the check in Gemini Code Assist agent mode in VS Code and fixes the orphaned assignments in HubSpot first, so no deal lands with an owner who has left.

Line item changes for the billing sync

Ask Gemini

List Line Items with an hs_lastmodifieddate after 2026-10-01 and save hs_object_id and hs_lastmodifieddate to reports/line-items-changed.csv.

A finance data engineer diffs the CSV against the invoicing table each week, so line items edited after a deal closed get re-billed or credited instead of surfacing at the quarterly audit.

HubSpot datasets and the questions they answer in Gemini →
Pricing

Priced per seat.

Data to AI™ is priced per seat, like the AI assistants your team already uses, with ~25% off on annual billing. Need tailored contracts or volume pricing? Talk to us about Enterprise.

Data to AITM

Serve governed business data to Claude, ChatGPT and other AI tools over MCP.

$10.49/month

per seat

3 seats minimum

Enterprise

Flexibly deploy Dataddo in any cloud or hybrid environment.

Custom

We have a payment model that works for you

See all plans and features →
Setup

Connect HubSpot to Gemini step by step

  1. 1
    Connect Gemini to Dataddo Add the Dataddo server to settings.json in Gemini CLI, restart it and run /mcp auth dataddo to sign in. Gemini Code Assist in VS Code reads the same file.
  2. 2
    Connect HubSpot to Dataddo Sign in with your HubSpot account in Dataddo and choose the datasets to sync, such as Deals and Deal Pipelines.
  3. 3
    Choose what Gemini can see Select the HubSpot data Gemini may query. Access is read-only, and data you don't select stays out of reach.
Gemini setup guide →
With vs. without

HubSpot in Gemini, with and without Dataddo

Without Dataddo With Dataddo Outcome for you
Stage IDs in code A hand-written map of Stage ID to stage name sits in the repository and drifts silently when someone edits the pipeline in HubSpot. Gemini CLI reads Deal Pipelines from the latest extraction and rewrites the mapping file, so the change shows up in a normal code review. Config matches HubSpot
Secrets on developer laptops Each script carries its own HubSpot API token in a .env file that gets copied between machines and projects. settings.json holds only the httpUrl. HubSpot is authorized once in Dataddo, and the Dataddo sign-in is kept in ~/.gemini/mcp-oauth-tokens.json and renewed automatically. No HubSpot token in the repo
Approving what runs A one-off script calls the HubSpot API with whatever scope its token happens to have, and nobody reviews each request. Gemini CLI asks you to confirm each Dataddo tool call, and you can mark a tool such as describe_entity as Always allow while keeping query on confirm. Every call is visible
Token consumption Gemini spends tokens exploring raw HubSpot columns, sampling rows and retrying until it understands the data. Field definitions and relations are supplied up front, so the model skips the exploration and goes straight to the answer. Fewer tokens per answer
Answer quality Prone to wrong joins, invented fields and numbers that are hard to check. Answers grounded in defined fields. In the Dataddo benchmark, 78.5% of questions were answered correctly, against 65.5% with plain CSV files. Better answers
Datasets

HubSpot datasets and the questions they answer in Gemini

The HubSpot datasets finance and RevOps teams use most, with their real field names. Gemini queries them by name through the Dataddo semantic layer.

Dataset Metrics and attributes Ask Gemini
Deals
  • hs_object_id
  • dealname
  • createdate
  • dealstage
  • hubspot_owner_id
  • + others
List hs_object_id and dealname for every deal with a createdate since Monday, so I can compare them with our staging import.
Deal Pipelines
  • Pipeline ID
  • Stage ID
  • Stage Probability
  • Label
  • Stage Label
  • + others
Output each Pipeline ID with its Stage ID values and Stage Probability as JSON for our revenue service config.
Properties History
  • Object ID
  • Property Name
  • Value
  • Timestamp
  • Source Type
  • + others
Which Property Name on deals changed most often this month, counted by distinct Object ID?
Owners Return every Owner ID with its Is Active flag, so a script can validate the owner on each deal before a deploy.
Line Items
  • hs_object_id
  • hs_lastmodifieddate
  • custom fields
  • + others
Which hs_object_id values on line items have an hs_lastmodifieddate after our last billing sync ran?
See all HubSpot datasets, metrics and attributes on the connector page →
Benchmark

More right answers. Half the confident mistakes.

We asked 43 pre-registered questions of three real datasets - Google Search Console, HubSpot deals and Google Ads - and delivered the same rows to the same model in four ways. Only the data layer changed.

78.5%

of questions answered correctly - the best of the four delivery methods tested

2x

fewer confidently wrong answers - 14.0% of runs against 24.0% and 26.3%

2.8x

more correct answers on messy CRM data - better on 8 questions, worse on none

Answered correctly All 43 questions - higher is better
Wrong, but stated as fact Share of runs - lower is better

Same model, prompts and rows in every condition; 759 graded runs, ground truth frozen before any run. On Google Search Console alone, documented CSV files did as well as Data to AI™ - the advantage comes from messier data such as HubSpot deals.

Read the benchmark →
FAQ

HubSpot and Gemini: FAQ

How do I connect HubSpot to Gemini?

Add a HubSpot source in Dataddo with Deals, Deal Pipelines and Owners, then attach it to a Google Gemini destination or AI Model. In ~/.gemini/settings.json, add a dataddo server with httpUrl https://headless.dataddo.com/mcp-data, restart Gemini CLI and run /mcp auth dataddo to sign in. Gemini Code Assist in VS Code reads the same file.

Why must the HubSpot server use httpUrl in settings.json?

With the url key, Gemini CLI falls back to SSE, which Dataddo does not support. Use httpUrl and leave out headers and any oauth block; the sign-in runs through /mcp auth dataddo.

Can I use the same setup in IntelliJ?

Partly. Gemini Code Assist in VS Code reads the same settings.json as Gemini CLI. In IntelliJ, Gemini Code Assist uses its own mcp.json, so add the Dataddo server there as well.

Will Gemini CLI only see my HubSpot flow?

No. Once signed in, Gemini reaches every flow or Context attached to an AI destination or AI Model in that Dataddo account, not only the Google Gemini ones. Keep unrelated flows off AI destinations if that matters.

How fresh are the HubSpot deals Gemini reads?

As fresh as the last run. Deals and Line Items pull every current record on each run, while Properties History reads a relative window. HubSpot history cannot be backfilled, so append runs with the extraction timestamp if you need trends.

Can Gemini CLI update deals or run SQL against HubSpot data?

No. Gemini asks the semantic layer for entities and fields by name. Dataddo never accepts SQL from the model, and nothing is written back to HubSpot.

What do I do when Gemini CLI says the Dataddo session expired?

Run /mcp auth dataddo again and sign in with your Dataddo email and password, with MFA if prompted. Gemini CLI opens the sign-in page in a browser on the same machine.

New from Dataddo · Data to AI™

Ask Claude or ChatGPT about your ads, analytics and CRM

“What did a new lead cost us last week, by paid channel?”

Connect 400+ sources once and get the answer right in your AI chat, without building a report. Better answers: your metrics are defined once, so the AI doesn't have to guess.