---
title: "Facebook, Instagram and LinkedIn drafts with images"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/e497d254-3d56-4157-94a7-361aed3ff04d"
updated: "2026-11-09"
---

# Facebook, Instagram and LinkedIn drafts with images

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that turns a niche or an article link into a Facebook, an Instagram and a LinkedIn post, each with an OpenAI picture, filed in Google Sheets as a draft. A switched-off half posts the rows you approve.

Facebook, Instagram and LinkedIn drafts with images is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow writes posts for Facebook, Instagram and LinkedIn, draws a picture for each, and files them in Google Sheets as drafts. A form asks how to start. With a niche, a model suggests five post ideas, you pick one on the next page, and Tavily brings back five pages on it. With an article link, the workflow fetches the page and strips it to text. Either way, a model writes a title and summary, the three posts and a picture brief per network. OpenAI’s image model draws the pictures, Google Drive keeps them, and a new sheet row holds it all with the status Draft.

A second half that posts what you approve comes switched off.

### Who it suits

Small businesses, creators and social media managers who share the same news on three networks and want each version written for its audience, with a picture, before anyone approves it. Skip it for a quick single post. The drafting half alone takes four services and ten nodes to set up, and posting needs Meta, LinkedIn and Dropbox access on top.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Small business | Shop and café owners | Paste a link to their own blog post and get three posts that point back to it | A bakery pastes its new recipe post and gets a Facebook post that links to it. |
| Agencies | Social media managers | Draft for a client, then share the sheet for approval before the posting half goes on | A manager sends the client the sheet and marks the rows the client likes Approved. |
| Coaching and courses | Coaches | Enter a niche and a view of their own, so the posts carry it | A fitness coach enters strength training and a line on why rest days matter. |
| B2B and software | Marketing teams | Turn an industry article into a LinkedIn post with a picture in the brand color | A software team enters its hex color and gets three pictures built around it. |
| Media and newsletters | Editors | Turn each story into three posts with a picture each | An editor pastes the day’s main story and has three drafts from one form. |

### Where to use it

