Skip to main content

How can I get my data into Gamma decks using an LLM?

Learn how to connect your data sources to Gamma and generate presentation decks automatically using an AI assistant or LLM.

How to use this page

How to use this page: paste it into Claude, ChatGPT (or any LLM that has your tools and Gamma connected) and say what you want, e.g. "Help me set up a Q3 pipeline review deck from my Snowflake data." The LLM uses this brief to write your project instructions (or a skill) and to run the deck. You can review the output from your LLM, test it with the Gamma MCP server and iterate.

💎 Pro Tip: Paste this entire page into your LLM of choice and describe your use case. The LLM will handle the rest, from pulling data to generating the deck.


The pattern

The LLM reads data from a connected tool → computes the numbers in a script → sends finished figures to Gamma, which renders the deck.

Three layers: sources hold the raw data · instructions hold the recipe · Gamma owns the visuals. Add a new tool and you've only added a source; the rest is unchanged.

Rules the LLM must follow

  • Read the source fresh on every request - never reuse figures from a past turn.

  • Pre-compute in a script. Totals, breakdowns, rankings, period filters. Never make Gamma do arithmetic - pass it finished figures only.

  • Restate every number with units ($1.21M) in the prompt, and name the chart type ("comparison bar chart," "donut").

  • Pick the right Gamma tool: generate_from_template (+ template ID) for recurring branded decks; generate (+ theme ID) for one-offs. Use textMode: preserve to lock exact figures.

  • There's no edit tool - to change a deck, regenerate it (or edit in Gamma's web editor).

What to give the LLM

  • The tool your data lives in - Snowflake, BigQuery, Google Drive/Sheets, Salesforce, HubSpot, Notion, Jira, etc.

  • The specific table / view / report / sheet / doc, and the columns or sections that matter.

  • Your Gamma template ID (Gamma:get_gammas with type: template) or a theme ID.

  • The deck's card list and your brand tone.

Instructions template the LLM fills in with you

## Rules - Read source fresh; pre-compute in a script; restate figures with units;   there is no Gamma edit tool. - Brand voice: ___  ## Use case: ___ Trigger: "___" Tool: Gamma:generate_from_template — gammaId ___, presentation, 16x9, textMode: preserve Source: ___ (tool + table/view/report/sheet/doc; relevant columns/sections: ___) Steps:   1. Read the source (run query / export CSV / fetch doc).   2. Run a script to compute: ___ (totals, breakdowns, top-N, period).   3. Build the prompt one block per card: ___ → ___ → ___, figures with units.   4. Generate from the template; spot-check with Gamma:read_gamma.

60-second example

A Google Sheet Q3 Pipeline with columns deal, stage, arr, probability, region, owner. You say "make the Q3 pipeline review." The LLM:

  1. exports the sheet to CSV or reads it directly from Google Drive's MCP,

  2. runs a script that returns open ARR $1.60M · weighted $1.03M · win rate 67% · top deals (Stark $500K, Hooli $420K…),

  3. prompts Gamma one card per block - summary → by stage → top deals → priorities, using those exact figures,

  4. generates from your pipeline template.

You typed one sentence; the figures stayed exact because the script did the math, not the model.


Skill or project instructions?

Start with project instructions - simplest, always loaded, fine for one team and a few deck types. Move a deck into its own skill when you have several deck types (each loads only when needed) or want the compute step to be a reusable, tested script you can share. Tell the LLM which you want and it'll set it up either way.

A worked skill - pipeline-review-deck (a SKILL.md plus a compute_pipeline.py script) - pairs with this brief as a starting point. Skills are installed under Settings → Capabilities.


Appendix: Example Table Import

Sometimes you don't need a script. A table already lives in a sheet in the exact shape you want it on the slide. Read the rows, restate them in the prompt, ask Gamma to put them in a table.

Source sheet — Q3 Customer References (10 rows)

Account

Industry

Region

Primary Contact

Status

Hargrove Industries

Manufacturing

Northeast

Michelle Tran, CTO

Active

BlueRidge Healthcare

Healthcare

Southeast

Dr. Sam Osei, CIO

Active

SunBridge Hotels

Hospitality

Southeast

Raj Mehta, SVP Tech

Active

Apex Transportation

Transportation

Southeast

William Torres, CIO

Active

United Credit Union

Financial Services

Midwest

Helen Voss, VP Tech

Active

BrightPath Education

Education

Southeast

Tanya Morris, CIO

Pending

Luminary Tech Group

Technology

Northeast

Sophia Grant, CEO

Active

Quantum Defense Corp

Defense

Southwest

Eric Wang, CIO

Active

Vertex Pharma

Life Sciences

Northeast

Lisa Okafor, IT Director

In renewal

Harbor Life Sciences

Life Sciences

West

Dr. Anna Xu, SVP Ops

Active

The Gamma prompt

Populate the "Customer References" card with a horizontal table. Columns: Account | Industry | Region | Primary Contact | Status. Preserve row order exactly. No edits, no additions, no aggregation.  - Hargrove Industries | Manufacturing | Northeast | Michelle Tran, CTO | Active - BlueRidge Healthcare | Healthcare | Southeast | Dr. Sam Osei, CIO | Active - SunBridge Hotels | Hospitality | Southeast | Raj Mehta, SVP Tech | Active - Apex Transportation | Transportation | Southeast | William Torres, CIO | Active - United Credit Union | Financial Services | Midwest | Helen Voss, VP Tech | Active - BrightPath Education | Education | Southeast | Tanya Morris, CIO | Pending - Luminary Tech Group | Technology | Northeast | Sophia Grant, CEO | Active - Quantum Defense Corp | Defense | Southwest | Eric Wang, CIO | Active - Vertex Pharma | Life Sciences | Northeast | Lisa Okafor, IT Director | In renewal - Harbor Life Sciences | Life Sciences | West | Dr. Anna Xu, SVP Ops | Active

Why this works

  • The | delimiter keeps column boundaries unambiguous.

  • "Preserve row order exactly. No edits, no additions, no aggregation" tells Gamma to transcribe, not edit.

Switch back to the pre-computation pattern once tables exceed ~15 rows, the row-by-row prompt gets noisy.

Did this answer your question?