Flujo de trabajo de cierre de ventas para prospectos fríos
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 15 nodos.Utiliza principalmente nodos como Code, Gmail, Slack, Filter, Hubspot. Cierre automático de deals de fríos de HubSpot basado en retroalimentación de Gmail y notificaciones de Slack
- •Cuenta de Google y credenciales de API de Gmail
- •Bot Token de Slack o URL de Webhook
- •Clave de API de HubSpot
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (15)
Categoría
{
"meta": {
"instanceId": "INSTANCE_ID_PLACEHOLDER",
"templateCredsSetupCompleted": false
},
"name": "Cold Deal Closure Workflow",
"tags": [],
"nodes": [
{
"id": "99a95283-6245-4d88-ae58-07aaef8ddf14",
"name": "Disparador programado",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-304,
-16
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.1
},
{
"id": "35be2b12-2b12-42ee-aa01-df7c49daf6d4",
"name": "Obtener tratos HubSpot",
"type": "n8n-nodes-base.hubspot",
"position": [
-80,
-16
],
"parameters": {
"filters": {
"propertiesCollection": {
"propertiesValues": {
"properties": [
"dealname",
"hs_lastmodifieddate",
"notes_last_updated",
"notes_last_contacted"
],
"propertyMode": "valueOnly"
}
}
},
"resource": "deal",
"operation": "getAll",
"returnAll": true,
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "YOUR_HUBSPOT_CREDENTIAL_ID",
"name": "HubSpot account"
}
},
"typeVersion": 2
},
{
"id": "ff92028e-afa9-4ed2-b123-aa2619f612dd",
"name": "Extraer campos del trato",
"type": "n8n-nodes-base.code",
"position": [
144,
-16
],
"parameters": {
"jsCode": "return items.map(item => {\n const props = item.json.properties || {};\n\n return {\n json: {\n dealId: item.json.dealId || '',\n dealname: props.dealname?.value || '',\n lastmodifieddate: props.hs_lastmodifieddate?.value || '',\n notes_last_updated: props.notes_last_updated?.value || '',\n notes_last_contacted: props.notes_last_contacted?.value || ''\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce",
"name": "Filtrar leads fríos (21+ días)",
"type": "n8n-nodes-base.filter",
"position": [
368,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.lastmodifieddate.toNumber() }}",
"rightValue": "={{ Date.now() - 21 * 24 * 60 * 60 * 1000 }}"
}
]
}
},
"typeVersion": 2
},
{
"id": "f3e64724-432c-4354-a115-61185fb3d23e",
"name": "Actualizar trato a 'Cerrado perdido'",
"type": "n8n-nodes-base.hubspot",
"position": [
592,
-16
],
"parameters": {
"dealId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.dealId }}"
},
"resource": "deal",
"operation": "update",
"updateFields": {
"stage": "closedlost"
},
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "YOUR_HUBSPOT_CREDENTIAL_ID",
"name": "HubSpot account"
}
},
"typeVersion": 2.1
},
{
"id": "4d51776d-1c40-435a-989f-660f4546b401",
"name": "Obtener asociaciones del trato",
"type": "n8n-nodes-base.httpRequest",
"position": [
800,
-16
],
"parameters": {
"url": "=https://api.hubapi.com/crm/v3/objects/deals/{{ $json.dealId }}?associations=contacts",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_HUBSPOT_ACCESS_TOKEN"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2d48cf93-9066-482b-9c7d-0b317ff99406",
"name": "Extraer IDs de contacto",
"type": "n8n-nodes-base.code",
"position": [
1008,
-16
],
"parameters": {
"jsCode": "// Extract contact IDs from deals data\nconst dealsData = $input.all();\nconst contactIds = [];\n\ndealsData.forEach(item => {\n const deal = item.json;\n if (deal.associations && deal.associations.contacts && deal.associations.contacts.results) {\n deal.associations.contacts.results.forEach(contact => {\n contactIds.push({\n contactId: contact.id,\n dealId: deal.id,\n dealName: deal.properties.dealname\n });\n });\n }\n});\n\nreturn contactIds;"
},
"typeVersion": 2
},
{
"id": "955cad66-4b5e-45b0-9c82-78f27ed78823",
"name": "Obtener detalles del contacto",
"type": "n8n-nodes-base.hubspot",
"position": [
1216,
-16
],
"parameters": {
"contactId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.contactId }}"
},
"operation": "get",
"authentication": "appToken",
"additionalFields": {
"propertiesCollection": {
"propertiesValues": {
"properties": [
"email",
"firstname",
"lastname",
"hs_full_name_or_email"
]
}
}
}
},
"credentials": {
"hubspotAppToken": {
"id": "YOUR_HUBSPOT_CREDENTIAL_ID",
"name": "HubSpot account"
}
},
"typeVersion": 2.1
},
{
"id": "0ef1bd2f-8986-42eb-b09f-3e3c09ed3403",
"name": "Extraer email del contacto",
"type": "n8n-nodes-base.code",
"position": [
1424,
-16
],
"parameters": {
"jsCode": "// Code Node (JavaScript)\n\nreturn items.map(item => {\n let email = null;\n\n // try to safely access the email field\n if (item.json?.properties?.email?.value) {\n email = item.json.properties.email.value;\n }\n\n return {\n json: {\n email\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "ea48344a-33e0-442d-9b15-24708f6376f4",
"name": "Enviar solicitud de comentarios Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
1648,
-16
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"sendTo": "=your-email@example.com",
"message": "=Hi {{ $('Get Contact Details').item.json.properties.firstname.value }},<br><br>\n\nI hope you're doing well.<br><br>\n\nThank you once again for considering [Your Company] for your project. While I understand you've decided to move in a different direction, I truly appreciate the time and effort you spent engaging with us.<br><br>\n\nWe'd Love Your Feedback<br>\nIf you're open to it, I'd be grateful for any thoughts you'd like to share about your decision—anything that could help us improve going forward.<br><br>\n\nOpen Door for the Future<br>\nShould your needs evolve in the future, I'd be happy to reconnect and support you in any way we can.<br><br>\n\nWishing you all the best with your project and continued success ahead.<br><br>\n\nWarm regards,<br><br>\n[Your Company]<br>\n",
"options": {
"appendAttribution": false
},
"subject": "=Thank You — We'd Value Your Feedback"
},
"credentials": {
"gmailOAuth2": {
"id": "YOUR_GMAIL_CREDENTIAL_ID",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "da6063b5-6c22-4312-960a-276b9a8a90dd",
"name": "Enviar notificación Slack",
"type": "n8n-nodes-base.slack",
"position": [
1856,
-16
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"text": "=Deals which are moved to Closed Lost: {{ $('Extract Contact IDs').item.json.dealId }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID",
"cachedResultName": "general"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "YOUR_SLACK_CREDENTIAL_ID",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "00280018-e849-44a3-a90a-e4b41e3d3fb4",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
-336
],
"parameters": {
"color": 4,
"width": 640,
"height": 624,
"content": "## Trigger & Deal Fetching\n\n*Schedule Trigger: Starts the workflow on a defined interval (e.g., daily, weekly).\n\nGet HubSpot Deals: Pulls all deals from HubSpot, retrieving key fields like dealname, hs_lastmodifieddate, notes_last_updated, and notes_last_contacted.\n\nExtract Deal Fields: Cleans up and restructures the deal data into a consistent format (dealId, dealname, timestamps).*"
},
"typeVersion": 1
},
{
"id": "26416831-06bb-45ef-983a-44c74160ae87",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
-336
],
"parameters": {
"color": 2,
"width": 432,
"height": 624,
"content": "## Lead Qualification (Cold Deals)\n\n*Filter Cold Leads (21+ days): Uses lastmodifieddate and compares it against Date.now() - 21 days.\n\nKeeps only deals untouched for 21+ days.\n\nUpdate Deal → Closed Lost: Automatically updates those stale deals in HubSpot, marking them as Closed Lost.*"
},
"typeVersion": 1
},
{
"id": "9bf5bb30-24d1-4f31-a07b-dd781175e066",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
-336
],
"parameters": {
"color": 6,
"width": 832,
"height": 624,
"content": "## Deal → Contact Mapping\n\n*Fetch Deal Associations: Calls HubSpot API to get contacts linked to the filtered deals.\n\nExtract Contact IDs: Parses the association response to pull out contactId, dealId, and dealName.\n\nGet Contact Details: Retrieves enriched details of each contact (e.g., email, firstname, lastname).\n\nExtract Contact Email: Simplifies the response, keeping only the email (and ensuring it's safely extracted).*"
},
"typeVersion": 1
},
{
"id": "cedf1213-f134-4ddd-a96c-764d1320193e",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
-336
],
"parameters": {
"color": 3,
"width": 384,
"height": 624,
"content": "## Follow-up & Notifications\n\n*Send Gmail Feedback Request:\n\nSends a polite follow-up email thanking the lead and asking for feedback.\n\nUses personalized fields like firstname in the message.\n\nSend Slack Notification:\n\nPosts a message to a Slack channel (e.g., #general) to alert the team of deals moved to Closed Lost.*"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "TEMPLATE_VERSION_ID",
"connections": {
"99a95283-6245-4d88-ae58-07aaef8ddf14": {
"main": [
[
{
"node": "35be2b12-2b12-42ee-aa01-df7c49daf6d4",
"type": "main",
"index": 0
}
]
]
},
"35be2b12-2b12-42ee-aa01-df7c49daf6d4": {
"main": [
[
{
"node": "ff92028e-afa9-4ed2-b123-aa2619f612dd",
"type": "main",
"index": 0
}
]
]
},
"2d48cf93-9066-482b-9c7d-0b317ff99406": {
"main": [
[
{
"node": "955cad66-4b5e-45b0-9c82-78f27ed78823",
"type": "main",
"index": 0
}
]
]
},
"ff92028e-afa9-4ed2-b123-aa2619f612dd": {
"main": [
[
{
"node": "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce",
"type": "main",
"index": 0
}
]
]
},
"955cad66-4b5e-45b0-9c82-78f27ed78823": {
"main": [
[
{
"node": "0ef1bd2f-8986-42eb-b09f-3e3c09ed3403",
"type": "main",
"index": 0
}
]
]
},
"0ef1bd2f-8986-42eb-b09f-3e3c09ed3403": {
"main": [
[
{
"node": "ea48344a-33e0-442d-9b15-24708f6376f4",
"type": "main",
"index": 0
}
]
]
},
"4d51776d-1c40-435a-989f-660f4546b401": {
"main": [
[
{
"node": "2d48cf93-9066-482b-9c7d-0b317ff99406",
"type": "main",
"index": 0
}
]
]
},
"f3e64724-432c-4354-a115-61185fb3d23e": {
"main": [
[
{
"node": "4d51776d-1c40-435a-989f-660f4546b401",
"type": "main",
"index": 0
}
]
]
},
"ea48344a-33e0-442d-9b15-24708f6376f4": {
"main": [
[
{
"node": "da6063b5-6c22-4312-960a-276b9a8a90dd",
"type": "main",
"index": 0
}
]
]
},
"5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce": {
"main": [
[
{
"node": "f3e64724-432c-4354-a115-61185fb3d23e",
"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 - Creación de contenido, 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
Avkash Kakdiya
@itechnotion🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.
Compartir este flujo de trabajo