Telegram to Google Sheets, approved LinkedIn drafts
Writing LinkedIn consistently is easy to plan and painfully slow to execute. You start with a good idea, then the rabbit hole begins: research, structure, “does this sound like me?”, rewrite, second-guess, and suddenly 45 minutes are gone.
This Telegram LinkedIn automation hits hardest when you’re the person who has to publish regularly. A marketing manager trying to keep a content calendar full. A founder posting between calls. Or an agency lead who needs drafts that clients can actually approve without chaos.
This workflow turns a quick Telegram message into a draft, asks for your approval in Telegram, and saves the final version into Google Sheets as a clean, searchable post library. You’ll see how it works, what you need, and what to tweak so it matches your voice.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Telegram to Google Sheets, approved LinkedIn drafts
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n0["<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 Trigger"]
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Tavily Tool", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>Send a text message"]
n5@{ icon: "mdi:robot", form: "rounded", label: "Text Classifier", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n1 --> n3
n3 --> n4
n2 -.-> n1
n7 --> n3
n6 --> n7
n5 --> n8
n5 --> n6
n0 --> n1
n9 -.-> n6
n9 -.-> n5
n9 -.-> n1
n4 --> n5
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 n0 trigger
class n1,n5,n6 ai
class n9 aiModel
class n8 database
classDef customIcon fill:none,stroke:none
class n0,n4 customIcon
Why This Matters: LinkedIn Drafts Get Stuck in “Almost Done”
The real problem isn’t coming up with ideas. It’s finishing them. A half-written LinkedIn post lives in Notes, Slack, a Google Doc, or your head, then gets “saved for later” until it’s outdated. When you do carve out time, you end up re-researching the same topic, rewriting the same intro, and trying to remember what angle you even wanted. Honestly, the mental switching is worse than the writing. And if you’re collaborating, approvals turn into a messy thread of “can you tweak the hook?” and “wait, which version is final?”
It adds up fast.
- Each post turns into a mini project because research, drafting, and polishing happen in three different places.
- Approvals get vague (“looks good”) until you try to publish, then new feedback appears at the worst moment.
- Your best posts don’t become reusable assets because there’s no single library you can search and build from.
- When you’re busy, consistency dies first, and restarting the habit is harder than keeping it.
What You’ll Build: A Telegram Approval Loop That Saves Final Posts to Sheets
This workflow gives you a simple, repeatable loop for creating LinkedIn content with AI, while keeping you in control. It starts the moment you message your Telegram bot with a topic like “Write a LinkedIn post about AI in marketing.” The AI agent then pulls in outside context using a web search tool (Tavily), so the draft isn’t just generic fluff. Next, it generates a LinkedIn-ready post with your chosen model (OpenAI is included here), maps the draft into clean fields, and sends it back to you in Telegram with a plain question: “Good to go?” If you approve, it appends the final copy into Google Sheets. If you reject it and leave feedback, the workflow routes your notes into a revision chain and asks again until you’re happy.
The workflow starts in Telegram, so adding ideas feels lightweight. Research and drafting happen automatically in the middle, then the approval gate keeps quality high. Finally, Google Sheets becomes your content library, which means your “published-ready” posts stop disappearing into chat history.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you aim for 5 LinkedIn posts a week. Manually, a realistic flow is 10 minutes of research, 25 minutes drafting, and another 10 minutes editing, so about 45 minutes per post (nearly 4 hours weekly). With this workflow, you spend maybe 2 minutes sending the prompt in Telegram and about 8 minutes reviewing and giving feedback; the rest runs in the background. That’s around 50 minutes of hands-on time per week instead of hours, plus every approved post lands in Google Sheets automatically.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram for collecting prompts and approvals.
- Google Sheets to store approved LinkedIn copy.
- Tavily API key (get it from your Tavily dashboard)
Skill level: Beginner. You’ll mostly be connecting accounts, pasting API keys, and adjusting a couple of text prompts.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A Telegram message kicks everything off. You send your topic or rough angle to your Telegram bot, and that single message becomes the “source of truth” for the draft request.
The workflow researches before it writes. The AI drafting agent calls the Tavily web search tool to gather context, then uses the OpenAI chat model to create a LinkedIn-style draft based on what it found (and what you asked for).
You get an approval prompt in Telegram. The workflow maps the draft into consistent fields, sends you the post, and asks if it’s good to go. A classifier reads your reply and decides if it’s an approval or revision request.
Approved posts get stored; rejected drafts get improved. If you approve, the workflow appends a row to Google Sheets. If you give feedback, it runs a revision chain, updates the draft fields, and sends the improved version back for another pass.
You can easily modify the research depth and the writing tone 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.
- Add the Telegram Intake Trigger node and set Updates to
message. - Credential Required: Connect your telegramApi credentials in Telegram Intake Trigger.
- Verify that the webhook is created by saving the workflow and following the Telegram bot setup prompts in n8n.
Step 2: Connect Telegram
Use Telegram to send the drafted post to the user and collect approval feedback.
- Add the Request Approval Message node and set Operation to
sendAndWait. - Set Chat ID to
{{ $('Telegram Intake Trigger').item.json.message.chat.id }}. - Set Message to
=Good to go? {{ $json.post }}and Response Type tofreeText. - Credential Required: Connect your telegramApi credentials in Request Approval Message.
Step 3: Set Up AI Drafting and Tools
Generate the initial LinkedIn post using AI and web search.
- Add AI Drafting Agent and set Text to
{{ $json.message.text }}. - In AI Drafting Agent, keep the system message defining the LinkedIn post requirements and hashtags.
- Add OpenAI Chat Engine and set Model to
gpt-4.1-mini. - Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine.
- Ensure OpenAI Chat Engine is connected as the language model for AI Drafting Agent, Approval Text Classifier, and Revision LLM Chain.
- Add the tool node Tavily Web Search with Query set to
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Query', ``, 'string') }}and Tool Description set touse this tool to search the web. - Tavily Web Search is connected as a tool for AI Drafting Agent — add tavilyApi credentials to the parent AI Drafting Agent setup.
Step 4: Configure the Review and Revision Loop
Map the drafted post, collect feedback, classify approval, and revise if needed.
- Add Map Draft Fields and create a field named post with value
{{ $json.output }}. - Add Approval Text Classifier and set Input Text to
{{ $json.data.text }}. - Keep the two classifier categories: Approved and Denied, with their descriptive prompts.
- Configure Revision LLM Chain with Text set to
=the post to revise:{{ $('Map Draft Fields').item.json.post }} the human feedback:{{ $('Request Approval Message').item.json.data.text }}. - Add Map Revised Output and set output to
{{ $json.text }}, then connect it back to Map Draft Fields. - Approval Text Classifier outputs to both Append Sheet Row and Revision LLM Chain in parallel, so be sure both branches are connected.
Step 5: Configure Output to Google Sheets
Store approved responses in Google Sheets for tracking.
- Add Append Sheet Row and set Operation to
append. - Select Document ID
148yOBNcRTo7-xTwlz_KnCiJRiVh7dVyo7CN3THPi0sUand Sheet Nameالورقة1. - Define columns for Name and Email (map actual fields based on your data model).
- Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Sheet Row.
Final Step: Test and Activate Your Workflow
Validate each branch and then turn the workflow on for production use.
- Click Execute Workflow and send a Telegram message to the bot to trigger Telegram Intake Trigger.
- Confirm that Request Approval Message sends the drafted post and waits for your reply.
- Reply with an approval phrase (for example, “OK”) to confirm that Approval Text Classifier routes to Append Sheet Row.
- Reply with revision feedback to confirm that Revision LLM Chain and Map Revised Output loop back to Map Draft Fields.
- When successful, enable the workflow using the Active toggle.
Troubleshooting Tips
- Telegram bot credentials can break if you regenerate the token or point the bot at the wrong chat. If messages stop arriving, check the bot token in n8n and confirm you’re messaging the correct bot in Telegram.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Google Sheets permissions are the silent killer. If rows aren’t being appended, check the connected Google account, the spreadsheet ID, and that the target sheet tab name still matches what the workflow expects.
Quick Answers
About 30 minutes if your accounts are ready.
No. You connect Telegram, Google Sheets, and your AI keys, then adjust a couple of prompts.
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 Tavily API usage costs.
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. You can change the “AI Drafting Agent” prompt to enforce your tone, structure (hook, body, CTA), and formatting rules. If you don’t want web research, remove the Tavily Web Search tool and have the agent draft from your Telegram prompt only. Common tweaks include adding a hashtag rule, generating two alternative hooks, or saving extra columns in Google Sheets like topic, audience, and status.
Usually it’s the bot token or chat permissions. Re-check the token in your Telegram Trigger/Send Message nodes, then confirm you’re talking to the same bot and not a duplicate. If the approval reply isn’t being recognized, your classifier may be too strict, so adjust it to treat short replies like “ok”, “yes”, or “ship it” as approval.
For most small teams, plenty.
Often, yes, because the “human-in-the-loop” logic is the whole point here. You need branching (approve vs revise), an AI agent step, and the ability to loop drafts back through the same mapping and approval message. n8n handles that without turning every decision into a paid task. Zapier or Make can work, but the flows get expensive and awkward as soon as you add revision cycles. If you only want a one-shot draft saved to a sheet, simpler tools are fine. If you want approvals done cleanly in Telegram, n8n is usually the calmer choice. Talk to an automation expert if you’re not sure which fits.
Once this is running, your process becomes simple: idea in, approved draft out, and a growing Google Sheets library you can reuse anytime. The workflow handles the repetitive stuff so you can focus on saying something worth reading.
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.