Automated Blog Post Creation from News with AI and Blogger
This workflow automates the entire process of creating a fully SEO-optimized blog post from a news article. It fetches a trending technology news headline from Mediastack, generates relevant images from Pexels, uses two AI agents (via OpenRouter) to produce a title, slug, meta description, and a complete WordPress-compatible HTML blog post, then posts it directly to Blogger and sends you a Telegram notification. It's perfect for content marketers, bloggers, or anyone who wants to consistently publish fresh, data-driven content without manual effort.
Node Breakdown
- Schedule Trigger (No auth) — Runs the workflow at a set interval (configured every minute by default, but you should change it to daily or hourly).
- Mediastack News (API Key auth via query parameter) — Fetches the latest technology news article in English from the Mediastack API. Parameters:
urlset tohttps://api.mediastack.com/v1/news?categories=technology&limit=1&languages=en. - Genarate image (API Key auth via header,
httpHeaderAuth) — Searches Pexels for up to 2 images related to the news title. Parameters:query={{ $json.data[0].title }},per_page= 2. - Send a text message1 (Telegram bot token auth) — Sends a Telegram message with the generated image URLs to the chat ID stored in
$vars.telegramchatid. - AI Agent (Uses OpenRouter Chat Model — API Key auth) — This agent takes the news title and returns a JSON object with three fields:
slug,title, andmeta(meta description). The prompt includes strict guidelines for SEO-friendly output. - OpenRouter Chat Model (API Key auth) — The language model for the first AI agent, using
microsoft/mai-ds-r1:free. - Parsing (No auth) — A Code node that cleans the raw AI output (removes markdown code fences) and parses the JSON into usable fields.
- Copywriter AI Agent (Uses OpenRouter Chat Model2 — API Key auth) — This agent writes a complete 1,000-word SEO blog post in HTML format. It uses the title, meta, and the two images from Pexels. The prompt is very detailed, specifying structure, keyword placement, and styling.
- OpenRouter Chat Model2 (API Key auth) — Same model as the first, but used for the second agent.
- Cleanup HTML (No auth) — A Set node that removes any leftover ````html` or code fences from the AI output.
- HTTP Request (OAuth2 auth to Blogger) — Posts the cleaned HTML content to Blogger using the Blogger API v3. Parameters:
url=https://www.googleapis.com/blogger/v3/blogs/$vars.bloggerid/posts, methodPOST, JSON body with title and content. - Send a text message (Telegram bot token auth) — Sends a final Telegram notification confirming the blog post was created, including the title and a timestamp.
Setup Instructions
- Mediastack — Sign up at mediastack.com to get a free API key. Create a new credential in n8n of type "Query Auth" (for
httpQueryAuth) and enter your API key. - Pexels — Get a free API key from pexels.com/api. Create an n8n credential of type "Header Auth" and set the header name to
Authorizationand value to your API key. - OpenRouter — Register at openrouter.ai and generate an API key. Create an n8n credential of type "OpenRouter API".
- Telegram — Create a Telegram bot via @BotFather and get the bot token. Set the chat ID (your user or group chat ID) as a workflow variable
$vars.telegramchatid. - Blogger — Enable the Blogger API in Google Cloud Console, create OAuth2 credentials, and authorize n8n to access your blog. Obtain your blog ID and set it as
$vars.bloggerid. - Adjust the Schedule Trigger to run at your desired frequency (e.g., daily at 9 AM) instead of every minute.
Use Cases & Variations
- Content Automation — Let the workflow run daily to automatically publish a new blog post based on the latest news. You can change the Mediastack category (e.g.,
business,sports) to match your niche. - Multi-language Support — Modify the Mediastack query to fetch news in other languages, and adjust the AI prompts to write in that language.
- Custom Image Sources — Replace the Pexels node with another image API (e.g., Unsplash) or use a local image generation model.
- Different CMS — Swap the Blogger HTTP Request node with WordPress or any other CMS API (just change the URL and body format).
- Human-in-the-Loop — Add a Slack or email approval step before publishing to review the AI-generated content.
- Newsletter Integration — Instead of posting to a blog, send the formatted content as an email newsletter via Gmail or SendGrid.
Workflow JSON
{
"id": "G1eREYnY4yiandtW",
"meta": {
"instanceId": "0ad2dac28c420c76e70b9aff6456c40369dcf0ef7be56b9a4dc24a5a71857f0f"
},
"name": "My workflow",
"tags": [],
"nodes": [
{
"id": "86c9ee32-ba63-4a07-a1e6-62f964f706b7",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1700,
100
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "489847e0-e119-49c7-b64f-116943472e6a",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 7,
"width": 710,
"height": 400,
"content": "## Create Title, Slug & Meta\n"
},
"typeVersion": 1
},
{
"id": "ea71fac4-238b-4ed8-9e12-390b76993b3d",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-1760,
// ... truncated (copy to see full JSON)How to Import This Workflow
- 1Copy the workflow JSON above using the Copy Workflow JSON button.
- 2Open your n8n instance and go to Workflows.
- 3Click Import from JSON and paste the copied workflow.
Don't have an n8n instance? Start your free trial at n8nautomation.cloud
Related Templates
AI-Powered Unsplash to Pinterest Workflow with RAG
Overview This workflow provides an intelligent pipeline for processing and storing data related to Unsplash images for Pinterest. It uses a Retrieval-Augmented Generation (RAG) architecture to automatically ingest content, generate embeddings, store them in a vector database (Supabase), and then process queries using an AI agent. The workflow is triggered via a webhook, making it suitable for integration with external applications or manual testing. Node-by-Node Breakdown Sticky Note — A visual note for documentation purposes. It displays the title "Automated workflow: Unsplash to Pinterest" on the canvas. No authentication required. Webhook Trigger — Listens for incoming HTTP POST requests at the path . This is the entry point for the workflow. When triggered, it passes the incoming data to the next nodes. (No auth) Text Splitter — Splits incoming text into chunks of 400 characters with a 40-character overlap. This prepares the data for embedding by breaking it into manageable pieces. (No auth) Embeddings (Cohere) — Generates vector embeddings for each text chunk using the model from Cohere. These embeddings represent the semantic meaning of the text. (API Key auth — requires a Cohere API key) Supabase Insert — Inserts the generated embeddings into a Supabase vector store named . This stores the data for later retrieval. (API Key auth — requires Supabase credentials) Supabase Query — Queries the same Supabase vector store () to retrieve relevant vectors based on similarity search. This is used by the RAG agent to find context. (API Key auth — requires Supabase credentials) Vector Tool — Wraps the Supabase vector store as a tool that the AI agent can use to retrieve context. It's labeled "Vector context" for clarity. (No auth — uses the Supabase connection from the previous nodes) Window Memory — Provides a buffer window memory for the AI agent, allowing it to maintain conversation context across multiple interactions. (No auth) Chat Model (OpenAI) — The language model that powers the AI agent. It uses OpenAI's chat model to process queries and generate responses. (API Key auth — requires an OpenAI API key) RAG Agent — The core AI agent that combines the chat model, vector tool, and memory. It processes incoming data with the prompt: "Process the following data for task 'Unsplash to Pinterest':" and includes a system message: "You are an assistant for Unsplash to Pinterest". (No auth — uses connections to other nodes) Append Sheet (Google Sheets) — Appends the AI agent's output to a Google Sheet. It writes to a sheet named "Log" in a document identified by . The column "Status" is populated with the agent's response text. (OAuth2 — requires Google Sheets API credentials) Slack Alert — Sends an error notification to the Slack channel if the RAG Agent encounters an error. The message includes the error details. (OAuth2 — requires Slack API credentials) Setup Instructions To use this workflow, you'll need accounts and API keys for the following services: Cohere: Sign up at cohere.com and generate an API key for the embeddings model. Supabase: Create a project at supabase.com and set up a vector store with the name . You'll need your Supabase URL and service role key. OpenAI: Get an API key from platform.openai.com for the chat model. Google Sheets: Create a Google Sheet with a sheet named "Log" and note the Sheet ID from the URL. Set up OAuth2 credentials in the Google Cloud Console. Slack: Create a Slack app, add it to your workspace, and obtain OAuth tokens. Create a channel named for error notifications. Configure each node's credentials in n8n by clicking on the node and selecting "Add Credential" or selecting existing ones. Use Cases and Variations This workflow is ideal for: Content Curation: Automatically process and store descriptions of Unsplash images for later retrieval and Pinterest posting. Knowledge Base: Build a searchable database of image metadata with semantic search capabilities. Automated Content Moderation: Use the AI agent to analyze image descriptions and flag inappropriate content before posting. Possible Adaptations: Replace the webhook trigger with a Schedule Trigger to run the workflow at regular intervals. Swap the Cohere embeddings with OpenAI embeddings or Hugging Face embeddings. Instead of Google Sheets, output to Airtable, Notion, or PostgreSQL. Add an HTTP Request node after the RAG Agent to post processed data directly to Pinterest's API. Use a different vector store like Pinecone or Qdrant instead of Supabase.
Telegram AI Bot with DALL-E Image Generation using LangChain
Overview This workflow creates an intelligent Telegram bot that leverages OpenAI's GPT-4o and DALL-E 3 models through n8n's LangChain integration. The bot can hold context-aware conversations (remembering the last 10 messages per user) and generate images on demand—all via simple Telegram messages. It's ideal for building personal assistants, creative bots, or customer support agents that need visual output. Node-by-Node Walkthrough Here's every node in the workflow, along with its authentication method and key configuration: Listen for incoming events (Telegram Trigger — No auth; bot token set in node credential) – Listens for all types of Telegram updates (messages, commands, etc.). No authentication parameters are required directly on the node; the Telegram bot token is configured via the node's credential settings. AI Agent (LangChain Agent — No auth; relies on connected sub‑nodes) – The core of the workflow. It receives the incoming message text and uses the attached language model (OpenAI Chat Model), memory (Window Buffer Memory), and tools (Send back an image / Generate image in Dalle) to decide what action to take. OpenAI Chat Model (LangChain Chat Model — API Key auth via credential) – Uses with a temperature of 0.7 and frequency penalty of 0.2. This model powers the agent's text responses. Window Buffer Memory (LangChain Memory — No auth) – Stores the last 10 messages per user (keyed by Telegram chat ID) to maintain conversational context. Generate image in Dalle (LangChain HTTP Request Tool — API Key auth via credential) – A custom tool that sends a POST request to with model and a prompt (provided by the AI agent). The tool description tells the agent to call it when the user asks to draw something. Send back an image (Telegram Tool — API Key auth via Telegram credential) – Sends a file (image URL from the DALL-E response) to the user's chat ID using the operation. This is exposed as a tool the AI agent can call. Send final reply (Telegram Node — API Key auth via Telegram credential) – Sends the AI agent's text output (from ) back to the user. Note: On error, the workflow continues to the error output (useful for debugging). Detailed Flow The Telegram Trigger catches any incoming message from your bot. The message text is passed to the AI Agent. The agent uses the OpenAI Chat Model to understand the request and generate a response. It also checks the Window Buffer Memory for recent conversation history. If the user asks for an image, the agent calls the Generate image in Dalle tool, which returns an image URL. The agent then uses the Send back an image tool to send that image to the user. For all other requests, the agent produces a text response, which is sent via the Send final reply node. Setup Instructions Telegram Bot – Create a bot via @BotFather and get the API token. In n8n, create a Telegram credential and paste the token. OpenAI Account – Obtain an API key from OpenAI's platform. Create an credential in n8n and paste the key. This credential is used by both the Chat Model and the DALL-E tool. Workflow Activation – After configuring the credentials, activate the workflow. n8n will automatically set up the webhook for the Telegram trigger (no manual URL needed—n8n handles it internally). Test – Send a message to your bot on Telegram. Try asking a question or say “Draw a cat wearing a hat” to trigger image generation. Use Cases & Variations Personal Assistant – Extend with additional tools (web search, calendar lookup, weather API) to make a full‑fledged chatbot. Customer Support – Replace the OpenAI model with a fine‑tuned model or add a fallback to a human agent using n8n's error handling. Image Editor – Modify the DALL-E tool to accept style parameters or multiple images. Multi‑Language – Add a translation node before the AI agent to support multiple languages. Logging – Insert a database node (e.g., Google Sheets, PostgreSQL) to store conversation logs for analysis.
Auto-Generate Blog & AI Image from YouTube Videos with Dumpling AI & GPT-4o
📋 High-Level Summary This workflow automates the entire process of converting a newly uploaded video (e.g., a YouTube video) stored in a Google Drive folder into a fully written blog post and a matching AI-generated image. It leverages Dumpling AI for video transcription and image generation, and OpenAI's GPT-4o for content creation. The final blog post and image are saved to an Airtable base, making it ideal for content creators who want to repurpose video content into blog articles with custom visuals without manual effort. The workflow is triggered the moment a new video file appears in a specific Google Drive folder. It downloads the video, transcribes it, generates a blog post and an image prompt using AI, creates the image, and stores everything in Airtable. This saves hours of manual transcription, writing, and image design work. 🔧 Node-by-Node Breakdown Watch Folder for New YouTube Videos — Google Drive Trigger (OAuth2). This node monitors a specific Google Drive folder for newly created files. It polls every minute and triggers when a new file appears. You must configure it to watch a specific folder by selecting the folder from your Google Drive. Auth method: OAuth2 connection to Google Drive. Download Video File — Google Drive (OAuth2). Downloads the file that was just detected by the trigger. It uses the file ID from the previous node's output (). Operation set to "download". Auth: OAuth2 (same Google Drive credential). Convert Downloaded Video to Base64 — Extract From File (No auth). Converts the binary video file into a base64-encoded string so it can be sent to an external API. The operation is "binaryToProperty" which extracts the binary data into a property for the next node. Transcribe Video with Dumpling AI (Full Transcript) — HTTP Request (Header Auth). Sends a POST request to Dumpling AI's endpoint with the base64 video and a detailed transcription prompt. The prompt instructs the AI to produce a complete, accurate transcript including all spoken words. Auth method: Header Auth — you need to provide an API key as a header (typically ). Generate Blog & Image Prompt using GPT-4o — OpenAI (API Key). Uses GPT-4o to generate a blog post and an image prompt from the transcript received from Dumpling AI. The system message contains detailed instructions on how to write the blog post (conversational tone, structure, length) and how to create a descriptive image prompt suitable for FLUX.1-pro. The output is set to JSON format. Auth: API Key from your OpenAI account. Generate Visual from Blog Prompt with Dumpling AI — HTTP Request (Header Auth). Sends a POST request to Dumpling AI's endpoint with the image prompt extracted from GPT-4o's output. Parameters include model , image dimensions 1024x576, and aspect ratio 16:9. Auth: Header Auth (same Dumpling AI API key). Save Blog Post to Airtable — Airtable (API Key). Creates a new record in an Airtable table with the blog post content. The column mapping maps the GPT-4o generated blog content to the "Content" field in Airtable. Auth: API Key from your Airtable account. Upload Blog post Image to Airtable — HTTP Request (Header Auth). Patches the Airtable record (using its ID) to attach the generated image URL (which comes from the image generation node). Note: The URL used in the JSON body currently uses the image prompt text rather than the actual generated image URL — this may require adjustment to use the correct output from the Dumpling AI image generation node. Auth: Header Auth (Airtable API key). 🚀 Setup Instructions To use this workflow, you need accounts and API keys for the following services: Google Drive — You need a Google account and must authorize n8n to access your Drive. Create an OAuth2 credential in n8n for Google Drive. Dumpling AI — Sign up at dumplingai.com and get an API key. Create a Header Auth credential in n8n with the key and value . OpenAI — You need an OpenAI API key (from platform.openai.com). Create a generic API Key credential in n8n. Airtable — You need an Airtable account and a base with a table. Get your Airtable API key from airtable.com/account. Create an API Key credential in n8n. Steps to configure: Set up the Google Drive trigger to watch your specific folder. Update the Airtable nodes with your correct Base ID, Table ID, and column names. For the "Upload Blog post Image to Airtable" node, you must replace the URL template with your actual Airtable base ID and table ID (currently it shows placeholders). Also, ensure the JSON body uses the actual image URL from the Dumpling AI response, not the image prompt. Update the Dumpling AI API URLs if they change (check current documentation). 💡 Use Cases & Variations Content Repurposing: Automate turning webinar recordings, video lectures, or vlogs into blog posts with custom thumbnails. Social Media Content: Modify the workflow to post the blog and image directly to WordPress, Medium, or social platforms like LinkedIn and Twitter. Podcast to Blog: Use the same flow for audio files by adjusting the trigger to watch for audio files and the transcription endpoint. Multi-language Support: Change the GPT-4o prompt to generate blog posts in different languages. Enhanced Image Generation: Experiment with different Dumpling AI models (e.g., DALL-E, Stable Diffusion) by changing the parameter in the image generation node. Possible improvements: Add error handling (e.g., if transcription fails, send a Slack alert), or add a human review step before publishing. You could also use the image prompt to generate multiple image variations and select the best one.