Plantilla de generador de frases de apertura de correos fríos GPT-4o-mini
Este es unLead Generation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 10 nodos.Utiliza principalmente nodos como GoogleSheets, ManualTrigger, SplitInBatches, OpenAi. Usar GPT-4O-mini y Google Sheets para generar frases de apertura de correos fríos personalizados
- •Credenciales de API de Google Sheets
- •Clave de API de OpenAI
Nodos utilizados (10)
Categoría
{
"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": "Al hacer clic en 'Ejecutar flujo'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-32,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d564d4ce-92c9-4797-868a-697f8a5e9ecd",
"name": "Obtener fila(s) en hoja",
"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": "Enviar mensaje a un modelo",
"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": "Iterar sobre elementos",
"type": "n8n-nodes-base.splitInBatches",
"position": [
416,
0
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "0d808a31-0bf6-4ec5-9491-2e02f805fc14",
"name": "Actualizar fila en hoja",
"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": "Nota adhesiva",
"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": "Nota adhesiva1",
"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": "Nota adhesiva2",
"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": "Nota adhesiva3",
"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": "Nota adhesiva4",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Generación de leads, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
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.
Compartir este flujo de trabajo