🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Telegram + LinkedIn: approve posts in your voice

Lisa Granqvist Partner Workflow Automation Expert

You find a viral LinkedIn post, you love the angle, and then the work starts. Copy the link, pull the text, rewrite it so it doesn’t sound like you’re cosplaying someone else, find or design an image, then second-guess the whole thing right before you hit publish.

This Telegram LinkedIn approval automation hits LinkedIn creators first, honestly. But content marketers trying to keep a brand voice consistent and founders juggling a posting habit feel it too. You get a rewritten post in your voice plus an image preview, then you approve or reject it right inside Telegram.

Below is how this workflow turns “cool idea” into “confident publish” without the messy middle. You’ll see what it automates, what you still control, and what you need to run it.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Telegram + LinkedIn: approve posts in your voice

The Challenge: Turning “Viral” Into “On-Brand” Without Losing Hours

Repurposing a strong LinkedIn post sounds easy until you try to do it repeatedly. First you have to capture the post before it disappears from your tabs. Then you rewrite it, but your rewrite reads flat because you’re rushing. You add an image, except now you’re hunting for something that looks professional and not like stock-photo déjà vu. And the final kicker: you still hesitate to publish because you haven’t “seen it all together” in context, so drafts pile up and momentum dies.

It adds up fast. The friction compounds in a few predictable places:

  • You spend about 30 minutes per post just moving between tools, copying text, and cleaning formatting.
  • Voice drift sneaks in when you’re rewriting quickly, which means you end up editing the same draft three times.
  • Images become a bottleneck because “good enough” rarely feels good enough when it’s tied to your name.
  • Approval is all-or-nothing, so you either publish impulsively or you don’t publish at all.

The Fix: Telegram-First Drafting With AI + Human Approval

This workflow flips the process around. Instead of doing the hard parts first, you start with one small action: you send a LinkedIn URL to your Telegram bot. The workflow checks that the message is actually from you (a simple security gate, so nobody else can trigger it). Then it pulls the original post content and engagement details via ConnectSafely.ai, loads your writing persona (your tone, phrasing, formatting preferences), and asks Google Gemini to rewrite the post so it sounds like you wrote it. After that, Gemini also generates an on-brand image based on a prompt crafted from the rewritten post. You get a preview in Telegram, you approve or reject with a quick reply, and only then does it publish to LinkedIn.

The workflow starts in Telegram with a URL. From there, ConnectSafely.ai extracts the post, Gemini handles the rewrite and image generation, and Telegram becomes your review room. If you approve, LinkedIn publishing happens automatically; if not, you get a decline message and nothing goes live.

What Changes: Before vs. After

Real-World Impact

Say you repurpose 5 viral posts a week. Manually, you might spend about 20 minutes rewriting and another 15 minutes finding or creating an image, plus a few minutes formatting and second-guessing, so call it roughly 40 minutes each. That’s about 3 hours a week. With this workflow, you send the URL in Telegram (a minute), wait for the rewrite and image preview, then approve or reject in chat. You usually end up spending about 10 minutes per post, so you get around 2 hours back weekly while staying in your own voice.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram to receive URLs and approve drafts.
  • ConnectSafely.ai for scraping LinkedIn post content.
  • Google Gemini API key (get it from Google AI Studio).

Skill level: Intermediate. You’ll connect credentials, paste API keys, and edit a persona object (no heavy coding, but a little configuration).

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A Telegram message kicks it off. You send a LinkedIn post URL to your Telegram bot, and the workflow immediately checks your Telegram user ID so random people can’t trigger publishing.

The link gets validated and scraped. n8n parses the URL, confirms it’s a proper LinkedIn post link, then uses ConnectSafely.ai to retrieve the post text and basic engagement metadata (helpful context for the rewrite).

Your persona guides the rewrite. The workflow loads your “voice” settings (tone, common phrases, formatting rules), then a Gemini-powered agent rewrites the post with those constraints so it reads like you, not like a template.

Image + approval happen in chat. Gemini generates a professional image from an auto-built prompt, the preview lands in Telegram, and you reply to approve or reject. If approved, the LinkedIn node publishes the post and you get a confirmation message.

You can easily modify the persona rules and image style to match different brands, campaigns, or clients based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Telegram Trigger

