Generate DALL-E hero images from Airtable content briefs

By General Input

When a new brief lands in your Airtable content calendar, generate an on-brand hero image with OpenAI, attach it to the row, and post a Slack link for review.

Integrations

  • Airtable
  • OpenAI
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Operations

Build me an agent workflow that turns filled-in content briefs in an Airtable content calendar into finished hero images, using OpenAI for image generation and Slack Bot for review notifications.

Trigger: poll Airtable using the new_or_updated_record event on my content calendar table. Fire whenever a row is created or updated. I will pick the base, table, and view when I set it up.

On each trigger the agent should do the following, in order:

1. Read the record fields. Assume the row has: a Brief field (long text), a Brand Voice field (long text, optional), a Style Notes field (long text, optional), an Aspect Ratio field (single select, optional, values like 'Square', 'Wide 16:9', 'Portrait 3:4'), a Status field, and an attachment field called Hero Image.

2. Skip the row entirely if the Brief field is empty, if the Hero Image attachment already has a file, or if the Status field is a terminal state like 'Archived' or 'Published'. In those cases stop silently without calling any other integration.

3. Otherwise, compose an on-brand image prompt from the Brief, Brand Voice, and Style Notes. The prompt should describe the subject, mood, composition, color palette, and any style constraints. Keep it concrete and visual, not marketing copy. If Aspect Ratio is set, translate it into an OpenAI image size (square, landscape, or portrait). If unset, default to landscape.

4. Call OpenAI's Generate Image operation with the composed prompt and chosen size. If the call fails moderation or returns a safety refusal, rewrite the prompt to be more descriptive and less brand-name-heavy, and try one more time. If the second attempt also fails, do not update Airtable. Instead post a Slack message flagging the row for human review with the record link and the refusal reason, and stop.

5. On success, take the returned image URL and use Airtable's Update Record operation on the same record to (a) attach the image to the Hero Image field and (b) set Status to 'Ready for review' (or whatever the equivalent value is in my Status field).

6. Post a short Slack Bot message to a channel I configure (default: #content-review). The message should include the record title or primary field, a link to the Airtable record, an inline preview of the generated image, and one line summarizing which brief inputs drove the prompt. Keep it under four lines.

Guardrails: never regenerate an image for a row that already has one. Never call OpenAI more than twice per trigger. Never write to any field other than Hero Image and Status. If the agent is uncertain which field maps to Brief, Brand Voice, Style Notes, or Aspect Ratio, ask me during setup rather than guessing.

Integrations to wire up: Airtable (poll trigger plus Update Record), OpenAI (Generate Image), Slack Bot (Send a Message). Prefer Slack Bot over the user Slack integration so the notifications come from a bot identity.

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