🔓 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 to LinkedIn, share one link across socials

Lisa Granqvist Partner Workflow Automation Expert

You find a great link, share it in your team chat, and then… nothing. Or worse, you post it once, forget the other channels, and later can’t even find the permalink you need for reporting.

This Telegram social posting automation hits marketing managers first, honestly. But agency owners chasing consistency and consultants trying to look “always on” feel it too. The outcome is simple: one URL in Telegram turns into publish-ready posts for LinkedIn, Facebook, and Instagram, plus a clean Google Sheets log with all the links.

You’ll see how the workflow grabs the page content, writes platform-specific copy, generates an image, publishes the posts, then sends you a Telegram confirmation so you can review fast.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Telegram to LinkedIn, share one link across socials

The Problem: Sharing One Link Becomes Three Separate Jobs

Posting “the same thing” to LinkedIn, Facebook, and Instagram is never actually the same thing. LinkedIn wants a tighter hook and a professional angle, Instagram wants a caption that reads like a human, and Facebook Pages often need a photo post to get any reach. So you do the dance: copy the URL, write three versions, find or create an image, upload it three times, then hunt down permalinks for tracking. It’s not hard work. It’s draining work. And the drain is what kills consistency.

It adds up fast. Here’s where it breaks down in real life.

  • Manually rewriting one article into three platform styles can take about an hour, especially when you’re second-guessing tone and length.
  • Image creation becomes a bottleneck because you still need something that looks intentional, not a random screenshot.
  • You lose track of permalinks, which means weekly reporting turns into a scavenger hunt.
  • Small mistakes sneak in, like posting the wrong link or forgetting a channel entirely.

The Solution: Send a URL in Telegram, Publish Everywhere

This workflow turns Telegram into your “content intake” inbox. You message the bot with a URL and the workflow checks that a real link exists before doing anything else. Then it downloads the web page, extracts the readable title and text, and uses AI to write three versions of the post: one for Facebook, one for Instagram, and one for LinkedIn. It also generates an AI image, uploads that image to Supabase Storage, and creates a public link so every platform can reuse the same asset. Finally, it publishes to Facebook Pages, Instagram Business, and LinkedIn, updates Google Sheets with the post URLs and image link, and sends you a Telegram confirmation (with the image and permalinks) for quick review.

The flow starts with a Telegram message and ends with three live posts you can click immediately. In between, the workflow handles the parts that usually slow you down: page parsing, copy variations, image generation, uploading, and link logging.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you share 5 links per week across 3 channels. Manually, budget maybe 15 minutes to draft each channel post plus 10 minutes to handle an image and grab permalinks, which can land around 4 hours a week. With this workflow, you drop the URL into Telegram (under a minute) and wait for processing and posting, usually about 10 minutes total in the background. That’s roughly 3 hours back most weeks, while still getting platform-specific copy.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram Bot for submitting URLs from chat
  • OpenAI or Google Gemini to write platform-specific copy
  • Facebook/Instagram Graph API to publish to your Page and IG Business
  • LinkedIn OAuth2 to publish posts to LinkedIn
  • Supabase to store and serve the generated image
  • Google Sheets OAuth2 to log permalinks and status
  • AI API key (get it from your OpenAI or Google AI Studio account)

Skill level: Intermediate. You won’t code, but you will connect credentials and paste a few IDs like your Sheet ID and IG user ID.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Telegram message triggers the run. You send the bot a message and the workflow checks if there’s a URL. If there isn’t, it sends a quick warning back so you’re not guessing why nothing happened.

The page content is fetched and cleaned up. n8n downloads the URL with an HTTP request, then a parsing step pulls out the title and readable text so the AI has something solid to work from (not messy navigation and footer links).

AI writes three tailored posts and creates an image. Separate prompts generate Facebook copy, an Instagram caption, and a LinkedIn snippet. Then the workflow creates an image prompt, generates an image, and uploads it to Supabase so it can be reused safely across platforms.

Publishing happens, then everything is logged. The workflow posts to Facebook and Instagram via the Graph API, publishes to LinkedIn, formats the resulting permalinks, updates Google Sheets, and sends you a Telegram confirmation with the image and links.

You can easily modify the AI prompts to match your brand voice based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Telegram Trigger

Set up the Telegram entry point so the workflow can receive article URLs from chat messages.

  1. Add the Telegram Intake Trigger node and keep Updates set to message.
  2. Credential Required: Connect your telegramApi credentials in Telegram Intake Trigger.
  3. Send a test message to your Telegram bot to verify the webhook is receiving data.
Tip: Ensure your bot has permission to read messages in the chat where you will send URLs.

Step 2: Validate and Parse Incoming URLs

