GPT-4o-mini 템플릿 콜드 이메일 브레이크스루 생성기
중급
이것은Lead Generation, Multimodal AI분야의자동화 워크플로우로, 10개의 노드를 포함합니다.주로 GoogleSheets, ManualTrigger, SplitInBatches, OpenAi 등의 노드를 사용하며. GPT-4O-mini와 구글 스프레드시트를 사용하여 개인화된 콜드 이메일 오프닝을 생성
사전 요구사항
- •Google Sheets API 인증 정보
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "8yxaQbSKa73Naaoq",
"meta": {
"instanceId": "6dab325484db17217432bd17c46b16a74656e18b7a3b29fe24824c64123a2170",
"templateCredsSetupCompleted": true
},
"name": "Cold Email Icebreaker Generator With GPT 4o-mini Template",
"tags": [],
"nodes": [
{
"id": "6e508452-0193-4fc6-9762-a53d57b5a02a",
"name": "워크플로우 실행 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-32,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d564d4ce-92c9-4797-868a-697f8a5e9ecd",
"name": "시트에서 행 가져오기",
"type": "n8n-nodes-base.googleSheets",
"position": [
192,
0
],
"parameters": {
"sheetName": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "O1ZqVN7Ekj72TWzq",
"name": "Google Sheets account 2"
}
},
"executeOnce": false,
"typeVersion": 4.6
},
{
"id": "6574b56d-b207-48a5-bcf7-4f9d54332e52",
"name": "모델에 메시지 보내기",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
624,
16
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are a data-to-JSON generator. \nYou must return ONLY a valid JSON object with no text before or after. \nDo not add explanations, line breaks, or commentary outside the JSON. \nStrict schema:\n\n{\n \"verdict\": \"true\" or \"false\",\n \"icebreaker\": \"string\",\n \"shortenedCompanyName\": \"string\"\n}\n"
},
{
"content": "=Your task is to write a natural, close, and spartan one-line icebreaker for a cold email. \nIt should feel like I’ve done my homework on the person — specific and genuine, not generic. \n\nOutput rules:\n- \"verdict\" = \"true\" if the input is a person, \"false\" if it’s a company. \n- \"icebreaker\" must: \n - Start with: \"Hey [firstName],\" \n - Use a natural “I love…” or “I really like…” structure, but go deeper than surface-level (highlight something real from their role, company, industry, or city). \n - Keep it casual, like talking to a friend — no hype, no formal language. \n - One line only. \n- End the icebreaker with a short, natural transition phrase like “wanted to run something by you” (or variations such as “thought I’d reach out” / “figured I’d connect”).\n- \"shortenedCompanyName\": shorten the company name (remove “Inc.”, “LLC”, “Agency”, etc). \n\nExamples: \nInput: \"Aina Rakotoarinaly, CEO founder - Maki Agency/Ti'bouffe, Maki Agency, outsourcing/offshoring, Antananarivo, Madagascar\" \nOutput: {\"verdict\":\"true\",\"icebreaker\":\"Hey Aina, I love how you’ve built Maki into a go-to shop for outsourcing in Antananarivo.\",\"shortenedCompanyName\":\"Maki\"}\n\nInput: \"Adam Greenwood, Visionary Agency Leader | Digital Strategy & AI | Middle East, UK and Global Markets, the human tech agency, information technology & services, Dubai, United Arab Emirates\" \nOutput: {\"verdict\":\"true\",\"icebreaker\":\"Hey Adam, I love how The Human Tech Agency mixes digital strategy with AI across global markets — super smart. Thought I’d reach out.\",\"shortenedCompanyName\":\"The Human Tech Agency\"}\n\nNow generate JSON for:\n{{ $json.firsName }} {{ $json.lastName }}, {{ $json.headline }}, {{ $json.industry }}, {{ $json.companyName }}, {{ $json.city }}, {{ $json.email }}"
}
]
},
"simplify": false,
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "YyHV6eOJU0bKIPQK",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "0bcf09d1-f467-4578-9abf-981a24baddfe",
"name": "항목 반복 처리",
"type": "n8n-nodes-base.splitInBatches",
"position": [
416,
0
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "0d808a31-0bf6-4ec5-9491-2e02f805fc14",
"name": "시트에서 행 업데이트하기",
"type": "n8n-nodes-base.googleSheets",
"position": [
960,
16
],
"parameters": {
"columns": {
"value": {
"icebreaker": "={{ $json.choices[0].message.content.icebreaker }}",
"row_number": "={{ $('Get row(s) in sheet').item.json.row_number }}",
"shortenedCompanyName": "={{ $json.choices[0].message.content.shortenedCompanyName }}"
},
"schema": [
{
"id": "first_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "first_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last_name",
"type": "string",
"display": true,
"required": false,
"displayName": "last_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "headline",
"type": "string",
"display": true,
"required": false,
"displayName": "headline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyName",
"type": "string",
"display": true,
"required": false,
"displayName": "companyName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "industry",
"type": "string",
"display": true,
"required": false,
"displayName": "industry",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "city",
"type": "string",
"display": true,
"required": false,
"displayName": "city",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "country",
"type": "string",
"display": true,
"required": false,
"displayName": "country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "icebreaker",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "icebreaker",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "shortenedCompanyName",
"type": "string",
"display": true,
"required": false,
"displayName": "shortenedCompanyName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_url",
"type": "string",
"display": true,
"required": false,
"displayName": "linkedin_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1R1PdKdw1UH1YCGOK94xPFlAM7Qqfkiz6sa7kihIsyX0/edit#gid=0",
"cachedResultName": "Hoja 1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "O1ZqVN7Ekj72TWzq",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.6
},
{
"id": "7e71ea4a-af5f-4bf8-8ef0-6fd76d7990b9",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
144,
-320
],
"parameters": {
"color": 4,
"width": 192,
"height": 272,
"content": "## Fetch Leads from Google Sheets\nPulls lead data from your Google Sheet. \nEach row should contain details like: \n- First name \n- Last name \n- Company name \n- Industry \n- City \n- (Any other fields you want to use for personalization) \n\n⚠️ Make sure your sheet has consistent columns with the lead information you need. \n"
},
"typeVersion": 1
},
{
"id": "b4b1fa0f-8f4e-4d82-941e-b01f1cf0d888",
"name": "스티커 메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-320
],
"parameters": {
"width": 192,
"height": 272,
"content": "## Workflow Trigger\nThis workflow runs on-demand when you click **Execute Workflow**. \nUse it whenever you want to enrich your Google Sheet with fresh personalization for leads. \n"
},
"typeVersion": 1
},
{
"id": "c1310003-7c1c-43b1-af57-02ae1684836f",
"name": "스티커 메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-320
],
"parameters": {
"color": 6,
"width": 288,
"height": 272,
"content": "## Generate Personalization with AI\nUses OpenAI to create two fields: \n- `icebreaker` → a short, natural, friendly opening line for your cold email. \n- `shortenedCompanyName` → a simplified company name (e.g. \"Mayo\" instead of \"Mayo Inc.\"). \n\nThe AI always returns results in structured JSON. \nThis makes it easy to map into your Google Sheet in the next step. \n\n💡 You can edit the prompt in this node to match your preferred tone and style, as well as for adding your own column names and fields.\n"
},
"typeVersion": 1
},
{
"id": "baefc452-c9d5-422c-acce-9c3444afbb37",
"name": "스티커 메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
-320
],
"parameters": {
"color": 5,
"width": 192,
"height": 272,
"content": "## Process Each Lead\nThis node loops through your sheet **one lead at a time**. \nThis prevents errors with Google Sheets or the AI model. \n\n✅ Ensures each lead gets its own personalized icebreaker and shortened company name. \n"
},
"typeVersion": 1
},
{
"id": "81fbe23c-c5d5-4900-9d11-a5251ebfba8c",
"name": "스티커 메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
912,
-320
],
"parameters": {
"color": 4,
"width": 192,
"height": 272,
"content": "## Save Results into Google Sheets\nWrites the AI-generated results back into your Google Sheet. \n\n- Map `icebreaker` to your sheet’s personalization column (or create one). \n- Map `shortenedCompanyName` to the column where you want to store shortened names. \n\n⚠️ Your sheet may have different column names — adjust mappings here to match your setup. \n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "955ec341-ea41-4da0-8ebf-83d56c571dbd",
"connections": {
"0bcf09d1-f467-4578-9abf-981a24baddfe": {
"main": [
[],
[
{
"node": "6574b56d-b207-48a5-bcf7-4f9d54332e52",
"type": "main",
"index": 0
}
]
]
},
"6574b56d-b207-48a5-bcf7-4f9d54332e52": {
"main": [
[
{
"node": "0d808a31-0bf6-4ec5-9491-2e02f805fc14",
"type": "main",
"index": 0
}
]
]
},
"d564d4ce-92c9-4797-868a-697f8a5e9ecd": {
"main": [
[
{
"node": "0bcf09d1-f467-4578-9abf-981a24baddfe",
"type": "main",
"index": 0
}
]
]
},
"0d808a31-0bf6-4ec5-9491-2e02f805fc14": {
"main": [
[
{
"node": "0bcf09d1-f467-4578-9abf-981a24baddfe",
"type": "main",
"index": 0
}
]
]
},
"6e508452-0193-4fc6-9762-a53d57b5a02a": {
"main": [
[
{
"node": "d564d4ce-92c9-4797-868a-697f8a5e9ecd",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 리드 생성, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
AI 기반 리드 생성 시스템 (이메일 개인화 및 LinkedIn)
AI 기반 리드 생성 시스템: 이메일 개인화 및 LinkedIn 기능 포함
If
Code
Limit
+
If
Code
Limit
51 노드Matthieu
리드 생성
맞춤형 콜드 이메일 아이스브레이커 콘텐츠 생성기
Apollo 리드 스크래핑 및 GPT-4.1을 통한 개인 맞춤형 콜드 이메일 자동화
Set
Code
Slack
+
Set
Code
Slack
24 노드Richard Besier
리드 생성
Google Sheets와 GPT로 웹 데이터에서 AI 주도 개인화된 첫 인상 주제 생성
Google Sheets와 GPT를 통해 웹 데이터로 AI 추동된 개인화된 첫 인상 주제 생성
Wait
Limit
Markdown
+
Wait
Limit
Markdown
15 노드Abdul Mir
리드 생성
LinkedIn, OpenAI, Sales Navigator를 사용하여 적합한 유저와 콜 스크립트 생성
LinkedIn, OpenAI 및 Sales Navigator를 사용하여 적格 리드 및 콜 스크립트 생성
If
Code
Limit
+
If
Code
Limit
47 노드Matthieu
리드 생성
웹 요약
GPT-4o와 Google Sheets를 사용하여 웹사이트 URL에서 AI 판매 대화 생성
Set
Wait
Google Sheets
+
Set
Wait
Google Sheets
12 노드Zach @BrightWayAI
리드 생성
GPT-4 Mini, Apify, LinkedIn를 사용하여 개인화된 콜드 이메일 오프닝을 생성
GPT-4 Mini, Apify, LinkedIn를 사용하여 개인화된 콜드 이메일 오프닝을 생성
Set
Filter
Aggregate
+
Set
Filter
Aggregate
16 노드Erfan Mostafiz
리드 생성
워크플로우 정보
난이도
중급
노드 수10
카테고리2
노드 유형5
저자
Rodrigo
@rodrigonzalezsyncraAI & automation consultant helping businesses streamline processes, generate leads, and scale faster with smart workflows. Founder of SyncraLabs, integrating AI with n8n to create practical, high-impact automations. Passionate about sharing knowledge through ready-to-use templates and community contributions.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유