WordPress + Telegram: publish SEO posts on autopilot
Publishing SEO content sounds simple until you’re doing it every week. Ideas get stuck in notes, drafts sit in limbo, and “I’ll post it tomorrow” turns into a month of silence.
Telegram WordPress publishing fixes that bottleneck. It hits SEO marketers hardest, but small site owners and agency teams feel it too. You trigger a post from Telegram, and the workflow produces a full WordPress draft with Yoast metadata and a featured image.
This article breaks down what the automation does, what you’ll need, and what kind of time (and mental energy) it gives back once it’s running.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: WordPress + Telegram: publish SEO posts on autopilot
flowchart LR
subgraph sg0["Scheduled Trigger 3h Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Create Blog Metadata", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Draft SEO Article", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/wordpress.svg' width='40' height='40' /></div><br/>Generate WP Draft"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Apply Yoast Metadata"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Render Featured Image"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Image Output"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Media to WP"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Link Image to Post"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/discord.svg' width='40' height='40' /></div><br/>Discord Update Notice"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Update Notice"]
n10@{ icon: "mdi:robot", form: "rounded", label: "Parse Metadata Result", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "LLaMA Article Writer", pos: "b", h: 48 }
n14@{ icon: "mdi:brain", form: "rounded", label: "Nemotron Metadata Writer", pos: "b", h: 48 }
n15@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Trigger 3h", pos: "b", h: 48 }
n7 --> n8
n7 --> n9
n5 --> n6
n3 --> n4
n0 --> n1
n11 -.-> n1
n10 -.-> n0
n2 --> n3
n1 --> n2
n14 -.-> n0
n15 --> n0
n6 --> n7
n4 --> n5
end
subgraph sg1["Flow 2"]
direction LR
n12@{ icon: "mdi:brain", form: "rounded", label: "Gemini Article Writer", pos: "b", h: 48 }
end
subgraph sg2["Flow 3"]
direction LR
n13@{ icon: "mdi:brain", form: "rounded", label: "GPT-4 Mini Writer", pos: "b", h: 48 }
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n15 trigger
class n0,n1,n10 ai
class n11,n14,n12,n13 aiModel
class n3,n4,n5,n6,n7 api
class n8 disabled
class n9 disabled
class n12 disabled
class n13 disabled
classDef customIcon fill:none,stroke:none
class n2,n3,n4,n5,n6,n7,n8,n9 customIcon
The Problem: SEO Publishing Turns Into Admin Work
Writing is only half the job. After that comes the tedious part: picking a topic, drafting a structure, generating a decent title, creating a slug, filling in Yoast fields, generating an image, uploading it, setting it as featured, and finally double-checking the post doesn’t look broken on mobile. Do that a few times a week and you’re spending whole blocks of time on tasks that don’t improve quality, they just move content through the pipeline. And frankly, the pipeline is where most teams get stuck.
It adds up fast. Here’s where it usually breaks down in real life.
- You lose about an hour per post doing formatting, metadata, and image handling inside WordPress.
- Metadata gets rushed, which means weak titles, sloppy slugs, and inconsistent focus keyphrases.
- Featured images become a recurring blocker, especially when you need something “good enough” right now.
- By the time you finish publishing, you’re too drained to promote the post anywhere.
The Solution: Telegram-Triggered WordPress Publishing with SEO Built In
This n8n workflow automates the full path from “we should write about this” to a WordPress post you can review and publish (or even auto-publish, depending on your settings). It can run on a schedule every 3 hours, and it can also be triggered manually from Telegram by sending a simple command. Once triggered, it uses free-tier OpenRouter models to generate your title, slug, category, focus keyphrase, and meta description, then drafts a long-form SEO article (roughly 1,500 to 3,500 words). After that, it creates a realistic featured image using Runware, uploads the image to WordPress, links it to the post, applies Yoast metadata, and sends the live link to Telegram and Discord for a quick review.
The workflow begins with a scheduled trigger or a Telegram trigger. AI generates the metadata and the article content, then WordPress receives a draft and Yoast fields via HTTP requests. Finally, the image is generated, uploaded, attached to the post, and the publish link is sent out to your notification channels.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you publish 5 SEO posts a week. Manually, you might spend about 60 minutes per post on the non-writing steps (Yoast fields, formatting, featured image generation, upload, and checks), so roughly 5 hours weekly. With this workflow, you send “generate” in Telegram (about 1 minute), wait for the run to finish, then spend maybe 10 minutes reviewing the draft and hitting publish. That’s around 4 hours back each week, and your content calendar stops feeling fragile.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- WordPress to create drafts and publish posts
- Telegram to trigger runs and receive links
- OpenRouter API key (get it from your OpenRouter dashboard)
- Runware API key (get it from Runware’s account/settings area)
- Discord webhook to notify a team channel (optional)
Skill level: Intermediate. You’ll connect accounts, paste API keys, and map a few fields in n8n and WordPress.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A schedule or Telegram message kicks things off. The workflow can run every 3 hours automatically, and you can also manually start a run by sending a trigger word like “generate” in Telegram.
AI creates your metadata first. OpenRouter generates the title, slug, category, focus keyphrase, and meta description, then n8n parses that structured output so the next steps can use it cleanly.
The article draft is written and pushed into WordPress. A long-form SEO post is generated (with headings), then the WordPress node creates a draft. After that, an HTTP request applies Yoast metadata so you’re not manually copying fields into the editor.
A featured image is generated, uploaded, and attached. Runware renders a 1024×1024 image, n8n retrieves the output, uploads it to WordPress media, and links it as the post’s featured image. Then Telegram and Discord receive the post URL for a fast review.
You can easily modify the topic categories to match your site (or your clients). See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
This workflow starts on a timed schedule to generate and publish content automatically.
- Add and open Scheduled Trigger 3h.
- Set your desired schedule in the trigger parameters (e.g., every 3 hours) to match your publishing cadence.
- Connect Scheduled Trigger 3h to Create Blog Metadata as the first step in the flow.
Step 2: Set Up Metadata Generation
This stage creates structured metadata that drives the article drafting and SEO settings.
- Open Create Blog Metadata and define your prompt and expected output schema.
- Attach the output parser: ensure Parse Metadata Result is connected to Create Blog Metadata on the ai_outputParser port.
- Connect the language model: Nemotron Metadata Writer should be linked to Create Blog Metadata on the ai_languageModel port.
Credential Required: Add credentials to Nemotron Metadata Writer (OpenRouter). The Parse Metadata Result node is an AI sub-node—credentials must be added to the parent language model node, not the parser.
Step 3: Draft the SEO Article
This step turns metadata into a complete draft using an AI writer.
- Open Draft SEO Article and confirm the prompt uses the structured metadata output from the previous step.
- Verify LLaMA Article Writer is connected to Draft SEO Article via the ai_languageModel port.
- Optional: Review disabled alternatives Gemini Article Writer and GPT-4 Mini Writer if you plan to swap models.
Credential Required: Add credentials to LLaMA Article Writer (OpenRouter). If you enable Gemini Article Writer or GPT-4 Mini Writer, add their respective credentials to those nodes.
Step 4: Configure WordPress Draft Creation
The generated article is saved as a WordPress draft for further processing and metadata updates.
- Open Generate WP Draft and set the post fields (title, content, status) to map from the AI output.
- Ensure the execution path continues to Apply Yoast Metadata after draft creation.
Credential Required: Connect your WordPress credentials in Generate WP Draft.
Step 5: Apply SEO Metadata and Generate the Featured Image
SEO metadata is applied through HTTP requests, then a featured image is rendered and fetched.
- Configure Apply Yoast Metadata to send the Yoast fields to your WordPress site via the REST API.
- Set up the image creation pipeline: Apply Yoast Metadata → Render Featured Image → Retrieve Image Output.
- Confirm any headers, authentication, and body parameters needed by your image rendering service.
Credential Required: Add authentication details to all HTTP nodes in this pipeline, including Apply Yoast Metadata, Render Featured Image, and Retrieve Image Output.
⚠️ Common Pitfall: Missing or incorrect API authentication in any of these HTTP requests will stop the workflow before the image is uploaded.
Step 6: Upload and Link the Featured Image
The retrieved image is uploaded to WordPress and linked to the draft post.
- Configure Upload Media to WP to send the image binary to your WordPress media endpoint.
- Set Link Image to Post to attach the uploaded media as the featured image for the draft post.
- Keep the sequence intact: Retrieve Image Output → Upload Media to WP → Link Image to Post.
Credential Required: Add authentication details to Upload Media to WP and Link Image to Post HTTP requests.
Step 7: Configure Notifications (Parallel)
Once the image is linked, the workflow sends update notifications in parallel.
- Confirm Link Image to Post outputs to both Discord Update Notice and Telegram Update Notice in parallel.
- Enable and configure Discord Update Notice with the message and channel settings you want.
- Enable and configure Telegram Update Notice with your bot and chat settings.
Credential Required: Connect Discord credentials in Discord Update Notice and Telegram credentials in Telegram Update Notice.
Step 8: Test and Activate Your Workflow
Validate the end-to-end run before turning on scheduled publishing.
- Click Execute Workflow to run a manual test from Scheduled Trigger 3h.
- Confirm a WordPress draft is created, metadata applied, and a featured image linked.
- Verify notifications: Link Image to Post should trigger both Discord Update Notice and Telegram Update Notice in parallel.
- When successful, toggle the workflow Active to enable scheduled runs.
Common Gotchas
- WordPress credentials can expire or need specific permissions. If things break, check your WordPress application password/user role settings 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
About an hour if your API keys and WordPress access are ready.
No. You will connect accounts, paste API keys, and adjust prompts or fields.
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 OpenRouter usage (often free-tier for supported models) and Runware image generation at around $0.0016 per image.
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.
Yes, and you should. Most changes happen in the “Create Blog Metadata” and “Draft SEO Article” AI nodes, where you can set your categories (and their WordPress category IDs) plus the writing style. Common tweaks include enforcing a brand voice, changing article length, and swapping the model used for writing (LLaMA, Gemini, GPT-4 Mini, or another OpenRouter option).
Usually it’s an application password issue or a user permission problem. Regenerate the WordPress application password, update the credentials in n8n, and confirm the user role can publish and upload media. If the Yoast metadata step fails, double-check the endpoint and that Yoast is installed and active. One more thing: some hosts block REST requests intermittently, so reviewing WordPress REST API logs can save you a lot of guessing.
A lot, as long as your n8n plan and server can keep up. On n8n Cloud, your limit is mostly executions per month, which depends on the plan you choose. If you self-host, there’s no hard execution cap, but you’ll be constrained by CPU/RAM and how quickly OpenRouter/Runware respond. Practically, most teams run this a few times a day or schedule it every few hours, then scale up once prompts are stable.
For AI-heavy publishing flows, n8n is usually the better fit because you can handle branching, parsing, and multi-step HTTP requests without paying extra for every little logic hop. The self-hosted option is also a big deal if you plan to generate lots of posts. Zapier or Make can still be fine for a simple “message in, draft out” setup, but this workflow has more moving parts (Yoast fields, media upload, image generation). If you want a quick recommendation based on your volume and tools, Talk to an automation expert.
Once this is set up, publishing stops being a recurring chore. You get drafts, metadata, and images on repeat, then you just approve what’s worth shipping.
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.