Any n8n that can reach OpenAI, Tavily and Google will run the drafting half. The posting half also needs Meta, LinkedIn and Dropbox.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- Google Sheets: one row per run with the summary, three posts, three picture links and a status
- Google Drive: the pictures of every run, named after the summary’s title
- Facebook, Instagram and LinkedIn: switch on the posting half to post the rows you approve

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Its author puts setup at about 28 minutes.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key for the chat models and an image model |
| Tavily | An API key, kept in a Header Auth credential |
| Google | An account for Drive and Sheets credentials |
| A spreadsheet | A tab named \`Social Media Post\` with the eleven columns the README lists in row 1 |
| A Drive folder | Where the pictures go |
| For posting | A Facebook Page with a linked Instagram business account, a LinkedIn account and a Dropbox account |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add an OpenAI credential. In `OpenAI Chat Model1`, `OpenAI Chat Model2`, `Content Writer` and `Content Writer1`, select it and pick a current chat model.
3. Replace the six image nodes with OpenAI Generate an Image nodes on a current image model, keeping each prompt, quality and size.
4. In `Tavily`, add a Header Auth credential named Authorization with the value Bearer and your key, select it, and delete the header row that holds `<YOUR_TAVILY_API_KEY>`.
5. Add a Google Sheets credential to `Update Copy Content` and `Update Copy Content1`, and replace `YOUR_SHEET_ID` in both.
6. Add a Google Drive credential to the six `Upload Image` nodes, and replace `YOUR_FOLDER_ID` in each.
7. Save, open the form from the test address of `On form submission1` and send it once each way.

Steps 2 and 3 are there because of the models in the file. OpenAI’s deprecations page, read on 2 November 2026, lists `chatgpt-4o-latest` as removed on 17 February 2026 and `gpt-image-1` as shut down on 23 October 2026. The image nodes are version 1.8 of n8n’s OpenAI node, whose model list stops at `gpt-image-1`, so a fresh node is the way to a newer model.

### How to use it

Open the form, choose Topic or Niche or Article URL, and fill in the next page. Brand color and your view are optional. A niche run shows one more page with five ideas to pick from. The run then goes on behind the form. When it ends, a new row reads Draft. Edit the posts in the sheet if you like.

Posting is the switched-off half, started by a `Schedule Trigger`. Each run posts the first row marked Approved to all three networks and marks it Published. To use it:

- Switch it on: drag a box around the nodes under the Publish to Social Media note and press D
- Facebook and Instagram: add a Facebook Graph API credential to \`Facebook Publish\`, \`Create IG Container\` and \`Post to IG\`, then replace \`YOUR\_PAGE\_ID\` and \`YOUR\_INSTAGRAM\_ID\`
- LinkedIn: add a credential to \`LinkedIn Publish\` and replace \`YOUR\_LINKEDIN\_PERSON\_ID\`
- Dropbox: add a credential to \`Upload Image to Dropbox\`, and put an access token in place of \`\<YOUR\_DROPBOX\_ACCESS\_TOKEN\>\` in \`Create Shared Link\`
- Google: select the credentials in \`Get Copy Contents\`, \`Update Status\` and the three \`Download Image\` nodes, and replace \`YOUR\_SHEET\_ID\`
- Go live: set the interval in \`Schedule Trigger\` and publish the workflow

What to change for a different result

| To change | Where |
| --- | --- |
| Number of ideas | The prompt of \`Generate Post Ideas\` and the five options in \`Form\` |
| Search | \`search\_depth\`, \`max\_results\` and \`include\_raw\_content\` in the body of \`Tavily\` |
| Tone per network | The system message of \`Content Writer\` and \`Content Writer1\` |
| Picture style | The messages of the \`Copy Image Prompt Generator\` nodes |
| Picture size and quality | The image nodes’ options, 1024x1024 at high in the file |
| Posting pace | \`Schedule Trigger\`, and \`Limit1\`, which lets one row through |

### Example

A niche run, with this on the form’s second page:

```text
Enter your niche/topic: home coffee brewing
Brand color (name or hex code): #6F4E37
Share your personal insights or opinion: Grinding fresh beats any machine upgrade
```

The next page offers five ideas, and you pick one. After the summary, posts and pictures, `Update Copy Content` appends a row in this shape:

```text
Niche: home coffee brewing
Idea: <the idea you picked>
Source Article: N/A
Summary: <a summary of five pages>
Facebook Copy, Instagram Copy, LinkedIn Copy: <three posts>
Facebook Image, Instagram Image, LinkedIn Image: <three Drive links>
Status: Draft
```

An article run puts the link in `Source Article` and N/A under Niche and Idea. Its Facebook and LinkedIn posts end by pointing readers to the article.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A credential is a key n8n keeps for you and hands to the node you pick it in. This file has two halves. The top runs when the form is sent. The bottom stays grey until you switch it on. Start with one niche run of the top half. Each node then shows what it received and sent, which is where a missing column or a wrong model name turns up.

**For experts.** Two chat model nodes feed most steps, and each half ends in a merge by position.

The model behind each step

| Step | Model | What to know |
| --- | --- | --- |
| \`Generate Post Ideas\`, \`WebSearch Summary\` and three prompt nodes | \`OpenAI Chat Model2\` | \`Structured Output Parser\` holds the summary to a title and a summary |
| \`Article Summary\` and its three prompt nodes | \`OpenAI Chat Model1\` | \`Structured Output Parser1\` holds the same two fields |
| \`Content Writer\`, \`Content Writer1\` | Set in the node, JSON output on | Returns \`facebook\`, \`instagram\` and \`linkedin\` |
| Six image nodes | \`gpt-image-1\` in the file, high quality, 1024x1024 | Retry on failure is on |

Each half’s Merge takes four inputs, the three uploads and the writer, and combines them by position into one row. Instagram needs a public address for its picture. Its branch copies the picture from Drive to Dropbox, asks for a shared link and swaps `dl=0` for `raw=1`. Facebook and LinkedIn take the file itself.

### Good to know

A run costs real money, and the posting half needs more setup than the drafting one.

- Billing: a niche run makes six chat calls and an article run five, and each draws three high-quality pictures. A niche run also pays for an advanced Tavily search
- Five pages: the summary prompt reads five search results in full. Fewer results leave gaps, and five long pages make a long prompt
- Article pages: a site that blocks automated requests or loads its text with JavaScript gives a thin summary or an error
- One a run: the posting half takes the first Approved row each time, so set the interval to your posting pace
- Dropbox: every Instagram picture stays there with a public link until you delete it
- Open form: once the workflow is published, anyone with the form’s address can start a run on your keys
- Your token: the Dropbox token sits in a header as plain text and travels with any export of the workflow
- A repair: the original copy’s \`Clean HTML\` code and the file name in \`Upload Image to Dropbox\` had lost their backslashes. This one has them back
- Credentials: the JSON holds none, and nothing from its author’s account

## README

```markdown
# Facebook, Instagram and LinkedIn drafts with images

