Turn Any Webpage into a LinkedIn Post and AI Image with n8n
Input a page URL → Airtop scrapes → OpenAI generates post and image prompt → Slack review → output publish-ready post and branded visual
- Who
- Content operators, social media managers, and teams who need to quickly turn blog posts or product pages into LinkedIn content
- You get
- Submit a web link and automatically receive a LinkedIn-optimized post and a brand-style image, ready to publish after Slack approval
Constraints
Requires: an n8n instance (self-hosted or cloud), Airtop API key, OpenAI API key, Slack OAuth app authorized to a review channel. Also requires a separate sub-workflow for branded image generation (template references workflowId: hYnqsBhAjnEFvKSk). Costs depend on API usage; no specific pricing provided by source.
What they did
The source template demonstrates a complete n8n workflow: users submit a webpage URL and optional instructions via form, Airtop scrapes the page, OpenAI generates a LinkedIn post, another OpenAI node converts the post into an image prompt, and an Execute Workflow node calls a sub-workflow to generate a branded image. Both post and image go through Slack sendAndWait nodes for human review; review replies are auto-classified by Text Classifier nodes into Edit/Approved/Declined, with edit requests triggering automatic regeneration loops. The final approved version is sent to a Slack channel. The template also includes a separate form entry point for generating only an image from an existing post.
How it went
The source reports that the template can: take a webpage URL and automatically generate a LinkedIn-optimized post and brand-style image, complete review and revision cycles via Slack, and output publish-ready content (author_report). This site has not imported or run the workflow; stability under specific credential configurations is unverified.
Worth knowing
1. Core image generation depends on an external sub-workflow (workflowId: hYnqsBhAjnEFvKSk); the template does not include its full implementation and must be prepared or built separately. 2. The OpenAI nodes use a specific Assistant ID (asst_aYEHuzWeFxMBN2qu4FnXRsJ4); reproduction requires creating or substituting your own Assistant. 3. The Slack channel ID (C08QUB9N5FX) is hardcoded in the template and must be replaced with your actual channel. 4. Review wait time is set to 3 days; workflows may fail if timeouts are exceeded, adjust to your team's pace. 5. Classifier nodes use gpt-4.1 as the language model, so costs increase with each review round. 6. No ROI data or actual runtime success rate is provided by the source.
n8n workflow template
Structure checked · Not run-testedUse “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
- OpenAI Chat Model node: connect OpenAI API credentials.
- Image Prompt Generator node: connect OpenAI API credentials.
- OpenAI Chat Model1 node: connect OpenAI API credentials.
- Final Version node: connect Slack OAuth2 credentials.
- Human Revision of Text node: connect Slack OAuth2 credentials.
- Human Review of Visual node: connect Slack OAuth2 credentials.
- Generate Post Text node: connect OpenAI API credentials.
- Get Page node: connect airtopApi credentials.
Configuration to replace
- Source template is n8n public workflow #5774 (~25 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
Configure triggers and credentials
After importing the template into n8n, configure three credentials: Airtop API (airtopApi), OpenAI API (openAiApi), and Slack OAuth2 (slackOAuth2Api). Then check the 'On form submission' node: form title is 'LinkedIn Post Generator', fields include required 'Page URL' and optional 'Instructions' (textarea). A second form trigger 'Generate Image' is for image-only generation, with a required 'Post' field.
Scrape webpage content
Once triggered by form submission, the 'Get Page' node uses Airtop in new-session mode to scrape the target URL. It outputs modelResponse.scrapedContent.text for post generation. Ensure the Airtop credential is valid and the target page is publicly accessible.
Generate LinkedIn post text
The 'Set Params' node organizes form inputs into URL, Instructions, Post (initially '-'), and Webpage_content. Then the 'Generate Post Text' node calls an OpenAI Assistant (asst_aYEHuzWeFxMBN2qu4FnXRsJ4, Social Media Writer), passing Instructions, Post, and Webpage_content to generate a LinkedIn-optimized post.
Execution prompt · Source text。OpenAI node 'Generate Post Text' text parameter; replace n8n expression variables before execution
=Write a helpful educational, and engaging LinkedIn posts based on a webpage scraped content below or the Post text below and according to the instructions provided by the user. Instructions: {{ $json.Instructions }} {{ $json.Post }} {{ $json.Webpage_content }}Generate image prompt
After the post text is organized by 'Set Post', it flows to the 'Image Prompt Generator' node. This node also calls an OpenAI Assistant with a specialized system prompt that transforms the LinkedIn post into a marketing-style visual prompt for text-to-image generation. Output contains only the final image prompt, without quotation marks or extra explanation.
Execution prompt · Source text。OpenAI node 'Image Prompt Generator' text parameter; replace n8n expression variables before execution
=# Overview You are an AI agent that transforms LinkedIn posts into visual prompt descriptions for generating graphic marketing materials. These visuals are designed to be paired with the post on LinkedIn, helping communicate the message in a visually engaging, brand-aligned way. ## Objective: - Read and analyze the given LinkedIn post. - If Image Prompt and User Instructions are provided. Follow the user instructions closely and modify the image prompt based on those instructions - Identify the main message, insight, or takeaway from the post. - Create a clear and compelling graphic prompt that can be used with a text-to-image generator. - The result should be a marketing-style graphic — not a literal scene or hyperrealistic photo — that: 1) Visually supports or illustrates the key idea of the post 2) Looks appropriate for use in a professional LinkedIn feed 3) Feels polished, modern, and engaging 4) Don't be salesy, Don't say things like "Save hours weekly — Grab Your Free Template!”. be more technical, focus on how it works ## Output Instructions: - Output only the final image prompt. Do not output quotation marks. - Do not repeat or rephrase the LinkedIn post. - Do not add any explanations or extra content — just the image prompt. - Never leave things blank like "Header area reserved for customizable callout text" - Output numeric stats when available in the original post ## Style Guidelines: - Think like a brand designer or marketing creative. - Visuals may include: text, charts, icons, abstract shapes, overlays, modern illustrations, motion-like effects, bold typography elements (described, not rendered), or metaphorical concepts. - You can mention layout suggestions (e.g., "split screen design," "header with bold title and subtle background illustration"). - Assume the output will be generated using AI image tools — your prompt should guide those tools effectively. - When the post is a template giveaway, add small, gentle "free template" stamp ## Example Prompt Format: A modern flat-style graphic showing a human brain connected to mechanical gears, representing the fusion of AI and automation. Minimalist background, soft gradients, clean sans-serif text placement space at the top. # LINKEDIN POST: {{ $json.Post }} # LATEST IMAGE PROMPT {{ $json.Image_prompt }} # USER IMAGE INSTRUCTIONS {{ $json.Image_user_instructions }}Slack text review and revision loop
'Set Post' sends the generated post to the 'Human Revision of Text' Slack node, which uses sendAndWait in channel gen-social-posts (C08QUB9N5FX) with a 3-day timeout. The user reply is classified by 'Check Post Text Feedback' (gpt-4.1 powered) as Edit, Approved, or Declined. If Edit, 'Set Post1' merges the revision request with the original and re-runs 'Generate Post Text'; if Approved, flow proceeds to image generation; Declined terminates.
Generate branded image and Slack image review
'Set Image Prompt1' organizes the image prompt, then 'Generate on-brand image' calls a sub-workflow (workflowId: hYnqsBhAjnEFvKSk, AIRTOP — Generate and Edit On-Brand Images - V3) with Prompt and Image_drive_id to generate the branded image. After the sub-workflow returns Branded_view_url, the 'Human Review of Visual' Slack node sends the post, image prompt, and image for review, again with a 3-day timeout. The reply is classified by 'Check Image Feedback'. If Edit, 'Set Image Prompt2' merges the original prompt with the user's revision request and regenerates; Approved proceeds to final delivery; Declined terminates.
Final delivery to Slack
Once both text and image are approved, the 'Final Version' Slack node sends the final post and branded image URL to the gen-social-posts channel. The message format includes a 'FINAL POST AND VISUAL' header, the post body, and the image link. unfurl_links and unfurl_media are set to false to prevent preview expansion.
Execution prompt · Source text。Slack node 'Final Version' text parameter; replace n8n expression variables before execution
=---------------- FINAL POST AND VISUAL {{ $('Set Image Prompt').item.json.Post }} {{ $('Generate on-brand image').item.json.Branded_view_url[0] }}
Prompt you can copy
Setup guidance · Editorial suggestion。Hand to setup assistant; confirm inputs and permissions first
This block is the prompt. Ads are never placed here.
You are assisting with reproducing n8n template #5774: turning a webpage into a LinkedIn post and AI image. First confirm you have an n8n instance, Airtop API key, OpenAI API key, Slack OAuth app, and the separate branded image generation sub-workflow ready. Then follow the steps above to verify each node configuration, especially form fields, credential bindings, OpenAI Assistant ID, and Slack channel ID. Test the full flow with a public blog URL and check that Slack review messages arrive correctly.
Before building, confirm the sub-workflow 'AIRTOP — Generate and Edit On-Brand Images - V3' exists and is available; this template depends on it for actual image rendering.
Source
Generate LinkedIn posts and AI images from web pages with Airtop and GPT-4 · cesar-at-airtop · n8n.io · 2025-07-08
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.