Confirm that a URL exists in the message and extract it before continuing.

  1. In Validate URL Presence, confirm the condition uses =={{ ($json.message.text || '').match(/https?:\/\/\S+/) !== null }}.
  2. Connect the true output of Validate URL Presence to Parse Link From Message.
  3. Connect the false output of Validate URL Presence to Send Telegram Warning.
  4. In Send Telegram Warning, keep Text set to You can't do this here. You need to upload a URL with an article. and Chat ID to {{ $json.message.chat.id }}.
  5. Credential Required: Connect your telegramApi credentials in Send Telegram Warning.
Warning: If the regex check is removed, the function node will throw an error when no URL is present.

Step 3: Connect Google Sheets for Source Tracking

Store the incoming URL immediately so you can track submissions and later update status.

  1. In Upsert Sheet Row, set Operation to appendOrUpdate.
  2. Set Document to your sheet ID and Sheet to Sheet1.
  3. Map Source URL to {{ $json.url }} in the Columns mapping.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Upsert Sheet Row.

Later in the workflow, Update Sheet Status updates the same sheet with post URLs and generated content.

Step 4: Retrieve and Prepare Article Content

Fetch the article HTML and convert it into clean text for AI generation.

  1. In Retrieve Page Content, set URL to {{ $node['Parse Link From Message'].json.url }}.
  2. Keep Derive Article Text function code as-is to strip HTML and cap content length.
  3. Verify Derive Article Text outputs title, content, and wordCount for AI prompts.
Tip: If some articles are very long, the function already limits content to 8000 characters to avoid token issues.

Step 5: Configure AI Content Generation

Generate platform-specific captions and an image prompt in parallel.

  1. Derive Article Text outputs to Compose Facebook Update, Draft Instagram Caption, and Build LinkedIn Snippet in parallel.
  2. Credential Required: Connect your openAiApi credentials in Compose Facebook Update, Draft Instagram Caption, and Build LinkedIn Snippet.
  3. In each OpenAI node, keep the prompt content that references {{ $('Derive Article Text').item.json.content }}.
  4. Build LinkedIn Snippet outputs to both Generate Image Prompt and Combine Media Inputs in parallel.
  5. In Generate Image Prompt, keep Text set to the long Polish prompt using {{ $json.text }}.
  6. Gemini Language Model is connected as the language model for Generate Image PromptCredential Required: Connect your googlePalmApi credentials in Gemini Language Model.
Warning: Do not add credentials to Generate Image Prompt directly; connect them to Gemini Language Model instead.

Step 6: Generate, Store, and Share the Image Asset

Create the social image, upload it to storage, and generate a public URL for sharing.

  1. In Create Image Asset, set Model to gpt-image-1 and Prompt to {{ $json.text }}.
  2. Credential Required: Connect your openAiApi credentials in Create Image Asset.
  3. In Assign File Metadata, set filename to {{ $now.toMillis() }}.png.
  4. In Configure Storage Params, set bucket to social-media-ai-generated and supabase_base_url to https://[YOUR_SUPABASE_URL].
  5. In Upload to Storage, keep URL as {{ ($json.supabase_base_url || '').trim().replace(/\/+$/,'') + '/storage/v1/object/' + ($json.bucket || 'social-media-ai-generated') + '/' + $json.filename }}.
  6. Credential Required: Connect your supabaseApi credentials in Upload to Storage.
  7. In Create Public Link, keep public_url set to {{ $node["Configure Storage Params"].json.supabase_base_url.toString().trim().replace(/\/+$/,'') + "/storage/v1/object/public/" + encodeURIComponent($node["Configure Storage Params"].json.bucket) + "/" + encodeURIComponent($node["Configure Storage Params"].json.filename) }}.
Tip: The public URL is used across Facebook, Instagram, LinkedIn, and Telegram; verify it’s accessible in a browser.

Step 7: Publish to Facebook, Instagram, and LinkedIn

Combine text and media inputs, then publish posts to each social network.

  1. Create Public Link outputs to Combine Media Inputs, Combine IG Inputs, and Combine FB Inputs in parallel.
  2. In Publish Facebook Photo, set URL to https://graph.facebook.com/v19.0/[INSERT_YOUR_SITE_ID]/photos and map caption to {{ $input.first().json.message.content }} and url to {{ $item(0).$node["Create Public Link"].json["public_url"] }}.
  3. Credential Required: Connect your facebookGraphApi credentials in Publish Facebook Photo, Create IG Media, Publish IG Media, and Fetch IG Permalink.
  4. In Create IG Media, keep URL set to https://graph.facebook.com/v23.0/[INSERT_YOUR_SITE_ID]/media and map image_url and caption using the public URL and caption expressions.
  5. In Publish IG Media, keep creation_id as {{ $json.id }} and access_token as {{ $credentials.facebookGraph.accessToken }}.
  6. In Fetch IG Permalink, keep URL set to {{ `https://graph.facebook.com/${$json.fbApiVersion || 'v19.0'}/${$json.id}?fields=permalink` }}.
  7. In Publish LinkedIn Post, set Text to {{ $('Build LinkedIn Snippet').item.json.message.content }}, Person to [YOUR_ID], and Share Media Category to IMAGE.
  8. Credential Required: Connect your linkedInOAuth2Api credentials in Publish LinkedIn Post.
