Google Sheets to Icypeas, cleaner email lists fast
Your email list looks fine in a spreadsheet. Then you hit send, and suddenly you’re dealing with bounces, angry deliverability alerts, and a campaign that never had a fair shot.
This is the kind of mess that slows down marketers first, but agency owners and solo operators feel it too. With Sheets email verification automation, you can push addresses from Google Sheets into Icypeas and get a cleaner, safer list without turning “list hygiene” into a weekly project.
Below is what the workflow does, what it fixes, and the practical setup details you’ll want to get right the first time.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Google Sheets to Icypeas, cleaner email lists fast
flowchart LR
subgraph sg0["When clicking "Execute Workflow" Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking 'Execute Workf..", pos: "b", h: 48 }
n1["<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/>Authenticates to your Icypea.."]
n2@{ icon: "mdi:database", form: "rounded", label: "Reads lastname,firstname and..", pos: "b", h: 48 }
n3["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Run bulk search (email-verif)"]
n0 --> n2
n1 --> n3
n2 --> n1
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 database
class n3 api
class n1 code
classDef customIcon fill:none,stroke:none
class n1,n3 customIcon
The Challenge: Email lists rot faster than you think
Email addresses go bad constantly. People change jobs, inboxes get disabled, domains expire, and “info@” addresses become spam traps. If your leads live in Google Sheets, it’s tempting to treat the sheet like it’s the truth. Honestly, it’s usually a mix of good emails, typos, role accounts, and old data. The painful part is what happens after you send: bounces spike, inbox placement drops, and now even your valid subscribers may stop seeing you.
It adds up fast. Here’s where the workflow earns its keep.
- Copying emails into a verification tool by hand turns into a repeating chore that people keep postponing.
- One bad upload can hurt deliverability, so you end up second-guessing every campaign list.
- Teams often “spot check” a few rows and assume the rest is fine, which is how bounce problems sneak in.
- When you’re sending for clients, a dirty list becomes your problem even if you didn’t collect it.
The Fix: Verify Google Sheets emails in Icypeas automatically
This n8n workflow gives you a repeatable way to verify email addresses from a Google Sheet using Icypeas. You start with a formatted sheet that contains the emails you want checked. When you manually run the workflow, it pulls the rows from Google Sheets, reshapes them into an array, and prepares the authentication signature Icypeas expects. Then n8n sends the batch to Icypeas via an HTTP request for verification. Instead of doing exports, uploads, and copy-paste cleanup, you get a consistent verification run you can repeat whenever the sheet changes.
The workflow begins with a manual click in n8n. From there, Google Sheets records are retrieved, transformed, and signed for Icypeas authentication. Finally, the HTTP request submits your verification batch to Icypeas so you can use the results to keep campaigns clean.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you collect leads into one Google Sheet all week, then verify before a Friday send. Manually, you might export the sheet (10 minutes), upload it to a verifier (10 minutes), wait, download results, and merge them back into Sheets (about 40 minutes). Call it about 1 hour per run, and that’s if nothing breaks. With this workflow, you click execute, n8n pulls the rows and submits them to Icypeas in one go, which usually feels like 5 minutes of effort plus whatever processing time Icypeas needs.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store leads and email addresses.
- Icypeas to verify emails and reduce bounces.
- Icypeas API Key, API Secret, and User ID (get them from your Icypeas account settings/API area).
Skill level: Beginner. You’ll connect accounts, paste credentials, and confirm your Sheet columns match what the workflow expects.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
Manual run from n8n. You click “execute,” which is perfect for pre-campaign checks or a weekly hygiene routine.
Pull rows from Google Sheets. n8n reads your selected Sheet and collects the email addresses (and any extra fields you keep alongside them) so you’re not exporting files or copying columns.
Create the Icypeas signature and payload. A small code step generates the required signature using your Icypeas credentials, then formats your Sheet data into the array Icypeas expects.
Send the verification batch to Icypeas. An HTTP request submits the batch, which you can then use to drive list cleanup and safer sending in your email platform.
You can easily modify which Sheet columns get sent to Icypeas or how you store results back in your system based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
This workflow starts manually so you can run an email verification batch on demand.
- Add the Manual Launch Trigger node as the trigger for the workflow.
- Leave default settings as-is since no parameters are required for Manual Launch Trigger.
- Confirm the execution flow begins with Manual Launch Trigger → Retrieve Sheet Records.
Step 2: Connect Google Sheets
Pull email records from your spreadsheet before sending them for verification.
- Add the Retrieve Sheet Records node after Manual Launch Trigger.
- Set Document to the spreadsheet you want to use and Sheet Name to the correct tab.
- Credential Required: Connect your Google Sheets credentials.
⚠️ Common Pitfall: If your sheet does not include an email column, the next step will not build the data array correctly.
Step 3: Set Up Processing with Code
Generate the Icypeas signature and prepare the request payload.
- Add the Generate Icypeas Signature node after Retrieve Sheet Records.
- In JavaScript Code, replace
[CONFIGURE_YOUR_API_KEY],[CONFIGURE_YOUR_API_KEY], and[YOUR_ID]with your Icypeas API key, secret, and user ID. - Keep the API values set to
https://app.icypeas.com/apiand/bulk-searchunless Icypeas changes their endpoint.
data from the email field and creates a signed request payload for the API.Step 4: Configure the Verification Request
Submit the prepared batch to Icypeas for verification.
- Add the Submit Verification Batch node after Generate Icypeas Signature.
- Set URL to
={{ $json.api.url }}and Method toPOST. - Enable Send Body and Send Headers.
- In Body Parameters, configure: task =
=email-verification, name =dernierTsfg, user =={{ $json.api.userId }}, data =={{ $json.data }}. - In Header Parameters, set X-ROCK-TIMESTAMP to
={{ $json.api.timestamp }}. - Credential Required: Connect your HTTP Header Auth credentials (Generic Credential Type).
Step 5: Test and Activate Your Workflow
Run a manual test to confirm that the batch submits correctly, then enable the workflow for production use.
- Click Execute Workflow and ensure Manual Launch Trigger starts the run.
- Confirm Retrieve Sheet Records outputs rows containing an
emailfield. - Verify Generate Icypeas Signature outputs
apianddataobjects. - Check Submit Verification Batch returns a successful API response from Icypeas.
- When satisfied, toggle the workflow to Active to use it in production.
Watch Out For
- Google Sheets access can fail if the connected Google account loses permissions. If it stops retrieving rows, check the n8n credential and the Sheet sharing settings first.
- If you later add batching or wait behavior, processing times will vary depending on Icypeas response speed. Increase the wait duration if the HTTP response hasn’t arrived yet and downstream nodes see empty data.
- The code step that generates the Icypeas signature is sensitive to small changes. If you paste credentials with extra spaces or change the payload format, the HTTP request may start returning auth errors.
Common Questions
About 30 minutes if your Sheet and Icypeas credentials are ready.
Yes. No coding is required on your side, since the workflow already includes the signature step and you mostly plug in credentials and pick the right Sheet.
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 Icypeas API usage based on how many emails you verify.
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.
You can adjust what gets sent by changing the Google Sheets “Retrieve Sheet Records” mapping and the payload built before “Submit Verification Batch.” Common tweaks include verifying only new rows, sending additional fields (like lead source), or writing the verification result back into the same Sheet for easy filtering.
Usually it’s a permissions issue or an expired Google auth token. Reconnect the Google Sheets credential in n8n, then confirm the Sheet is shared with that Google account. If the sheet tab name or document changed, update the node settings to match. Also check that the column you’re treating as “email” still exists and isn’t blank.
On self-hosted n8n, capacity mostly depends on your server and Icypeas limits rather than n8n itself.
Often, yes, especially if you want control over how authentication is generated and how batches are built. n8n makes it easier to include a code step for the Icypeas signature, and you can extend the workflow later with branching logic (like skipping already-verified rows) without paying per-path. Zapier or Make can still work if your flow stays simple, but custom auth patterns can get fiddly. If you want help choosing or tailoring it, Talk to an automation expert.
A clean list is quieter, cheaper, and easier to scale. Set this up once, run it whenever you need, and stop letting bad emails wreck good campaigns.
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.