Calificación y cultivo automatizados de leads usando JotForm, HubSpot, correo y puntuación por IA
Este es unAI Summarizationflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como If, Set, Code, Slack, Hubspot. Cualificación y cultivo automatizados de prospectos usando JotForm, HubSpot, correo y puntuación por IA
- •Bot Token de Slack o URL de Webhook
- •Clave de API de HubSpot
- •Credenciales de API de Google Sheets
Nodos utilizados (12)
Categoría
{
"meta": {
"instanceId": "162ac074e4d71c45bf56839ebdf3fced34910e0c755169697977507dcb193b1b",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c016b293-b976-428f-b72c-f1d287c74a4d",
"name": "Activador de JotForm",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-560,
576
],
"webhookId": "jotform-webhook",
"parameters": {},
"typeVersion": 1
},
{
"id": "ae285cb5-4ac1-4cbf-beb7-37be3e90c747",
"name": "Extraer y Formatear Datos del Lead",
"type": "n8n-nodes-base.set",
"position": [
-336,
576
],
"parameters": {
"mode": "combine",
"options": {}
},
"executeOnce": false,
"typeVersion": 3.3
},
{
"id": "681c776e-6e28-4b04-96fe-ea656438b55e",
"name": "Puntuación de Leads por IA",
"type": "n8n-nodes-base.code",
"position": [
-112,
576
],
"parameters": {
"jsCode": "// AI-powered lead scoring algorithm\nconst items = $input.all();\nconst scoredItems = [];\n\nfor (const item of items) {\n const data = item.json;\n let score = 0;\n let qualificationNotes = [];\n \n // Email domain scoring (business vs personal)\n const email = data.email || '';\n const domain = email.split('@')[1] || '';\n const personalDomains = ['gmail.com', 'yahoo.com', 'hotmail.com', 'outlook.com'];\n \n if (!personalDomains.includes(domain.toLowerCase())) {\n score += 25;\n qualificationNotes.push('Business email domain (+25)');\n } else {\n qualificationNotes.push('Personal email domain (0)');\n }\n \n // Company size scoring\n const companySize = data.companySize || data.company_size || '';\n if (companySize.includes('50+') || companySize.includes('100+') || companySize.includes('500+')) {\n score += 30;\n qualificationNotes.push('Large company size (+30)');\n } else if (companySize.includes('10-50') || companySize.includes('25-99')) {\n score += 20;\n qualificationNotes.push('Medium company size (+20)');\n } else {\n score += 10;\n qualificationNotes.push('Small company size (+10)');\n }\n \n // Budget scoring\n const budget = data.budget || data.estimatedBudget || '';\n if (budget.includes('$10,000+') || budget.includes('$25,000+') || budget.includes('Enterprise')) {\n score += 25;\n qualificationNotes.push('High budget (+25)');\n } else if (budget.includes('$5,000') || budget.includes('$10,000')) {\n score += 15;\n qualificationNotes.push('Medium budget (+15)');\n } else {\n score += 5;\n qualificationNotes.push('Lower budget (+5)');\n }\n \n // Timeline scoring (urgency)\n const timeline = data.timeline || data.implementation_timeline || '';\n if (timeline.includes('Immediately') || timeline.includes('Within 1 month') || timeline.includes('ASAP')) {\n score += 20;\n qualificationNotes.push('Urgent timeline (+20)');\n } else if (timeline.includes('1-3 months') || timeline.includes('Next quarter')) {\n score += 10;\n qualificationNotes.push('Medium timeline (+10)');\n } else {\n score += 5;\n qualificationNotes.push('Long timeline (+5)');\n }\n \n // Determine lead tier\n let leadTier = 'Cold';\n if (score >= 75) {\n leadTier = 'Hot';\n } else if (score >= 50) {\n leadTier = 'Warm';\n }\n \n scoredItems.push({\n json: {\n ...data,\n leadScore: score,\n leadTier: leadTier,\n qualificationNotes: qualificationNotes,\n scoredAt: new Date().toISOString()\n }\n });\n}\n\nreturn scoredItems;"
},
"typeVersion": 2
},
{
"id": "c3bf276b-f38e-47e5-87e4-b0055d6aa140",
"name": "Enrutar por Calidad del Lead",
"type": "n8n-nodes-base.if",
"position": [
112,
576
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "hot-lead",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.leadTier }}",
"rightValue": "Hot"
},
{
"id": "warm-lead",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.leadTier }}",
"rightValue": "Warm"
}
]
}
},
"typeVersion": 2
},
{
"id": "6ad68ea3-621f-4abd-b8c6-1b6d55c8d95e",
"name": "Agregar a CRM HubSpot",
"type": "n8n-nodes-base.hubspot",
"position": [
560,
384
],
"parameters": {
"operation": "create"
},
"typeVersion": 2
},
{
"id": "cfb3e0c8-9b5d-43e5-ab58-6a5cd542f566",
"name": "Registrar en Hojas Google",
"type": "n8n-nodes-base.googleSheets",
"position": [
336,
768
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $json.firstName }} {{ $json.lastName }}",
"Email": "={{ $json.email }}",
"Phone": "={{ $json.phone }}",
"Budget": "={{ $json.budget }}",
"Source": "JotForm",
"Status": "New",
"Company": "={{ $json.company }}",
"Timeline": "={{ $json.timeline }}",
"Lead Tier": "={{ $json.leadTier }}",
"Timestamp": "={{ $now.toISO() }}",
"Lead Score": "={{ $json.leadScore }}",
"Company Size": "={{ $json.companySize }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "your-spreadsheet-id",
"cachedResultName": "Lead Tracker"
}
},
"typeVersion": 4.4
},
{
"id": "27c1fd07-3abf-4183-8c5f-a39c859b5652",
"name": "Notificar al Equipo de Ventas (Lead Caliente)",
"type": "n8n-nodes-base.slack",
"position": [
336,
240
],
"webhookId": "a119a8a8-18dd-4783-be1f-24112f82edd9",
"parameters": {
"text": "🔥 *HOT LEAD ALERT!*\n\n*{{ $json.firstName }} {{ $json.lastName }}* from *{{ $json.company }}*\n📧 {{ $json.email }}\n📱 {{ $json.phone }}\n\n*Lead Score:* {{ $json.leadScore }}/100\n*Tier:* {{ $json.leadTier }}\n*Budget:* {{ $json.budget }}\n*Timeline:* {{ $json.timeline }}\n*Company Size:* {{ $json.companySize }}\n\n*Qualification Notes:*\n{{ $json.qualificationNotes.join('\\n') }}\n\n_Action Required: Follow up within 1 hour!_",
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "a02fd656-7794-45f1-9695-fcf64c51a825",
"name": "Generar Correo Personalizado",
"type": "n8n-nodes-base.code",
"position": [
336,
576
],
"parameters": {
"jsCode": "// Generate personalized email content based on lead data\nconst items = $input.all();\nconst emailItems = [];\n\nfor (const item of items) {\n const data = item.json;\n const firstName = data.firstName || data.first_name || data.name?.split(' ')[0] || 'there';\n const company = data.company || data.companyName || 'your company';\n const leadTier = data.leadTier || 'Warm';\n \n let subject = '';\n let body = '';\n \n if (leadTier === 'Hot') {\n subject = `Quick follow-up - Let's get ${company} started!`;\n body = `Hi ${firstName},\n\nThank you for your interest! I noticed you're looking to get started soon, and I wanted to reach out personally.\n\nBased on your requirements:\n• Budget: ${data.budget}\n• Timeline: ${data.timeline}\n• Company size: ${data.companySize}\n\nI've reserved a spot in my calendar for a demo specifically tailored to ${company}'s needs. We can show you exactly how our solution will work for you.\n\nI'm available for a quick 15-minute call tomorrow. What time works best for you?\n\nLooking forward to speaking soon!\n\nBest regards,\nSales Team`;\n } else {\n subject = `Great to connect, ${firstName}! Here's what you need to know`;\n body = `Hi ${firstName},\n\nThank you for reaching out! I'm excited to learn more about ${company} and how we can help.\n\nI've put together some resources that I think you'll find valuable:\n\n📊 Case Study: How companies like yours improved results by 3x\n📹 Quick Demo: See our platform in action (5 min video)\n📚 Guide: Best practices for your industry\n\nI'll follow up in a few days to see if you have any questions. In the meantime, feel free to reply to this email or book a time on my calendar: [Calendar Link]\n\nBest regards,\nSales Team`;\n }\n \n emailItems.push({\n json: {\n ...data,\n emailSubject: subject,\n emailBody: body\n }\n });\n}\n\nreturn emailItems;"
},
"typeVersion": 2
},
{
"id": "fbe3c39e-0c45-42c9-a524-89448f0056b7",
"name": "Enviar Correo Personalizado",
"type": "n8n-nodes-base.emailSend",
"position": [
560,
576
],
"webhookId": "645b63b2-4336-4149-83be-3de2d28985e6",
"parameters": {
"options": {
"replyTo": "sales@yourcompany.com",
"allowUnauthorizedCerts": false
},
"subject": "={{ $json.emailSubject }}",
"toEmail": "={{ $json.email }}",
"fromEmail": "sales@yourcompany.com"
},
"typeVersion": 2.1
},
{
"id": "6959cd8f-3c3e-4584-ad90-382404e801d9",
"name": "Notificar a Marketing (Lead Tibio/Frío)",
"type": "n8n-nodes-base.slack",
"position": [
336,
960
],
"webhookId": "8dc28fe0-5a5d-482c-bf3c-b99b99431916",
"parameters": {
"text": "📋 *New Lead Submission*\n\n*{{ $json.firstName }} {{ $json.lastName }}* from *{{ $json.company }}*\n📧 {{ $json.email }}\n\n*Lead Score:* {{ $json.leadScore }}/100\n*Tier:* {{ $json.leadTier }}\n\n_Automated nurture sequence initiated_",
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "2a936548-a209-4577-a514-09eafb7a51d2",
"name": "Crear Resumen Diario",
"type": "n8n-nodes-base.set",
"position": [
784,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "summary-text",
"name": "dailySummary",
"type": "string",
"value": "={{ $json.totalLeads }} new leads processed:\n• {{ $json.hotLeads }} Hot Leads\n• {{ $json.warmLeads }} Warm Leads \n• {{ $json.coldLeads }} Cold Leads\n\nAverage Lead Score: {{ $json.avgScore }}/100"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "6552c1da-6b0d-4501-9768-587246d1b94c",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1152,
400
],
"parameters": {
"width": 500,
"height": 476,
"content": "# 🎯 Lead Qualification & Nurturing System\n\nAuto-captures JotForm leads, scores them by AI, and sends hot leads to sales, others to marketing. All leads go to HubSpot and Google Sheets, with Slack alerts and auto follow-up email.\n\n**Scoring:** Based on email, company size, budget, and timeline.\n\n**Setup:** \n- Connect JotForm, HubSpot, Sheets, Slack, SMTP \n- Map fields \n- Adjust score logic and email templates\n\n**Results:** \n- Respond faster, convert more, eliminate manual entry\n\n*Built by Daniel Shashko* \n[Connect on LinkedIn](https://www.linkedin.com/in/daniel-shashko/)"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"681c776e-6e28-4b04-96fe-ea656438b55e": {
"main": [
[
{
"node": "c3bf276b-f38e-47e5-87e4-b0055d6aa140",
"type": "main",
"index": 0
}
]
]
},
"c016b293-b976-428f-b72c-f1d287c74a4d": {
"main": [
[
{
"node": "ae285cb5-4ac1-4cbf-beb7-37be3e90c747",
"type": "main",
"index": 0
}
]
]
},
"6ad68ea3-621f-4abd-b8c6-1b6d55c8d95e": {
"main": [
[
{
"node": "2a936548-a209-4577-a514-09eafb7a51d2",
"type": "main",
"index": 0
}
]
]
},
"c3bf276b-f38e-47e5-87e4-b0055d6aa140": {
"main": [
[
{
"node": "6ad68ea3-621f-4abd-b8c6-1b6d55c8d95e",
"type": "main",
"index": 0
},
{
"node": "cfb3e0c8-9b5d-43e5-ab58-6a5cd542f566",
"type": "main",
"index": 0
},
{
"node": "27c1fd07-3abf-4183-8c5f-a39c859b5652",
"type": "main",
"index": 0
},
{
"node": "a02fd656-7794-45f1-9695-fcf64c51a825",
"type": "main",
"index": 0
}
],
[
{
"node": "6ad68ea3-621f-4abd-b8c6-1b6d55c8d95e",
"type": "main",
"index": 0
},
{
"node": "cfb3e0c8-9b5d-43e5-ab58-6a5cd542f566",
"type": "main",
"index": 0
},
{
"node": "6959cd8f-3c3e-4584-ad90-382404e801d9",
"type": "main",
"index": 0
},
{
"node": "a02fd656-7794-45f1-9695-fcf64c51a825",
"type": "main",
"index": 0
}
]
]
},
"fbe3c39e-0c45-42c9-a524-89448f0056b7": {
"main": [
[
{
"node": "2a936548-a209-4577-a514-09eafb7a51d2",
"type": "main",
"index": 0
}
]
]
},
"ae285cb5-4ac1-4cbf-beb7-37be3e90c747": {
"main": [
[
{
"node": "681c776e-6e28-4b04-96fe-ea656438b55e",
"type": "main",
"index": 0
}
]
]
},
"a02fd656-7794-45f1-9695-fcf64c51a825": {
"main": [
[
{
"node": "fbe3c39e-0c45-42c9-a524-89448f0056b7",
"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 - Resumen de IA
¿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
Daniel Shashko
@tomaxAI automation specialist and a marketing enthusiast. More than 6 years of experience in SEO/GEO. Senior SEO at Bright Data.
Compartir este flujo de trabajo