This workflow starts when a Telegram message is received, then validates the sender before parsing the LinkedIn URL.

  1. Add and open Incoming Telegram Trigger and confirm it listens to Updates set to message.
  2. Credential Required: Connect your Telegram Bot credentials to Incoming Telegram Trigger (required even though none are configured in the workflow).
  3. In Validate Sender Access, set the condition to match your Telegram user ID: Left Value ={{ $json.message.from.id }}, Operation equals, Right Value [YOUR_ID].
  4. Confirm execution order: Incoming Telegram TriggerValidate Sender AccessParse LinkedIn URLConfirm URL Validity.

Tip: Replace [YOUR_ID] in Validate Sender Access with your actual Telegram user ID to prevent unauthorized publishing.

Step 2: Connect LinkedIn Retrieval and Field Mapping

After a valid LinkedIn URL is received, the workflow scrapes the post and maps fields for the AI rewrite.

  1. In Parse LinkedIn URL, keep the JavaScript code that extracts the URL and sets valid to true/false.
  2. In Confirm URL Validity, set the boolean condition Left Value to ={{ $json.valid }} and Operation to true.
  3. Open Retrieve LinkedIn Post and set Post URL to ={{ $json.postUrl }} with Operation scrapePost.
  4. Credential Required: Connect your ConnectSafely LinkedIn credentials to Retrieve LinkedIn Post (required even though none are configured in the workflow).
  5. In Map Post Fields, map fields exactly as configured: postText ={{ $json.data.content }}, authorName ={{ $json.data.author.name }}, engagement ={{ $json.data.engagement.likes }}, hasImages ={{ $json.data.media.hasImages }}.
  6. Confirm branch routing: invalid links go to Notify Invalid Link, valid links continue to Retrieve LinkedIn Post.

⚠️ Common Pitfall: If the LinkedIn URL doesn’t match linkedin.com/posts/..., Parse LinkedIn URL will set valid to false and the workflow will route to Notify Invalid Link.

Step 3: Set Up the AI Rewrite and Structured Output

This stage loads your writing persona and uses Gemini to rewrite the post into a publish-ready JSON output.

  1. In Load Writing Persona, update the persona fields (name, expertise, tone, emojis) inside the JavaScript block to match your style.
  2. Open Rewrite Content Agent and keep Text set to Rewrite the post now. with Prompt Type define and hasOutputParser enabled.
  3. Connect Gemini Chat Engine as the language model for Rewrite Content Agent and set Model Name to models/gemini-2.5-pro.
  4. Credential Required: Connect your Google Gemini credentials to Gemini Chat Engine (required even though none are configured in the workflow).
  5. Ensure Structured Output Decoder is connected as the output parser for Rewrite Content Agent with the provided JSON schema.
  6. Credential Note: Structured Output Decoder is an AI sub-node—add credentials to the parent node Gemini Chat Engine, not the sub-node.

Tip: The output JSON must include a post field. If the output is invalid JSON, the next steps will fail.

Step 4: Generate and Send the Image Preview

The rewritten post is converted into an image prompt, then Gemini generates an image which is sent back to Telegram for preview.

  1. In Craft Image Prompt, keep the JavaScript that builds the prompt from $input.first().json.output.post.
  2. Configure Generate Visual Asset with Prompt set to ={{ $json.imagePrompt }} and Resource set to image.
  3. Credential Required: Connect your Google Gemini credentials to Generate Visual Asset (required even though none are configured in the workflow).
  4. In Deliver Image Preview, set Operation to sendPhoto, enable Binary Data, and set Chat ID to ={{ $('Incoming Telegram Trigger').item.json.message.from.id }}.
  5. Credential Required: Connect your Telegram Bot credentials to Deliver Image Preview (required even though none are configured in the workflow).

⚠️ Common Pitfall: If Generate Visual Asset does not output binary data to data, Deliver Image Preview will fail to send the image.

Step 5: Configure Approval and Publishing Actions

