Auto-generate Gamma decks from an Airtable queue

By General Input

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

Integrations

  • Airtable
  • Gamma
  • Slack

Type

Deterministic Code

Categories

  • Marketing
  • Operations

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes