🔓 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

LinkedIn + OpenAI drafts with GoToHuman approval

Lisa Granqvist Partner Workflow Automation Expert

Your blog is publishing. Your LinkedIn is quiet. Not because you don’t have ideas, but because turning a post into a good LinkedIn draft takes time, context-switching, and a little too much willpower.

Marketing managers feel it when the content calendar gets crowded. Founders feel it when posting slips for “just a week.” And consultants who live on referrals know consistency matters. This LinkedIn draft automation turns new blog articles into ready-to-review posts, without risking off-brand AI noise.

This workflow pulls fresh articles, summarizes them with OpenAI, drafts LinkedIn copy, then routes everything through GoToHuman so a real person approves (or regenerates) before anything goes live. You’ll see how it works, what you need, and where teams usually trip up.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: LinkedIn + OpenAI drafts with GoToHuman approval

The Problem: Turning blogs into LinkedIn posts is tedious

Repurposing a blog post sounds easy until you actually do it. You have to read (or re-read) the article, pull out the point, translate it into a LinkedIn-friendly angle, and write something that doesn’t sound like a newsletter intro. Then you second-guess the tone. Then someone asks, “Did we already post this?” And if you’re trying to stay brand safe, you’re either avoiding AI entirely or you’re generating drafts and rewriting most of them anyway. After a few cycles, the whole thing quietly falls apart.

The friction compounds. Here’s where it breaks down in real life.

  • Each post requires a full context rebuild, so “quick repurposing” still eats about 30–45 minutes.
  • Manual checks get skipped when you’re busy, which is when tone mistakes sneak through.
  • If multiple articles publish close together, you end up batch-writing drafts late at night and quality drops.
  • Without a repeatable approval step, you either don’t post, or you post something you wouldn’t want screenshotted.

The Solution: Auto-draft posts, then require human approval

