Daily hero images from your Google Sheets social calendar

Every weekday morning, we read the queued rows in your social calendar, generate the hero image, save it to Drive, and post a Slack summary for your social manager.

Deterministic Code
Google SheetsBlack Forest LabsGoogle DriveSlackMarketingContent Generation
PromptCreate

Every weekday at 6am, run this workflow to turn queued rows in a Google Sheets social calendar into finished hero images uploaded to Google Drive.

Read today's rows from the Social Calendar tab using Google Sheets Get Values. The tab has these columns: date, platform, caption, image prompt, aspect ratio, status, and image URL. Only process rows where the date column matches today and the status column equals "queued".

For each queued row, call Black Forest Labs Generate Image — FLUX 1.1 [pro] using the image prompt and aspect ratio exactly as they appear in the sheet. Do not rewrite, expand, or otherwise editorialize the prompt: the marketer authored it deliberately and this workflow must honor it verbatim.

Black Forest Labs delivery URLs expire ten minutes after generation, so immediately fetch the returned image bytes and call Google Drive Upload File (Multipart) to persist them in a shared Drive folder. Name each file with the date, platform, and a short slug from the caption so it is easy to find in Drive.

Once the Drive upload succeeds, call Google Sheets Update Values to write the resulting Drive URL into that row's Image URL cell and flip its status from "queued" to "ready". Batch the writes if possible, but never mark a row ready until its Drive URL is confirmed.

After processing the batch, call Slack Send a Message to post one summary in the marketing channel. Include the count of images produced, the count of rows skipped or failed, and a bulleted list of the Drive links (with platform and caption snippet) so the social manager can grab the images and schedule the posts.

This is a deterministic pipeline. No reasoning, no prompt editing, no branching on tone or brand voice. If Generate Image fails for a specific row, leave that row's status as "queued" so the next run retries it, and call out the failure explicitly in the Slack summary.

Reference shape: the n8n template "Transform images with AI prompts using FLUX Kontext, Google Sheets and Drive" follows the same read-generate-upload-write-back pattern, but this workflow is scheduled daily and uses the base FLUX 1.1 [pro] text-to-image endpoint instead of Kontext image editing.

Additional information

What does this prompt do?
  • Reads today's queued rows from your Google Sheets social calendar every weekday at 6am
  • Generates a hero image for each row using the FLUX prompt and aspect ratio your marketer wrote in the sheet
  • Uploads each finished image to Google Drive so the link stays live long after generation
  • Writes the Drive link back into the row, flips the status to ready, and posts a Slack summary with counts and links
What do I need to use this?
  • A Google Sheets tab called Social Calendar with columns for date, platform, caption, image prompt, aspect ratio, status, and image URL
  • A Black Forest Labs account with access to FLUX 1.1 [pro]
  • A Google Drive folder for the finished images
  • A Slack workspace and a channel where the social manager wants the daily summary
How can I customize it?
  • Change the schedule (a different time, weekends included, twice a day, and so on)
  • Point it at a different sheet or rename the columns to match your existing template
  • Route the summary to a different Slack channel or send it as a DM to the social manager

Frequently asked questions

Do I have to write the image prompts myself?
Yes, and that is the point. Marketers who use content calendars want to control the exact visual, so this workflow uses the prompt and aspect ratio you type into the sheet verbatim without rewriting or editorializing.
What happens to rows that are not marked queued?
They are ignored. The workflow only touches rows where the status column reads queued, which lets you keep drafts, holds, and already-shipped posts in the same sheet without worrying about accidental regeneration.
Why upload to Google Drive instead of pasting the generator link?
The image links returned by the generator expire after ten minutes, so if you just pasted them into the sheet they would break before your social manager saw them. Google Drive gives you a durable link plus the actual file to grab and schedule.
What aspect ratios can I put in the sheet?
Anything FLUX 1.1 [pro] supports, so you can mix square posts, portrait stories, and landscape banners in the same run. Just type the ratio your marketer wants in the aspect ratio column.
What if generation fails for a row?
That row is left as queued so the next run picks it up, and the failure shows up in the Slack summary. Nothing is silently lost.

Stop rendering social images by hand every morning.

Let your content calendar decide what gets made, and wake up to a ready-to-post gallery waiting in Drive.