🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Notion + LinkedIn: posts scheduled and published

Lisa Granqvist Partner Workflow Automation Expert

LinkedIn posting gets messy fast. Ideas live in one place, drafts in another, media files in a random folder, and “I’ll post later” turns into “I forgot again.”

This Notion LinkedIn automation hits marketing managers first, but founders and consultants feel it too. You stop babysitting drafts and start publishing on a predictable schedule, with every post tracked in one Notion database.

Below, you’ll see how the workflow turns a simple idea into AI-written LinkedIn posts, stores everything in Notion, and publishes text, images, or documents automatically.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Notion + LinkedIn: posts scheduled and published

The Problem: LinkedIn Content Falls Apart Between Draft and Post

You can usually write a decent post. The painful part is everything around it. You jot an idea down, then you hunt for the right template, then you rewrite the hook three times, then you remember you wanted to attach a PDF carousel, then you can’t find the latest file, then it’s suddenly “not the right time to post.” Multiply that by three to five posts a week and it becomes a constant background stress. And when you’re working from scattered notes, you also lose the one thing that makes consistency possible: a clear pipeline with statuses.

It adds up fast. Here’s where it usually breaks down in real teams.

  • You waste about 20 minutes per post just moving text and media between tools.
  • Drafts get “stuck” because nobody knows what’s ready, what needs edits, and what was already published.
  • Carousels and attachments create a second workflow, so they either ship late or don’t ship at all.
  • Manual posting makes you dependent on motivation, which is not a scheduling strategy.

The Solution: A Notion-First LinkedIn System That Writes, Queues, and Publishes

This workflow gives you one place to run LinkedIn content: a Notion database that holds the idea, the generated draft, the media link, the scheduled date, and the publishing status. It starts with a simple form submission (an idea plus an optional file). From there, OpenAI generates multiple LinkedIn-ready post options, and n8n maps the outputs into clean fields like title, funnel stage, and final post text. Each draft gets saved to your “LinkedIn Auto Posts” database in Notion, so you can review and edit in the same place you plan. When a post is marked “Ready for Post” and the scheduled time arrives, n8n publishes it to LinkedIn automatically as text, an image post, or a document post. Finally, the workflow updates Notion to “Posted,” so your pipeline stays honest.

The workflow begins with form intake, then uses AI to generate drafts and store them in Notion. A second track watches Notion for “Create Carousel” items, builds a Google Slides-based carousel, saves the file to Drive, and writes the link back to Notion. On schedule, it pulls “Ready for Post” items and publishes them to LinkedIn, then marks each one as posted.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you publish 4 times a week and each post normally takes about 20 minutes to copy, format, upload media, and manually post. That’s roughly 80 minutes weekly just on the “moving pieces” part, not writing. With this workflow, you drop one idea into the form in about 2 minutes, then you review drafts in Notion and mark one “Ready for Post.” Publishing happens automatically on schedule. You get back about an hour a week, and the process feels calmer because nothing is scattered.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Notion to store drafts, statuses, and schedules
  • LinkedIn to publish posts automatically
  • OpenAI API key (get it from your OpenAI dashboard)

Skill level: Intermediate. You’ll connect accounts, map a few Notion fields, and test each publishing type once.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Idea intake triggers everything. You submit an idea through the “LinkedIn Post Generator” form, optionally attaching a file. If a file is included, it gets uploaded to Google Drive and saved as a link for later use.

AI turns the idea into usable drafts. OpenAI generates multiple LinkedIn posts, then the workflow splits the output into individual items. n8n maps fields like post title, funnel stage, and final copy so the database stays clean.

Notion becomes the control panel. Each draft is created as a Notion record, and if there’s an uploaded file, the record is updated with that link. A separate Notion change trigger can pick up “Create Carousel” items, prompt OpenAI for slide text, duplicate a Google Slides template, and populate it automatically.

Scheduled publishing runs in the background. Every hour, a schedule trigger pulls Notion items that match your filters (like “Ready for Post” plus a scheduled date). The workflow checks whether the post needs media, downloads it if required, publishes to LinkedIn as text/image/document, and marks the Notion item as “Posted.”

