Generate Newsletter Images with Nano Banana & Post Human-Approved Tweets to X
Go to WorkflowDescription
What this is
A ready-to-use n8n workflow that turns new Google Sheets rows (title + summary) into brand-safe images using Nano Banana (via KIE.ai), writes the image URL back to your sheet, generates a tweet text, requests human approval in Telegram, and—on approval—posts to X (Twitter) automatically.
Why you need it
Save time**: no more waiting for ad-hoc graphics—get on-brand visuals in seconds.
Stay consistent**: one prompt style, predictable output, brand-safe negative prompts.
Ship daily**: scale newsletter/blog distribution without ballooning costs or headcount.
Human in the loop**: you keep creative control before anything goes live.
How it works (high level)
New/updated row in Google Sheets (e.g., title, blogpost_summary, status=pending).
Prompt builder creates a short, safe image prompt (CI friendly).
Nano Banana (KIE.ai) generates the image (PNG) → URL saved back to the sheet.
A tweet (<280 chars) is generated from the row.
Telegram sends image + text for approval (Approve/Reject).
On Approve, the image is uploaded and the tweet is posted to X → tweet_url + status=posted saved to the sheet.
Who it’s for
Content & marketing teams, solo creators, agencies, and founders running lean editorial calendars.
Extend it (ideas)
Multi-variant** images (A/B) with auto-selection based on CTR.
Brand controls**: fixed color palettes, fonts, or stylistic anchors in prompts.
Auto-publish** to LinkedIn/Instagram (via Buffer/Hootsuite or native APIs).
Asset storage**: push originals to S3/Drive and auto-rename by slug/date.
Analytics**: log posts + clicks to a database and feed learnings back into prompts.
Pricing & Advantage
Nano Banana (via KIE.ai)* is typically *~$0.02–$0.04 per image** (plan-dependent).
Posting to X** has no per-post cost (API plan limits may apply).
Why KIE.ai vs “classic” Google API?* Lower practical unit costs for this image-gen use case, *simpler integration* (same vendor for image + video), and task/status flows that fit *n8n polling** perfectly.
> Always check your KIE.ai dashboard for current pricing/limits.
Quick setup (Step-by-Step)
Accounts/credentials: create a KIE.ai account & API key; set up Google Sheets access; create a Telegram bot with @BotFather (copy token & get Chat ID); enable X (Twitter) API (OAuth).
Import the n8n template and connect credentials (KIE.ai header: Authorization: Bearer {{ $env.KIE_API_KEY }}).
Point the Google Sheets Trigger at your sheet/tab; use status=pending as the starting condition.
Verify the Prompt Generator (short, brand-safe prompt + negative prompt).
Test Image Gen → ensure image_url is written back to the sheet.
Test Telegram approval (image + tweet text).
On approve, confirm the tweet posts and tweet_url + status update in the sheet.
Quick usage (Step-by-Step)
Add a row in your sheet with title, blogpost_summary, (status=pending).
Wait for the bot: you’ll get image + tweet text in Telegram.
Approve to post to X, or Reject/Regenerate to try a new style.
Find tweet_url and status updated in your sheet.
Questions? Email: [email protected]