Turn new Webflow blog posts into Gamma social carousels

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.

Deterministic Code
WebflowGammaSlack BotMarketingOperationsContent GenerationNotifications & Alerts

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.

Additional information

What does this prompt do?
  • Watches your Webflow blog collection every hour for newly published posts.
  • Pulls the title, intro, headings, and pull quotes from each new post and feeds them to Gamma in your brand theme.
  • Generates a ready-to-share Gamma social carousel for each post in a consistent aspect ratio.
  • Posts the carousel link, the post title, and the original article URL into a dedicated Slack channel for the social team.
What do I need to use this?
  • A Webflow site with a blog collection you publish to.
  • A Gamma Pro, Ultra, Teams, or Business account (the free plan does not include API access).
  • A Slack workspace and a channel (such as #social-content) where the social team can pick up new carousels.
  • Login access for each of the three accounts so you can connect them in one click.
How can I customize it?
  • Change how often it runs. Hourly is the default, but you can switch to every 15 minutes or once a day if your publishing cadence is different.
  • Swap the Gamma theme or aspect ratio to match a different brand or platform (square for Instagram, portrait for TikTok or LinkedIn).
  • Send the announcement to a different channel, or send it to two channels at once.
  • Tweak what gets extracted from each post. By default it grabs the title, intro, headings, and pull quotes, but you can include the meta description or featured image caption instead.

Frequently asked questions

Will it backfill every old blog post the first time it runs?
No. On the first run it only treats posts published in the last 24 hours as new, then remembers the most recent post it has seen. From then on it only picks up posts published after that.
What happens if Gamma fails to generate a carousel for one post?
That post is logged as failed and skipped, the other new posts in the same run still go through, and the workflow retries the failed post on the next hourly run.
Do I need to write any code to use this?
No. You click Use this prompt, connect your Webflow, Gamma, and Slack accounts, and pick the collection and channel. The workflow is generated for you.
Can I use this with a different CMS, like WordPress or Ghost?
This template is built for Webflow, but the same pattern works for any CMS we support. Ask Geni to swap the source after the workflow is generated.
Does the social team have to use the carousel exactly as Gamma generated it?
No. The Slack message includes a link to the live Gamma carousel, which the team can edit, restyle, or export before posting.

Stop hand-cutting carousels every time you ship a post.

Connect Webflow, Gamma, and Slack once. Geni handles every new post from then on.