Auto-generate Gamma decks from an Airtable queue

Drop a row in your deck queue and Geni builds the slides in Gamma, writes the link back, and DMs the owner in Slack.

Deterministic Code
AirtableGammaSlackMarketingOperationsContent GenerationNotifications & Alerts
PromptCreate

Build a deterministic code workflow that turns an Airtable deck queue into finished Gamma presentations and notifies the owner in Slack. Every step is a known operation; no judgement is required.

Trigger: poll Airtable for new records on a table called "Deck Queue" (let the user pick the base and table at setup). Use the new_record event so each newly created row fires the workflow exactly once.

Assume the Deck Queue table has these fields: title (single line text), audience (single line text), outline (long text), theme_id (single line text, optional), owner_slack_user_id (single line text, Slack user ID like U0123ABC), deck_url (URL, written by the workflow), status (single select with values success and failed, written by the workflow), completed_at (date or datetime, written by the workflow), and error_message (long text, written by the workflow when something goes wrong).

Step 1: call Gamma's Generate a Gamma operation. Pass the row's outline as the input text, the title as the deck name, and the theme_id as the theme when it is set on the row. Use Gamma's built-in polling so the workflow waits for the finished deck URL before continuing. Treat any non-success response from Gamma as a failure (capture the error message for the next step).

Step 2: call Airtable Update Record against the same row that fired the trigger. On success, write the Gamma deck URL into deck_url, set status to success, set completed_at to the current timestamp, and clear error_message. On failure, leave deck_url empty, set status to failed, set completed_at to the current timestamp, and write the Gamma error message into error_message.

Step 3: call Slack's Send a Message operation, addressed directly to the owner_slack_user_id from the row so it lands as a DM. On success, the message should include the deck title and the finished deck URL. On failure, the message should say the deck failed for that title and include the error message so the owner can fix the outline and re-queue. Always send the DM, even on failure.

Make the flow safe to re-run: only process rows where status is empty (so manually re-queued rows can be cleared and picked up again). Keep the implementation tight; no extra steps, no AI nodes, no branching beyond success vs failure.

What does this prompt do?

  • Watches an Airtable Deck Queue table for any new row
  • Hands the outline and title to Gamma to build a finished presentation
  • Writes the deck link, a success or failed status, and a completion timestamp back to the same row
  • Sends the row owner a Slack DM with the link so they know it is ready

What do I need to use this?

  • An Airtable base with a Deck Queue table that has a title, audience, outline, optional theme, and the owner's Slack user ID
  • A Gamma account on a paid plan that supports deck generation
  • A Slack workspace where the workflow can send direct messages

How can I customize it?

  • Point it at a different table or rename the queue fields to match what your team already uses
  • Lock every deck to a single Gamma theme, or let each row choose its own theme
  • Send the finished deck to a shared Slack channel instead of a DM, or copy a second teammate

FAQs

Do I have to be online for it to run?
No. Once the workflow is live, Geni watches the Airtable queue around the clock. Add a row from anywhere and the deck shows up later, even if your laptop is closed.
What happens if Gamma fails to build the deck?
The row is marked failed and the error message is written back to the same record so a teammate can fix the outline and re-queue it. The Slack DM still goes out so the owner knows the run is finished.
Can I queue up many decks at once?
Yes. Paste in a whole batch of rows and each one is picked up in turn. Gamma is billed per deck, so you only pay for the slides you actually generate.
Will this work on a free Gamma plan?
No. Gamma only exposes deck generation on its paid plans, so you will need to be on one of those to use this workflow.
Can I share the finished decks outside my company?
Yes. Gamma returns a normal share link, so anyone you send it to can open the deck in their browser without a Gamma account.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Chat quality review board for LiveChat support leads

Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.

LiveChat
Slack
General Input Database
App
Win back no-show and cancelled appointments every morning

Every weekday morning, every appointment that fell through yesterday gets a personal text or email inviting them to rebook, plus a task for the right rep.

LeadConnector
Google Sheets
Slack
Agentic Task
Live Loop returns analytics with product-level drill-down

Pick any date range up to 120 days and see return volume, refund versus exchange mix, and the products behind every number, recalculated each time you open it.

Loop Returns
Google Sheets
Slack
App
Newsletter pre-flight and approval board for Mailjet sends

Every newsletter gets read, checked and signed off in one place, so nothing goes out with a broken link or a half-filled greeting.

Mailjet
Slack
General Input Database
App

Stop hand-rolling decks from the queue.

Connect Airtable, Gamma, and Slack once, and Geni turns every new queue row into a finished deck.