This n8n workflow runs on a schedule and checks a blog (the template uses https://blog.n8n.io). It pulls the latest feed HTML, extracts article titles and links, and fetches each article page. Next, it checks the publish timestamp and keeps only posts published in roughly the last day, so you’re not drafting old news. For each recent article, OpenAI generates a summary, then drafts a LinkedIn update based on that summary and your prompt setup. Finally, every draft goes to GoToHuman, where a reviewer can approve, edit, or request a regeneration (and even tweak the prompt). Only approved content gets published automatically to LinkedIn.

The workflow starts with a daily scheduled trigger, then uses HTTP requests and HTML parsing to detect what’s new. OpenAI handles the summarizing and draft writing. GoToHuman acts as the gatekeeper, and LinkedIn publishing happens only after an explicit approval decision.

What You Get: Automation vs. Results

Example: What This Looks Like

Say your blog publishes 3 posts a week. Manually, a decent LinkedIn repurpose often takes about 40 minutes per post once you include reading, drafting, polishing, and a quick internal review, so that’s roughly 2 hours weekly. With this workflow, the daily run finds new posts automatically, generates drafts, and drops them into GoToHuman for review. You might spend 5 minutes approving or lightly editing each one, which turns that weekly effort into about 15–20 minutes, plus the background processing time you don’t have to sit through.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • GoToHuman for human-in-the-loop review and approval.
  • OpenAI to summarize articles and draft LinkedIn posts.
  • LinkedIn to publish approved posts automatically.

Skill level: Intermediate. You’ll connect credentials, adjust prompts, and may tweak HTML extraction if your blog structure differs.

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

How It Works

A daily schedule kicks things off. The workflow runs once per day, so you’re not relying on someone to remember “LinkedIn time.” Simple, steady.

The workflow finds new articles and filters out old ones. It retrieves the blog feed, parses the titles and links, then fetches each article’s HTML to grab the publish timestamp. If the post wasn’t published in the last 24 hours, it gets ignored.

OpenAI turns the article into a LinkedIn-ready angle. First it creates a summary from clean article text, then it drafts a LinkedIn update using your prompt (and any examples you include). There’s also a retry loop so regeneration isn’t a manual redo from scratch.

GoToHuman decides what happens next. A reviewer can approve and publish, edit the draft, or request a regeneration (even with an adjusted prompt). Approved items route to the LinkedIn node and publish automatically.

You can easily modify the blog source URL to monitor a different site based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled Run Trigger

Set the workflow to run on a daily schedule so it can check the blog for new posts automatically.

  1. Add and open Scheduled Run Trigger.
  2. Set the schedule rule to run daily at 7 using the triggerAtHour setting.
  3. Ensure Scheduled Run Trigger connects to Retrieve Blog Feed.

Step 2: Connect the Blog Feed Parsing Pipeline

Fetch the blog homepage HTML, extract post blocks, and parse titles and links for each post.

  1. In Retrieve Blog Feed, set URL to https://blog.n8n.io/.
  2. In Extract Feed HTML, set Operation to extractHtmlContent and extract posts using CSS selector article.item with Return Array enabled.
  3. In Distribute Posts, set Field to Split Out to posts and Destination Field Name to post.
  4. In Parse Title Link Tags, set Data Property Name to post and extract link, title, and tags using selectors .item-title a and .item-tags a.
⚠️ Common Pitfall: If the blog theme changes, the CSS selectors in Extract Feed HTML and Parse Title Link Tags may break and return empty data.

Step 3: Build Article URLs and Filter Recent Posts

Compose each article URL, fetch article metadata, and ensure only recent posts move forward.

  1. In Compose Article URL, add an assignment for articleUrl with value =https://blog.n8n.io{{ $json.link }} and keep Include Other Fields enabled.
  2. In Retrieve Article HTML, set URL to ={{ $json.articleUrl }}.
  3. In Get Publish Timestamp, extract published from selector meta[property="article:published_time"] with Return Value set to attribute content.
  4. In Recent Publish Check, set the boolean condition to ={{ (new Date($('Scheduled Run Trigger').item.json.timestamp) - new Date($json.published)) / (1000 * 60 * 60) <= 480 }} to allow only posts from the last 480 hours.
  5. In Fetch Clean Article Text, set URL to =https://r.jina.ai/{{ $('Compose Article URL').item.json.articleUrl }}.

Step 4: Set Up AI Summarization and Drafting

Use OpenAI to summarize each article and draft a LinkedIn post based on the extracted content.

  1. Open OpenAI Chat Engine and select the model gpt-4o-mini.
  2. In Generate Article Summary, set Text to ={{ $json.data }} and define the prompt message that asks for a markdown summary.
  3. Credential Required: Connect your OpenAI API credentials in OpenAI Chat Engine. This node provides the language model for Generate Article Summary.
  4. In Initialize Draft Prompt, set prompt to You will be passed a scraped article from a company blog. I'm an influencer for their product and will write a LinkedIn post for every news that is coming out. Please write an engaging post based on the article.
  5. Open OpenAI Chat Engine B and select the model gpt-4o-mini.
  6. In Draft LinkedIn Update, set Text to ={{ $('Fetch Clean Article Text').item.json.data }} and set the prompt message to ={{ $json.prompt }}.
  7. Credential Required: Connect your OpenAI API credentials in OpenAI Chat Engine B. This node provides the language model for Draft LinkedIn Update.
  8. Use Iterate Items Batch to control batching between Generate Article Summary and Initialize Draft Prompt for each item.
OpenAI Chat Engine and OpenAI Chat Engine B are connected as language models for the Chain LLM nodes—add credentials to the OpenAI nodes, not to Generate Article Summary or Draft LinkedIn Update.

Step 5: Configure Human Review and Publishing

Send the draft for human approval, route the outcome, and publish approved posts to LinkedIn.

  1. In Human Review Gate, map the review fields to include link, summary, postDraft, and timestamp using the existing expressions like ={{ $('Generate Article Summary').item.json.text }} and ={{ new Date($('Get Publish Timestamp').item.json.published).toDateTime().toRelative() }}.
  2. Keep updateForReviewId set to ={{ $('Prepare Retry Prompt').isExecuted ? $('Prepare Retry Prompt').item.json.reviewToUpdate : null }} to support review retries.
  3. In Route Review Outcome, keep the switch rules matching approved, rejected, and type=chat for retry handling.
  4. In Prepare Retry Prompt, set prompt to ={{ $json.messages[0].content }} and reviewToUpdate to ={{ $json.reviewId }}.
  5. In Publish LinkedIn Post, set Text to ={{ $json.responseValues.postDraft.value }}, Title to ={{ $('Parse Title Link Tags').item.json.title }}, and Original URL to ={{ $('Compose Article URL').item.json.articleUrl }}, with shareMediaCategory set to ARTICLE.
  6. Ensure Publish LinkedIn Post connects back to Iterate Items Batch to continue processing remaining posts.
  7. Credential Required: Connect your GoToHuman credentials in Human Review Gate.
  8. Credential Required: Connect your LinkedIn credentials in Publish LinkedIn Post.

Step 6: Test and Activate Your Workflow

Run a manual test to confirm the feed parsing, AI outputs, review gate, and LinkedIn publishing all work correctly.

  1. Click Execute Workflow and verify Retrieve Blog Feed returns HTML and Extract Feed HTML returns an array of posts.
  2. Confirm Compose Article URL generates valid URLs and Get Publish Timestamp returns a published value.
  3. Check that Generate Article Summary produces a markdown summary and Draft LinkedIn Update produces a post draft.
  4. Approve a draft in Human Review Gate and confirm Publish LinkedIn Post publishes successfully to LinkedIn.
  5. When everything works as expected, toggle Active to enable scheduled runs.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • GoToHuman credentials can expire or need specific permissions. If things break, check the GoToHuman node credentials and the selected review template ID in GoToHuman 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 LinkedIn draft automation automation?

About 30–60 minutes if your accounts and permissions are ready.

Do I need coding skills to automate LinkedIn draft automation?

No. You’ll connect accounts, paste a few IDs/URLs, and adjust the prompts. The only “technical” part is tweaking HTML parsing if your blog layout is unusual.

Is n8n free to use for this LinkedIn draft 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 costs, which are usually a few cents per drafted post.

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 LinkedIn draft automation workflow for my own blog and brand voice?

Yes, and you should. Swap the monitored blog URL in the feed/article HTTP request nodes, then adjust the HTML parsing nodes if the site structure differs. Most teams also update the “Initialize Draft Prompt” and “Draft LinkedIn Update” prompts with brand rules and a few example posts, so the drafts sound like you. If your approvals need different outcomes (like “send to email” instead of publish), you can tweak the routing in the “Route Review Outcome” switch.

Why is my GoToHuman connection failing in this workflow?

Usually it’s an invalid credential or the review template isn’t selected correctly. Double-check that you installed the GoToHuman node before importing, then confirm the template (“Blog scraper agent” or the provided template ID) is available in your GoToHuman account. If it still fails, regenerate the GoToHuman API key, update it in n8n, and rerun with one article to keep debugging simple.

How many articles can this LinkedIn draft automation automation handle?

Plenty for a typical company blog. On n8n Cloud, the practical limit is your monthly executions and how many articles you process per run; if you self-host, it mainly depends on your server and OpenAI rate limits. If your feed can publish dozens of posts per day, you’ll want to keep the split-in-batches settings conservative and watch execution timeouts.

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

Often, yes. This workflow mixes scraping, timestamp filtering, batching, retries, and a human approval loop, which is the kind of “glue logic” n8n tends to handle more comfortably. Zapier/Make can do parts of it, but multi-step content workflows can get expensive and brittle once you add branching and regeneration paths. Also, self-hosting matters when you want control and higher volume. If you’re unsure, pick the tool your team will actually maintain, then improve from there. Talk to an automation expert and you’ll get a straight recommendation.

Once this is running, new posts stop being “one more thing” to promote. You get drafts daily, approvals stay clean, and LinkedIn finally keeps up with your publishing.

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