Warning: Replace all [INSERT_YOUR_SITE_ID] and [YOUR_ID] placeholders before testing, or publishing will fail.

Step 8: Format Links and Merge Results

Normalize each platform’s response and build a final record for logging and notifications.

  1. After publishing, keep Format Facebook Link, Format IG Link, and Format LinkedIn Link code blocks unchanged to standardize URLs.
  2. Ensure Format Facebook Link, Format IG Link, and Format LinkedIn Link all connect to Merge Publish Results.
  3. Keep Merge Publish Results set to Number of Inputs = 3.
  4. In Assemble Final Record, keep the merge script to combine all JSON outputs into a single object.

Step 9: Update Google Sheets and Notify Telegram

Write the final post URLs and captions into your sheet, then send a confirmation message with the generated image.

  1. In Update Sheet Status, set Operation to update and map columns using the expressions in the node:
  2. Set Image URL to {{ $item(0).$node["Create Public Link"].json["public_url"] }} and Source URL to {{ $node["Telegram Intake Trigger"].json.message.text }}.
  3. Map Facebook URL, Instagram URL, and LinkedIn URL to {{ $json.facebook_post_url }}, {{ $json.instagram_post_url }}, and {{ $json.linkedin_post_url }}.
  4. Map content fields to {{ $node["Compose Facebook Update"].json.message.content }}, {{ $node["Draft Instagram Caption"].json.message.content }}, and {{ $node["Build LinkedIn Snippet"].json.message.content }}.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Update Sheet Status.
  6. In Send Telegram Confirmation, keep Operation as sendPhoto, File as {{ $item(0).$node["Create Public Link"].json["public_url"] }}, and Chat ID as {{ $node["Telegram Intake Trigger"].json.message.chat.id }}.
  7. Credential Required: Connect your telegramApi credentials in Send Telegram Confirmation.
Tip: The Telegram confirmation includes direct links to each published post in the caption, which helps validate success quickly.

Step 10: Test & Activate Your Workflow

Run an end-to-end test to confirm publishing, storage, and logging before turning it on.

  1. Click Execute Workflow and send a Telegram message containing a valid article URL.
  2. Confirm Send Telegram Warning does not run for valid URLs and that the workflow proceeds to publishing nodes.
  3. Check that Update Sheet Status writes the image URL and social post URLs into the correct row.
  4. Verify the Telegram confirmation includes the image and three platform links.
  5. When successful, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Facebook/Instagram Graph credentials can expire or need specific permissions. If things break, check your access token scope and the Page/IG Business permissions in Meta 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

How long does it take to set up this Telegram social posting automation?

About an hour if you already have your platform accounts and API access.

Do I need coding skills to automate Telegram social posting?

No. You’ll mostly connect accounts and paste IDs like your Google Sheet ID and Instagram Business user ID.

Is n8n free to use for this Telegram social posting 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 AI API costs, which are usually a few cents per run depending on your prompts and image generation.

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.

Can I customize this Telegram social posting workflow for scheduled posting instead of instant publishing?

Yes, but you’ll change the trigger and the “publish” timing. Swap the Telegram trigger for a Schedule Trigger (or keep Telegram intake, then add a manual “approved” column check in Google Sheets before publishing). Common customizations include adding an approval step, changing the tone per platform in the AI nodes, and switching the Supabase bucket name used in the Set nodes.

Why is my Telegram connection failing in this workflow?

Usually it’s the bot token in your n8n Telegram credentials being wrong or rotated. Double-check the bot is still active in BotFather, then re-save the credentials in n8n. Also confirm the workflow is using the right Telegram trigger (the one connected to your bot) and that n8n can receive updates if you’re self-hosting behind a firewall.

How many posts can this Telegram social posting automation handle?

A lot.

Is this Telegram social posting automation better than using Zapier or Make?

For this use case, n8n is usually the better fit because you’re doing multiple AI steps, file handling, and multi-platform publishing in one run. Zapier and Make can do it, but you may end up with more separate scenarios, more paid tasks, and less control over branching when a URL is missing or a publish step fails. n8n also gives you the self-hosting option, which is handy once volume grows. The tradeoff is setup time: permissions for Meta and LinkedIn can be finicky no matter what tool you use. Talk to an automation expert if you want help choosing.

One URL. Three channels. A spreadsheet log you can trust. Set it up once, and let the workflow handle the repetitive posting work while you focus on what to share next.

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