🔓 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 + Google Sheets: approve AI posts faster

Lisa Granqvist Partner Workflow Automation Expert

Posting “consistently” sounds simple until you’re stuck rewriting captions, chasing approvals, and digging through chats to find the latest version of an image. Then you finally publish… and realize you posted the wrong draft. Again.

This Telegram Sheets approval automation hits social media managers first, honestly. But founders running their own accounts and agency leads juggling clients feel the same drag. You send an idea once, approve in chat, and every version is logged cleanly in Google Sheets.

Below you’ll see how the workflow turns Telegram into an AI content pipeline, what gets automated, and what you need to run it without babysitting the process.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Telegram + Google Sheets: approve AI posts faster

The Problem: Approvals and version control slow down posting

“Make an image, write a caption, get it approved, post it” turns into a messy loop the moment there’s more than one person involved (or you’re switching between phone and desktop). Drafts live in Telegram threads, captions live in Notes, the “final-final” image is somewhere in Drive, and the status of what actually got published is… a guess. The time cost is bad, but the mental load is worse. You waste energy doing admin work instead of making better creative decisions, and that’s usually what stalls consistency.

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

  • You end up approving the wrong version because the latest caption is buried under three “quick tweaks” in chat.
  • Voice notes help you move faster, but someone still has to transcribe them and turn them into a usable prompt.
  • Manual posting across platforms means repeating the same upload and copy routine three times per post.
  • No reliable log exists, so you can’t answer basic questions like “What did we publish last Tuesday?” without digging.

The Solution: A Telegram-based AI image + caption approval loop

This workflow turns Telegram into your content inbox and approval room. You send a text or voice idea to a Telegram bot, and the workflow normalizes the input so AI can work with it either way. An AI Agent (backed by an OpenAI chat model) drafts two things: a detailed image prompt for Google Gemini to generate the visual, and a ready-to-post caption for social media. You review the draft in Telegram, ask for revisions if needed, then approve. After that, Gemini generates the image, you get a preview in Telegram, and you approve one last time before anything goes public. Once approved, the workflow uploads the image, publishes to Instagram, X, and Facebook via Blotato, and keeps checking status until each platform is confirmed (or you’re notified of a failure). Google Sheets logs the prompt and post text so you always have a clean record of what was created and what was used.

The workflow starts with a Telegram message, then moves into an AI refinement loop that stays in the same chat thread. After your final “yes,” it generates the image, publishes to your chosen platforms, and sends Telegram confirmations as each post goes live.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you publish 5 image posts a week to Instagram, X, and Facebook. Manually, you’ll spend maybe 10 minutes writing and polishing the caption, then about 10 minutes per platform uploading and posting, plus another 10 minutes chasing approvals and finding the right file. That’s roughly 1 hour per post, or about 5 hours a week. With this workflow, the “work” becomes: send an idea in Telegram (a minute), reply with feedback, approve the image preview, done. You still review creatively, but the repeatable parts shrink to about 15 minutes per post, which is several hours back every week.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram to capture ideas and approvals in chat
  • Google Sheets to log prompts, captions, and versions
  • Telegram Bot API Key (create a bot in BotFather)
  • OpenAI API Key for Whisper transcription and the chat model
  • Google Gemini API Key for AI image generation
  • Google Drive to temporarily store generated images
  • Blotato API Key to publish to Instagram, X, and Facebook

Skill level: Intermediate. You’ll connect accounts, add API keys, and test approvals end-to-end once.

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

How It Works

Telegram message triggers the workflow. A Telegram bot listens for incoming messages. If it’s a voice note, the audio file is pulled in and transcribed so you always end up with one clean text idea.

The AI drafts a prompt and caption, then waits for your approval. The AI Agent proposes a Gemini-ready image prompt plus social copy. You can reply with tweaks, and the workflow keeps the conversation context so revisions don’t restart from scratch.

Gemini generates the image and you approve the final preview. Once the text is approved, the workflow logs the prompt and caption to Google Sheets, generates the image in Gemini, and sends the preview to Telegram. If you don’t approve, it stops before publishing.

Publishing and status checks happen automatically. Approved images are uploaded to Google Drive briefly, then sent to Blotato as a media asset. Blotato creates the Instagram, X, and Facebook posts, and n8n polls status until each one is published or fails, then messages you in Telegram.

You can easily modify which platforms publish (or add a schedule) 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 message is received in Telegram and immediately maps the incoming text for downstream processing.

  1. Add and configure Telegram Event Listener as the trigger with Updates set to message.
  2. Credential Required: Connect your telegramApi credentials in Telegram Event Listener.
  3. Optional: keep Flowpast Branding as a sticky note for documentation (no configuration required).