You can easily modify the Notion filters to match your own statuses and review process. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the intake form and time-based triggers that kick off the LinkedIn content pipeline.

  1. Open Form Intake Trigger and set Form Title to LinkedIn Post Generator.
  2. Add form fields for What is your idea? and a file upload field labeled Upload file.
  3. Set Form Description to This LinkedIn Post Generator creates a specific post. If left empty, it will generate 10 new posts..
  4. In Scheduled Poll Trigger, set the rule to run every minute to check scheduled posts.
  5. In Notion Change Trigger, set Event to pagedUpdatedInDatabase and Poll Times to everyMinute.
  6. Credential Required: Connect your notionApi credentials in Notion Change Trigger.

Tip: Use the form to test both paths—leave the idea blank to trigger 10 posts, and provide an idea to trigger 3 posts.

Step 2: Connect Notion

Configure all Notion database reads and writes that store posts, media links, and status updates.

  1. In Create Notion Record, set Database ID to your target Notion database and Title to ={{ $json['message.content.posts']['Post Title'] }}.
  2. Map properties in Create Notion Record using the provided expressions, including Funnel Stage to ={{ $json['message.content.posts']['Funnel Stage'] }} and Post Content to ={{ $json['message.content.posts']['Full Post Text'] }}.
  3. In Update Record With File, set the file URL to ={{ $('Assign File Link').item.json["File url"] }} in the File uploaded property.
  4. In Fetch Notion Records, set the filter to Status equals 2. Create Carousel.
  5. In Retrieve Ready Posts, use filters for Status equals 3. Ready for Post and Scheduled Date between ={{$now}} and ={{$now.plus({minutes:60})}}.
  6. In Mark Notion Posted, set Status to 4. Posted and Page ID to ={{ $('Retrieve Ready Posts').item.json.id }}.
  7. Credential Required: Connect your notionApi credentials in Create Notion Record, Update Record With File, Fetch Notion Records, Modify Notion Record, Retrieve Ready Posts, and Mark Notion Posted.

⚠️ Common Pitfall: Ensure your Notion property names match exactly (e.g., Status, Post Content, File uploaded) or updates will silently fail.

Step 3: Set Up AI Content Generation

Configure AI nodes that generate LinkedIn post content and carousel slide copy.

  1. In Generate 10 LinkedIn Posts, select model chatgpt-4o-latest and keep JSON Output enabled.
  2. In Generate 3 Idea Posts, select model chatgpt-4o-latest and include the idea payload with ={{ $('Form Intake Trigger').item.json['What is your idea?'] }}.
  3. Set Split Posts Array to split Field to Split Out as message.content.posts.
  4. In Map Output Fields, map Creation date to ={{ $today }}, Status to 1. Review, and Type to Post.
  5. In Prompt AI Model, use the inputs {{$json.property_post_content}} and {{$json.name}} to generate slide-ready JSON.
  6. Credential Required: Connect your openAiApi credentials in Generate 10 LinkedIn Posts, Generate 3 Idea Posts, and Prompt AI Model.

Tip: The workflow routes from Idea Presence Check to either Generate 10 LinkedIn Posts or Generate 3 Idea Posts based on whether the idea field is empty.

Step 4: Configure Google Workspace Carousel Generation

Automate Google Slides carousel creation when Notion records move to the carousel stage.

  1. In Duplicate Slide File, set Operation to copy and Name to = {{ new Date().toISOString().split('T')[0].replace(/-/g, '.');}} - {{ $json.message.content.PostTitle }}.
  2. Set File ID and Drive ID in Duplicate Slide File to your template and drive IDs (replace [YOUR_ID]).
  3. In Populate Slide Text, set Presentation ID to ={{ $json.id }} and map each placeholder to ={{ $('Prompt AI Model').item.json.message.content.* }}.
  4. In Modify Notion Record, set Google Carousel Link to =https://docs.google.com/presentation/d/{{ $json.presentationId }} and Status to 3. Ready for Post.
  5. Credential Required: Connect your googleDriveOAuth2Api credentials in Duplicate Slide File and your googleSlidesOAuth2Api credentials in Populate Slide Text.

Step 5: Configure LinkedIn Publishing and Notifications

