GeminiCreativeWritingAI score · PendingAI-assisted edit · no obvious prompt-injection riskn8n.io

Auto-generate LinkedIn, Facebook, and Bluesky posts with images from Google Sheets topics

Input: rows marked ready in Google Sheets; Processing: Gemini writes platform-specific copy and an image prompt, generates the image, then PostWire publishes; Output: post links written back to the sheet, email alert on failure

Some experienceStepsWorkflowPrompt
Who
Operators or small teams who need to post regularly to LinkedIn, Facebook, and Bluesky
You get
Every weekday, pull a topic from a sheet queue, generate a custom image and platform copy, publish, and write back links or errors
You need
n8n · google-sheets · gmail

Constraints

Prerequisites: n8n instance; PostWire account with social profiles connected; Google Sheets with columns topic, notes, status, posted_at, links, note; Google Gemini credentials for text and image models; Gmail credentials. Cost: Gemini text fits the free tier; Nano Banana image costs about 0.04 USD. PostWire free plan posts to 2 networks per post.

What they did

The author created an n8n template that runs every weekday, reads topics marked ready from Google Sheets, uses Gemini to generate platform-specific copy and an image prompt for LinkedIn, Facebook, and Bluesky, generates the illustration with Gemini's image model, publishes via PostWire, and writes back post links or error notes to the sheet with a Gmail alert on failure.

How it went

The author reports that when all platforms publish successfully, the sheet row is updated to posted with a timestamp and links; if image generation or any platform fails, the row is marked needs fix or partly posted, and an email notifies the operator to fix and reset status to ready for retry. (author_report)

Worth knowing

PostWire's free plan limits posts to 2 networks per post; verify your plan if publishing to all 3 platforms. Nano Banana images cost about 0.04 USD each. Gemini text generation fits the free tier. Voice and image style can be customized in the Post settings node. This site has not executed the workflow; test with a dummy row after setup.

n8n workflow template

Structure checked · Not run-tested

Use “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.

Setup and test checklist

Credentials to connect

  • After import, connect your own credentials on auth-required nodes; author secrets are not included.

Configuration to replace

  • Source template is n8n public workflow #20917 (~20 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
  • Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.

Test input and expected output

  • Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
  • Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.

Template changes

  • Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
  • No business-logic edits; verify keys, quotas and privacy compliance before use.

Template retrieved: 2026-10-24

Steps

  1. Prepare accounts, sheet, and credentials

    1. Create a PostWire account, connect LinkedIn/Facebook/Bluesky, install the PostWire node, and add a PostWire API credential in n8n. 2. Add Google Sheets credentials and select the target spreadsheet and sheet in each Google Sheets node. 3. Add a Google Gemini credential for both Gemini nodes (text and image models). 4. Add Gmail credentials and set the notification email in the Post settings node. 5. Ensure your Google Sheet includes columns topic, notes, status, posted_at, links, and note; set status to ready to queue topics.

  2. Queue a topic and claim it

    The workflow triggers every weekday at 9:00. Read the topics reads rows where status=ready; Has a topic filters non-empty topics; Take the next topic picks the first; Mark the topic as writing sets status to writing to prevent concurrent duplication.

  3. Generate copy and image prompt with Gemini

    Write the posts with Gemini receives topic, notes, voice, and image_style, then outputs JSON with linkedin, facebook, bluesky copy and image_prompt. Read the plan parses the JSON and passes it downstream. Nano Banana image calls the Gemini image model with image_prompt to generate the illustration.

    Execution prompt · Source text。Write the posts with Gemini node systemMessage field

    You write social media posts for a business from one topic. Use only the facts in the notes and invent no numbers. Return JSON with the keys linkedin (a hook line, then 3 or 4 short paragraphs separated by blank lines and a closing question, up to 1300 characters, no hashtags), facebook (1 or 2 conversational sentences), bluesky (up to 280 characters) and image_prompt (one paragraph that describes a single image illustrating the idea in the given image style, with no text in the image).

    Execution prompt · Source text。Nano Banana image node prompt field (n8n expression)

    ={{ $json.plan.image_prompt || ($json.topic + '. ' + $('Post settings').first().json.image_style) }}
  4. Publish, log results, and handle failures

    Post to LinkedIn, Facebook, Bluesky uploads the image and publishes each text via PostWire. Collect the results aggregates outcomes; Everything published? checks for full success: if yes, Mark the topic as posted updates status to posted with timestamp and links; otherwise Write the fix in the row sets needs fix or partly posted with error details, and Email me the fix sends a Gmail notification.

Prompt you can copy

Setup guidance · Editorial suggestion。Give to setup assistant to confirm inputs and permissions first

This block is the prompt. Ads are never placed here.

You are setting up an n8n workflow that reads topics from Google Sheets, uses Gemini to generate social copy and an image for LinkedIn/Facebook/Bluesky, and publishes via PostWire. First confirm you have: an n8n instance; a PostWire account with social profiles connected; a Google Sheet with columns topic/notes/status/posted_at/links/note; Google Gemini credentials; and Gmail credentials. Then configure each node's credentials and target sheet.

Before running, update the voice, image_style, and email defaults in the Post settings node, and select your actual spreadsheet in all Google Sheets nodes.

Source

Create LinkedIn, Facebook and Bluesky posts from Google Sheets with Gemini, Nano Banana and PostWire · postwire · n8n.io · 2026-10-14

Comments & feedback

Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.

Loading…

    Related