---
title: "Daily LinkedIn post with an image from a Notion table"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/3197d91e-7c15-4e0b-9237-a3c678b84938"
updated: "2026-11-12"
---

# Daily LinkedIn post with an image from a Notion table

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

An n8n workflow that takes the Notion row dated today, lets OpenAI tidy the text of its page and posts it to LinkedIn with the page’s image. Afterwards it sets the row’s status to Done.

Daily LinkedIn post with an image from a Notion table is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. 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 posts the day’s LinkedIn post from a Notion table. Every day at 15:00 it looks for the row whose Date is today and reads the text and the image on that row’s page. OpenAI reformats the text with paragraph breaks and lists. The text and the image go to LinkedIn, and the row is marked Done. Nine nodes do the work, beside two sticky notes.

### Who it suits

Creators, founders and small marketing teams who draft LinkedIn posts in Notion and want each one to go out on a set day. Skip it if a person must read every post first, because nothing is held back for approval. Every post needs an image on its page.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Marketing | Social media managers | Queue a week of posts in one table | A manager writes five rows with five dates and lets the workflow post one a day. |
| Consulting | Independent consultants | Post tips at a steady rhythm | A consultant drafts a tip with a chart image and picks the day it should go out. |
| Recruitment | Employer-brand teams | Share job news on set dates | A team keeps openings in a table and posts each with its picture on the planned day. |
| Education | Course creators | Promote lessons through the month | A creator plans the month’s posts at once and sees each one marked Done after it goes out. |

You need basic n8n skills, a Notion database with three properties, a LinkedIn account and an OpenAI API key.

### Where to use it

Any n8n that can reach Notion, OpenAI and LinkedIn will run it. n8n Cloud and a server of your own both work.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- Another time of day: change the hour in \`Schedule Trigger\`
- Another style: rewrite the system message in \`Reformat Post Text\`

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Four services are involved.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| Notion | A Notion integration and a database with \`Name\` (title), \`Status\` (status, with a Done option) and \`Date\` (date). Each row’s page holds the post text and one image |
| LinkedIn | A LinkedIn OAuth2 credential for the account that will post |
| OpenAI | An API key, saved in an OpenAI credential |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. In Notion, create a database with `Name`, `Status` and `Date`, give `Status` an option called Done and share the database with your Notion integration.
3. Write a post on a row’s page, as text with one image, and set the row’s `Date` to the day it should go out.
4. Add a Notion credential and select it in `query entries from Notion table for today`, `get all content from post page` and `Set post status to "Done"`.
5. In `query entries from Notion table for today`, pick your database in place of `<YOUR_NOTION_DATABASE_ID>`.
6. Add an OpenAI credential and select it in `Reformat Post Text`.
7. Add a LinkedIn OAuth2 credential, select it in `Post on LinkedIn` and choose yourself in its Person field, in place of `<YOUR_LINKEDIN_PERSON_ID>`.
8. Test it on a row dated today, then activate the workflow.

### How to use it

Activate the workflow, or run it by hand on a row dated today. It posts for real, so test it with a post you are happy to publish.

What to change for a different result

| To change | Where |
| --- | --- |
| The hour | \`Schedule Trigger\` |
| The kind of post | The system message and the second message in \`Reformat Post Text\` |
| The model | \`modelId\` in \`Reformat Post Text\` |
| The Notion table and its date column | \`query entries from Notion table for today\` |
| Who posts | The Person field in \`Post on LinkedIn\` |
| The status that marks a row as posted | \`Set post status to "Done"\` |

### Example

On Tuesday a row dated Tuesday holds a short post and a picture of a chart.

At 15:00 OpenAI returns the text in tidy paragraphs, with a list where the post had one. The post and the picture go to LinkedIn, and the row’s Status changes to Done.

### 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 Notion database is a table, and every row is also a page that can hold text and pictures. Here the model is asked to reformat the text, not to write a new post.

**For experts.** The Notion block lookup returns one item for each block. The Aggregate node joins the `content` fields into one array, and the image block’s `image.file.url` into an array named `url`, because n8n names an aggregated dotted field by its last part. The HTTP Request node fetches the first address. The Merge node pairs the text item with the image item by position and keeps the binary field `data` for the LinkedIn node. The model’s answer arrives in `message.content`.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`query entries from Notion table for today\` | Finds the rows whose Date is today | The date is written \`yyyy-MM-dd\`, and n8n converts it to UTC with the workflow’s timezone |
| \`get all content from post page\` | Reads every block on the row’s page | Notion’s own file links expire, so the image is fetched in the same run |
| \`Reformat Post Text\` | Asks OpenAI for a version with paragraph breaks and lists | It replaced a call to a saved OpenAI assistant |
| \`Combine text+image\` | Joins the text and the image by position | The result is one item with the text and the image data |
| \`Post on LinkedIn\` | Posts the text with the image | It publishes for real, as the person you choose |

### Good to know

The call to an OpenAI assistant and the date format were replaced, and the LinkedIn person ID was removed. Mindket did not run this workflow.

- Assistant: the file called a saved assistant named “LinkedIn Post Reviewer”. OpenAI’s deprecations page, read on 12 November 2026, shut the Assistants API down on 26 August 2026. Mindket’s copy uses the OpenAI node’s message call with its own system message, because the assistant’s instructions were not in the file
- Model: \`gpt-6-luna\`, the replacement that page names for older models, used here for a plain call with no tools
- Date: the file wrote the filter as \`yyyy/mM/dd\`. In n8n’s date format a small \`m\` is the minute, so it gave a string like \`2026/3711/12\`. Mindket’s copy writes \`yyyy-MM-dd\`
- Timezone: n8n converts the day to UTC with the workflow’s timezone before it asks Notion, so set that timezone to yours in the workflow settings
- Image: a row whose page has no image fails at \`Fetch image from post\`, so every post needs one
- Posting: nothing holds a post back for review
- The file holds no credential, no LinkedIn person ID and no Notion database ID

## README

```markdown
# Daily LinkedIn post with an image from a Notion table