An n8n workflow. Start it from a form with a niche or an article link. It writes a Facebook, an Instagram and a
LinkedIn post, draws a picture for each with OpenAI, keeps the pictures in Google Drive and files everything in Google
Sheets as a draft. A second half that posts the rows you approve comes switched off.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 72 nodes, six of them sticky notes. 27 nodes, the whole posting
  half, are switched off. It holds no credential. The spreadsheet, the Drive folder, the Tavily key, the Dropbox
  token and your LinkedIn person ID are left as placeholders.
- `README.md`: these notes.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenAI API key.
- A Tavily API key.
- A Google account for Drive and Sheets, and a Drive folder for the pictures.
- A spreadsheet with a tab named `Social Media Post` and these eleven column names in row 1: `Niche`, `Idea`,
  `Source Article`, `Summary`, `Facebook Copy`, `Facebook Image`, `Instagram Copy`, `Instagram Image`,
  `LinkedIn Copy`, `LinkedIn Image` and `Status`.
- For the posting half only: a Facebook Page with an Instagram business account linked to it, a LinkedIn account and
  a Dropbox account.

## Set up the drafting half

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add an OpenAI credential. Select it in `OpenAI Chat Model1`, `OpenAI Chat Model2`, `Content Writer` and
   `Content Writer1`, and in each of those four pick a current chat model in place of `chatgpt-4o-latest`.
3. Replace the six image nodes: `FB Image Generation`, `IG Image Generation`, `Li Image Generation` and the same three
   names ending in 1. For each, add an OpenAI node with Image and Generate an Image and pick a current image model.
   Copy the old node's prompt expression, quality and size into it, and wire it where the old one was.
4. Open `Tavily`. Its Authentication is set to a Header Auth credential, so add one with the name `Authorization`
   and the value `Bearer `, a space, then your key. Select it, and delete the header row that holds
   `<YOUR_TAVILY_API_KEY>`.
5. Copy the spreadsheet's ID, the long part of its address between `/d/` and `/edit`. Add a Google Sheets OAuth2
   credential, select it in `Update Copy Content` and `Update Copy Content1`, and replace `YOUR_SHEET_ID` in both.
6. Copy the Drive folder's ID, the last part of its address. Add a Google Drive OAuth2 credential, select it in
   `Upload Image` to `Upload Image5`, and replace `YOUR_FOLDER_ID` in all six.
7. Save. Open the form from the test address of `On form submission1` and send it once each way.

OpenAI's deprecations page, read on 2 November 2026, lists `chatgpt-4o-latest` as removed from the API on 17 February
2026 and `gpt-image-1` as shut down on 23 October 2026. The image nodes are version 1.8 of n8n's OpenAI node, whose
model list stops at `gpt-image-1`. It also sends `response_format` with any other model, a field n8n's newer node
leaves out for every GPT image model. That is why step 3 swaps the nodes rather than the model name.

## How a run goes

- `On form submission1`, titled Social Media Auto Publish Agent, asks one question: Topic or Niche, or Article URL.
  Then `If1` sends the answer to `Form1` or `Form2`.
- Topic or Niche: `Form1` asks for a niche, a brand color and your own view, the last two optional.
  Then `Generate Post Ideas` asks the model for five ideas, `Code` splits them into a list, and `Form` shows them as
  a dropdown. Next, `Tavily` runs an advanced search on the one you pick and returns five pages with their full text,
  and `WebSearch Summary` writes a title of up to six words and a summary.
- Article URL: `Form2` asks for the link, a brand color and your view. Then `Scrape the Source URL` fetches the page
  with a browser's headers, `Extract Content` keeps the text and drops menus, ads and comments, and `Clean HTML`
  strips link addresses and brackets. Last, `Article Summary` writes the title and summary.
- From there both halves run the same way. `Content Writer` (or `Content Writer1`) writes the three posts as JSON,
  with your view worked in when you gave one. On the article path, the Facebook and LinkedIn posts end with a call to
  read the article.
- Three prompt nodes per half turn the title and summary into a picture brief for each network, with your brand color
  added. The image nodes draw each picture at 1024x1024, and the upload nodes save them to Drive as
  `<title>_Facebook Copy` and so on.
