Data to AI™ / Gemini/Salesforce

Query Salesforce from Gemini CLI

Give data engineers and RevOps developers Salesforce objects in the terminal, so pipeline snapshots, schema checks and duplicate audits land in the repo next to the code.

Better answers, fewer tokens.

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

Which open opportunities closing in September have not been touched for two weeks?

Gemini Answer · Salesforce

29 of the 85 open opportunities with a September CloseDate have not been modified in over 14 days. Qualification holds the most, with 17 stale deals.

StageNameOpportunitiesLastModifiedDate 14d+Stale share
Qualification Opportunities 421740%
Proposal Opportunities 28932%
Negotiation Opportunities 15320%

Read from the replicated Opportunities object; stale means LastModifiedDate, the default replication date field, is over 14 days old.

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

Questions Gemini can answer from your Salesforce data

Salesforce is a cloud CRM. Dataddo replicates the objects you choose, standard or custom, with the fields your org defines, or runs your own SOQL query.

Schema check before a deploy

Ask Gemini

Use the dataddo tools to describe Opportunities and tell me if every column listed in jobs/forecast/columns.yaml still exists there, custom ones included.

A data engineer runs this in Gemini CLI before merging a change to the nightly forecast job. A field renamed by the Salesforce admin shows up as a failed check in the terminal, not as a broken run at 3 a.m.

Pipeline snapshot committed to git

Ask Gemini

Query Opportunities with a CloseDate in the next 90 days, keep Id, Name, StageName and CloseDate, and write them to snapshots/pipeline.csv.

A RevOps developer saves one file each Monday in a small repo. Diffs between weekly commits show which deals moved stage or date, a history the live CRM view alone does not keep.

Duplicate audit before a migration

Ask Gemini

Find Accounts whose Name appears more than once and write each Id with its LastModifiedDate to reports/duplicate-accounts.md as a table.

Ahead of a merge project, an analyst working in VS Code with Gemini Code Assist hands the admin a reviewed list of duplicate records, newest edits first, inside the pull request.

Salesforce 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 Salesforce 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 Salesforce to Dataddo Sign in with your Salesforce account in Dataddo and choose the datasets to sync, such as Opportunities and Opportunity Line Items.
  3. 3
    Choose what Gemini can see Select the Salesforce data Gemini may query. Access is read-only, and data you don't select stays out of reach.
Gemini setup guide →
With vs. without

Salesforce in Gemini, with and without Dataddo

Without Dataddo With Dataddo Outcome for you
Credentials on developer machines Every script that talks to the Salesforce API needs a connected app, a client secret and a refresh token kept in a local .env file. settings.json holds only the httpUrl. You sign in with /mcp auth dataddo, and Gemini CLI stores the session in ~/.gemini/mcp-oauth-tokens.json. No Salesforce secrets in repos
Field lists that drift Column names are hard-coded in scripts, and a custom field added or renamed by the admin breaks a job nobody is watching. Gemini calls describe_entity on the replicated object, which reads its field list from your org, custom fields included, up to 300 per object. Schema checked before it breaks
What the agent may run A script with API access can call any endpoint it was written for, and nobody reviews the calls one by one. Gemini CLI asks you to confirm each Dataddo tool call, and you choose Always allow only for the tools you trust, for example query. Every call visible in the terminal
One setup per project Each repo ships its own extraction code and API version, so two projects can report different pipeline totals. A project-level .gemini/settings.json points at the same Dataddo server, so every repo reads the same replicated Salesforce objects. Same numbers across repos
Token consumption Gemini spends tokens exploring raw Salesforce 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

Salesforce datasets and the questions they answer in Gemini

The Salesforce 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
Opportunities
  • Id
  • Name
  • StageName
  • LastModifiedDate
  • CloseDate
  • + others
Which opportunities were modified today, listed with Id, Name, StageName and LastModifiedDate?
Opportunity Line Items How many opportunity line items were modified per day this week, based on SystemModstamp?
Accounts List the Id and Name of every account with a LastModifiedDate since 1 January.
Leads On which weekday are the most leads modified, based on LastModifiedDate?
Custom Objects Which Custom Fields are filled in on each of our Record Types, for a schema write-up?
See all Salesforce 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

Salesforce and Gemini: FAQ

How do I connect Salesforce to Gemini?

Replicate Salesforce objects such as Opportunities and Accounts in Dataddo and attach the flow to a Google Gemini destination or AI Model. Add a dataddo entry with httpUrl https://headless.dataddo.com/mcp-data to ~/.gemini/settings.json, restart Gemini CLI, run /mcp auth dataddo and sign in with your Dataddo account.

Why use httpUrl and not url for the Dataddo server?

In Gemini CLI, the url key falls back to SSE, which Dataddo does not support. Use httpUrl with https://headless.dataddo.com/mcp-data and add no headers or oauth block; /mcp auth dataddo handles sign-in.

Should the Salesforce server go in the global or project settings.json?

Either. ~/.gemini/settings.json makes Dataddo available in every project, while .gemini/settings.json inside a repo limits it to that project, which suits a team repo that only works with Salesforce data.

Can I sign in with my Salesforce or Google account?

No. Sign-in uses your Dataddo email and password, with MFA if prompted. Google and Microsoft SSO are not offered here, and Gemini CLI opens the sign-in page in a browser on the same machine.

Does Gemini Code Assist in IntelliJ work with Salesforce data?

Yes. In VS Code, agent mode reads the same settings.json as Gemini CLI. In IntelliJ, add the Dataddo server to the mcp.json of Gemini Code Assist, then ask about Opportunities or Accounts from the IDE.

Which Salesforce flows can Gemini read after sign-in?

Every flow or Context attached to an AI destination or AI Model in that Dataddo account, not only the Google Gemini ones. Keep flows with data a project should not see out of AI destinations.

Can Gemini run SOQL or edit records in my org?

No. Gemini asks for entities and fields by name through the semantic layer, Dataddo never accepts SQL from the model and nothing is written back. SOQL runs only in a Custom SOQL Query source you define in Dataddo.

Why is a snapshot missing older opportunities?

Each run re-reads a relative window on a date field such as LastModifiedDate. Run a full data re-sync with a wider range once, and Gemini can query the older records too.

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.