Generate DALL-E hero images from Airtable content briefs
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.
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.
Additional information
What does this prompt do?
- Watches your Airtable content calendar and picks up any row where the brief is filled in but no image is attached yet.
- Reads the brief, brand voice, and style notes on the row, then writes an on-brand image prompt tuned to those inputs.
- Generates the hero image with OpenAI, respects the row's aspect ratio if you use one, and retries with a second variation if the first attempt is blocked.
- Attaches the finished image back to the same Airtable row, marks it ready, and posts a Slack message with links so a human can approve at a glance.
What do I need to use this?
- An Airtable base with a content calendar table that has a brief field and an attachment field for the hero image.
- An OpenAI account with image generation enabled.
- A Slack workspace and a channel where the review notifications should land.
How can I customize it?
- Change which Airtable table or view is watched, and which fields count as the brief, brand voice, style notes, and aspect ratio.
- Swap the Slack channel that receives the review ping, or send it as a direct message to a specific reviewer instead.
- Tighten or loosen the style guardrails in the image prompt, or restrict runs to rows in a specific status like 'Ready for image'.
Frequently asked questions
Will it overwrite images I already added by hand?
What happens if OpenAI refuses to generate the first image?
Can I control the shape of the image, like square versus wide?
How on-brand will the images actually be?
Do I need a paid Slack plan?
Related templates
Stop waiting on hero images to ship content.
Connect Airtable, OpenAI, and Slack once, and Geni will turn every filled brief into a review-ready hero image without you touching a design tool.