Learn to build an AI slide generator that turns raw data into polished decks, with real prompts, tool picks, and debugging tips you can use right away.
Every week I spend too many hours copying numbers from a CSV into a slide deck, adjusting fonts, and hoping the client doesn’t notice a misaligned chart. It’s boring, error‑prone, and eats time I’d rather spend on strategy. After reading this you’ll have a repeatable pipeline that pulls data, asks an AI to write slide copy and notes, and pushes the result into Google Slides — all without manual copy‑pasting.
Most demos show a single prompt that creates a five‑slide deck from a tiny JSON blob. In the real world your source file might have hundreds of rows, nested categories, or missing values. When you feed that straight into the model the output either truncates, hallucinates totals, or repeats the same bullet across slides. The failure isn’t the AI; it’s the prompt design that assumes a fixed input size.
I ran into this last month while trying to automate a monthly performance report for a SaaS client. The first run gave me a deck with 12 slides, each saying “Revenue increased” even though the data showed a dip in two regions. I had to scrap the output and start over.
After testing a few options I settled on Claude 3 Haiku for speed and cost, but you can swap in GPT‑4 Turbo if you need longer context. The key is to break the task into two steps: first, ask the model to summarize each data chunk into a slide‑ready outline; second, ask it to turn that outline into actual slide text and speaker notes.
Here’s the prompt I use for the outline step (copy‑paste ready):
You are a senior analyst. Given the following data slice:
{{data_slice}}
Propose a concise slide title and three bullet points that capture the insight. Keep each bullet under 12 words. Return JSON with keys title and bullets.
For the rendering step I use this prompt:
You are a copywriter. Turn the outline below into slide body text and speaker notes.
Outline:
{{outline}}
Body: write 2‑3 short paragraphs that fit a placeholder. Notes: add one sentence that explains why the insight matters. Return JSON with keys body and notes.
Notice how we never ask the model to decide the number of slides; we feed it one slice at a time and loop. This keeps the context window small and avoids hallucination.
What most guides get wrong
Many tutorials tell you to drop the whole dataset into a single prompt and let the AI “figure out” the slide count. That works only for toy examples. In production you’ll hit token limits, get inconsistent formatting, and waste money on retries. The guide also often skips the formatting step, leaving you with raw text that Google Slides rejects because it contains markdown or unsupported characters.
Another common mistake is to rely on Zapier automations’s built‑in AI action, which hides the prompt and charges per run. I found the cost added up fast — $0.08 per call — and the latency made the workflow feel sluggish.
Building the rendering layer: no‑code AI approach using Make.com + Google Slides
Now we move from prompts to a working automation. I use Make.com (formerly Integromat) to orchestrate the steps because it lets me loop over an array of data slices without writing code. The flow looks like this:
- Trigger: Watch a folder in Google Drive for a new CSV file.
- Module: CSV parser → output array of rows.
- Module: Group rows by category (e.g., region) using the Array aggregator.
- Module: HTTP call to Claude 3 Haiku API with the outline prompt (see above).
- Module: Parse JSON response → extract title and bullets.
- Module: Second HTTP call to Claude 3 Haiku API with the rendering prompt.
- Module: Parse JSON → get body and notes.
- Module: Google Slides > Create presentation from template.
- Module: Google Slides > Replace placeholder text with title, body, notes.
- Module: Google Slides > Insert chart images (optional) from a generated PNG.
- Module: Save the final deck back to Drive and email the link.
Make.com’s free tier gives you 1,000 operations a month, which is enough for a few test runs. For regular use I moved to the Core plan at $29/mo — honestly, that’s fair for the automation runs you get. If you need more than 10,000 ops, the next tier jumps to $79/mo, which feels steep unless you’re running dozens of decks daily.
One concrete gripe: the Google Slides API returns error 403 when you try to set text formatting via batchUpdate unless you first enable the “Slides” scope in the OAuth console. I spent an entire afternoon digging through Google’s vague docs before I realized the missing scope was the culprit.
And a concrete love: I love how the auto‑layout feature in Google Slides keeps my charts perfectly aligned without me fiddling with drag‑and‑drop. Once the placeholder frames are set, the deck looks polished every time.
— and good luck finding docs for this — the Make.com HTTP module expects raw JSON in the body field, not a stringified version, which tripped me up the first time.
How to debug when this breaks
When the workflow fails, start at the module that threw the error. Most often it’s the HTTP call to the AI API. Check the status code: 429 means you hit rate limits — add a sleep module or upgrade your plan. 400 usually points to a malformed JSON payload; re‑examine the prompt output for stray commas or line breaks.
If the Google Slides module complains about a missing placeholder, open the template deck and verify the exact names of the text boxes. Make.com is case‑sensitive, so “Title” is not the same as “title”.
Finally, run a test with a single row of data. If that works, the problem lies in the aggregation step — maybe a category produced an empty array, causing the outline prompt to receive an empty {{data_slice}} and return nonsense.
One‑sentence paragraph: Keep a log of each module’s input and output; it saves hours of guesswork.
For more on this exact angle, deeper coverage of AI agent platforms.
If you’d rather skip the build and deploy a working version in an afternoon, we’ve packaged this workflow as a blueprint at deepusecase.com/vault.