- A Merge node joins the four results, and `Update Copy Content` (or `Update Copy Content1`) appends one row with
  `Status` set to `Draft`. The article path writes the link in `Source Article` and N/A under `Niche` and `Idea`.

## Switch on the posting half

The switched-off nodes sit under the note Publish to Social Media. A `Schedule Trigger` starts them, and on each run
they post the first row whose `Status` is `Approved` to all three networks and set it to `Published`.

1. Drag a box around those nodes, then press D to switch them on.
2. Add a Facebook Graph API credential and select it in `Facebook Publish`, `Create IG Container` and `Post to IG`.
   Replace `YOUR_PAGE_ID` with your Page's ID and `YOUR_INSTAGRAM_ID` in both Instagram nodes with the ID of the
   Instagram business account.
3. In `LinkedIn Publish`, pick a new LinkedIn OAuth2 credential, then put your person ID in place of
   `YOUR_LINKEDIN_PERSON_ID`.
4. Add a Dropbox credential and select it in `Upload Image to Dropbox`. In `Create Shared Link`, replace
   `<YOUR_DROPBOX_ACCESS_TOKEN>` in the Authorization header with a Dropbox access token.
5. Select the Google credentials in `Get Copy Contents`, `Update Status`, `Download Image`, `Download Image2` and
   `Download Image3`, and replace `YOUR_SHEET_ID` in the two Sheets nodes.
6. Set the interval in `Schedule Trigger`, then press Publish at the top of the canvas (or Shift+P).

Facebook and LinkedIn get the picture as a file, downloaded from Drive. Instagram needs a public address, so its
branch copies the picture to Dropbox under `/instagram_copy_image/`, asks Dropbox for a shared link, turns `dl=0` into
`raw=1`, then creates a media container and publishes it.

## Change the look

- Number of ideas: the prompt of `Generate Post Ideas` and the five options in `Form`.
- Search: `search_depth`, `max_results` and `include_raw_content` in the body of `Tavily`. The summary prompt reads
  five results, so lower `max_results` only together with that prompt.
- Tone per network: the system message of `Content Writer` and `Content Writer1`. Facebook gets up to two hashtags,
  Instagram three to five plus emojis, and LinkedIn no emojis.
- Picture style: the messages of the `Copy Image Prompt Generator` nodes.
- Picture size and quality: the options of the image nodes.
- Posting pace: `Schedule Trigger`, and the one-row `Limit1` after `Get Copy Contents`.

## Good to know

- A niche run calls OpenAI's chat models six times and an article run five times, and each draws three high-quality
  pictures. A niche run also pays for an advanced Tavily search. OpenAI and Tavily bill their own parts.
- The summary prompt reads five full pages. Fewer search results leave gaps, and five long pages make a long prompt.
- A page that blocks automated requests or loads its text with JavaScript gives a thin summary or an error on the
  article path.
- Nothing is posted until you switch the second half on and mark a row `Approved`. It then posts one approved row per
  run, so set the interval to the pace you want.
- Every Instagram picture stays in Dropbox with a public link until you delete it.
- Once the workflow is published, anyone with the form's address can start a run on your keys. The form trigger can
  ask for a username and password.
- The Dropbox token sits in a header as plain text, so it travels with any export of the workflow.
- The original copy's `Clean HTML` code had lost the backslashes of its three regexes, and the file name expression
  in `Upload Image to Dropbox` had lost the one in `/\s+/`. This one has them back.
```

## What is in it

2 files, 92 KB, downloaded as a zip.

```text
README.md  8 KB
workflow.json  84 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 39 steps, starting on a form
- Not reached: 23 nodes no run reaches: Limit1, Code3, Merge3, Facebook Publish, Facebook and 18 more
- AI: 17 steps call an AI model: Generate Post Ideas, WebSearch Summary, Li Copy Image Prompt Generator, Li Image Generation, IG Copy Image Prompt Generator and 12 more
- Sign-ins: Signs in to: Tavily, Google Drive, Google Sheets, OpenAI and Dropbox
- API keys: No API key is left in the file; 2 blanks in it for your own key
- Step types: Mindket’s checker reads all 12 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/e497d254-3d56-4157-94a7-361aed3ff04d)
- [Its page on Mindket](https://mindket.com/p/e497d254-3d56-4157-94a7-361aed3ff04d)
