🔓 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

Google Sheets + Telegram: LinkedIn lead openers

Lisa Granqvist Partner Workflow Automation Expert

You finally have a lead list… and then you lose a whole afternoon clicking LinkedIn profiles, hunting for something “personal,” and pasting notes back into a sheet. It’s slow. It’s inconsistent. And honestly, it’s the kind of work that drains your brain before the real outreach even starts.

If you run outbound as a Sales lead, you’ve felt this. A lead gen agency feels it at scale. And a solo consultant doing their own prospecting gets hit the hardest. This LinkedIn lead openers automation turns a plain spreadsheet into outreach-ready openers inside Google Sheets, then pings you in Telegram when it’s done.

You’ll see exactly what the workflow does, what you need to connect, and where you can tweak it for your tone and rules.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Google Sheets + Telegram: LinkedIn lead openers

Why This Matters: Personalized Outreach That Doesn’t Kill Your Day

Personalization is one of those outbound “best practices” that sounds easy until you’re doing it for 50 leads. You open LinkedIn, scan a profile, scroll for a recent post, second-guess whether it’s too old, then try to write a line that doesn’t feel like a template. After a few profiles, your standards slip. You start copy-pasting a safe opener, which defeats the point. And if you’re doing this for clients, you also have to prove the work happened, which usually means messy notes and half-filled columns.

It adds up fast. Here’s where it usually breaks down.

  • Each lead takes “just a few minutes,” until you multiply it by 100 and lose a full workday.
  • It’s easy to miss obvious signals because you’re rushing, so the opener ends up generic.
  • Teams can’t standardize quality, because everyone personalizes differently and nobody has time to review everything.
  • Context lives in browser tabs, not in the sheet where your outreach actually happens.

What You’ll Build: Sheet-to-Opener Enrichment With a Telegram Wrap-Up

This workflow watches a Google Drive folder for a new lead spreadsheet. When you drop one in, it downloads the file, parses each row, and processes leads in batches so it doesn’t fall over when the list is big. For every lead, it attempts to pull recent LinkedIn activity via Apify. If it finds a post, an OpenAI check decides if that post is recent enough (the template uses “from the current year”). When it’s recent, an AI Agent generates one natural opener referencing that post. If not, the workflow falls back to profile details like headline, about section, and current role, then writes a single opening line back into Google Sheets by matching the email. After the batch finishes, you get a Telegram message that confirms completion and links you to the sheet.

The workflow starts with a file upload trigger in Google Drive. From there, it enriches each row using Apify and an LLM, then updates your original Google Sheet. Finally, Telegram gives you a simple “done” summary so you are not babysitting runs.

What You’re Building

Expected Results

Say you enrich 50 leads before a campaign. Manually, if you spend about 5 minutes per profile to find a signal and write one good line, that’s roughly 4 hours of focused work (and it’s rarely focused). With this workflow, you upload the sheet in under 2 minutes, then let it run while you do something else. Even if processing takes about an hour in the background due to scraping and AI, your “hands-on” time drops to basically nothing, and the openers land directly in the sheet.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Drive to watch the upload folder.
  • Google Sheets to write the opener into your lead list.
  • Apify token (get it from your Apify account settings) for LinkedIn scrapers.
  • OpenAI API key (get it from the OpenAI dashboard) for the post recency check.
  • Anthropic API key (get it from the Anthropic console) for the opener-writing agent (or swap to OpenAI if you prefer).
  • Telegram bot token + chat ID (create a bot in BotFather, then grab your chat ID) for completion messages.

Skill level: Intermediate. You won’t write code, but you will map columns, add credentials, and replace a few placeholders.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A spreadsheet upload kicks it off. The Google Drive trigger watches one folder. The moment a new file appears, n8n downloads it so the workflow can read the rows.

Your lead rows get normalized. The spreadsheet is parsed, then a mapping step turns your headers (first name, company, LinkedIn URL, email) into consistent fields the workflow can rely on. If your columns don’t match, this is where you fix it.

