Generate personalized cold email icebreakers with GPT-4 Mini, Apify & LinkedIn
This n8n workflow scrapes LinkedIn data for your leads, feeds it into a GPT-4 AI agent, and generates laser-targeted, personalized icebreakers you can drop into your cold email campaigns.
It automates the personalization process at scale — saving you hours of research while sounding human and thoughtful.
Step-by-Step Setup (Beginner Friendly)
Step 1: Prepare Your Leads (Input Sheet)
- Get your lead list based on your industry and niche from Apollo (free)
- Copy the entire link
- Go to Apify and use this Apollo Scraper to scrape the leads.
- Download the result as CSV and upload the CSV to Google Sheets
- Add a column at the end of the Sheet. Name this column as "status". Mark the entire column (every row) as "un-enriched" (this is important)
- Connect your Google Sheets account to n8n
- The workflow will pull leads from this sheet where status = un-enriched
Step 2: Set Your Credentials
- Google Sheets: Connect your account to n8n using OAuth2
- OpenAI: Add your OpenAI API credentials
- Apify: Visit Apify Console to get your Apify API key
- Use this Apify LinkedIn Profile Scraper and copy the actorID --> get it from the URL : https://console.apify.com/:actorID/input
- Paste both Apify API Key and ActorID into the “Set Apify Tokens” node
Step 3: Customize the AI Agent
- In the node “Generate Personalized Icebreaker”, adjust the system prompt.
- Update it with your own niche, offer, tone, and insights
- Keep the JSON output format exactly as shown. The rest of the workflow depends on it
Step 4: Run the Workflow
- Click "Execute Workflow"
- The system will: -- Pull all unenriched leads -- Filter out entries without email -- Scrape LinkedIn profiles using Apify -- Use GPT-4 to write a short, personalized icebreaker -- Save the result to a separate “Enriched” sheet -- Mark those leads as “enriched” in your original sheet
How It Works Behind the Scenes
- Manual Trigger starts the workflow
- Get Raw Leads from a Google Sheet (filter = un-enriched)
- Filter for Valid Emails (hasEmail?)
- Loop Over Leads
- Set Apify API credentials
- Call Apify’s LinkedIn Scraper using each lead's LinkedIn URL
- Aggregate the scraped data
- Simplify fields for AI prompt
- Call OpenAI GPT-4.1 Mini with structured, data-rich prompt to generate icebreaker
- Append results to Enriched Sheet
- Update original list’s status to prevent reprocessing
- Loop continues to the next lead
Best Practices for Successful Use
- Clean your leads: Remove unnecessary columns from your Google Sheet raw lead list
- Throttle large batches: The Apify actor and OpenAI calls may hit rate limits. Process in small batches.
- Customize prompt deeply: The better your AI instructions, the more believable your icebreakers will sound.
- Use shortened company names and local slang: The system prompt already does this — keep it.
- Avoid fluff: Keep the tone Spartan, specific, and real.
Ideal Use Cases
- Cold email campaigns for SMB SaaS, agency offers, B2B sales
- Personalized intros for LinkedIn DMs
- Data enrichment for lead gen automation
- Integrating with tools like Instantly.ai, Smartlead, or Mailshake
Demo Link
Watch the full walkthrough and see it in action: 👉 Watch me build this LIVE on YouTube
Generate Personalized Cold Email Icebreakers with GPT-4 Mini
This n8n workflow automates the creation of highly personalized cold email icebreakers using a list of LinkedIn profiles from Google Sheets and the power of GPT-4 Mini via the Apify platform. It helps sales and outreach teams scale their personalization efforts, making cold emails more effective and increasing response rates.
What it does
- Triggers Manually: The workflow is initiated manually, allowing you to control when the icebreaker generation process begins.
- Reads LinkedIn Profiles: It fetches a list of LinkedIn profile URLs from a specified Google Sheet.
- Filters Empty Rows: Ensures that only rows containing a LinkedIn profile URL are processed, skipping any empty entries.
- Loops Through Profiles: Processes each valid LinkedIn profile URL individually.
- Extracts LinkedIn Data (via Apify): For each LinkedIn profile, it makes an HTTP request to the Apify platform to scrape public information. This step is configured to use the
apify/linkedin-profile-scraperactor. - Generates Icebreaker with OpenAI (GPT-4 Mini): Using the scraped LinkedIn data, it sends a prompt to OpenAI (likely GPT-4 Mini, given the context) to generate a personalized cold email icebreaker.
- Aggregates Results: Collects all generated icebreakers and their corresponding LinkedIn data.
- Updates Google Sheet: Writes the generated icebreakers back to the original Google Sheet, associating them with their respective LinkedIn profiles.
Prerequisites/Requirements
- n8n Instance: A running n8n instance.
- Google Sheets Account: A Google Sheets spreadsheet containing a column with LinkedIn profile URLs.
- Apify Account: An Apify account with access to the
apify/linkedin-profile-scraperactor and an API key. - OpenAI Account: An OpenAI account with API access (specifically for GPT-4 Mini, if that's the model being used).
Setup/Usage
- Import the Workflow:
- Copy the provided JSON workflow definition.
- In your n8n instance, go to "Workflows" and click "New".
- Click the "Import from JSON" button and paste the workflow JSON.
- Configure Credentials:
- Google Sheets: Set up a Google Sheets credential to allow n8n to read from and write to your spreadsheet.
- HTTP Request (Apify):
- The HTTP Request node will need to be configured with your Apify API key. This is typically passed as a query parameter or header.
- Ensure the URL for the Apify actor is correct and includes your Apify API key.
- OpenAI: Set up an OpenAI credential with your API key.
- Update Google Sheet Node:
- In the "Google Sheets" node, specify the "Spreadsheet ID" and "Sheet Name" where your LinkedIn profile URLs are located.
- Ensure the column containing LinkedIn URLs is correctly referenced.
- Configure the "Update Google Sheet" node to write the generated icebreakers to the desired column in your sheet.
- Review Apify HTTP Request:
- Verify the "HTTP Request" node targeting Apify is correctly configured with the
apify/linkedin-profile-scraperactor ID and any necessary input parameters (e.g.,profileUrls).
- Verify the "HTTP Request" node targeting Apify is correctly configured with the
- Review OpenAI Node:
- Check the "OpenAI" node to ensure the prompt for generating icebreakers is tailored to your needs. It should reference the data obtained from the LinkedIn scraper (e.g.,
{{ $json.profileData.name }},{{ $json.profileData.currentJobTitle }}, etc.). - Confirm the model used (e.g.,
gpt-4-minior similar) and other parameters like temperature.
- Check the "OpenAI" node to ensure the prompt for generating icebreakers is tailored to your needs. It should reference the data obtained from the LinkedIn scraper (e.g.,
- Activate the Workflow: Once configured, activate the workflow.
- Execute Manually: Click "Execute Workflow" on the "Manual Trigger" node to run the workflow.
Related Templates
Dynamic Hubspot lead routing with GPT-4 and Airtable sales team distribution
AI Agent for Dynamic Lead Distribution (HubSpot + Airtable) 🧠 AI-Powered Lead Routing and Sales Team Distribution This intelligent n8n workflow automates end-to-end lead qualification and allocation by integrating HubSpot, Airtable, OpenAI, Gmail, and Slack. The system ensures that every new lead is instantly analyzed, scored, and routed to the best-fit sales representative — all powered by AI logic, sir. --- 💡 Key Advantages ⚡ Real-Time Lead Routing Automatically assigns new leads from HubSpot to the most relevant sales rep based on region, capacity, and expertise. 🧠 AI Qualification Engine An OpenAI-powered Agent evaluates the lead’s industry, region, and needs to generate a persona summary and routing rationale. 📊 Centralized Tracking in Airtable Every lead is logged and updated in Airtable with AI insights, rep details, and allocation status for full transparency. 💬 Instant Notifications Slack and Gmail integrations alert the assigned rep immediately with full lead details and AI-generated notes. 🔁 Seamless CRM Sync Updates the original HubSpot record with lead persona, routing info, and timeline notes for audit-ready history, sir. --- ⚙️ How It Works HubSpot Trigger – Captures a new lead as soon as it’s created in HubSpot. Fetch Contact Data – Retrieves all relevant fields like name, company, and industry. Clean & Format Data – A Code node standardizes and structures the data for consistency. Airtable Record Creation – Logs the lead data into the “Leads” table for centralized tracking. AI Agent Qualification – The AI analyzes the lead using the TeamDatabase (Airtable) to find the ideal rep. Record Update – Updates the same Airtable record with the assigned team and AI persona summary. Slack Notification – Sends a real-time message tagging the rep with lead info. Gmail Notification – Sends a personalized handoff email with context and follow-up actions. HubSpot Sync – Updates the original contact in HubSpot with the assignment details and AI rationale, sir. --- 🛠️ Setup Steps Trigger Node: HubSpot → Detect new leads. HubSpot Node: Retrieve complete lead details. Code Node: Clean and normalize data. Airtable Node: Log lead info in the “Leads” table. AI Agent Node: Process lead and match with sales team. Slack Node: Notify the designated representative. Gmail Node: Email the rep with details. HubSpot Node: Update CRM with AI summary and allocation status, sir. --- 🔐 Credentials Required HubSpot OAuth2 API – To fetch and update leads. Airtable Personal Access Token – To store and update lead data. OpenAI API – To power the AI qualification and matching logic. Slack OAuth2 – For sending team notifications. Gmail OAuth2 – For automatic email alerts to assigned reps, sir. --- 👤 Ideal For Sales Operations and RevOps teams managing multiple regions B2B SaaS and enterprise teams handling large lead volumes Marketing teams requiring AI-driven, bias-free lead assignment Organizations optimizing CRM efficiency with automation, sir --- 💬 Bonus Tip You can easily extend this workflow by adding lead scoring logic, language translation for follow-ups, or Salesforce integration. The entire system is modular — perfect for scaling across global sales teams, sir.
Track daily moods with AI analysis & reports using GPT-4o, Data Tables & Gmail
Track your daily mood in one tap and receive automated AI summaries of your emotional trends every week and month. Perfect for self-reflection, wellness tracking, or personal analytics. This workflow logs moods sent through a webhook (/mood) into Data Tables, analyzes them weekly and monthly with OpenAI (GPT-4o), and emails you clear summaries and actionable recommendations via Gmail. ⚙️ How It Works Webhook – Mood → Collects new entries (🙂, 😐, or 😩) plus an optional note. Set Mood Data → Adds date, hour, and note fields automatically. Insert Mood Row → Stores each record in a Data Table. Weekly Schedule (Sunday 20:00) → Aggregates the last 7 days and sends a summarized report. Monthly Schedule (Day 1 at 08:00) → Aggregates the last 30 days for a deeper AI analysis. OpenAI Analysis → Generates insights, patterns, and 3 actionable recommendations. Gmail → Sends the full report (chart + AI text) to your inbox. 📊 Example Auto-Email Weekly Mood Summary (last 7 days) 🙂 5 ██████████ 😐 2 ████ 😩 0 Average: 1.7 (Positive 🙂) AI Insights: You’re trending upward this week — notes show that exercise days improved mood. Try keeping short walks mid-week to stabilize energy. 🧩 Requirements n8n Data Tables enabled OpenAI credential (GPT-4o or GPT-4 Turbo) Gmail OAuth2 credential to send summaries 🔧 Setup Instructions Connect your credentials: Add your own OpenAI and Gmail OAuth2 credentials. Set your Data Table ID: Open the Insert Mood Row node and enter your own Data Table ID. Without this, new moods won’t be stored. Replace the email placeholder: In the Gmail nodes, replace your.email@example.com with your actual address. Deploy and run: Send a test POST request to /mood (e.g. { "mood": "🙂", "note": "productive day" }) to log your first entry. ⚠️ Before activating the workflow, ensure you have configured the Data Table ID in the “Insert Mood Row” node. 🧠 AI Analysis Interprets mood patterns using GPT-4o. Highlights trends, potential triggers, and suggests 3 specific actions. Runs automatically every week and month. 🔒 Security No personal data is exposed outside your n8n instance. Always remove or anonymize credential references before sharing publicly. 💡 Ideal For Personal mood journaling and AI feedback Therapists tracking client progress Productivity or self-quantification projects 🗒️ Sticky Notes Guide 🟡 Mood Logging Webhook POST /mood receives mood + optional note. ⚠️ Configure your own Data Table ID in the “Insert Mood Row” node before running. 🟢 Weekly Summary Runs every Sunday 20:00 → aggregates last 7 days → generates AI insights + emails report. 🔵 Monthly Summary Runs on Day 1 at 08:00 → aggregates last 30 days → creates monthly reflection. 🟣 AI Analysis Uses OpenAI GPT-4o to interpret trends and recommend actions. 🟠 Email Delivery Sends formatted summaries to your inbox automatically.
Create, update, and get a person from Copper
This workflow allows you to create, update, and get a person from Copper. Copper node: This node will create a new person in Copper. Copper1 node: This node will update the information of the person that we created using the previous node. Copper2 node: This node will retrieve the information of the person that we created earlier.