Hourly hero-banner drafts for new Shopify products

By General Input

Every hour, spot newly published Shopify products and drop two Ideogram hero-banner variants into your marketing Slack channel for approval.

Integrations

  • Ideogram
  • Shopify
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Operations

Every hour on a cron schedule, draft a fresh pair of hero banners for each product that was just published to Shopify and drop them into the marketing Slack channel so the team can approve or tweak before promoting.

Trigger: cron, every hour. Shopify is not a first-class poll provider for us, but a cron plus a filtered list read is enough to catch recent activity.

Step 1 — pull new products. Call Shopify List Products with status=active and a dates filter that scopes the read to the last hour (created_at_min or published_at_min set to now minus one hour, whichever field you find more reliable for the store). Note that Shopify's product REST endpoints are marked deprecated since API 2024-04 but still function for custom apps per Shopify's own docs, so this is fine to use.

Step 2 — clean the list. Skip any product that has no title, or whose title is an obvious placeholder like "Untitled", "New product", "Test", or a lone SKU. Dedupe by Shopify product ID against the set of products this workflow has already drafted banners for in previous runs, so the same product never gets banner-drafted twice even if the hourly window overlaps it.

Step 3 — generate two banners per product with Ideogram Generate (Ideogram 4.0). For each surviving product, call the operation twice:

  • Landscape homepage hero — aspect_ratio 16:9, prompt Ideogram to render an on-brand background scene and place the product name (and, if it fits, a short tagline derived from the product description) as legible in-image typography. Ideogram's edge over other image models is its typography, so lean on it.

  • Square social variant — aspect_ratio 1:1, same brand direction, same product name as the visible headline, tighter composition suitable for Instagram, Meta Ads, and Pinterest.

Remember Ideogram sets aspect_ratio and resolution as mutually exclusive on generate — pick aspect_ratio here. Read the resulting image URLs from data[].url on each response. Those URLs expire after a short window, so use them immediately in the Slack post below.

Step 4 — post to Slack for approval. Send one message per product into the #marketing channel using Slack Send a Message. Use Block Kit so both images render inline: an intro section that @-mentions the assigned marketer (or a marketing user group) and links back to the Shopify product URL, then two image blocks (one per variant) each with a short caption naming the ratio and its intended surface, then a final section with two or three quick copy suggestions the marketer can paste into the caption or landing hero — headline options, a supporting subhead, and a CTA line. Keep the tone friendly and marketing-editor-oriented, not developer-y.

State to persist between runs: the set of Shopify product IDs already drafted, so the dedupe check in Step 2 keeps working across hours. Trim old IDs after 30 days.

Nuance to bake in:

  • If Ideogram returns is_image_safe=false for a variant, skip that variant, note it in the Slack message, and continue with the other one instead of failing the whole product.

  • If the product has no featured image or vendor set, still generate — Ideogram is building from the name and description, not the product photo.

  • If zero eligible products come back in a run, do not post anything to Slack. Silent hours are fine — the channel should only get pinged when there is something to review.

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