Step 2: Connect Input Mapping and Voice Handling

Map text input and route voice messages to transcription before they reach the AI pipeline.

  1. In Map Input Text, set text to {{$json?.message?.text || ""}}.
  2. Configure Detect Voice Input to check leftValue {{$json.message.text}} and route empty text to voice handling.
  3. In Retrieve Voice File, set File ID to {{$('Telegram Event Listener').item.json.message.voice.file_id}}.
  4. Credential Required: Connect your telegramApi credentials in Retrieve Voice File and all other Telegram action nodes used later.
  5. In Audio Transcription, set Resource to audio and Operation to transcribe.
  6. Credential Required: Connect your openAiApi credentials in Audio Transcription.

Detect Voice Input outputs to Retrieve Voice File or Prompt Orchestrator based on whether the message text is empty.

Step 3: Set Up AI Prompting and Memory

Use the agent to draft prompts and social text, with memory for ongoing Telegram conversations.

  1. In Prompt Orchestrator, set Text to {{$json.text}} and keep the system message as provided to enforce the JSON approval format.
  2. OpenAI Chat Engine is connected as the language model for Prompt Orchestrator — ensure credentials are added to OpenAI Chat Engine.
  3. Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine.
  4. In Session Memory Buffer, set Session Key to {{$('Telegram Event Listener').first().json.message.from.id}} and Context Window Length to 10.
  5. Session Memory Buffer is an AI sub-node attached to Prompt Orchestrator — add credentials to the parent node if your AI provider requires them.
  6. Configure Approval Detected? to check {{$json.output}} for JSON approval markers (videoPrompt/socialMediaText).
  7. In Send Draft for Review, set Text to {{$('Prompt Orchestrator').item.json.output}} and Chat ID to {{$('Telegram Event Listener').first().json.message.chat.id}}.

Approval Detected? outputs to Extract AI Results if the JSON is present, or to Send Draft for Review if revisions are needed.

Step 4: Extract Results, Log Prompts, and Generate an Image

Parse the approved AI output, notify the user, save to Sheets, then generate a media asset.

  1. Keep Extract AI Results code as-is to parse JSON for videoPrompt and socialMediaText.
  2. In Notify Processing Start, set Text to Okay. Your video is being prepared now. I'll let you know as soon as it's online. and Chat ID to {{$('Telegram Event Listener').item.json.message.chat.id}}.
  3. In Append Prompt to Sheet, set Operation to append, Document ID to [YOUR_ID], and Sheet Name to [YOUR_ID].
  4. Map prompt to {{$('Extract AI Results').item.json.videoPrompt}} and text to {{$('Extract AI Results').item.json.socialMediaText}}.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Prompt to Sheet.
  6. In Generate Image, set Prompt to {{$('Extract AI Results').item.json.videoPrompt}} and Resource to image.
  7. Credential Required: Connect your googlePalmApi credentials in Generate Image.

Generate Image outputs to both Upload Image to Drive and Send Photo Preview in parallel.

⚠️ Common Pitfall: Replace [YOUR_ID] values in Append Prompt to Sheet and the social publishing nodes, otherwise the workflow will fail at runtime.

Step 5: Configure Preview, Approval, and File Storage

Send a preview image for approval, store the file in Drive, and gate the publishing flow based on user response.

  1. In Send Photo Preview, set Operation to sendPhoto, enable Binary Data, and set Chat ID to {{$('Telegram Event Listener').item.json.message.chat.id}}.
  2. In Await Approval Reply, set Operation to sendAndWait with Message Good? and Chat ID to {{$('Telegram Event Listener').item.json.message.chat.id}}.
  3. In Upload Image to Drive, set Name to =data and Input Data Field Name to =data, and select your target folder.
  4. Credential Required: Connect your googleDriveOAuth2Api credentials in Upload Image to Drive and Download Image File.
  5. In Download Image File, set File ID to {{$('Upload Image to Drive').item.json.id}} and Operation to download.
  6. In Approval Gate, confirm the condition checks {{$json.data.approved}} equals true.

Step 6: Configure Media Upload and Social Publishing