LinkedIn signals are fetched, then judged. For each lead, an Apify request tries to grab a latest post. The workflow builds the current date, then uses an OpenAI “year check” to decide if the post counts as recent. If yes, the outreach agent writes a one-liner based on that post. If no, the workflow pulls profile data instead and writes an opener from that.

The opener goes back into Google Sheets and you get notified. The workflow updates the sheet by matching on email (so the right row gets updated), then continues until the batch is finished. At the end, Telegram sends a short summary with the sheet name and link.

You can easily modify the recency rule to use “last 30 days” instead of “current year” based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Drive File Created Trigger

Set up the workflow to start when a new file appears in a specific Google Drive folder.

  1. Add and open Drive File Created Trigger.
  2. Set Event to fileCreated.
  3. Set Trigger On to specificFolder and choose the folder in Folder To Watch.
  4. Credential Required: Connect your googleDriveOAuth2Api credentials.

Step 2: Connect Google Drive and Parse the Sheet

Download the newly created file and parse it into structured rows.

  1. Open Drive File Downloader and set Operation to download.
  2. Set File ID to {{ $json.id }}.
  3. Credential Required: Connect your googleDriveOAuth2Api credentials.
  4. Open Spreadsheet Parse and enable Header Row so field names match column headers.

Step 3: Map Lead Fields and Iterate Through Rows

Transform the spreadsheet rows into lead objects and process them in batches.

  1. Open Map Lead Fields Script and confirm the code maps columns like First Name, Last Name, and Person Linkedin Url into JSON fields.
  2. Verify that the output uses firstName, lastName, company, linkedinUrl, email, and website.
  3. Open Batch Item Iterator to process one lead at a time.

Batch Item Iterator outputs to both Finalize Batch Summary and Fetch LinkedIn Post in parallel.

Step 4: Fetch LinkedIn Data and Check Post Recency

Pull LinkedIn post data, build a current date, and decide whether to use recent-post personalization.

  1. Open Fetch LinkedIn Post and set URL to https://api.apify.com/v2/acts/apimaestro~linkedin-profile-posts/run-sync-get-dataset-items?token=[CONFIGURE_YOUR_TOKEN].
  2. Set the JSON body to { "limit": 1, "username": "{{ $json.linkedinUrl }}" } and include the Authorization header with your Apify token.
  3. Open Current Date Builder to produce the current date used by the AI check.
  4. Open OpenAI Post Year Check and ensure JSON Output is enabled.
  5. Credential Required: Connect your openAiApi credentials.
  6. Open Recent Post Conditional and confirm the condition uses {{ $json.message.content.result }} equals true.

⚠️ Common Pitfall: The Apify token appears in both Fetch LinkedIn Post and Retrieve LinkedIn Profile Data. Replace [CONFIGURE_YOUR_TOKEN] in both nodes or requests will fail.

Step 5: Configure AI Personalization Paths

Generate personalization based on recent LinkedIn posts or a fallback profile-based message.

  1. Open Outreach Sentence Agent and verify the prompt uses {{ $('Fetch LinkedIn Post').item.json.text }} for the post content.
  2. Ensure Anthropic Chat Engine B is connected as the language model for Outreach Sentence Agent and Credential Required: Connect your anthropicApi credentials on Anthropic Chat Engine B.
  3. Open Retrieve LinkedIn Profile Data and set the JSON body to { "profileUrls": ["{{ $('Batch Item Iterator').item.json.linkedinUrl }}"] }.
  4. Open Fallback Personalization Agent and confirm the prompt uses {{ $json.firstName }} and {{ $json.lastName }}.
  5. Ensure Anthropic Chat Engine A is connected as the language model for Fallback Personalization Agent and Credential Required: Connect your anthropicApi credentials on Anthropic Chat Engine A.

If you want a stricter recency rule, update the system prompt in OpenAI Post Year Check to reflect your target year or timeframe.

Step 6: Assemble and Write Personalization Back to the Sheet

