π£ Generate cold email icebreakers and subject lines with Google Sheets and OpenAI
β‘ 73 views Β· π£ Lead Generation & Enrichment
Description
Email List Personalization - Icebreaker & Subject Line Generator
Reads an enriched lead list from Google Sheets, generates a personalized icebreaker + subject line for each lead using OpenAI, and writes results back to the same sheet β ready for your email sequencer.
Who is this for?
SDRs, founders, and agency owners running cold outbound who want personalized first lines without spending 2-3 minutes per lead on manual research. Sits between your Apollo / Sales Nav export and Instantly / Smartlead / Lemlist.
What problem does this solve?
Generic cold emails get ignored. Writing unique icebreakers for 200+ leads/day is not realistic by hand. This workflow does it at ~$0.002/lead with GPT-4.1-mini β spartan, human-sounding copy that references real prospect details.
How it works
- Read Lead Sheets from Google Sheets (enriched with LinkedIn data)
- Filter Empty Rows rows where
icebreakersorsubjectLineis empty (safe to re-run) - Limit To 200 Leads batch to 200 leads per run
- Process One-By-One with an IF safety check before each API call
- Genrates Icebreaker a JSON response with few-shot examples locking the tone:
icebreakerβ spartan one-liner referencing their company/role/industrysubjectLineβ personalized with name + relevant hookshortenedCompanyNameβ strips βAgencyβ, βInc.β, βLLCβ for natural copyverdictβtruefor real people,falsefor company pages (filter before sending)
- Write Result To Sheet to the same row via
row_numbermatch key - Rate Limit Delay between calls to avoid throttling
Setup
- Google Sheets β Connect OAuth2 in both sheet nodes. Point to your lead spreadsheet.
- OpenAI β Connect API key. Default: GPT-4.1-mini. Swap to GPT-4o for premium campaigns.
- Sheet columns needed:
first_name,last_name,email,job_title,company,linkedin_industry,location,summary,linkedin_description,linkedin_specialities,linkedin_company_employee_count,linkedin_founded_year,icebreakers,subjectLine,row_number - Customize the prompt β Swap the few-shot examples in the OpenAI node to match your voice and offer.
- Test first β Set Limit to 5, run manually, review output, then scale.
Customization tips
- Trigger β Replace Manual Trigger with Schedule or Google Drive Trigger for automation
- Batch size β Adjust the Limit node to match your daily send volume
- Model β GPT-4.1-mini ($0.002/lead) vs GPT-4o ($0.01/lead)
Built by Devon Toh
π Nodes Used
Google Sheets, Filter, OpenAI
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File