LinkedIn + OpenAI: posts drafted and published for you
Posting on LinkedIn sounds simple until you do it every week. Topics dry up, drafts sit half-finished, and “I’ll post tomorrow” quietly becomes “I haven’t posted in two weeks.”
LinkedIn post automation hits solo founders first, honestly. But marketing managers juggling campaigns and consultants who need pipeline also feel the same drag. This workflow gives you fresh topics, drafts in your voice, a DALL·E-style visual, and a scheduled post without daily editing.
Below, you’ll see exactly what the automation does, the outcomes it’s built for, and what you need to run it reliably in n8n.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: LinkedIn + OpenAI: posts drafted and published for you
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Content topic generator2", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Content creator", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "OpenAI", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Hashtag generator /SEO", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser2", pos: "b", h: 48 }
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/linkedin.svg' width='40' height='40' /></div><br/>LinkedIn"]
n11 --> n12
n7 --> n11
n4 --> n7
n4 --> n8
n0 --> n1
n2 -.-> n1
n5 -.-> n4
n9 -.-> n8
n8 --> n11
n1 --> n4
n3 -.-> n1
n6 -.-> n4
n10 -.-> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n1,n3,n4,n6,n7,n8,n10 ai
class n2,n5,n9 aiModel
classDef customIcon fill:none,stroke:none
class n11,n12 customIcon
The Problem: Consistent LinkedIn posting takes more time than it should
The annoying part of LinkedIn isn’t writing one good post. It’s doing it again next week, and the week after that, without repeating yourself or sounding like a template. Most people end up spending an hour hunting for a topic, another hour rewriting the hook, then skipping an image because that’s “extra.” And when you miss a day (or a week), momentum drops, your profile goes quiet, and the leads you could have been warming up never see you.
It adds up fast. Here’s where it breaks down in real life.
- You burn about 30 minutes just deciding what to say, even before writing starts.
- Your “voice” changes post to post, which means people don’t recognize you as quickly in the feed.
- Images get skipped because designing one more asset feels like a second job.
- Manual posting makes scheduling fragile, so consistency depends on your mood and calendar.
The Solution: OpenAI creates the post and image, then LinkedIn publishes it on schedule
This workflow turns LinkedIn content into a scheduled system. It starts with a schedule trigger (daily or weekly, your call), then an AI “topic idea generator” produces fresh, trend-aware angles for your industry. Those ideas feed into a drafting step that writes a full post in your authentic voice, not generic “thought leadership.” Next, the workflow generates a professional visual using DALL·E-style image creation through OpenAI. Finally, it compiles the finished post text, hashtags, and image into one payload and publishes it directly to LinkedIn without you logging in.
The workflow begins on a timer. From there, OpenAI handles topic research, post drafting, and hashtag strategy while an image render request creates a matching visual. Everything is merged and pushed to the LinkedIn publisher node, so your post goes out clean and complete.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you want one post per weekday. Manually, a typical routine is about 30 minutes picking a topic, about 45 minutes drafting, and maybe 20 minutes making a simple image, plus 5 minutes to publish and add hashtags. That’s roughly 2 hours a day, or about 10 hours a week. With this workflow, you spend about 10 minutes up front reviewing your prompt and voice, then the scheduled run generates the post, image, and hashtags automatically and publishes it. Your “daily time” drops close to zero unless you choose to add an approval step.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- OpenAI for topic generation, writing, and images
- LinkedIn API to publish posts automatically
- OpenAI API key (get it from your OpenAI dashboard)
- LinkedIn API credentials (create an app in LinkedIn Developer Portal)
Skill level: Beginner to intermediate. You’ll connect two APIs and tweak prompts, but you won’t be writing code.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A schedule kicks everything off. You choose when to post (daily, weekdays only, weekly). n8n starts the workflow at that exact time, so consistency isn’t dependent on your calendar.
AI generates a topic that’s actually usable. The topic agent produces angles and hooks based on your industry, then the structured parser formats that output so later steps don’t “guess” what to do with it.
The post gets drafted and refined. A drafting chain writes the post in your voice, then a second model and output parser clean it up into a final version that’s ready to publish.
Visuals and hashtags get added, then everything is published. The image render request creates a matching graphic, the hashtag strategy agent generates relevant tags, and a merge node combines it all before the LinkedIn publisher posts it to your profile.
You can easily modify the prompts and posting cadence to match your offer, industry, and tolerance for risk. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
This workflow starts on a schedule to generate LinkedIn content automatically.
- Add the Scheduled Automation Start node as your trigger.
- Set the scheduling rule to run every 6 hours using the interval field in Scheduled Automation Start.
- Confirm Scheduled Automation Start connects to Topic Idea Generator.
Step 2: Connect OpenAI for Topic Generation
Generate structured topic ideas using the AI agent and its language model.
- Open Topic Idea Generator and keep the prompt text as provided for brand-aligned topic ideation.
- Attach Primary Chat Model as the language model for Topic Idea Generator via the AI language model connection.
- Credential Required: Connect your
openAiApicredentials in Primary Chat Model. - Attach Schema Output Parser to Topic Idea Generator as the output parser and keep the JSON schema example.
- For Schema Output Parser (AI sub-node), add credentials to the parent node Primary Chat Model, not the parser itself.
Step 3: Set Up the Post Draft Composer
Turn the topic idea into a LinkedIn post draft and image description using a second model and parser.
- In Post Draft Composer, set the Text field to
=You are a linkedin content creator and copywriter. Given the title {{ $json.output[0].title }}, the rationale {{ $json.output[0].rationale }}, suggested hook. Generate text content for a linkedin post. Also describe a suitable image for the post. - Attach Secondary Chat Model as the language model for Post Draft Composer.
- Credential Required: Connect your
openAiApicredentials in Secondary Chat Model. - Attach Post Output Parser to Post Draft Composer and keep the JSON schema example.
- For Post Output Parser (AI sub-node), add credentials to the parent node Secondary Chat Model, not the parser itself.
Step 4: Configure Parallel Image and Hashtag Generation
After drafting the post, the workflow generates an image prompt and hashtags in parallel.
- Ensure Post Draft Composer outputs to both Image Render Request and Hashtag Strategy Agent in parallel.
- In Image Render Request, set Prompt to
=Generate an image for a linkedin post this is the description: {{ $json.output['image description'] }} .The images should be realistic for linkedin.and set Resource toimage. - Credential Required: Connect your
openAiApicredentials in Image Render Request. - In Hashtag Strategy Agent, keep the prompt that references
{{ $json.output['post title'] }}and{{ $json.output['post content'] }}for hashtag strategy. - Attach Tertiary Chat Model as the language model for Hashtag Strategy Agent.
- Credential Required: Connect your
openAiApicredentials in Tertiary Chat Model. - Attach Hashtag Output Parser to Hashtag Strategy Agent and keep the JSON schema example.
- For Hashtag Output Parser (AI sub-node), add credentials to the parent node Tertiary Chat Model, not the parser itself.
Step 5: Configure LinkedIn Publishing
Combine the image and hashtag outputs and publish to LinkedIn as an organization post.
- Connect Image Render Request and Hashtag Strategy Agent outputs to Combine Results.
- Connect Combine Results to LinkedIn Publisher.
- In LinkedIn Publisher, set Post As to
organizationand Share Media Category toIMAGE. - Credential Required: Connect your
linkedInOAuth2Apicredentials in LinkedIn Publisher.
Step 6: Test and Activate Your Workflow
Validate that the workflow generates a post, image, and hashtags, then publish it to LinkedIn.
- Click Execute Workflow to run Scheduled Automation Start manually.
- Verify outputs from Topic Idea Generator and Post Draft Composer include structured fields from the parsers.
- Confirm Image Render Request returns an image result and Hashtag Strategy Agent returns a comma-separated hashtag list.
- Check LinkedIn Publisher to ensure a post is created with image media.
- Toggle the workflow to Active for scheduled production runs.
Common Gotchas
- LinkedIn API credentials can expire or have limited permissions. If things break, check your LinkedIn Developer Portal app settings and token status first.
- If you’re using scheduled runs and OpenAI image rendering, processing times vary. Bump up any wait or retry handling if downstream nodes fail because an image URL isn’t ready yet.
- Default prompts in OpenAI nodes are generic. Add your brand voice and “what we never say” rules early or you will be editing outputs forever.
Frequently Asked Questions
About 30–45 minutes if your OpenAI and LinkedIn credentials are ready.
No. You’ll connect accounts and edit a few prompts and settings inside n8n.
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 usage fees, which are typically about $5–15/month for this kind of posting cadence.
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.
Yes, but it’s worth doing carefully. The simplest approach is to insert an If gate after the post draft is created, then send the draft to Google Sheets for review, and only pass “approved” rows into the LinkedIn publisher. You can also pause the flow and wait for a manual confirmation if you prefer, but most teams keep it lightweight so the system stays consistent.
Usually it’s expired credentials or missing permissions on your LinkedIn app. Regenerate your access token, confirm your app has the right publishing scopes, and make sure the LinkedIn account you’re posting to is the one authorized in n8n. If it works once and then fails later, rate limiting can also show up when you increase posting volume.
It depends on your n8n plan and how often you schedule it, but one post per day is easy on almost any setup. On n8n Cloud Starter, you’re limited by monthly executions; on self-hosted, you’re mostly limited by your server and API rate limits. Practically, most small teams run this daily or a few times a week and stay well within limits.
For this workflow, n8n is usually the better fit because it handles multi-step AI generation, merging, and branching without feeling cramped. You also get self-hosting, which matters if you want to run lots of executions without paying per task. Zapier or Make can still work if you only want a simple “draft text, then post” flow, but adding structured parsing, image creation, and conditional approvals gets messy fast. If you’re torn, Talk to an automation expert and we’ll help you pick the cleanest option.
Once this is running, LinkedIn stops being a daily chore and becomes a background system. You get the consistency, without living in the editor.
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.