Publish posts to LinkedIn based on media type and send email alerts for document uploads.

  1. In Upload Drive File, set Name to ={{ $('Form Intake Trigger').item.json['Upload file'][0].filename }} and Input Data Field Name to Upload_file.
  2. In Assign File Link, set File url to ={{ $json.webViewLink }}, then route into Idea Presence Check.
  3. In Download Media File, set URL to ={{ $json.property_linked_in_media }}, then route to Detect File Extension.
  4. In Detect File Extension, ensure the jpg and pdf rules match ={{$binary.data.fileExtension}} to route to Publish LinkedIn Image or Publish LinkedIn Document.
  5. In Publish LinkedIn Image and Publish LinkedIn Document, set Text to ={{ $json.property_post_content }} and replace [YOUR_ID] with your LinkedIn person ID.
  6. In Dispatch Email Alert, set Send To to [YOUR_EMAIL], Subject to LinkedIn Carousel - ACTION NEEDED, and Message to Add document to LinkedIn Carousel.
  7. In Publish LinkedIn Text, set Text to ={{ $json.property_post_content }} for text-only posts.
  8. Credential Required: Connect your googleDriveOAuth2Api credentials in Upload Drive File, your linkedInOAuth2Api credentials in Publish LinkedIn Image, Publish LinkedIn Document, and Publish LinkedIn Text, and your gmailOAuth2 credentials in Dispatch Email Alert.

⚠️ Common Pitfall: Replace every [YOUR_ID] and [YOUR_EMAIL] placeholder before testing or LinkedIn/Gmail actions will fail.

Step 6: Test and Activate Your Workflow

Validate all branches and activate the workflow for production use.

  1. Click Test Workflow and submit a sample form in Form Intake Trigger with and without an idea to validate both AI routes.
  2. Verify that Create Notion Record adds new rows and that Update Record With File attaches the Drive link when a file is uploaded.
  3. Manually update a Notion record to 2. Create Carousel and confirm Notion Change TriggerPrompt AI ModelPopulate Slide Text completes successfully.
  4. Set a Notion post to 3. Ready for Post within the next hour and confirm Scheduled Poll TriggerRetrieve Ready Posts routes to the correct LinkedIn node.
  5. When results look correct, switch the workflow to Active to run automatically.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Notion credentials can expire or need specific permissions. If things break, check your n8n Notion credential and the database sharing settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Notion LinkedIn automation automation?

About 60 minutes if your Notion database and LinkedIn access are ready.

Do I need coding skills to automate Notion LinkedIn automation?

No. You’ll mostly connect accounts and map fields between Notion, OpenAI, and LinkedIn.

Is n8n free to use for this Notion LinkedIn automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage, which is usually a few cents per batch of drafts.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Notion LinkedIn automation workflow for an approval step before publishing?

Yes, and it’s a common tweak. Keep the Notion database as-is, but change your “Ready for Post” filter to something like “Approved,” then add a Slack message node when a draft is created so someone can review it. You can also route approved items into the existing scheduled publishing path, while everything else stays in “Draft” until it’s cleared.

Why is my LinkedIn connection failing in this workflow?

Most of the time it’s expired permissions or a LinkedIn account that doesn’t have posting access for the target profile/page. Reconnect the LinkedIn credential in n8n, then confirm you’re publishing to the same identity you authenticated. If only document posts fail, check file size and file type first because LinkedIn is pickier there than with text updates.

How many posts can this Notion LinkedIn automation automation handle?

If you self-host, there’s no fixed execution limit; it mainly depends on your server and how often you publish. On n8n Cloud, the practical cap is your monthly execution allowance, and this workflow can use multiple executions per post because it generates drafts, updates Notion, and publishes on schedule. For most small teams posting once a day (or a few times a week), it’s comfortably within entry plans.

Is this Notion LinkedIn automation automation better than using Zapier or Make?

Often, yes, if you want the whole system (generation, Notion syncing, file handling, and scheduled publishing) in one place. n8n is better when the logic branches a lot, like “if there’s media, download it, detect type, then publish the right LinkedIn format.” It’s also easier to self-host, which can matter when you publish frequently. Zapier or Make can be quicker for a simple “Notion status changed → post to LinkedIn” flow, honestly. Talk to an automation expert if you want help choosing.

Once this is running, Notion becomes your content command center and LinkedIn posting stops living in your head. Set it up, tune the prompts, and let the workflow do the repetitive parts.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal