AutomationMart
Home/Browse/Tracking cold email engagement metrics using Smartlead and Google Sheets
n8n

Tracking cold email engagement metrics using Smartlead and Google Sheets

n8nn8n6 modulesv1.0
HubSpotGoogle SheetsSalesforce

Workflow: Track Email Campaign Engagement Analytics with Smartlead and Google Sheets Automatically fetch lead-level email engagement analytics (opens, clicks, replies, unsubscribes, bounces) from Smartlead and update them in Google Sheets. Use this to keep a single, always-fresh source of truth for campaign performance and sequence effectiveness. --- Summary Pull Smartlead campaign analytics on a schedule and write them to a Google Sheet (append or update). Works with pagination, avoids duplic

At a glance

Tracking cold email engagement metrics using Smartlead and Google Sheets is a ready-made n8n workflow you import as a workflow JSON file — no build required. It connects HubSpot, Google Sheets, Salesforce. It's free to download. Follow the 5-step import below to go live in minutes.

Platform
n8n
Connects
HubSpot, Google Sheets, Salesforce
Modules
6
Price
Free
Version
v1.0
Tracking cold email engagement metrics using Smartlead and Google Sheets workflow diagram

About this workflow

Workflow: Track Email Campaign Engagement Analytics with Smartlead and Google Sheets Automatically fetch lead-level email engagement analytics (opens, clicks, replies, unsubscribes, bounces) from Smartlead and update them in Google Sheets. Use this to keep a single, always-fresh source of truth for campaign performance and sequence effectiveness. --- Summary Pull Smartlead campaign analytics on a schedule and write them to a Google Sheet (append or update). Works with pagination, avoids duplicates via a stable key, and is ready for dashboards, pivots, or BI tools. --- What This Workflow Does - Collects campaign stats from Smartlead (per-lead, per-sequence). - Handles pagination safely (offset/limit). - Writes to Google Sheets using appendOrUpdate with a matching column to prevent duplicates. - Can run on a schedule for near real-time analytics. --- Node Structure Overview | Step | Node | Purpose | |---|---|---| | 1️⃣ | Schedule Trigger | Starts the workflow on a cadence (e.g., hourly) | | 2️⃣ | Code (Pagination Generator) | Emits {offset, limit} pairs (e.g., 0..9900, step 100) | | 3️⃣ | Split in Batches | Sends each pagination pair to the API sequentially | | 4️⃣ | HTTP Request (Smartlead) | GET /campaigns/{campaignid}/statistics with offset/limit | | 5️⃣ | Split Out | Turns the API data[] array into one item per lead record | | 6️⃣ | Google Sheets (appendOrUpdate) | Upserts rows by statsid into EngagedLeads tab | | 7️⃣ | Loop Back | Continues until all batches have been processed | --- Step-by-Step Setup 1. Prerequisites - Smartlead account + API key with access to campaign statistics. - Google account + Google Sheets OAuth connected in n8n. 2. Create the Google Sheet - Spreadsheet name: Email Analytics (can be anything). - Tab name: EngagedLeads. - Add these exact headers (first row): 3. Configure the Schedule Trigger - Choose a frequency (e.g., every 2 hours). - If you’re testing, set a single run or a short cadence. 4. Configure the Code Node (Pagination) - Emit N items like: - 100 is a good default limit. For up to 10,000 records, generate 100 offsets. 5. Configure the Smartlead API Node - Method: GET - URL: - Query parameters: - apikey = <YOURSMARTLEADAPIKEY> - offset = {{ $json.offset }} - limit = {{ $json.limit }} - Map response to JSON. 6. Split Out the Response - Use a Split Out (or similar) to iterate over data[] so each lead record is one item. 7. Google Sheets Node (Append or Update) - Operation: appendOrUpdate. - Document: Your Email Analytics sheet. - Sheet/Tab: EngagedLeads. - Matching Column: statsid. - Map fields from Smartlead response to sheet columns: - leadname ← lead name (or composed from first/last if provided) - leademail ← email - leadcategory ← category/type if available - sequencenumber ← sequence step number - statsid ← stable identifier (e.g., Smartlead statsid or message id) - emailsubject ← subject - senttime, opentime, clicktime, replytime ← timestamps - opencount, clickcount ← integers - isunsubscribed, isbounced ← booleans - If the same statsid arrives again, the row is updated, not appended. 8. Test and Activate - Run once manually to verify API and sheet mapping. - Check the sheet for new/updated rows. - Activate the workflow to run automatically. --- Smartlead API Reference (Used by This Workflow) - Endpoint GET - Required query parameters - apikey (string) - offset (number) - limit (number) - Typical response (trimmed example) Google Sheets Structure (Recommended) Spreadsheet: Email Analytics Tab: EngagedLeads Columns:leadname, leademail, leadcategory, sequencenumber, statsid, emailsubject, senttime, opentime, clicktime, replytime, opencount, clickcount, isunsubscribed, isbounced Matching Column: statsid (prevents duplicates and allows updates) Customization Tips - Multiple Campaigns Duplicate the workflow and set a different {campaignid} and/or write results to a separate tab in your Google Sheet. - Batch Size Increase or decrease the limit value (e.g., 200) in your Code node if you want fewer or more API calls. - Filtering Add a Code or IF node to skip rows where isbounced = true or isunsubscribed = true. - Dashboards Create a new tab named Dashboard in Google Sheets and visualize your data using built-in charts or connect it to Looker Studio for advanced visualization. - Enrichment Join this dataset with your CRM data (e.g., HubSpot or Salesforce) using leademail as a key to gain deeper customer insights. --- Security and Publishing Notes - Do not hardcode your Smartlead API key in the workflow export. Use n8n credentials or environment variables instead. - When sharing the template publicly, replace sensitive values with placeholders like: <YOURSMARTLEADAPIKEY> and <YOURGOOGLESHEETID>. - Keep your Google Sheet private unless you intentionally want to share it publicly. --- Troubleshooting - No rows in Sheets Verify that the API response includes data[], confirm that the Split Out node is configured correctly, and check field mappings. - Duplicates Ensure the Google Sheets node has its matching column set to statsid. - Rate Limits Increase the schedule interval, add a short Wait node between batches, or reduce the limit size. - Mapping Errors Ensure that column names in Sheets exactly match your field mappings — they are case-sensitive. - Timezone Differences Smartlead timestamps are in UTC. Convert them downstream if your local timezone is different. --- Example Use Case Run this workflow hourly to maintain a live, company-wide Email Engagement Sheet. - Sales teams can monitor replies and active leads. - Marketing teams can track open and click rates by sequence. - Operations can export monthly summaries — no Smartlead login required. --- Tags Smartlead EmailMarketing Automation GoogleSheets Analytics CRM MarketingOps

