🔓 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 to Instantly, cleaner leads uploaded

Lisa Granqvist Partner Workflow Automation Expert

Your lead sheet looks “fine” until you try to launch. Then you notice the mess: missing first names, weird casing, junk emails, and zero personalization. Suddenly your Instantly campaign is stalled, and you’re back to manual cleanup.

This Instantly lead automation hits growth marketers first because launches are deadline-driven. But agency owners running client outreach and founders doing scrappy cold email feel it too. The outcome is simple: cleaner leads get uploaded to Instantly with consistent names, basic email checks, and an AI-generated icebreaker you can drop into your sequence.

Below, you’ll see exactly what the workflow does, how the pieces fit together, and what you need to run it reliably week after week.

How This Automation Works

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

n8n Workflow Template: Google Sheets to Instantly, cleaner leads uploaded

Why This Matters: Dirty Leads Kill Cold Email Performance

Scraped lead lists are rarely “campaign-ready.” Names come in as ALL CAPS, “N/A,” or mashed into a single field. Emails look valid until they bounce, which can hurt deliverability and waste your sending capacity. And then there’s the personalization problem: you know you should add an opener, but writing even two lines per lead turns into a late-night copywriting marathon. The worst part is the context switching. You clean data, validate emails, draft openers, then upload, then double-check again because you don’t trust the sheet.

The friction compounds. Here’s where it breaks down.

  • You end up reformatting names by hand because your sheet isn’t consistent from one scrape to the next.
  • Bad or missing emails slip through, and you only discover them after a campaign starts bouncing.
  • Personalized openers don’t happen at scale, so your sequence reads generic even when the lead data is rich.
  • Uploading to Instantly becomes a stop-and-go process, which delays launches and makes results harder to compare.

What You’ll Build: A Clean-Then-Upload Lead Pipeline for Instantly

This workflow starts with a Google Sheet full of leads from your scraper or enrichment tool. When you run it, n8n pulls rows from the sheet and checks that the basics are present (first name, last name, summary, and email). Leads that don’t meet your minimum bar get flagged back in the sheet so you can fix them later instead of pushing junk into your campaign. For leads that pass, OpenAI standardizes the person’s name and generates a short, personalized icebreaker using the summary and any context your sheet includes (company details, job history, achievements). Finally, the workflow sends the cleaned lead to your selected Instantly campaign via the Instantly API, storing the icebreaker as a custom variable so it’s ready inside your sequence. After the batch finishes, you get a Telegram message confirming the sync.

The workflow starts in n8n with a manual launch, so you decide when a batch is ready. From there, it validates and prepares each record, generates the AI text, and uploads the lead into Instantly. The final touch is a completion alert, which means you’re not babysitting the run.

What You’re Building

Expected Results

Say you load 100 scraped leads into a sheet each morning. Manually, you might spend about 1 minute per lead fixing names, another minute checking emails, and maybe 2 minutes writing any kind of opener, which is roughly 6 hours before you even upload. With this workflow, you kick off the run in a minute or two, then let n8n process the batch in the background while OpenAI generates icebreakers and Instantly receives the leads. You still review a few samples, but you’re not doing 100 tiny edits anymore.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for your scraped/enriched lead rows.
  • Instantly.ai to receive leads into a campaign.
  • OpenAI API key (get it from the OpenAI API dashboard).

Skill level: Beginner. You’ll mostly connect accounts, paste API keys, and map a few fields.

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

Step by Step

Manual launch from n8n. You click run when a batch in Google Sheets is ready, which keeps you in control and avoids accidental sends from half-finished data.

Google Sheets rows get pulled and checked. n8n retrieves the rows and uses an “if” check to confirm required fields exist (first name, last name, summary, email). If something is missing, the workflow updates the sheet record so you can spot the problem quickly.

Leads are processed in batches. The workflow loops through entries (split in batches), applies an output limit, then sends each valid record through OpenAI to normalize the name and write an icebreaker that matches your lead’s context.

Instantly gets the final lead payload. An HTTP request pushes the cleaned fields into your selected Instantly campaign, including the icebreaker stored as a custom variable. When the run completes, Telegram sends a simple “done” message.

You can easily modify the required fields check to be stricter (or looser) based on your list quality. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow is launched manually, which is ideal for controlled lead enrichment runs.

  1. Add the Manual Launch Start node as your trigger.
  2. Keep all default settings in Manual Launch Start (no parameters required).
  3. Optionally keep Flowpast Branding as a sticky note for documentation and team context.

Step 2: Connect Google Sheets

Retrieve and update lead data in Google Sheets to drive the rest of the automation.

  1. Open Retrieve Sheet Rows and set Document to [YOUR_ID] and Sheet to Sheet3.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Sheet Rows.
  3. Open Update Sheet Records and confirm Operation is set to appendOrUpdate.
  4. In Update Sheet Records, confirm Document is [YOUR_ID] and Sheet is Law firm test sheet.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Update Sheet Records.

Tip: Ensure your sheet contains firstName, lastName, summary, and email columns to pass validation.

Step 3: Set Up Validation and Batching

