ChatGPTCreativeDesignAI score · 67/100AI-assisted edit · no obvious prompt-injection riskn8n.io

n8n Daily LinkedIn Auto-Poster: OpenAI Brand Feedback Loop Workflow

Scheduled trigger → fetch content ideas → AI draft post → scored feedback loop → auto-publish to LinkedIn

Some experienceStepsWorkflowPromptTip
Who
Personal brand builders, social media managers, small marketing teams looking to automate LinkedIn content creation
You get
Automatically generate on-brand LinkedIn posts daily at a set time, optimize through an AI scoring feedback loop, and publish directly
You need
n8n · linkedin · notion

Constraints

Requires an n8n instance; configure OpenAI API key, LinkedIn OAuth2 credentials, and Notion API credentials. The template references sub-workflows (Get Brand Brief / Get Content Ideas / Get Content Feedback) that must be provided or replaced with actual data sources. Default trigger is daily at 21:00 (9 PM), adjustable in the Schedule Trigger node.

What they did

The template author built an n8n workflow that triggers on a daily schedule, calls a sub-workflow to fetch content ideas, uses an AI Agent (OpenAI Chat Model + Simple Memory + two Tool Workflows) to draft a LinkedIn post aligned with a brand brief, iterates through a scoring feedback loop (threshold 0.8), and finally publishes via the LinkedIn node. The workflow offers two entry points: Daily Scheduler (timed) and When Executed by Another Workflow (called from another workflow).

How it went

The author reports that this template can automatically generate and publish high-quality LinkedIn posts, eliminating manual ideation, writing, and copy-paste (author_report). No specific engagement metrics or ROI figures are provided.

Worth knowing

1) The prompt hard-codes the author name 'Nabin Bhandari'; you must replace it; 2) Sub-workflows (Get Brand Brief / Get Content Ideas / Get Content Feedback) are referenced by workflowId only—their internal implementations are not included and must be provided or replaced; 3) Default AI Agent model is gpt-4.1-mini, while gpt-4o-mini is used for the content-ideas branch; 4) The feedback score threshold is fixed at 0.8; adjust it by editing the AI Agent system message if needed; 5) LinkedIn publishing requires valid OAuth2 credentials and is subject to platform API limits; 6) The author suggests fine-tuning OpenAI on 50+ approved posts for better brand alignment, but this is optional advice, not a template requirement.

n8n workflow template

Structure checked · Not run-tested

Use “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.

Setup and test checklist

Credentials to connect

  • lmChatOpenAi node: connect OpenAI API credentials.
  • openAi node: connect OpenAI API credentials.
  • linkedIn node: connect LinkedIn OAuth2 credentials.

Configuration to replace

  • Source template is n8n public workflow #6979 (~28 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
  • Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.

Test input and expected output

  • Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
  • Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.

Template changes

  • Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
  • No business-logic edits; verify keys, quotas and privacy compliance before use.

Template retrieved: 2026-10-24