An n8n workflow that takes the Notion row dated today, lets OpenAI tidy the text of its page and posts it to LinkedIn with the page’s image. Afterwards it sets the row’s status to Done.

## What is inside

- `workflow.json`: the workflow as n8n exports it, eleven nodes. Nine do the work and two are sticky notes that label the steps. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The text step called a saved OpenAI assistant named “LinkedIn Post Reviewer”. OpenAI’s deprecations page, read on 12 November 2026, shut the Assistants API down on 26 August 2026. Mindket’s copy sends the text to the OpenAI node’s message call with `gpt-6-luna`. Its system message is Mindket’s own, because the assistant’s instructions were not in the file.
- The date filter was written `yyyy/mM/dd`, where `m` is the minute. It is now `yyyy-MM-dd`.
- The LinkedIn person ID is now `<YOUR_LINKEDIN_PERSON_ID>`, and the Notion database ID and its cached name and address are gone. It is now `<YOUR_NOTION_DATABASE_ID>`.
- The text of the two sticky notes was rewritten.
- The Notion, OpenAI and LinkedIn nodes were linked to credentials in the original owner’s accounts. The links are gone, so select your own.
- Nothing else. The schedule, the block reading, the Aggregate and Merge settings and the status update are the original copy’s own.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- A Notion integration and a database with `Name`, `Status` and `Date`, where `Status` has a Done option.
- A post to try, written on a row’s page with its image.
- A LinkedIn OAuth2 credential and an OpenAI API key.

## Set it up

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. In Notion, create a database with `Name`, `Status` and `Date`, give `Status` an option called Done and share the database with your Notion integration.
3. Write a post on a row’s page, as text with one image, and set the row’s `Date` to the day it should go out.
4. Add a Notion credential and select it in `query entries from Notion table for today`, `get all content from post page` and `Set post status to "Done"`.
5. In `query entries from Notion table for today`, pick your database in place of `<YOUR_NOTION_DATABASE_ID>`.
6. Add an OpenAI credential and select it in `Reformat Post Text`.
7. Add a LinkedIn OAuth2 credential, select it in `Post on LinkedIn` and choose yourself in its Person field, in place of `<YOUR_LINKEDIN_PERSON_ID>`.
8. Test it on a row dated today, then activate the workflow.

## How a run goes

1. `Schedule Trigger` starts the run every day at 15:00.
2. `query entries from Notion table for today` finds the rows whose Date is today.
3. `get all content from post page` reads every block on the row’s page.
4. `Pull together all text blocks + image` gathers the text blocks and the image address.
5. `Fetch image from post` downloads the image, while `Reformat Post Text` sends the text to OpenAI.
6. `Combine text+image` joins the reformatted text and the image.
7. `Post on LinkedIn` posts them, and `Set post status to "Done"` marks the row.

## Change the result

- The hour: `Schedule Trigger`.
- The kind of post: The system message and the second message in `Reformat Post Text`.
- The model: `modelId` in `Reformat Post Text`.
- The Notion table and its date column: `query entries from Notion table for today`.
- Who posts: The Person field in `Post on LinkedIn`.
- The status that marks a row as posted: `Set post status to "Done"`.

## Good to know

- Mindket did not run this workflow. Notion, OpenAI and LinkedIn were not called. The node settings and defaults come from n8n’s source and OpenAI’s documentation, read on 12 November 2026.
- n8n’s LinkedIn node posts through LinkedIn’s own API. The Person field lists the account behind your credential, so pick yourself from it.
- The workflow posts at once and has no review step. A wrong post is public until you delete it on LinkedIn.
- Two rows dated today make two posts, one after the other.
- A row with no image on its page makes the run fail at `Fetch image from post`.
- The file holds no credential, no key, no LinkedIn person ID and no Notion database ID.
```

## What is in it

3 files, 13 KB, downloaded as a zip.

```text
NOTICE.md  601 B
README.md  4 KB
workflow.json  8 KB
```

## Workflow check

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

- Steps: 9 steps, starting on a schedule
- AI: 1 step calls an AI model: Reformat Post Text
- Sign-ins: Signs in to: Notion and LinkedIn
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 7 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/3197d91e-7c15-4e0b-9237-a3c678b84938)
- [Its page on Mindket](https://mindket.com/p/3197d91e-7c15-4e0b-9237-a3c678b84938)