Package the AI output and update the matching row in Google Sheets.

  1. Open Assemble Personalization and set personalization to {{ $json.output }}.
  2. Set sheetId to {{ $('Drive File Created Trigger').first().json.id }} and FileName to {{ $('Drive File Created Trigger').first().json.name }}.
  3. Open Update Sheet Personalization and set Operation to update.
  4. Set Document ID to {{ $json.sheetId }} and Sheet Name to Sheet1.
  5. In Columns, map email to {{ $('Map Lead Fields Script').item.json.email }} and personalization to {{ $json.personalization }}.
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials.

Step 7: Summarize the Batch and Send Telegram Notifications

Create a batch summary and notify your Telegram channel with results.

  1. Open Finalize Batch Summary and confirm it builds a message using Drive File Created Trigger data.
  2. Open Send Telegram Summary and set Text to {{ $json.message }}.
  3. Replace Chat ID with your Telegram ID (currently [YOUR_ID]).
  4. Credential Required: Connect your telegramApi credentials.

Step 8: Test and Activate Your Workflow

Validate end-to-end processing and switch the workflow on for live use.

  1. Manually upload a test spreadsheet to the folder watched by Drive File Created Trigger.
  2. Run the workflow and confirm Update Sheet Personalization writes to the personalization column for matching email.
  3. Verify Send Telegram Summary delivers a message containing the sheet name and URL.
  4. When successful, click Activate to enable continuous processing.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Drive/Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials panel and re-auth the Google connection 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.
  • Apify can rate-limit or return partial data on some profiles. Confirm your Apify token is correct in the HTTP Request headers, then test the scraper run in Apify to see what it returns for a sample LinkedIn URL.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Quick Answers

What’s the setup time for this LinkedIn lead openers automation?

About 30 minutes if your credentials and sheet headers are ready.

Is coding required for this LinkedIn lead openers automation?

No. You’ll mostly connect accounts and map your spreadsheet columns once. The only “technical” part is replacing placeholder tokens in the Apify and Telegram steps.

Is n8n free to use for this LinkedIn lead openers 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 LLM API costs plus Apify scraping usage (for many teams, it’s a few dollars per campaign run).

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 modify this LinkedIn lead openers workflow for different use cases?

Yes, and you probably should. You can change the “recency” logic in the OpenAI Post Year Check node, swap the AI model used by the Outreach Sentence Agent, or replace the fallback data source by editing the Retrieve LinkedIn Profile Data request. Common tweaks include writing two opener options instead of one, adding a “do-not-contact” rule, or pushing results into a CRM instead of Google Sheets.

Why is my Google Sheets connection failing in this workflow?

Usually it’s permissions. Reconnect Google in n8n, then confirm the Google account has access to the target Drive folder and the sheet. Also check that the workflow is updating by a stable key (email); if your sheet has blanks or duplicates in the Email column, the update step can fail or hit the wrong row. If it fails only on some runs, Google rate limits can be the culprit, so batching more slowly helps.

What volume can this LinkedIn lead openers workflow process?

Most small teams run lists of 50–500 leads per upload without changing much. On n8n Cloud, your practical limit is monthly executions and how long each run takes; self-hosting removes execution caps but you’re still bound by Apify and AI rate limits. If you plan to process thousands, run smaller batches and schedule uploads so you don’t spike scraping requests all at once.

Is this LinkedIn lead openers automation better than using Zapier or Make?

Often, yes, because this flow needs branching logic (post vs. profile), batching, and multiple AI calls, and those get clunky or expensive in simpler tools. n8n also lets you self-host, which matters if you run big enrichment jobs. Zapier or Make can still work if you only enrich a tiny list and can accept less control. The real decision is: do you want a workflow you can tune, or a quick connector you outgrow in a month? Talk to an automation expert if you’re not sure which fits.

Once this is running, your spreadsheet becomes the system: upload, enrich, send. The workflow handles the repetitive digging so you can spend your time actually starting conversations.

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