Mindket

Daily LinkedIn post with an image from a Notion table

Newversion 1 · updated

Overview

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 . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • 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

Platform

Connects 3 apps

How it works

Trigger

A daily schedule

It runs by itself:

  • Every day at 15:00
  • The post is the Notion row dated today

Actions

  1. Notion is searched for the row whose Date is today
  2. The text and the image on that row’s page are read
  3. OpenAI reformats the text with paragraph breaks and lists
  4. The image is downloaded and joined to the text
  5. The post goes to LinkedIn, and the row’s Status is set to Done

Result

A LinkedIn post with its image, and the Notion row marked Done

Integrations

What you need before you start.

Notion

Post planner

Holds the rows and their pages, and gets the Done status afterwards.

NeedsA Notion credential and a database with Name, Status and Date

OpenAI

Text editor

Reformats the post text with paragraph breaks and lists.

NeedsAn OpenAI API key, in an OpenAI credential

LinkedIn

Publishing

Publishes the post with its image.

NeedsA LinkedIn OAuth2 credential

Workflow check

Checked by Mindket on 13 Nov 2026

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

Read from the workflow’s file, not from a run.

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
IndustryWho uses itHow they use itExample
MarketingSocial media managersQueue a week of posts in one tableA manager writes five rows with five dates and lets the workflow post one a day.
ConsultingIndependent consultantsPost tips at a steady rhythmA consultant drafts a tip with a chart image and picks the day it should go out.
RecruitmentEmployer-brand teamsShare job news on set datesA team keeps openings in a table and posts each with its picture on the planned day.
EducationCourse creatorsPromote lessons through the monthA 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

Setup

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

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
NotionA 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
LinkedInA LinkedIn OAuth2 credential for the account that will post
OpenAIAn 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 changeWhere
The hourSchedule Trigger
The kind of postThe system message and the second message in Reformat Post Text
The modelmodelId in Reformat Post Text
The Notion table and its date columnquery entries from Notion table for today
Who postsThe Person field in Post on LinkedIn
The status that marks a row as postedSet 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
NodeWhat it doesWhat to know
query entries from Notion table for todayFinds the rows whose Date is todayThe date is written yyyy-MM-dd, and n8n converts it to UTC with the workflow’s timezone
get all content from post pageReads every block on the row’s pageNotion’s own file links expire, so the image is fetched in the same run
Reformat Post TextAsks OpenAI for a version with paragraph breaks and listsIt replaced a call to a saved OpenAI assistant
Combine text+imageJoins the text and the image by positionThe result is one item with the text and the image data
Post on LinkedInPosts the text with the imageIt 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 and files

README

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.
Files
NOTICE.md  601 B
README.md  4 KB
workflow.json  8 KB

3 files, 13 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

Similar in Marketing & SEO

See all in Marketing & SEO

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New

Flux.2-Klein-9B-MatchingPose

nhathoangfoto · Kit

A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…

New