/ /
Model for the token, not the table

Model for the token, not the table

Britton Stamper

Last edited on Aug 17, 2026

Gong is one of the highest-value AI context sources we own. When internal usage of Claude started scaling, teams wanted to connect Gong to start pulling from our large volume of call history. The shortest path for those requests flowed through a wrapper around the Gong MCP to the Gong REST API. Unfortunately, that also meant that the team was getting raw, unmodeled context that we couldn’t govern and improve.

A single customer-history question fans out through an MCP wrapping Gong’s APIs using list_calls to collect IDs, burning 8,300 tokens per call transcript or around 240,000 tokens in context for one account history of ~30 calls. Multiplying this across our entire sales department researching multiple accounts is exactly how you redline the Gong API’s per-second and per-day rate ceilings, which hit our cap very quickly.

Gong’s API constraints weren’t the real problem. Our core issue was using a transactional API as a high-throughput context layer for AI. Gong and other sources were never designed for these high-volume, operational use-cases. Databases are.

Compression, context engineering, and cost savings

We identified the root cause as the same historical problems that data teams face. Instead of going through our traditional data modeling and warehousing layer, users were hitting source data directly, going to Gong every time with the same "give me all my transcripts, now summarize them" request. Analyzing MCP connector usage showed us that Claude was reaching directly to sources that we already had in our data warehouse.

Fivetran was already funneling Gong into Snowflake continuously, where we could model data so people would never need the raw source. Serving Gong data from the warehouse through the dbt MCP server removes the API ceiling and lets us model the rich, but often verbose context into exactly the shapes an agent needs. We could even benefit from the broader data warehouse and join Gong data to everything else we know about the account, creating a rich context layer for our team as they used agents like Claude to help them work.

Higher-quality context at lower cost

By leveraging our warehouse and dbt, we took care of our API constraint issue and opened up significant potential token savings. Ingesting the raw Gong data into our data warehouse lets us use data modeling to summarize each call, eliminating noise and extracting only relevant signal. Given how valuable Gong data is at informing our business and how frequently it’s used, it made sense to set up pipelines on top of it that we could use for all the call transcript use-cases.

Actively compressing transcripts shrank data volume by 20x or more, slashing a 60-minute call from 10,000+ tokens to just a few hundred. The same transcripts, summarized, consume 74x fewer tokens and are now 99% cheaper to serve to AI agents while preserving or improving context quality. We can run hundreds or thousands more Claude sessions a day at the same cost, making ROI skyrocket.

The compression itself runs as an incremental dbt job as data enters the warehouse, with inference priced through Snowflake credits, Vertex batch pricing, or Databricks AI Function pricing, all materially cheaper than interactive API calls and paid once per call rather than every turn. The result is order-of-magnitude savings: the cost of compressing 1,000 calls in batch is in the low tens of dollars. Because compression is a one-time cost per call and the savings repeat on every read, the batch job pays for itself within the first meaningful agent session.

What token efficiency looks like at enterprise scale

Direct connection (raw transcripts)dbt + warehouse-AI compression 20x

Input tokens per turn (~12-call context)


100,000

5,000

Input cost per turn

$0.30

$0.015 (1/20)

Output tokens/cost per turn

5,000 / $0.075

5,000 / $0.075

Total cost per turn

$0.375

$0.090

Per seller per year (50 turns × 250 working days)

$4,700

$1,125

Human-in-the-loop cost 100-person sales team / year

$470,000

$110,000 (savings: $360,000/yr)

Agent cost always-on workflow / year (5K turns × 365 days)

$685,000

$165,000 (savings: $520,000/yr)


Based on Claude Sonnet 5 pricing as of August 2026, subject to change: $3 per million input tokens, $15 per million output tokens.

The pattern

This pattern is exactly the work dbt is built to do: model the transcripts in the warehouse, compress them with warehouse-native AI functions, and serve the compressed form to agents through the dbt MCP server. We just needed to dogfood things internally to show that dbt transforms data for AI as effectively as it does for BI:

  1. Fivetran delivers the Gong transcript into the warehouse when a call concludes using an existing connector, no new infrastructure required.
  2. A dbt model invokes a warehouse-native AI function (Snowflake Cortex COMPLETE, Vertex AI batch prediction, or Databricks AI Functions) to produce a structured summary, capturing deal-relevant points, named entities, sentiment, action items, and objection types. A 10,000-token transcript typically compresses to 500-to-1,000 tokens of structured summary without losing the signal an agent needs for deal context.
  3. The dbt MCP server serves the compressed form to the asking AI client. This is the same connection AI clients already use for any other dbt-modeled data, and the summary looks like just another well-modeled table.

Gong was our initial test case, but the pattern generalizes to any token-heavy, durable data source. The same architecture works for engineering context from sources like email archives, Slack channel logs, support tickets, contracts, or marketing collateral.