Upload the approved media to Blotato and publish it to three platforms in parallel.

  1. In Upload Media Asset, set Resource to media, enable Use Binary Data, and set Binary Property Name to {{$('Generate Image').item.binary.data}}.
  2. Credential Required: Connect your blotatoApi credentials in Upload Media Asset and all Blotato publishing/status nodes.
  3. In Create Instagram Post, set Post Content Text to {{$('Extract AI Results').item.json.socialMediaText}} and Post Content Media URLs to {{$json.url}}.
  4. In Create X Publication, set Platform to twitter, Post Content Text to {{$('Extract AI Results').item.json.socialMediaText}}, and Post Content Media URLs to {{$json.url}}.
  5. In Create Facebook Post, set Platform to facebook, assign Facebook Page ID and Account ID, and map text/media as above.

Upload Media Asset outputs to Create Instagram Post, Create X Publication, and Create Facebook Post in parallel.

Step 7: Configure Publishing Status Checks and Notifications

Poll each platform for completion, handle in-progress delays, and notify the user of success or errors.

  1. Set Delay Check A to 30 seconds and Delay Check B to 10 seconds to pace status polling.
  2. Set Delay Check FB to 30 seconds before Query Post Status FB.
  3. In Fetch Post Status A, Query Post Status X, and Query Post Status FB, keep Post Submission ID as {{$json.postSubmissionId}}.
  4. Configure Instagram Published?, X Published?, and Facebook Published? to check {{$json.status}} equals published.
  5. Configure Status In Progress IG, Status In Progress X, and Status In Progress FB to check {{$json.status}} equals in-progress, then route to the respective Pause Extra Time node.
  6. In Confirm Instagram Live, Confirm X Live, and Confirm Facebook Live, keep Text messages and map Chat ID to {{$('Telegram Event Listener').item.json.message.chat.id}}.
  7. Ensure Notify Instagram Error, Notify X Error, and Notify Facebook Error are connected to the “false” branches of the in-progress checks.

Credential Required: Connect your telegramApi credentials to all Telegram notification nodes (11+ nodes handle confirmations, previews, approvals, and errors).

Step 8: Test and Activate Your Workflow

Validate the end-to-end flow from Telegram input to social publishing before going live.

  1. Click Execute Workflow and send a Telegram message to trigger Telegram Event Listener.
  2. Approve the draft after Send Photo Preview and confirm that Approval Gate routes to Upload Media Asset.
  3. Verify success messages from Confirm Instagram Live, Confirm X Live, and Confirm Facebook Live with valid {{$json.publicUrl}} links.
  4. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Telegram credentials can expire or you may be testing the wrong bot. If things break, check BotFather settings and the token stored in n8n credentials 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 Sheets approval automation?

About 45 minutes if you already have the API keys ready.

Do I need coding skills to automate Telegram Sheets approval?

No. You’ll mostly connect accounts and paste API keys into n8n credentials.

Is n8n free to use for this Telegram Sheets 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 OpenAI and Gemini API usage, which usually stays low for a few posts per day.

Where can I host n8n to run this Telegram Sheets approval 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 Sheets approval workflow for posting to LinkedIn instead?

Yes, but you’ll do it at the publishing layer. Keep the Telegram approval loop, the OpenAI prompt/caption drafting, and the Gemini image generation the same, then swap or add a LinkedIn publishing branch where the Blotato “Create post” nodes live. Many teams also customize the AI Agent’s system message to generate a LinkedIn-style caption (tighter hook, fewer hashtags), while keeping the Instagram/X copy as a separate field in Google Sheets. If you want different approval rules, adjust the two approval checks: one for the text draft and one for the final image preview.

Why is my Telegram connection failing in this Telegram Sheets approval workflow?

Usually it’s the bot token, not n8n. Regenerate the token in BotFather (or confirm you copied the right one), then update the Telegram credentials in n8n and re-test the trigger. It can also fail if your bot hasn’t been started by the user account you’re testing with, because Telegram won’t deliver messages to a bot that was never opened.

How many posts can this Telegram Sheets approval automation handle?

On n8n Cloud Starter, you can usually run thousands of executions per month, and self-hosting has no execution cap (it depends on your server). In practice, this workflow is limited more by image generation time and API rate limits than by n8n itself, so it’s a good fit for daily posting and small batch campaigns.

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

For this workflow, n8n is a better fit if you want the approval loop, memory for revisions, and multi-branch status checks without paying extra for every path. Zapier and Make can absolutely do “send message, get approval,” but the moment you add voice transcription, iterative AI drafting, and per-platform publish polling, it gets awkward and expensive. n8n also gives you the option to self-host, which is useful when volumes grow. Still, if your version is only “generate a caption and email it to me,” simpler tools may feel faster to maintain. Talk to an automation expert if you want help choosing.

Once this is running, content approval stops being a mini project. The workflow handles the repeatable parts so you can focus on ideas, not logistics.

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