Steps

  1. Set up schedule trigger and fetch content ideas

    Configure the Schedule Trigger node in n8n with your preferred daily time (default: 21:00). Connect an Execute Workflow node to call the sub-workflow for content ideas (workflowId: N5PyYK0EClSQRWNK). Ensure the sub-workflow returns data containing a suggestions array.

  2. Split ideas and format AI input

    Use a Split Out node to break the suggestions array into individual items, then process them one by one with Split In Batches. Each idea is formatted by a Set node (Format For AI Input) into JSON: {"sessionId": "{{ $itemIndex }}", "action": "sendMessage", "chatInput": "{{ $('Split Ideas').item.json.suggestions }}"}, then passed to the AI Agent.

  3. Generate content ideas from brand brief (optional sub-workflow)

    The template includes a separate Get _Content _Ideas branch: call the Brand Brief sub-workflow (workflowId: UbKh62LfKoMDeyUo), feed it into an OpenAI node (gpt-4o-mini) to generate 10 topic suggestions aligned with the brand brief. Output JSON format: {"suggestions": [...]}. Enable this only if the Brand Brief sub-workflow is available.

    Execution prompt · Source text。Get _Content _Ideas node messages.values[0].content field

    =You are a professional content writer. Create 10 topic suggestions that align with the provided brand brief.
    
    JSON output format:
    {
    "suggestions": [
    "Create a post about [...]",
    ...
    ]
    }
    Brand brief:{{ $json.content }}
  4. AI Agent drafts post with feedback loop

    The core AI Agent node (Generate LinkedIn Post with AI) uses an OpenAI Chat Model (default gpt-4.1-mini) with Simple Memory. The agent calls two Tool Workflow nodes: Get_Brand_Brief to retrieve the brand brief, and Get_Content_Feedback to score the draft. The system message defines a 5-step loop: fetch brand brief → create post → get score → refine if below 0.8 → output final post.

    Execution prompt · Source text。Generate LinkedIn Post with AI node options.systemMessage field

    =
    You are a helpful content creator for Nabin Bhandari's personal brand. Use the below steps to create content.
    
    Steps:
    
    Always start by getting the brand brief using the Get_Brand_Brief tool.
    
    Create a post on the requested topic that aligns with the brand brief.
    
    Get feedback and a score on the post you created in step 2 by using the Get_Content_Feedback tool.
    
    If the score is below 0.8, use the feedback from step 3 to refine the post, then repeat steps 3 and 4.
    
    The final output should be the approved post.

    Execution prompt · Source text。Get Content Feedback node messages.values[0].content (system role) field

    =You are tasked with evaluating a piece of content written for Nabin Bhandari. Your role is to assess how well the post aligns with Nabin's personal brand, using the below brief as your guide.
    
    Please analyze the post based on the following criteria:
    
    Does the post have unwanted artifacts like "Let's try again" or "Here's a new post"?
    
    Does the content reflect Nabin's core values, voice, and style as described in the brief?
    
    Does it engage Nabin's target audience as described in the brief?
    
    Does it emphasize Nabin's expertise and domain authority as described in the brief?
    
    Is the tone, messaging, and approach consistent with the brief's objectives and positioning?
    
    After evaluation, output a score between 0 and 1, representing the alignment between the post and the brand brief. The score should be output in the following JSON format:
    {
      "description": "[short description here]",
      "score": [insert score here]
    }
    
    #Brand Brief:{{ $json.content }}
  5. Publish to LinkedIn

    The final post is published via the LinkedIn node (Publish to Linkedin). Node parameters: text = {{ $json.output }}, person = Nabin Bhandari. You must configure a linkedInOAuth2Api credential in n8n's credential manager before activating this node.

  6. Customization and notes

    Per template sticky notes: customize the AI Agent prompt to adjust tone, length, or style; ensure LinkedIn credentials are properly configured; change the trigger time in the Schedule Trigger node. The author recommends storing a clear brand brief in Notion and collecting at least 50 approved posts for OpenAI fine-tuning.

Prompt you can copy

Setup guidance · Editorial suggestion。Hand to setup assistant: confirm inputs and permissions first, then import and validate step by step

This block is the prompt. Ads are never placed here.

You are setting up an n8n workflow to automatically generate and publish LinkedIn posts daily. Please confirm the following prerequisites first:
1) Access to an n8n instance; 2) OpenAI API key; 3) LinkedIn OAuth2 credentials; 4) Notion API credentials (or alternative brand brief storage); 5) Availability of sub-workflows Get Brand Brief / Get Content Ideas / Get Content Feedback, or your replacement plan. Once confirmed, import the template, replace credential IDs, change the hard-coded author name (Nabin Bhandari) to your brand, and validate the AI Agent feedback loop with test data before enabling live publishing.

Replace the author name and brand details in prompts; disable the LinkedIn publish node during testing, verify output quality before going live.

Source

AI-powered daily LinkedIn post creator with OpenAI feedback loop and Notion · knabinbhandari · n8n.io · 2025-08-04

Comments & feedback

Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.

Loading…

    Related