The user receives the draft for approval, and the workflow publishes or declines based on the response.

  1. In Request Approval Response, set Operation to sendAndWait and keep the message with the expression {{ $('Rewrite Content Agent').first().json.output.post }}.
  2. Credential Required: Connect your Telegram Bot credentials to Request Approval Response (required even though none are configured in the workflow).
  3. In Approval Decision, keep the boolean condition Left Value set to ={{ $json.data.approved }} with Operation true.
  4. In Prepare LinkedIn Payload, keep the JavaScript that cleans the post and attaches binary data from Generate Visual Asset.
  5. Configure Publish LinkedIn Post with Text ={{ $json.post }}, Person [YOUR_ID], Binary Property Name data, and Share Media Category IMAGE.
  6. Credential Required: Connect your LinkedIn credentials to Publish LinkedIn Post (required even though none are configured in the workflow).
  7. Configure Telegram outputs: Send Publication Notice sends the post URL using https://www.linkedin.com/feed/update/{{ $json.urn }} and Send Decline Notice confirms a decline.
  8. Credential Required: Connect your Telegram Bot credentials to all Telegram nodes (5 total: Deliver Image Preview, Request Approval Response, Send Publication Notice, Send Decline Notice, Notify Invalid Link).

⚠️ Common Pitfall: Replace [YOUR_ID] in Publish LinkedIn Post and Validate Sender Access with your actual LinkedIn and Telegram IDs.

Step 6: Test & Activate Your Workflow

Run a full test from Telegram to verify scraping, rewriting, image generation, approval, and publishing.

  1. Click Execute Workflow and send a LinkedIn post URL to your bot to trigger Incoming Telegram Trigger.
  2. Confirm the workflow retrieves the post, rewrites it, generates an image, and sends both via Telegram.
  3. Approve the message to verify Approval Decision routes to Prepare LinkedIn Payload and Publish LinkedIn Post.
  4. Check for the success message from Send Publication Notice with a valid LinkedIn URL.
  5. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • LinkedIn OAuth credentials can expire or lose permissions. If publishing fails, re-authorize your LinkedIn credential in n8n first and confirm the Person ID (URN) is correct in the publishing node.
  • If you’re using Telegram approvals, delayed replies can cause confusion when you run multiple drafts. Keep one URL per approval cycle, or add a simple “draft ID” in the Telegram message to stay organized.
  • Gemini prompts that are too generic will give you generic posts. Update the persona (common phrases, formatting, and style notes) early, or you will spend your “saved time” editing output anyway.

Common Questions

How quickly can I implement this Telegram LinkedIn approval automation?

Usually about an hour once your accounts are ready.

Can non-technical teams implement this Telegram LinkedIn approval?

Yes, but you’ll want someone comfortable with API keys and OAuth logins. After the credentials are connected, using it is as simple as sending a URL and replying “approve” or “reject.”

Is n8n free to use for this Telegram LinkedIn approval workflow?

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 Google Gemini API usage and your ConnectSafely.ai plan.

Where can I host n8n to run this automation?

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.

How do I adapt this Telegram LinkedIn approval solution to my specific challenges?

You can tailor the voice in the “Load Writing Persona” node by adding your real phrases, formatting preferences, and the types of hooks you actually use. If the images feel off-brand, adjust the style parameters in the “Craft Image Prompt” node so Gemini generates the right look. And if you want an extra checkpoint, you can route the approval message to a second Telegram user before the “Publish LinkedIn Post” node runs.

Why is my Telegram connection failing in this workflow?

Most of the time it’s a wrong bot token or a missing webhook connection on the Telegram trigger. Double-check the Telegram credential in n8n, then confirm the trigger node is enabled and listening. If your security check is blocking you, make sure you used your numeric Telegram user ID (not your username).

What’s the capacity of this Telegram LinkedIn approval solution?

It can handle plenty for an individual creator. On n8n Cloud, capacity mainly depends on your monthly execution limit, while self-hosting is mostly limited by your server and API quotas. Practically, the slowest part is AI generation and LinkedIn publishing, so you’ll usually run these one draft at a time for clean approvals.

Is this Telegram LinkedIn approval automation better than using Zapier or Make?

Often, yes, because this is not a simple two-step zap. You’ve got conditional logic (security checks, link validation, approval routing), AI generation, and a publish step that you really don’t want firing accidentally. n8n handles branching and custom logic without punishing you for complexity, and self-hosting is a big deal if you want predictable costs. Zapier or Make can still be fine if you only need “URL in, draft out” with no approval and no publishing. If you’re unsure, Talk to an automation expert and we’ll map the simplest setup that’s still safe.

You keep control of what gets posted, but you stop spending your best energy on the repetitive parts. Set it up once, then let Telegram handle the approval loop while n8n does the heavy lifting.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal