Telegram to Google Sheets, clean TikTok and LinkedIn
Building a list of TikTok creators or LinkedIn prospects sounds simple until you’re 30 profiles deep, juggling tabs, reformatting URLs, and second-guessing whether you copied the right follower count.
This hits marketers hardest, but recruiters and sales teams feel it too. With this Telegram Sheets automation, you send a handle or profile link in Telegram and it lands in Google Sheets as a clean, structured row.
No more “I’ll fix the sheet later.” You’ll see how the workflow routes TikTok vs. LinkedIn, extracts the right fields, and logs everything where your team actually works.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Telegram to Google Sheets, clean TikTok and LinkedIn
flowchart LR
subgraph sg0["Receive Telegram Message Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n1@{ icon: "mdi:web", form: "rounded", label: "tiktok_profile_scraper", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "tiktok_database_saver", pos: "b", h: 48 }
n3@{ icon: "mdi:web", form: "rounded", label: "linkedin_profile_scraper", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "linkedin_database_saver", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>Receive Telegram Message"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check for Voice Message", pos: "b", h: 48 }
n7["<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/>Fetch Voice File from Telegram"]
n8@{ icon: "mdi:robot", form: "rounded", label: "Transcribe Audio with Whisper", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Transcription", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Text Message", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "Social Media Extraction Agent", pos: "b", h: 48 }
n12@{ icon: "mdi:message-outline", form: "rounded", label: "Send Completion Email", pos: "b", h: 48 }
n0 -.-> n11
n10 --> n11
n9 --> n11
n2 -.-> n11
n1 -.-> n11
n6 --> n7
n6 --> n10
n4 -.-> n11
n5 --> n6
n3 -.-> n11
n11 --> n12
n8 --> 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 n5 trigger
class n8,n11 ai
class n0 aiModel
class n6 decision
class n2,n4 database
class n1,n3 api
classDef customIcon fill:none,stroke:none
class n5,n7 customIcon
The Problem: Messy Profile Data Ruins Your Lists
When you’re collecting profiles for influencer outreach, competitor research, or lead enrichment, the sheet is the source of truth. Except it rarely stays truthful. Someone pastes a TikTok handle without the “@”. Another person grabs an old LinkedIn URL that redirects. Follower counts get typed by hand, bios get chopped, and profile pictures never make it in. Then you try to segment creators by reach or filter prospects by location and… it’s chaos. Honestly, the worst part is the doubt: you’re never fully sure your list is accurate.
The friction compounds. Here’s where it breaks down in real life.
- Copy-pasting from TikTok and LinkedIn forces you to format data twice, once for capture and again for analysis.
- Manual entry invites small errors that become big ones when you’re sending outreach or reporting results.
- Teams collect data in different places, so the “final” sheet turns into five versions floating around.
- Voice notes and quick messages get ignored because nobody has time to turn them into structured rows.
The Solution: Send a Profile in Telegram, Log It Cleanly
This workflow turns Telegram into your intake inbox for TikTok and LinkedIn profile research. You send either a TikTok username (like @creatorname) or a LinkedIn profile URL, and the automation handles the rest. If the message is a voice note, it gets transcribed first. Then an AI agent figures out which platform you meant, triggers the correct scraper, and pulls the public profile details you actually need for analysis. Finally, it writes a clean, consistent row into the right Google Sheets tab (TikTok or LinkedIn), and sends a completion email so you know it finished. One input. Structured output.
The workflow starts with a Telegram message (text or voice). From there, OpenAI handles transcription and routing logic, Dumpling AI scrapes the profile, and Google Sheets receives the final row. Gmail sends the confirmation once the data is safely stored.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you’re building a list of 40 TikTok creators and 20 LinkedIn prospects for a campaign. Manually, even a “quick” capture is maybe 5 minutes per profile once you copy follower counts, bios, links, and paste everything into the right columns, so you’re looking at about 5 hours of busywork. With this workflow, you can drop each handle or URL into Telegram in a few seconds and let it run. Even if you budget about 1 minute per profile to submit and sanity-check, you’ve turned half a day of copy-paste into a short batch you can do between calls.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram to receive handles, links, and voice notes.
- Google Sheets to store TikTok and LinkedIn rows.
- OpenAI API Key (get it from your OpenAI dashboard).
- Dumpling AI API Key (get it from your Dumpling AI account).
- Gmail to send the “done” notification email.
Skill level: Intermediate. You’ll connect accounts, paste a spreadsheet ID, and verify the column headers match.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A Telegram message triggers the run. You send a TikTok handle or a LinkedIn URL to your bot. If it’s text, it moves straight into processing.
Voice notes get transcribed. When the workflow detects audio, it pulls the voice file from Telegram and uses OpenAI Whisper to turn it into usable text.
An AI agent chooses the right scraper. The “Social Data Extraction Agent” looks at the content and decides if it should fetch TikTok profile metrics or LinkedIn profile details, then calls the matching Dumpling AI-powered HTTP request tool.
Google Sheets receives a clean row and Gmail confirms it. TikTok data goes to the TikTok tab with fields like followerCount and videoCount, while LinkedIn data goes to the LinkedIn tab with fields like location and recentPosts link. After the write succeeds, a completion email is sent so you don’t have to keep checking the sheet.
You can easily modify the fields you store to match your research goals (for example, add tags or a campaign name column). See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Telegram Trigger
Set up the trigger that listens for incoming Telegram messages (text or voice) and downloads media if present.
- Add Telegram Message Intake as your trigger.
- In Telegram Message Intake, set Updates to
messageand enable Download in Additional Fields. - Credential Required: Connect your telegramApi credentials in Telegram Message Intake.
Flowpast Branding is a visual sticky note and does not affect execution.
Step 2: Configure Voice/Text Routing
Route voice messages to transcription, and text messages directly to the agent pipeline.
- Open Voice Message Check and set the condition to check Exists for
{{ $json.message.voice }}. - Connect Telegram Message Intake → Voice Message Check.
- Ensure the True path from Voice Message Check connects to Retrieve Voice File, and the False path connects to Map Text Content.
Voice Message Check routes voice input to Retrieve Voice File and text input to Map Text Content, so only one branch runs per message.
Step 3: Set Up Audio Transcription and Text Mapping
Transcribe voice messages and normalize both voice and text into a shared Text field for the agent.
- In Retrieve Voice File, set Resource to
fileand File ID to{{ $json.message.voice.file_id }}. - Credential Required: Connect your telegramApi credentials in Retrieve Voice File.
- In Whisper Audio Transcription, set Resource to
audioand Operation totranscribe. - Credential Required: Connect your openAiApi credentials in Whisper Audio Transcription.
- In Map Voice Text, create the field Text with value
{{ $json.text }}. - In Map Text Content, create the field Text with value
{{ $json.message.text }}.
Step 4: Set Up Social Data Extraction Agent
Configure the AI agent to detect TikTok or LinkedIn requests, call scraping tools, and save results to Google Sheets.
- In Social Data Extraction Agent, set Text to
User message: {{ $json.Text }}and keep Prompt Type asdefine. - Attach OpenAI Chat Engine as the language model and set Model to
gpt-4.1-mini. - Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine.
- Connect both Map Voice Text and Map Text Content into Social Data Extraction Agent.
- Add the tools TikTok Profile Fetcher, TikTok Sheet Recorder, LinkedIn Profile Fetcher, and LinkedIn Sheet Recorder to Social Data Extraction Agent as AI tools.
- Credential Required: Connect your httpHeaderAuth credentials for TikTok Profile Fetcher and LinkedIn Profile Fetcher in the parent Social Data Extraction Agent tool setup.
- Credential Required: Connect your googleSheetsOAuth2Api credentials for TikTok Sheet Recorder and LinkedIn Sheet Recorder in the parent Social Data Extraction Agent tool setup.
Step 5: Configure Data Storage and Notifications
Define the scraping endpoints, map the output fields, and notify when extraction is complete.
- In TikTok Profile Fetcher, set URL to
https://app.dumplingai.com/api/v1/get-tiktok-profileand Method toPOST, with body parameter handle set to{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters0_Value', ``, 'string') }}. - In LinkedIn Profile Fetcher, set URL to
https://app.dumplingai.com/api/v1/linkedin/profileand Method toPOST, with body parameter url set to{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters0_Value', ``, 'string') }}. - In TikTok Sheet Recorder, set Operation to
append, Sheet Name togid=0(TikTok), and map the fields using the existing expressions (e.g.,{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Username', ``, 'string') }}). - In LinkedIn Sheet Recorder, set Operation to
append, Sheet Name to1956409676(LinkedIn), and map the fields using the existing expressions (e.g.,{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('name', ``, 'string') }}). - Set Document ID in both sheet recorder nodes to your Google Sheet (replace
[YOUR_ID]). - In Dispatch Completion Email, set Send To to
[YOUR_EMAIL], Subject toExtraction complete, and Message toExtraction complete. I have scraped the profile and successfully saved all data points to your spreadsheet. - Credential Required: Connect your gmailOAuth2 credentials in Dispatch Completion Email.
⚠️ Common Pitfall: Replace [YOUR_EMAIL] and [YOUR_ID] placeholders before testing, or the workflow will fail to send notifications or write to Sheets.
Step 6: Test and Activate Your Workflow
Validate the end-to-end flow with a test message, then activate for production use.
- Click Execute Workflow and send a Telegram message to your bot with either a TikTok username or a LinkedIn URL.
- For voice tests, send a voice note and confirm Whisper Audio Transcription produces text and that Map Voice Text passes it to Social Data Extraction Agent.
- Verify that the agent calls the appropriate tools and appends a new row in the matching Google Sheet.
- Confirm the email from Dispatch Completion Email arrives with subject
Extraction complete. - Toggle the workflow to Active to begin processing live Telegram messages.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials panel and confirm the connected Google account still has edit access to the spreadsheet.
- If you’re leaning on audio input, transcription and scraping times vary. If a downstream node receives an empty value, increase the wait time (or avoid sending very long voice notes).
- The AI Agent prompt determines routing behavior. If your team sends shorthand like “LI: john smith” or messy URLs, tighten the system prompt early or you’ll be cleaning misrouted runs later.
Frequently Asked Questions
About 30 minutes if your keys and Google Sheet are ready.
No. You’ll mainly connect accounts and paste in your spreadsheet ID.
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 API costs and Dumpling AI scraping 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, but you’ll want to do it deliberately. Add a new HTTP Request scraping tool for Instagram, add a matching Google Sheets recorder node (new tab, new columns), then update the Social Data Extraction Agent instructions so it always follows the same pattern: scrape first, then save. Common customizations include tagging rows with a campaign name, adding an “owner” column for assignment, and sending the results back to Telegram instead of email.
Usually it’s the bot token. Regenerate it in @BotFather and update it in the Telegram Message Intake node credentials. Also confirm the bot is added correctly and you’re messaging the right bot, not a personal account chat. If voice notes are failing but text works, the “Retrieve Voice File” node often needs permission to fetch files for that bot session.
Practically, hundreds per day for most small teams.
For profile scraping and AI routing, n8n is usually a better fit because it handles branching logic cleanly, supports self-hosting for high volume, and makes it easier to keep the “scrape then save” sequence consistent. Zapier or Make can work, but the moment you add voice transcription, conditional routing, and two different data schemas (TikTok vs. LinkedIn), it gets fiddly and can get expensive. n8n also gives you more control over retries and data shaping, which matters when you care about clean rows. If you’re only logging plain text into one sheet tab, the simpler tools can be fine. Talk to an automation expert if you want a quick recommendation based on your volume.
Once this is running, your list stops being a fragile spreadsheet and starts acting like a system. The workflow handles the repetitive capture so you can focus on decisions, outreach, and results.
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.