Create reviewable LinkedIn posts from RSS with Notion, Slack, and AWS Bedrock
Quick overview This workflow turns RSS articles into LinkedIn-ready drafts using Firecrawl, AWS Bedrock (Claude and an image model), and Cloudinary, stores them in a Notion review queue, then publishes approved posts to LinkedIn on a daily schedule and sends Slack alerts on failures.
How it works Polls an RSS feed daily, limits the run to a set number of items, normalizes each article URL, and processes items in batches. Checks Notion for an existing queue entry for each normalized URL, and for new items creates a Notion row marked Processing. Scrapes the article with Firecrawl and stops processing if the returned markdown is below a minimum length. Uses AWS Bedrock (Claude) to summarize the article, write LinkedIn copy with strict style rules, and run style and tone checks that can auto-fix or reject non-compliant output. Chooses an image by validating the article’s OG image via an HTTP HEAD request, or generates an illustration with an AWS Bedrock image model and uploads it to Cloudinary, falling back to a default image if needed. Updates the Notion row with the LinkedIn copy, image link, and author attribution, sets the status to Needs Approval, and sends a Slack message with a review link. At 08:30, retrieves one Queued row from Notion, downloads the linked image, posts the text and image to LinkedIn, and marks the row as Published. When publishing or content generation fails, sets the Notion status to Needs Edit when applicable and posts detailed failure alerts to Slack, including LinkedIn OAuth expiry hints and execution-level error notifications.
Setup Create a Notion database with properties for Title, Source URL (URL), Status (Processing/Needs Approval/Queued/Published/Needs Edit), LinkedIn Copy, Image Link (URL), and Author, then set the CONTENT_QUEUE_DB_ID workflow variable. Add credentials for Notion, LinkedIn OAuth2 (and set LINKEDIN_PERSON_URN), Slack, an HTTP Bearer Auth credential for Firecrawl, and an AWS IAM credential with access to the specified Bedrock text and image models in your AWS_REGION. Configure Cloudinary unsigned uploads by creating an upload preset and setting CLOUDINARY_CLOUD_NAME and CLOUDINARY_UPLOAD_PRESET variables. Set workflow variables for RSS_FEED_URL, ALERT_CHANNEL, FIRECRAWL_ENDPOINT, BEDROCK_IMAGE_MODEL_ID (and any other optional limits like RUN_ITEM_LIMIT, MIN_MARKDOWN_CHARS, IMAGE_MIN_BYTES, IMAGE_WIDTH, IMAGE_HEIGHT), plus FALLBACK_IMAGE_URL. In Notion, approve a draft by changing its Status to Queued so the scheduled publisher can post it on the next 08:30 run.
Related Templates
Automated Work Attendance with Location Triggers
his workflow automates time tracking using location-based triggers. How it works Trigger: It starts when you enter or e...
Automated SEO Performance Collection from Google Search Console to NocoDB
Problem Monitoring SEO performance from Google Search Console (GSC) manually is repetitive and prone to human error. Fo...
Summarize SERPBear data with AI (via Openrouter) and save it to Baserow
Who's this for? If you own a website and need to analyze your keyword rankings If you need to create a keyword report on...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments