AutomationFlowsAI & RAG › Cold Email Icebreakers From Local Business Search with Gpt-4 and Dumpling AI

Cold Email Icebreakers From Local Business Search with Gpt-4 and Dumpling AI

ByYang @yang on n8n.io

This workflow helps digital marketers and outreach specialists automate the research and creation of cold email icebreakers for local businesses.

Event trigger★★★★☆ complexityAI-powered10 nodesForm TriggerHTTP RequestOpenAIGoogle Sheets
AI & RAG Trigger: Event Nodes: 10 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #6156 — we link there as the canonical source.

This workflow follows the Form Trigger → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "0qDhUTSyRmBi8kf1",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Cold Email Icebreakers from Local Business Search with GPT-4 and Dumpling AI",
  "tags": [],
  "nodes": [
    {
      "id": "5d586469-2b68-4eca-9d1b-123382c7df53",
      "name": "Form: Submit Search Keyword",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -360,
        -20
      ],
      "parameters": {
        "options": {},
        "formTitle": "Keyword",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Keyword"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "25aa6db4-b732-488b-aa62-17512b364e6b",
      "name": "Dumpling AI: Search Google Maps for Businesses",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -140,
        -20
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/search-maps",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"query\": \"{{$json.Keyword}}\",\n  \"page\": \"\"\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f1f7cb08-4b00-4552-b7bc-7bd1d74f8268",
      "name": "\ud83e\uddee Split: Extract Individual Places",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        80,
        -20
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "places"
      },
      "typeVersion": 1
    },
    {
      "id": "944774ac-686d-40d5-b0f1-8d075367347f",
      "name": "\ud83d\udd01 Loop: Process Each Business",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        300,
        -20
      ],
      "parameters": {
        "options": {},
        "batchSize": 2
      },
      "typeVersion": 3
    },
    {
      "id": "d6a3f852-bd40-4c31-92c5-c580cc9338be",
      "name": "\ud83e\udde0 Dumpling AI: Extract Email + Website Summary",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        480,
        100
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/extract",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"url\": \"{{ $json.website }}\",\n  \"schema\": {\n    \"email\": \"string\",\n    \"websiteSummary\": \"string\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bebe9509-1162-418c-8a04-1f4ec9bee0de",
      "name": "\u270d\ufe0f GPT-4: Write Personalized Icebreaker Email",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        720,
        100
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=Prompt:\n\nYou are a Digital Marketing Specialist writing personalized ice breaker outreach emails.\n\nUsing the information provided below, write a short, friendly, and professional ice breaker message that shows genuine interest in the business and naturally opens the conversation to offer digital marketing help without sounding salesy or generic. The tone should be warm and customized to each business based on what they do.\n\nYour goal is to:\n\nMention something specific about the business using the website summary or keywords\n\nMake it sound like a real person wrote it, not a copy-paste email\n\nGently introduce your digital marketing agency as a potential support partner\n\n\nOutput:\nA short, 4-6 sentence email that:\n\nStarts with a warm ice breaker referencing something specific about the business\n\nExpresses genuine curiosity or admiration for what they do\n\nIntroduces you as someone who runs a digital marketing agency\n\nOpens the door for a conversation without being pushy\n\nExample Format:\n\nHi [First Name or Business Name],\n\nI came across [Business Name] while researching businesses that [reference from keywords or summary], and I was genuinely impressed by [insert insight from website summary]. It\u2019s clear you're doing something meaningful in your space.\n\nI run a digital marketing agency that helps businesses like yours get even more visibility and drive consistent leads online. I\u2019d love to explore how we might support your growth goals.\n\nWould it be okay if I shared a few ideas?"
            },
            {
              "content": "=Input:\n\nBusiness Name: {{ $('\ud83e\uddee Split: Extract Individual Places').item.json.title }}\n\nKeywords:{{ $('\ud83e\uddee Split: Extract Individual Places').item.json.types[1] }}  \n{{ $('\ud83e\uddee Split: Extract Individual Places').item.json.types[0] }}\n\nWebsite Summary: {{ $json.results.websiteSummary }}"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1.8
    },
    {
      "id": "7ba29bb7-c99e-4e3e-98c8-ba4bef80fc64",
      "name": "\u2705 IF: Email Exists",
      "type": "n8n-nodes-base.filter",
      "position": [
        1100,
        100
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1cc31bf9-2bc4-4fc3-932e-44d08697cd7a",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $('\ud83e\udde0 Dumpling AI: Extract Email + Website Summary').item.json.results.email }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d299e441-4a1b-491e-880b-b13c78942e46",
      "name": "\ud83d\udcc4 Log to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1320,
        100
      ],
      "parameters": {
        "columns": {
          "value": {
            "Email": "={{ $('\ud83e\udde0 Dumpling AI: Extract Email + Website Summary').item.json.results.email }}",
            "Phone": "={{ $('\ud83e\uddee Split: Extract Individual Places').item.json.phoneNumber }}",
            "Title": "={{ $('\ud83e\uddee Split: Extract Individual Places').item.json.title }}",
            "Ice Breaker": "={{ $json.message.content }}",
            "Website URL": "={{ $('\ud83e\uddee Split: Extract Individual Places').item.json.website }}",
            "Website Summary": "={{ $('\ud83e\udde0 Dumpling AI: Extract Email + Website Summary').item.json.results.websiteSummary }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ice Breaker",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Ice Breaker",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Website URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Website Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Website URL"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GDIewE5xJMdRWlLJH_b8TnaoahTfRMBgc774VEl95wU/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1GDIewE5xJMdRWlLJH_b8TnaoahTfRMBgc774VEl95wU/edit?usp=drivesdk",
          "cachedResultName": "Cold email outreach"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "9dcf2513-c329-445f-9cdc-cdbceb8b25a5",
      "name": "\ud83d\udce4 Instantly API: Add to Campaign",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        640,
        -140
      ],
      "parameters": {
        "url": "https://api.instantly.ai/api/v1/lead/add",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "campaign_id",
              "value": "CampaignID"
            },
            {
              "name": "email",
              "value": "={{ $json.title }}"
            },
            {
              "name": "personalization",
              "value": "={{ $('\u270d\ufe0f GPT-4: Write Personalized Icebreaker Email').first().json.message.content }}"
            },
            {
              "name": "phone",
              "value": "={{ $('Dumpling AI: Search Google Maps for Businesses').first().json.places[1].phoneNumber }}"
            },
            {
              "name": "website",
              "value": "={{ $('Dumpling AI: Search Google Maps for Businesses').first().json.places[1].website }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9a7f63ba-c5fd-4406-8819-c13331ab025f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -340,
        -360
      ],
      "parameters": {
        "width": 740,
        "height": 440,
        "content": "### \u2709\ufe0f Cold Email Icebreaker Generator\n\nThis workflow:\n- Accepts a keyword (e.g. \"dentist in New York\")\n- Searches local businesses using Dumpling AI\n- Extracts website summaries and emails\n- Uses GPT-4 to write short, friendly icebreaker emails\n- Logs results to Google Sheets\n- Optionally adds leads to Instantly.ai campaigns\n\n\u2705 Tools Used:\n- Dumpling AI\n- GPT-4\n- Google Sheets\n- Instantly.ai (optional)\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "82424895-4ea4-4891-a151-6bfa542fdc2d",
  "connections": {
    "\u2705 IF: Email Exists": {
      "main": [
        [
          {
            "node": "\ud83d\udcc4 Log to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcc4 Log to Google Sheets": {
      "main": [
        [
          {
            "node": "\ud83d\udd01 Loop: Process Each Business",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Form: Submit Search Keyword": {
      "main": [
        [
          {
            "node": "Dumpling AI: Search Google Maps for Businesses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd01 Loop: Process Each Business": {
      "main": [
        [
          {
            "node": "\ud83d\udce4 Instantly API: Add to Campaign",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\ud83e\udde0 Dumpling AI: Extract Email + Website Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\uddee Split: Extract Individual Places": {
      "main": [
        [
          {
            "node": "\ud83d\udd01 Loop: Process Each Business",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Dumpling AI: Search Google Maps for Businesses": {
      "main": [
        [
          {
            "node": "\ud83e\uddee Split: Extract Individual Places",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u270d\ufe0f GPT-4: Write Personalized Icebreaker Email": {
      "main": [
        [
          {
            "node": "\u2705 IF: Email Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udde0 Dumpling AI: Extract Email + Website Summary": {
      "main": [
        [
          {
            "node": "\u270d\ufe0f GPT-4: Write Personalized Icebreaker Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow helps digital marketers and outreach specialists automate the research and creation of cold email icebreakers for local businesses.

Source: https://n8n.io/workflows/6156/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Note: Now includes an Apify alternative for Rapid API (Some users can't create new accounts on Rapid API, so I have added an alternative for you. But immediately you are able to get access to Rapid AP

Form Trigger, Google Sheets Trigger, OpenAI +2
AI & RAG

This system automates LinkedIn lead generation and enrichment in six clear stages: Lead Collection (via Apollo.io) Automatically pulls leads based on keywords, roles, or industries using Apollo’s API.

Form Trigger, OpenAI, Google Sheets Trigger +2
AI & RAG

This workflow turns a user-submitted form with country or animal names into a cinematic video with animated scenes and immersive ambient audio. Using GPT-4 for prompt generation, Dumpling AI for visua

Form Trigger, OpenAI, HTTP Request +2
AI & RAG

Automatically generates, designs, stores, and logs complete Instagram carousel posts. It transforms a simple text prompt into a full post with copy, visuals, rendered images, Google Drive storage, and

Google Drive, Form Trigger, OpenAI +3
AI & RAG

This workflow automates the process of finding highly relevant job listings based on a user’s resume, career preferences, and custom filters. It scrapes fresh job data, evaluates relevance using OpenA

Google Sheets, HTTP Request, Form Trigger +1