n8n

How to import this n8n workflow

  1. 1

    Download the workflow JSON file after purchase.

  2. 2

    Open n8n → click the menu → Import from File.

  3. 3

    Select the downloaded JSON and import.

  4. 4

    Set up credentials for each node that requires them.

  5. 5

    Click Execute Workflow to test, then activate.

Setup guide

Setup guide included

Purchase to unlock the full step-by-step guide

Related N8n workflows

Send replies to Telegram messages using Google Docs, ChatGPT and Google Sheets for storage

Instantly respond to Telegram messages using Google Docs and ChatGPT. Save interactions in Google Sheets for easy tracking and management.

Free

Create a new issue in Redmine from a new submission in Google Forms

This template regularly checks for new submissions in Google Forms and uses the retrieved information to create new issues in Redmine. Note that your Google Form needs to store the responses into a Google Sheets spreadsheet as described [here.](https://support.google.com/docs/answer/139706?hl=en) The information collected in your form needs to have the same structure as in [this sample spreadsheet](https://docs.google.com/spreadsheets/d/1Nfuw9F5fgVD8PZVXpmvDpfIybBeoXavqkd-irhBTxpU/edit?usp=sha

Free

When a contact is updated on Mautic a new Google Sheets row is added

Every time a new contact is updated on Mautic, Make will automatically add a new row to a Google Sheet. This example uses the sheet [in this link](https://docs.google.com/spreadsheets/d/1U5Y_YuhlwkmssgLdtVX7_DQNYvM9l-8ftMdoVPhp2GA/edit#gid=0).

Free

Verify a phone number from a Google Sheets row using Veriphone

Every time a phone number is added to a Google Sheets spreadsheet as a new row, Make will automatically verify it in Veriphone and update the row with data of your choice. The template uses [this spreadsheet](https://docs.google.com/spreadsheets/d/18QXxDXbnheSLVJANN_QTjamN8E4gfuHO5VDWxg6OHMY/edit?usp=sharing).

Free

Generate and store AI images with Sora GPT, Google Drive and Sheets

Automation Flow: Image to Image Using GPT Sora This flow automates the process of generating images using a provided prompt and reference image via the Sora GPT Image API from RapidAPI. The generated images are stored in Google Drive, and details are logged in Google Sheets. Nodes Overview 1. On Form Submission - Type: n8n-nodes-base.formTrigger - Description: This node triggers when a user submi

Free

Add a new HubSpot CRM contact to a Thanks.io mailing list

Every time a new HubSpot CRM contact is created, Make will automatically add a recipient to a Thanks.io mailing list.

Free

Use skills In n8n agent node

This template gives you a framework to use skills in any n8n agent. You can use this as a starting point and add any other tools or patterns needed for your use case. What are “skills”? Skills are a context management standard created by Anthropic for use in Claude code. Basically, instead of having a HUGE system prompt, skills split that into lots of small, structured instruction files that tell an agent how to do a specific kind of task. Instead of stuffing a massive prompt full of rul

Free

AI-powered WhatsApp chatbot for text, voice, images, and PDF with RAG

Who is this for? This template is designed for internal support teams, product specialists, and knowledge managers in technology companies who want to automate ingestion of product documentation and enable AI-driven, retrieval-augmented question answering via WhatsApp. What problem is this workflow solving? Support agents often spend too much time manually searching through lengthy documentation, leading to inconsistent or delayed answers. This solution automates importing, chunking, an

Free

Reviews

No reviews yet

Be the first to buy and share your experience.

Leave a review

Sign in to share your experience with this workflow.

Log in to review
Free
No ratings yet

Create a free account to purchase workflows.

  • JSON blueprint — instant download
  • Setup guide PDF included
  • 5 downloads · valid 30 days
  • Works with n8n

Need help setting this up?

Book a 3-hour live setup session with an Agility consultant.

₹2,499/ session
3 hrs · video call
  • Configure live on Google Meet / Zoom
  • Free follow-up if workflow has defects
  • Platform expert assigned to you
Book installation session
Free