Turn new Webflow blog posts into Gamma social carousels

By General Input

Every hour, Geni grabs anything new your team published in Webflow, builds a Gamma social carousel from it, and drops the link in Slack for social.

Integrations

  • Webflow
  • Gamma
  • Slack Bot

Type

Deterministic Code

Categories

  • Marketing
  • Operations

Build a code workflow that turns every new blog post on my Webflow site into a Gamma social-post carousel and announces the carousel in Slack so the social team can grab it. The pipeline is deterministic — no LLM judgement beyond standard text extraction — so use straight code nodes, not an agent.

Trigger: cron, hourly.

Inputs (expose as workflow parameters so I can edit them later without touching code):

• Webflow site ID and the collection ID of the blog collection.

• Gamma theme name (or theme ID) to use as the brand theme, plus the card aspect ratio for social posts (default to a 1:1 square carousel).

• Slack channel to post into (e.g. #social-content).

Step 1 — Find new posts. Call Webflow's List Collection Items Live for the blog collection. Compare each item's published-on timestamp to a watermark stored in workflow state (the last published-on timestamp processed by a prior run). On the very first run, only treat posts published in the last 24 hours as new so we don't backfill the entire archive. Filter to items strictly newer than the watermark and sort oldest-first so we process them in publish order.

Step 2 — Extract carousel content. For each new post, pull the title, the intro/excerpt, the H2/H3 headings, and any pull quotes from the post body. Build a single text input for Gamma that starts with the post title, then includes the intro, then a bullet list of headings and pull quotes. Keep the extraction simple and string-based; we don't want a model to rewrite the copy.

Step 3 — Generate the carousel. Call Gamma's Generate a Gamma operation with format set to "social", the chosen theme, the chosen aspect ratio, and the extracted text as the input. Gamma is async, so poll Get Generation Status until the generation finishes (or fails) before moving on. Capture the resulting Gamma URL.

Step 4 — Notify Slack. Call Slack Bot's Send a Message to the configured channel with the post title, the original Webflow URL, and the Gamma carousel link. Keep the message short and skimmable so the social team can copy it straight into a scheduling tool.

Step 5 — Update watermark. After all new posts in this run have been processed (or skipped on error), persist the highest published-on timestamp seen as the new watermark so the next hourly run picks up cleanly. If Gamma generation fails for one post, log the failure, continue processing the rest, and do not advance the watermark past the failed post so the next run retries it.

Use Slack Bot (not the user-token Slack integration) since the message is automated workspace output, not something the social team posts personally.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them