{
  "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
          }
        ]
      ]
    }
  }
}