Validate required fields, update records, and iterate through leads in batches.

  1. In Validate Required Fields, confirm the five conditions use the expressions ={{ $json.firstName }}, ={{ $json.lastName }}, ={{ $json.summary }}, and ={{ $json.email }}, plus the regex ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$.
  2. Confirm Validate Required Fields connects to Update Sheet Records on the “true” path.
  3. Configure Iterate Through Entries to process items with default settings (no batch size override is required).
  4. Note the execution flow: Update Sheet RecordsIterate Through Entries.
  5. Iterate Through Entries outputs to both Apply Output Limit and Normalize Person Names in parallel.

⚠️ Common Pitfall: If your Google Sheet has different column names, the validation and mapping in Update Sheet Records will fail. Align sheet headers with the mapped fields.

Step 4: Set Up AI Enrichment and Lead Delivery

Normalize names, generate icebreakers, and send leads to Instantly.

  1. In Normalize Person Names, confirm Model is gpt-4o-mini and JSON Output is enabled.
  2. Credential Required: Connect your openAiApi credentials in Normalize Person Names.
  3. In Generate Icebreaker Text, confirm Model is chatgpt-4o-latest and JSON Output is enabled.
  4. Verify the message variables reference upstream data, such as {{ $json.message.content.firstName }} and {{ $('Update Sheet Records').item.json.summary }}.
  5. Credential Required: Connect your openAiApi credentials in Generate Icebreaker Text.
  6. In Send Leads to Instantly, set URL to https://api.instantly.ai/api/v2/leads and Method to POST.
  7. Set Body to the JSON string with expressions, including {{ $('Update Sheet Records').item.json.email }} and {{ $json.message.content.icebreaker }}.
  8. Replace [YOUR INSTANTLY CAMPAIGN ID HERE] in the body with your real Instantly campaign ID.

⚠️ Common Pitfall: Send Leads to Instantly does not have credentials configured. You must add the required Instantly API authentication header (e.g., API key or bearer token) in the node’s header parameters.

Step 5: Configure Completion Alert and Output Limiting

Limit output volume and send a Telegram notification when the workflow finishes.

  1. Keep Apply Output Limit connected after Iterate Through Entries to control final output volume.
  2. In Telegram Completion Alert, set Text to Hello Master, Your n8n Instantly add leads From EMAIL SCRAPE Workflow is completed..
  3. Credential Required: Connect your telegramApi credentials in Telegram Completion Alert.
  4. Confirm the execution flow: Apply Output LimitTelegram Completion Alert.

Step 6: Test and Activate Your Workflow

Run a manual test to confirm data flows from Sheets through AI enrichment and into Instantly, with a completion alert.

  1. Click Execute Workflow and use Manual Launch Start to run a test.
  2. Verify Retrieve Sheet Rows returns rows and that Validate Required Fields routes only valid entries.
  3. Confirm Normalize Person Names and Generate Icebreaker Text return JSON content for each lead.
  4. Check that Send Leads to Instantly returns a successful API response and that leads appear in your Instantly campaign.
  5. Ensure Telegram Completion Alert sends a completion message after the batch finishes.
  6. Once verified, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Sheets credentials can expire or lack edit access. If updates aren’t writing back, check the Google connection in n8n and confirm the spreadsheet is shared with the connected 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

What’s the setup time for this Instantly lead automation?

About 30 minutes if your Google Sheets and Instantly accounts are ready.

Is coding required for this Instantly lead automation?

No. You’ll connect credentials and map a few fields between Google Sheets, OpenAI, and Instantly.

Is n8n free to use for this Instantly lead automation 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 API costs, which are usually a few cents per lead depending on your prompt size.

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 Instantly lead automation workflow for different use cases?

Yes, and you probably should. You can change what “valid” means by editing the Validate Required Fields check, then adjust what gets cleaned in Normalize Person Names. Common customizations include generating different icebreaker styles (formal vs. casual), skipping OpenAI for certain lead sources, or mapping extra custom fields into Instantly so your sequence can branch by persona.

Why is my Instantly.ai connection failing in this workflow?

Usually it’s an expired or incorrect Instantly API key in the HTTP Request node. Double-check the campaign ID you’re pushing into, because a valid key can still fail if the endpoint payload doesn’t match that campaign’s expected fields. If you’re sending big batches, rate limits can also show up as intermittent failures, so try smaller batches via the Split in Batches node.

What volume can this Instantly lead automation workflow process?

On a typical n8n Cloud plan you can run thousands of executions a month, and self-hosting removes the execution cap (your server becomes the limit). In practice, most teams process leads in batches of 50–500 so OpenAI and Instantly stay stable and you can QA a sample before sending.

Is this Instantly lead automation better than using Zapier or Make?

Often, yes. n8n makes batch processing and branching logic easier, which matters here because you’re filtering leads, looping over rows, and generating AI text per record. It also gives you a self-host option when volume grows, so you’re not paying per tiny step. Zapier or Make can still be fine for a very small list, especially if you only want “new row → create lead” with no AI. But once you add validation, name normalization, and icebreakers, the workflow gets complex fast. Talk to an automation expert if you want a quick recommendation for your exact setup.

Clean lists and decent personalization shouldn’t require a full-time cleanup session. Set this up once, run it when your sheet is ready, and keep your Instantly campaigns moving.

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