Three ways to serve Gong

Head-to-head, here’s how using the official Gong MCP, an MCP wrapping Gong’s APIs Gong MCP, and the dbt MCP server stack up against each other for serving unstructured Gong data as AI context:

Official Gong MCPGong MCP wrapperdbt MCP server

Key tools

ask_account, generate_brief

list_calls, get_transcripts, list_calls_extensive; slim variants (e.g. get_transcripts_slim) for reduced context

text_to_sql, execute_sql, query_metrics

What it returns

Server-synthesized brief, no raw

Raw transcript text, speaker-segmented with timestamps stripped; slim variants trim fields but not words

Any tier the question needs: metadata, brief, snippet, or full transcript, plus governed metrics

Gong API pressure

Light

Heavy; each question fans list_callsget_transcripts per call. list_calls_extensive reduces round trips but still returns full text and consumes rate-limit budget. Slim variants don't change call count.

None, reads hit Snowflake

Content filter before pulling

No

No

Yes (WHERE topic = 'pricing')

Joins to CRM, product, billing

No

No

Yes

Verbatim

No

Yes

Yes

Determinism

No; re-synthesized each call

Yes, raw is stable

Yes, computed from governed definitions

Setup cost

None

None

Real modeling work up front

Cost comparison: Gong vs MCP wrapper vs dbt

There's no single best tool for all queries, but there is a best tool per question type. Gong’s official MCP is efficient when all you want is a quick, server-synthesized, single-account summary; an MCP wrapper/gateway platform is good for pulling raw transcript text. Everything else—anything filtered, aggregated, joined, or trended, i.e. the majority of the analytical questions people actually ask—should go through dbt’s modeling and warehousing layer.

Note: Cost calculated using Opus pricing at $5/million tokens, anchored to 8,314 raw and 112 brief tokens per call.

Question typeOfficial GongGong MCP wrapperdbt MCP serverBest choice

Summary; "What's going on with Acme"

30-call brief, ~1,200 tokens, $0.006

No dedicated summary tool; list_calls_extensive with topics for structured metadata; narrative requires get_transcripts_slim across 30 calls, close to ~$1.25

Brief column × 30, ~$0.017

Official Gong, cheapest, and by an even wider margin without a wrapper summary tool

One-off raw: "Pull the full May 14 Acme transcript verbatim"

Can't return raw

get_transcripts with call ID, ~8,314 tokens, $0.042, its sweet spot

SELECT transcript WHERE call_id = ..., ~$0.042

MCP wrapper ≈ dbt

Filtered, verbatim: "What did Acme say about pricing"

Paraphrase only, unauditable, $0.004

list_calls for IDs then get_transcripts for all 30 calls, no content filter, $1.25

WHERE topic = 'pricing', verbatim with speaker + timestamp, $0.06

dbt, 20× cheaper, auditable

Large-corpus call rollup: "Top 10 objections across all calls this year"

No aggregate tool

~$21 even at brief tier, unreliable

One query_metrics call, ~500 tokens, $0.0025

dbt, ~8,600× cheaper, the only reliable path

Join: "Do accounts that raise pricing 3+ times convert worse, by segment"

Not possible

Not possible

Salesforce join already exists, pennies

dbt, the only path

Trend: "Is this competitor getting mentioned more, quarter over quarter"

No time-series primitive

Not practical

query_metrics bucketed by quarter, $0.0025

dbt, the only practical path

Get started

If you want Gong context wired into your AI workflows, the path forward is to stop connecting directly to Gong's API, partner with the data team to get the Fivetran + dbt + warehouse-AI pipeline modeled. Any AI client (Claude, agents, whatever surface you’re using) connects to the dbt MCP server as a single governed entry point and gets access to dbt-modeled data through the same surface used for everything else in the warehouse.

Analytics engineers have always transformed structured data to build tables for humans and BI tools. Now we can apply the same general principles to unstructured data to build models and engineer context for AI agents. Modeling Gong (and similar sources) for AI is among the highest-impact data-team work available right now, with token efficiency as a first-class design constraint.

It’s time to expand beyond thinking what metrics can we serve and start treating call transcripts and other qualitative data as first-class, governed warehouse assets. Now the first question to ask of any source you wire to AI is what does the raw form cost per question, and what is the smallest modeled form that still answers it?

Get started in dbt

Join the analytics engineers building data infrastructure that actually scales.

Install dbt Wizard CLI

Get started with an agent purpose-built for analytics engineering. It knows which tool to call, which context to pull, and checks its own work before surfacing anything to you.

Share this article
The dbt Community

Join the largest community shaping data

The dbt Community is your gateway to best practices, innovation, and direct collaboration with thousands of data leaders and AI practitioners worldwide. Ask questions, share insights, and build better with the experts.

100,000+active members
50k+teams using dbt weekly
50+Community meetups