Google Sheets + Telegram: LinkedIn drafts ready
You sit down to write a LinkedIn post and realize you’ve already said this… twice. Then you burn another 30 minutes trying to “research” a fresh angle, and it still reads like a generic AI summary.
This is the mess solopreneurs feel on posting days. Startup marketers feel it when thought leadership becomes “one more weekly task.” And consultants who need consistent visibility? Same problem. This LinkedIn drafts automation keeps ideas original, organized, and ready for review without living in your notes app.
You’ll set up a workflow that researches trends, generates bold drafts, saves them to Google Sheets, and pings you on Telegram when new posts are ready.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Sheets + Telegram: LinkedIn drafts ready
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", 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/code.svg' width='40' height='40' /></div><br/>Code"]
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/perplexity.dark.svg' width='40' height='40' /></div><br/>Message a model"]
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/telegram.svg' width='40' height='40' /></div><br/>Send a text message"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Post Generator", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Idea Parser", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n4 --> n8
n11 --> n5
n9 --> n4
n8 --> n3
n5 --> n9
n0 --> n10
n1 -.-> n9
n1 -.-> n8
n3 --> n6
n10 --> n11
n2 -.-> n9
n7 -.-> n8
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 n2,n7,n8,n9 ai
class n1 aiModel
class n3,n10 database
class n4 code
classDef customIcon fill:none,stroke:none
class n4,n5,n6 customIcon
Why This Matters: Consistent LinkedIn Posts Without Repeats
Posting regularly on LinkedIn sounds simple until you try to do it for 30 days straight. Ideas repeat. Your “quick post” turns into a research rabbit hole. And when you do use AI, the output often feels like it came from the same factory as everyone else’s content. The worst part is the invisible cost: you start avoiding posting because it feels heavy, which means your consistency drops and your pipeline quietly suffers.
It adds up fast. Here’s where the friction usually shows up.
- You waste about an hour bouncing between bookmarks, notes, and half-finished drafts.
- You accidentally recycle angles because there’s no clean “post history” to check.
- AI helps, but the voice comes out bland unless you rewrite most of it.
- Great ideas arrive at the wrong time, then vanish because they never get captured anywhere reliable.
What You’ll Build: Daily LinkedIn Drafts Saved to Sheets + Telegram Alerts
This workflow runs on a schedule (the default is 6 AM) and turns “I should post something” into a repeatable system. It starts by pulling your recent LinkedIn idea history from Google Sheets so it knows what you’ve already covered. Then it uses Perplexity to scan the web for fresh angles and sources, not recycled talking points. Next, GPT-4 shapes those findings into three structured post ideas, and refines each into a bold, human-style LinkedIn draft based on your voice rules. Finally, everything is saved back into Google Sheets and you get a Telegram message that new drafts are waiting.
The workflow begins with your posting history check, so you’re not generating duplicates. Research happens next, then idea shaping, then full draft creation. Once drafts are stored, Telegram nudges you to review and publish when you’re ready.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Let’s say you want 5 LinkedIn posts per week. Manually, a decent process often looks like 30 minutes of research + 30 minutes of drafting each day, so about 5 hours weekly. With this workflow, the drafts are created at 6 AM automatically. You might spend 10 minutes reviewing and tweaking one draft per day, which turns “a few hours” into about an hour total each week.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for storing drafts and post history
- Telegram to get instant draft notifications
- Perplexity API key (get it from your Perplexity account dashboard)
Skill level: Beginner. You’ll connect accounts, choose a sheet tab, and paste a couple API keys.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A daily schedule triggers the run. By default it fires at 6 AM, but you can change it to weekdays only, or run it a few times per week if you prefer fewer drafts.
Your existing post history is pulled from Google Sheets. The workflow retrieves rows from your sheet, then limits what it uses so it’s comparing against recent topics instead of scanning your entire archive.
Live research creates fresh angles. Perplexity searches the web based on your prompt and returns material that GPT-4 can shape into three structured ideas (hook, tone, summary, and a visual prompt).
Drafts are written, saved, and announced. GPT-4 composes the full LinkedIn posts, the workflow appends each draft to Google Sheets, and Telegram alerts you so review becomes the only manual step.
You can easily modify the schedule and the writing prompt to match your niche and posting cadence. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set when the workflow runs so it can generate fresh LinkedIn ideas on a consistent schedule.
- Select Timed Schedule Start.
- Set the Rule to run daily at
06:00by configuring triggerAtHour to6. - Confirm Timed Schedule Start connects to Retrieve Sheet Rows to begin the data flow.
Step 2: Connect Google Sheets
Pull recent ideas and append new posts to your sheet.
- Open Retrieve Sheet Rows and select the target spreadsheet and sheet.
- Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Sheet Rows.
- Open Append Sheet Record and choose the same spreadsheet/sheet for output.
- Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Sheet Record.
- In Append Sheet Record > Columns, keep the mappings as configured, including idea to
{{ $('Flatten Output').item.json.idea }}and output to{{ $json.output.post }}.
Step 3: Limit and Research Ideas
Use recent ideas to avoid duplication and generate new research-backed topics.
- In Restrict Items, set keep to
lastItemsand maxItems to5. - Open Perplexity Research Query and keep model set to
sonar-pro. - Verify the system prompt references the last five ideas using expressions like
{{ $('Restrict Items').all()[0].json.idea }}to avoid repeats. - Credential Required: Connect your perplexityApi credentials in Perplexity Research Query.
Step 4: Set Up AI Interpretation and Post Generation
Parse ideas, write LinkedIn posts, and enforce structured JSON output.
- Open OpenAI Chat Engine and select model
gpt-4.1-miniwith the provided options. - Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine.
- In Interpret Ideas, set text to
{{ $json.choices[0].message.content }}and keep hasOutputParser enabled. - Ensure Idea JSON Parser is attached as the output parser for Interpret Ideas. This parser is a sub-node; credentials are handled by OpenAI Chat Engine, not the parser itself.
- In Compose LinkedIn Post, set text to
Generate a post based on this: Idea: {{ $json.idea }} Details: {{ $json.details }} Style: {{ $json.style }} Your output must always be in the following JSON format: { "post": "" }and keep hasOutputParser enabled. - Ensure Post JSON Parser is attached as the output parser for Compose LinkedIn Post. This parser is a sub-node; credentials are handled by OpenAI Chat Engine, not the parser itself.
Step 5: Transform Output and Send Notifications
Flatten the AI output array and alert your team after data is appended.
- In Flatten Output, keep jsCode set to
return $input.first().json.output.flat(1). - Confirm the flow Interpret Ideas → Flatten Output → Compose LinkedIn Post → Append Sheet Record.
- Open Telegram Alert and set chatId to your Telegram ID, replacing
[YOUR_ID]. - Keep the notification text as
New ideas for LinkedIn have been generated!.
⚠️ Common Pitfall: If Telegram Alert does not deliver messages, verify the bot is authorized and the chatId is correct.
Step 6: Test and Activate Your Workflow
Validate end-to-end execution and turn on the schedule.
- Click Execute Workflow to run a manual test from Timed Schedule Start.
- Confirm Append Sheet Record adds new rows with values mapped from Flatten Output and Compose LinkedIn Post.
- Check that Telegram Alert sends the notification message after the sheet append completes.
- Toggle the workflow to Active to run automatically at the scheduled time.
Troubleshooting Tips
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection inside n8n’s Credentials menu first, then confirm the sheet is shared with the right Google account.
- 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.
Quick Answers
About 30 minutes if your accounts are ready.
No. You’ll mostly connect credentials and select your Google Sheet. The workflow logic is already built.
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 Perplexity API usage, which for most small teams lands around a few dollars a month unless you run it constantly.
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 adjust the schedule trigger to run only on weekdays, swap the Perplexity research prompt to focus on your niche, and edit the “Compose LinkedIn Post” prompt so the output matches your voice. Many teams also add a simple “status” column in Google Sheets so drafts move from idea to reviewed to posted without confusion.
Usually it’s an invalid bot token or the bot never started a chat with you. Open Telegram, message your bot once, then confirm the chat ID used in n8n matches the same conversation. If it worked before and suddenly stopped, regenerate the token in BotFather and update the Telegram credentials in n8n.
Plenty for most individuals. You’re generating three drafts per run, so even daily runs are manageable on basic plans, and self-hosting removes execution limits entirely (your server becomes the constraint). If you later scale this to multiple brands or clients, you’ll want to watch API rate limits and keep your Google Sheet tidy so retrieval stays fast.
Often, yes, because this workflow needs branching logic, structured parsing, and multi-step AI generation that gets awkward (and expensive) in simpler tools. n8n also gives you the option to self-host, which is a big deal if you run lots of executions. Zapier or Make can still be fine for a basic “new row in Sheets → send Telegram message” flow. But for research + generation + de-duplication, n8n is usually the smoother path. If you’re torn, Talk to an automation expert and we’ll help you pick quickly.
Once this is running, LinkedIn stops being a daily creative emergency. You wake up to drafts, pick the best one, and move on with your day.
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.