# workflow_history

versionId: 764fd514-cdf8-4f80-b7bf-70643dde022c
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 13:32:15.207
updatedAt: 2026-01-05 13:32:15.207
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"avisos@excelcertify.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ '🔔 Nueva Reserva: ' + $json.body.empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.body.email }}\">{{ $json.body.email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $json.body.interes }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en el Google Sheet correctamente.</em></p>","options":{}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"rU1lFD8D2vfG91MG","name":"SMTP account"}}},{"parameters":{"fromEmail":"avisos@excelcertify.com","toEmail":"={{ $json.body.email }}","subject":"✅ Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.body.nombre }}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.body.empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"rU1lFD8D2vfG91MG","name":"SMTP account"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
  {"Webhook Landing":{"main":[[{"node":"Respuesta OK","type":"main","index":0},{"node":"Agregar Fecha","type":"main","index":0}]]},"Agregar Fecha":{"main":[[{"node":"Guardar en Sheets","type":"main","index":0}]]},"Guardar en Sheets":{"main":[[{"node":"Email a Victor (SMTP)","type":"main","index":0},{"node":"Email al Cliente (SMTP)","type":"main","index":0}]]}}


versionId: 9aa1bd80-5eb2-46a2-9495-9236b897f5bf
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 14:01:30.932
updatedAt: 2026-01-05 14:01:30.932
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{"Fecha":"={{ $now }}","Nombre":"={{ $('Webhook Landing').item.json.body.nombre }}","Empresa":"={{ $('Webhook Landing').item.json.body.empresa }}","Email":"={{ $('Webhook Landing').item.json.body.email }}","Teléfono":"={{ $('Webhook Landing').item.json.body.telefono }}","Interés":"={{ $workflow.name }}"},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"info@excedera.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ '🔔 Nueva Reserva: ' + $json.Empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.body.email }}\">{{ $json.body.email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $workflow.name }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en Google Sheet correctamente.</em></p>","options":{"appendAttribution":false}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"rU1lFD8D2vfG91MG","name":"SMTP account"}}},{"parameters":{"fromEmail":"info@excedera.com","toEmail":"={{ $('Webhook Landing').item.json.body.email }}","subject":"✅ Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.Nombre}}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.Empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{"appendAttribution":false}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"rU1lFD8D2vfG91MG","name":"SMTP account"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
  {"Webhook Landing":{"main":[[{"node":"Respuesta OK","type":"main","index":0},{"node":"Agregar Fecha","type":"main","index":0}]]},"Agregar Fecha":{"main":[[{"node":"Guardar en Sheets","type":"main","index":0}]]},"Guardar en Sheets":{"main":[[{"node":"Email a Victor (SMTP)","type":"main","index":0},{"node":"Email al Cliente (SMTP)","type":"main","index":0}]]}}


versionId: 9b95a14c-27aa-43dd-8403-15fdd55f5964
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 14:16:38.645
updatedAt: 2026-01-05 14:16:38.645
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{"Fecha":"={{ $now }}","Nombre":"={{ $('Webhook Landing').item.json.body.nombre }}","Empresa":"={{ $('Webhook Landing').item.json.body.empresa }}","Email":"={{ $('Webhook Landing').item.json.body.email }}","Teléfono":"={{ $('Webhook Landing').item.json.body.telefono }}","Interés":"={{ $workflow.name }}"},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"info@excedera.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ '🔔 Nueva Reserva: ' + $json.Empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.body.email }}\">{{ $json.body.email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $workflow.name }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en Google Sheet correctamente.</em></p>","options":{"appendAttribution":false}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"fromEmail":"info@excedera.com","toEmail":"={{ $('Webhook Landing').item.json.body.email }}","subject":"✅ Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.Nombre}}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.Empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{"appendAttribution":false}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
  {"Webhook Landing":{"main":[[{"node":"Respuesta OK","type":"main","index":0},{"node":"Agregar Fecha","type":"main","index":0}]]},"Agregar Fecha":{"main":[[{"node":"Guardar en Sheets","type":"main","index":0}]]},"Guardar en Sheets":{"main":[[{"node":"Email a Victor (SMTP)","type":"main","index":0},{"node":"Email al Cliente (SMTP)","type":"main","index":0}]]}}


versionId: 6bd01d13-ad4f-40a8-86c8-8253fc3636a0
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 14:19:11.799
updatedAt: 2026-01-05 14:19:11.799
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{"Fecha":"={{ $now }}","Nombre":"={{ $('Webhook Landing').item.json.body.nombre }}","Empresa":"={{ $('Webhook Landing').item.json.body.empresa }}","Email":"={{ $('Webhook Landing').item.json.body.email }}","Teléfono":"={{ $('Webhook Landing').item.json.body.telefono }}","Interés":"={{ $workflow.name }}"},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ '🔔 Nueva Reserva: ' + $json.Empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.body.email }}\">{{ $json.body.email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $workflow.name }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en Google Sheet correctamente.</em></p>","options":{"appendAttribution":false}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Landing').item.json.body.email }}","subject":"✅ Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.Nombre}}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.Empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{"appendAttribution":false}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
[cell repeats an earlier one in this file: 360 characters]


versionId: 931ad7b3-6431-46a7-9eb2-fd5d418f6c18
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 14:22:25.751
updatedAt: 2026-01-05 14:22:25.751
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{"Fecha":"={{ $now }}","Nombre":"={{ $('Webhook Landing').item.json.body.nombre }}","Empresa":"={{ $('Webhook Landing').item.json.body.empresa }}","Email":"={{ $('Webhook Landing').item.json.body.email }}","Teléfono":"={{ $('Webhook Landing').item.json.body.telefono }}","Interés":"={{ $workflow.name }}"},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ '🔔 Nueva Reserva: ' + $json.Empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.Email }}\">{{ $json.Email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $workflow.name }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en Google Sheet correctamente.</em></p>","options":{"appendAttribution":false}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Landing').item.json.body.email }}","subject":"✅ Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.Nombre}}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.Empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{"appendAttribution":false}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
[cell repeats an earlier one in this file: 360 characters]


versionId: 012facb5-752a-441c-bc5c-f667ce003ddf
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 14:28:19.450
updatedAt: 2026-01-05 14:28:19.450
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{"Fecha":"={{ $now }}","Nombre":"={{ $('Webhook Landing').item.json.body.nombre }}","Empresa":"={{ $('Webhook Landing').item.json.body.empresa }}","Email":"={{ $('Webhook Landing').item.json.body.email }}","Teléfono":"={{ $('Webhook Landing').item.json.body.telefono }}","Interés":"={{ $workflow.name }}"},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ 'Nueva Reserva: ' + $json.Empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.Email }}\">{{ $json.Email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $workflow.name }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en Google Sheet correctamente.</em></p>","options":{"appendAttribution":false}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Landing').item.json.body.email }}","subject":"Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.Nombre}}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.Empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{"appendAttribution":false}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
[cell repeats an earlier one in this file: 360 characters]


versionId: 04fe36a5-fc23-4b94-83d0-f384a3c8e524
workflowId: i9jAXj8naWcBCZoG
authors: Victor Colussi
createdAt: 2026-01-05 16:17:03.902
updatedAt: 2026-01-05 16:17:03.902
nodes:
  [{"parameters":{"httpMethod":"POST","path":"reserva-2026","options":{}},"id":"939339ef-1232-4781-8630-153e02c5fbb5","name":"Webhook Landing","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-224,160],"webhookId":"reserva-2026"},{"parameters":{"operation":"append","documentId":{"__rl":true,"value":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit?gid=0#gid=0","mode":"url"},"sheetName":{"__rl":true,"value":"gid=0","mode":"list","cachedResultName":"Hoja 1","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1EoiocZTa9ELY8TQBXLEJSjxAZmohYClF1GH0N2qE4As/edit#gid=0"},"columns":{"mappingMode":"defineBelow","value":{"Fecha":"={{ $now }}","Nombre":"={{ $('Webhook Landing').item.json.body.nombre }}","Empresa":"={{ $('Webhook Landing').item.json.body.empresa }}","Email":"={{ $('Webhook Landing').item.json.body.email }}","Teléfono":"={{ $('Webhook Landing').item.json.body.telefono }}","Interés":"={{ $workflow.name }}"},"matchingColumns":[],"schema":[{"id":"Fecha","displayName":"Fecha","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Nombre","displayName":"Nombre","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Empresa","displayName":"Empresa","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Teléfono","displayName":"Teléfono","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"Interés","displayName":"Interés","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true}],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{}},"id":"291c38b1-a3bd-4093-86c2-20083e24c599","name":"Guardar en Sheets","type":"n8n-nodes-base.googleSheets","typeVersion":4.5,"position":[224,160],"notesInFlow":true,"credentials":{"googleSheetsOAuth2Api":{"id":"5TssK5sjUDI7k2MP","name":"Google Sheets account"}},"notes":"Pega aquí la URL de tu Google Sheet"},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"victorrcolussi@gmail.com","subject":"={{ 'Nueva Reserva: ' + $json.Empresa }}","html":"=<h3>Nuevo Lead desde la Landing 2026</h3>\n<table border=\"1\" cellpadding=\"10\" style=\"border-collapse: collapse; width: 100%;\">\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Nombre:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.nombre }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Empresa:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.empresa }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Email:</strong></td>\n<td><a href=\"mailto:{{ $json.Email }}\">{{ $json.Email }}</a></td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Teléfono:</strong></td>\n<td>{{ $('Webhook Landing').item.json.body.telefono }}</td>\n</tr>\n<tr>\n<td style=\"background-color: #f0f0f0;\"><strong>Interés:</strong></td>\n<td>{{ $workflow.name }}</td>\n</tr>\n</table>\n<p><em>Este lead se ha guardado en Google Sheet correctamente.</em></p>","options":{"appendAttribution":false}},"id":"62f2957f-2e65-43ed-9480-4f4dfc828e49","name":"Email a Victor (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,64],"webhookId":"34f46ebe-a9c0-4758-84d6-017cc196f0f9","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Landing').item.json.body.email }}","subject":"Confirmado: Tu tarifa 2025 está congelada","html":"=<div style=\"font-family: Arial, sans-serif; color: #333;\">\n  <h2 style=\"color: #10B981;\">¡Hola {{ $json.Nombre}}!</h2>\n  <p>Te confirmo que hemos recibido tus datos correctamente.</p>\n  <div style=\"background-color: #f3f4f6; padding: 15px; border-left: 4px solid #10B981; margin: 20px 0;\">\n    <strong>Estado de Reserva:</strong> <span style=\"color: #10B981;\">CONFIRMADA</span><br>\n    <strong>Empresa:</strong> {{ $json.Empresa }}<br>\n    <strong>Beneficio:</strong> Tarifa Enero 2025 (Válida hasta Junio 2026)\n  </div>\n  <p><strong>¿Qué sigue ahora?</strong></p>\n  <p>Uno de nuestros asesores comerciales está revisando tu solicitud y te contactará en breve (generalmente en menos de 24hs hábiles) para enviarte la propuesta formal y extender el plazo de contratación hasta Febrero.</p>\n  <p>Gracias por confiar en <strong>ExcelCertify</strong> para capacitar a tu equipo.</p>\n  <hr style=\"border: 0; border-top: 1px solid #eee; margin: 20px 0;\">\n  <p style=\"font-size: 12px; color: #888;\">ExcelCertify - Microsoft & Google Partner</p>\n</div>","options":{"appendAttribution":false,"ccEmail":"info@excelcertify.com","replyTo":"info@excelcertify.com"}},"id":"3f7aaca3-9522-44a7-860b-8bb003a38eb5","name":"Email al Cliente (SMTP)","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[448,304],"webhookId":"01049bd8-8ece-4b44-980c-e95edd57f313","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"options":{"responseCode":200}},"id":"43d95134-1a0f-4a1f-9b6f-0f22c17109cd","name":"Respuesta OK","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[32,160]},{"parameters":{"options":{}},"id":"af0f3b43-8e7d-4bee-a5d8-a29ffb811c07","name":"Agregar Fecha","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[0,0]}]

connections:
[cell repeats an earlier one in this file: 360 characters]


versionId: 9229f0c9-094d-4df5-a4ce-b6273e96d75e
workflowId: 9PoYkvCPjdOR09Eu
authors: Victor Colussi
createdAt: 2026-01-05 16:20:38.079
updatedAt: 2026-01-05 16:20:38.079
connections: {"Webhook Presupuesto Pro":{"main":[[{"node":"Calcular Fechas y Datos","type":"main","index":0}]]}}
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"41b1c26f-97e3-428e-8cd7-c77041f5840e","name":"Webhook Presupuesto Pro","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-656,112],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// Calculamos fechas y ID\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// Separamos el precio del nombre del plan\nconst planParts = $json.body.plan_detalle.split('-');\nconst planNombre = planParts[0].trim();\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// Retornamos las nuevas variables\nreturn {\n  fecha_emision: now.toFormat('dd/MM/yyyy'),\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy'),\n  id_unico: presupuestoID,\n  plan_nombre: planNombre,\n  plan_precio: planPrecio\n};"},"id":"fe268474-bf16-4748-8b00-a0b9a9d30a7c","name":"Calcular Fechas y Datos","type":"n8n-nodes-base.code","typeVersion":2,"position":[-448,112]},{"parameters":{},"id":"4f533fbb-6c85-42f7-b733-78e9d4aba556","name":"Generar PDF Pro","type":"n8n-nodes-base.htmlToPdf","typeVersion":1,"position":[-224,112]},{"parameters":{"fromEmail":"avisos@excelcertify.com","toEmail":"={{ $json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"📄 Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{}},"id":"1d0072b2-b075-493b-b0aa-46de08db3f93","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[0,0],"webhookId":"a2803bbb-0945-42b8-9faf-04141f93a466"},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"da2e00ab-15af-4ce3-9339-d996fb7e5da9","name":"Entregar PDF al Navegador","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[0,208]}]


versionId: b7f5f40e-80ab-497b-bab2-f501fccf669d
workflowId: GrlbAlb3HwTYVVUp
authors: Victor Colussi
createdAt: 2026-01-05 16:41:02.043
updatedAt: 2026-01-05 16:41:02.043
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"ca0bbb28-f429-44c7-9d39-997131f9ad1c","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[-848,112],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// Calculamos fechas y ID\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// Separamos el precio del nombre del plan\nconst planParts = $json.body.plan_detalle.split('-');\nconst planNombre = planParts[0].trim();\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// Convertimos la lista de cursos en un array limpio\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\nreturn {\n  fecha_emision: now.toFormat('dd/MM/yyyy'),\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy'),\n  id_unico: presupuestoID,\n  plan_nombre: planNombre,\n  plan_precio: planPrecio,\n  cursos_html: cursosHTML\n};"},"id":"c8b1f2e4-dfec-4cf8-84ff-4224ba5be221","name":"Calcular Fechas","type":"n8n-nodes-base.code","typeVersion":2,"position":[-640,112]},{"parameters":{"method":"POST","url":"https://api.pdfmunk.com/v1/pages","sendHeaders":true,"headerParameters":{"parameters":[{"name":"Authorization","value":"pdfmunk_e0a146ce081b4303a2245d95bdfe9323"}]},"sendBody":true,"bodyParameters":{"parameters":[{"name":"html","value":"={{ \n`<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Presupuesto Formal</title>\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');\nbody { font-family: 'Inter', Helvetica, Arial, sans-serif; color: #374151; line-height: 1.5; margin: 0; padding: 40px; }\n.legal-top { font-size: 0.75rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 25px; border-bottom: 1px dashed #e5e7eb; padding-bottom: 10px; text-align: center; font-weight: 600; }\n.header { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid #10b981; padding-bottom: 25px; margin-bottom: 35px; }\n.logos-container { display: flex; flex-direction: column; gap: 12px; }\n.main-logo { height: 60px; object-fit: contain; display: block; }\n.partner-logos { display: flex; gap: 15px; align-items: center; }\n.partner-img { height: 24px; filter: grayscale(100%); opacity: 0.6; }\n.meta-info { text-align: right; font-size: 0.85rem; color: #6b7280; }\n.meta-info strong { color: #111827; }\nh1 { color: #111827; font-size: 26px; margin: 0 0 5px 0; font-weight: 800; }\nh2 { color: #111827; font-size: 16px; font-weight: 700; border-bottom: 1px solid #e5e7eb; padding-bottom: 8px; margin-top: 35px; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; }\n.client-info { display: flex; justify-content: space-between; margin-bottom: 30px; background-color: #f9fafb; padding: 20px; border-radius: 8px; border: 1px solid #f3f4f6; }\n.client-col { width: 48%; }\n.client-col p { margin: 4px 0; font-size: 0.9rem; }\n.label { font-weight: 600; color: #4b5563; display: inline-block; width: 90px; }\ntable { width: 100%; border-collapse: collapse; margin-top: 15px; }\nth { background: #111827; color: #ffffff; padding: 10px 15px; text-align: left; font-weight: 600; font-size: 0.85rem; }\ntd { padding: 15px; border-bottom: 1px solid #e5e7eb; vertical-align: middle; }\n.price-col { text-align: right; font-weight: 700; color: #111827; font-size: 1rem; white-space: nowrap; background-color: #f0fdf4; }\n.courses-box { background: #fff; padding: 15px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 0.95rem; color: #374151; line-height: 1.8; }\n.change-warning { display: block; margin-top: 10px; font-size: 0.85rem; color: #15803d; font-weight: 600; font-style: italic; }\n.terms { margin-top: 30px; font-size: 0.8rem; color: #4b5563; }\n.terms ul { padding-left: 18px; margin-bottom: 0; }\n.terms li { margin-bottom: 6px; }\n.footer { margin-top: 50px; text-align: center; font-size: 0.75rem; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 20px; }\n.highlight { color: #10b981; font-weight: 600; }\n</style>\n</head>\n<body>\n\n<div class=\"legal-top\">Presupuesto válido para emitir Orden de Compra a favor de Excel Certify - Integralitas S.A.S según corresponda</div>\n\n<div class=\"header\">\n  <div class=\"logos-container\">\n    <img src=\"https://excelcertify.com/wp-content/uploads/2023/07/cropped-cropped-cropped-logoexcelcertify-bicubic-1-1-188x63.png\" alt=\"Excel Certify\" class=\"main-logo\">\n    <div class=\"partner-logos\">\n        <img src=\"https://excelcertify.com/wp-content/uploads/2025/07/Microsoft-Solutions-Partner.png\" alt=\"Microsoft Partner\" class=\"partner-img\">\n        <img src=\"https://excelcertify.com/wp-content/uploads/2025/07/GC-Partner1.png\" alt=\"Google Partner\" class=\"partner-img\">\n    </div>\n  </div>\n  <div class=\"meta-info\">\n    <p><strong>Fecha de Emisión:</strong> ${$json.fecha_emision}</p>\n    <p><strong>Válido hasta:</strong> <span class=\"highlight\">${$json.fecha_validez}</span></p>\n    <p><strong>Presupuesto N°:</strong> PRE-26-${$json.id_unico}</p>\n  </div>\n</div>\n\n<h1>Presupuesto de Capacitación</h1>\n<p style=\"color: #6b7280; margin-top: 0; font-size: 0.9rem;\">Propuesta profesional con tarifa congelada Enero 2025.</p>\n\n<div class=\"client-info\">\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.8rem; color:#9ca3af; margin-bottom:5px;\">Cliente</p>\n    <p><span class=\"label\">Empresa:</span> <strong>${$json.body.empresa}</strong></p>\n    <p><span class=\"label\">CUIT / ID:</span> ${$json.body.cuit ? $json.body.cuit : 'No informado'}</p>\n  </div>\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.8rem; color:#9ca3af; margin-bottom:5px;\">Contacto</p>\n    <p><span class=\"label\">Atención a:</span> ${$json.body.nombre_reserva}</p>\n    <p><span class=\"label\">Email:</span> ${$json.body.email_responsable}</p>\n  </div>\n</div>\n\n<h2>Detalle de la Inversión</h2>\n<table>\n  <thead><tr><th width=\"65%\">Descripción del Servicio</th><th width=\"35%\" style=\"text-align: right;\">Inversión Total</th></tr></thead>\n  <tbody>\n    <tr>\n      <td class=\"plan-desc\">\n        <strong style=\"font-size: 1rem; color: #111827;\">${$json.plan_nombre}</strong><br>\n        <span style=\"font-size: 0.85rem; color: #6b7280;\">Modalidad Online en Vivo. Incluye certificación oficial.</span>\n      </td>\n      <td class=\"price-col\">${$json.plan_precio} s / IVA</td>\n    </tr>\n  </tbody>\n</table>\n\n<h2>Tecnologías Incluidas</h2>\n<p style=\"margin-bottom: 10px; font-size: 0.9rem;\">El presente presupuesto contempla la capacitación en las siguientes áreas seleccionadas:</p>\n<div class=\"courses-box\">\n  ${$json.cursos_html}\n  <span class=\"change-warning\">/ Los cursos pueden ser cambiados hasta 30 días antes de la capacitación efectiva.</span>\n</div>\n\n<div class=\"terms\">\n  <h3 style=\"margin-top: 0; font-size: 0.9rem; font-weight: 700; color: #111827; margin-bottom: 10px;\">Términos y Condiciones Comerciales</h3>\n  <ul>\n    <li><strong>Validez de la Oferta:</strong> Precios congelados (tarifa Enero 2025) válidos para ejecución hasta Junio 2026, confirmando reserva en Enero.</li>\n    <li><strong>Forma de Pago:</strong> Transferencia bancaria o eCheq a favor de Integralitas S.A.S.</li>\n    <li><strong>Facturación:</strong> Se emitirá Factura A o C tras la confirmación. Con Factura A, el precio promocional está sujeto a un recargo del 16% + IVA.</li>\n    <li><strong>Confidencialidad:</strong> Documento confidencial para uso exclusivo de la empresa destinataria.</li>\n  </ul>\n</div>\n\n<div class=\"footer\">\n  <p><strong>Excel Certify</strong> - Integralitas S.A.S</p>\n  <p>Microsoft Solutions Partner & Google Partner</p>\n  <p>www.excelcertify.com | info@excelcertify.com</p>\n</div>\n\n</body>\n</html>` \n}}"}]},"options":{}},"id":"5c1e8545-1545-4ef6-b7af-f3bc6e9b3e32","name":"Generar en PDFMunk","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[-416,112],"notesInFlow":true,"notes":"⚠️ PEGA TU API KEY EN 'AUTHORIZATION'"},{"parameters":{"url":"={{ $json.url }}","options":{"response":{"response":{"responseFormat":"file"}}}},"id":"847bb515-f0b4-4d6f-98bc-485b70b972dc","name":"Descargar PDF (Buffer)","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[-224,112]},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"📄 Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{}},"id":"6ea0db06-e866-4314-b2b5-a469733633d4","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[0,0],"webhookId":"f283c4ea-e733-42aa-9ca1-cc8c1ec63dbe","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"d5963828-816b-4945-8402-fdd3577f5803","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[0,208]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Calcular Fechas","type":"main","index":0}]]},"Calcular Fechas":{"main":[[{"node":"Generar en PDFMunk","type":"main","index":0}]]},"Generar en PDFMunk":{"main":[[{"node":"Descargar PDF (Buffer)","type":"main","index":0}]]},"Descargar PDF (Buffer)":{"main":[[{"node":"Enviar Email con PDF","type":"main","index":0},{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: ff6c6b91-81f2-498e-b3de-e55e090ca658
workflowId: pPE3eHr539Rcc75T
authors: Victor Colussi
createdAt: 2026-01-05 16:54:31.157
updatedAt: 2026-01-05 16:54:31.157
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"4b1cb24f-eb62-4318-a5b6-5de5f2666e71","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[0,0],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// Calculamos fechas y ID\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// Separamos el precio del nombre del plan\nconst planParts = $json.body.plan_detalle.split('-');\nconst planNombre = planParts[0].trim();\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// Convertimos la lista de cursos en un array limpio\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\nreturn {\n  fecha_emision: now.toFormat('dd/MM/yyyy'),\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy'),\n  id_unico: presupuestoID,\n  plan_nombre: planNombre,\n  plan_precio: planPrecio,\n  cursos_html: cursosHTML\n};"},"id":"e9ee9a91-4465-4805-ad0b-aedf959d631f","name":"Calcular Fechas","type":"n8n-nodes-base.code","typeVersion":2,"position":[224,0]},{"parameters":{"operation":"htmlToPdf","options":{}},"id":"d3c8c399-6ae6-482f-98f4-4478eed17e17","name":"Generar PDF Local","type":"n8n-nodes-puppeteer.puppeteer","typeVersion":1,"position":[448,0]},{"parameters":{"fromEmail":"avisos@excelcertify.com","toEmail":"={{ $json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal Válido 30 días  ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{}},"id":"567b6610-de23-406d-b003-2e37554ceddf","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[672,0],"webhookId":"cb5986aa-8d4d-4f5a-9e68-d8154ba94d25","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"7e50f3cf-99ff-45be-a389-991b32a58339","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[864,0]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Calcular Fechas","type":"main","index":0}]]},"Calcular Fechas":{"main":[[{"node":"Generar PDF Local","type":"main","index":0}]]},"Generar PDF Local":{"main":[[{"node":"Enviar Email con PDF","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: 4d3ce136-095c-48d3-8c55-3f89f0644d1c
workflowId: pPE3eHr539Rcc75T
authors: Victor Colussi
createdAt: 2026-01-05 17:06:20.996
updatedAt: 2026-01-05 17:06:20.996
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"4b1cb24f-eb62-4318-a5b6-5de5f2666e71","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[0,0],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// Calculamos fechas y ID\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// Separamos el precio del nombre del plan\nconst planParts = $json.body.plan_detalle.split('-');\nconst planNombre = planParts[0].trim();\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// Convertimos la lista de cursos en un array limpio\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\nreturn {\n  fecha_emision: now.toFormat('dd/MM/yyyy'),\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy'),\n  id_unico: presupuestoID,\n  plan_nombre: planNombre,\n  plan_precio: planPrecio,\n  cursos_html: cursosHTML\n};"},"id":"e9ee9a91-4465-4805-ad0b-aedf959d631f","name":"Calcular Fechas","type":"n8n-nodes-base.code","typeVersion":2,"position":[224,0]},{"parameters":{"options":{}},"id":"d3c8c399-6ae6-482f-98f4-4478eed17e17","name":"Generar PDF Local","type":"n8n-nodes-puppeteer.puppeteer","typeVersion":1,"position":[448,0]},{"parameters":{"fromEmail":"avisos@excelcertify.com","toEmail":"={{ $json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal Válido 30 días  ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{}},"id":"567b6610-de23-406d-b003-2e37554ceddf","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[672,0],"webhookId":"cb5986aa-8d4d-4f5a-9e68-d8154ba94d25","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"7e50f3cf-99ff-45be-a389-991b32a58339","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[864,0]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Calcular Fechas","type":"main","index":0}]]},"Calcular Fechas":{"main":[[{"node":"Generar PDF Local","type":"main","index":0}]]},"Generar PDF Local":{"main":[[{"node":"Enviar Email con PDF","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: add5d154-b7d1-4a0a-8c52-bf7795d67f9e
workflowId: 5hyLXhD4yRQ2k4XO
authors: Victor Colussi
createdAt: 2026-01-05 17:11:04.619
updatedAt: 2026-01-05 17:11:04.619
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"65f6315d-be37-493a-8239-579f0d0dbd5b","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[496,64],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// 1. Calculamos fechas\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// 2. Formateamos el plan y precio\nconst planParts = $json.body.plan_detalle.split('-');\nconst planNombre = planParts[0].trim();\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// 3. Preparamos la lista de cursos\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\n// 4. HTML del Presupuesto (Diseño Final)\n// Nota: Usamos backticks (`) para poder poner el HTML en múltiples líneas cómodamente\nconst htmlContent = `\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Presupuesto Formal</title>\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');\nbody { font-family: 'Inter', Helvetica, Arial, sans-serif; color: #374151; line-height: 1.5; margin: 0; padding: 40px; }\n.legal-top { font-size: 0.7rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 25px; border-bottom: 1px dashed #e5e7eb; padding-bottom: 10px; text-align: center; font-weight: 600; }\n.header { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid #10b981; padding-bottom: 25px; margin-bottom: 35px; }\n.logos-container { display: flex; flex-direction: column; gap: 12px; }\n.main-logo { height: 60px; object-fit: contain; display: block; }\n.partner-logos { display: flex; gap: 15px; align-items: center; }\n.partner-img { height: 24px; filter: grayscale(100%); opacity: 0.6; }\n.meta-info { text-align: right; font-size: 0.85rem; color: #6b7280; }\n.meta-info strong { color: #111827; }\nh1 { color: #111827; font-size: 26px; margin: 0 0 5px 0; font-weight: 800; }\nh2 { color: #111827; font-size: 16px; font-weight: 700; border-bottom: 1px solid #e5e7eb; padding-bottom: 8px; margin-top: 35px; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; }\n.client-info { display: flex; justify-content: space-between; margin-bottom: 30px; background-color: #f9fafb; padding: 20px; border-radius: 8px; border: 1px solid #f3f4f6; }\n.client-col { width: 48%; }\n.client-col p { margin: 4px 0; font-size: 0.9rem; }\n.label { font-weight: 600; color: #4b5563; display: inline-block; width: 90px; }\ntable { width: 100%; border-collapse: collapse; margin-top: 15px; }\nth { background: #111827; color: #ffffff; padding: 10px 15px; text-align: left; font-weight: 600; font-size: 0.85rem; }\ntd { padding: 15px; border-bottom: 1px solid #e5e7eb; vertical-align: middle; }\n.price-col { text-align: right; font-weight: 700; color: #111827; font-size: 1rem; white-space: nowrap; background-color: #f0fdf4; }\n.courses-box { background: #fff; padding: 15px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 0.95rem; color: #374151; line-height: 1.8; }\n.change-warning { display: block; margin-top: 10px; font-size: 0.85rem; color: #15803d; font-weight: 600; font-style: italic; }\n.terms { margin-top: 30px; font-size: 0.8rem; color: #4b5563; }\n.terms ul { padding-left: 18px; margin-bottom: 0; }\n.terms li { margin-bottom: 6px; }\n.footer { margin-top: 50px; text-align: center; font-size: 0.75rem; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 20px; }\n.highlight { color: #10b981; font-weight: 600; }\n</style>\n</head>\n<body>\n\n<div class=\"legal-top\">Presupuesto válido para emitir Orden de Compra a favor de Excel Certify - Integralitas S.A.S según corresponda</div>\n\n<div class=\"header\">\n  <div class=\"logos-container\">\n    <img src=\"https://excelcertify.com/wp-content/uploads/2023/07/cropped-cropped-cropped-logoexcelcertify-bicubic-1-1-188x63.png\" alt=\"Excel Certify\" class=\"main-logo\">\n    <div class=\"partner-logos\">\n        <img src=\"https://excelcertify.com/wp-content/uploads/2025/07/Microsoft-Solutions-Partner.png\" alt=\"Microsoft Partner\" class=\"partner-img\">\n        <img src=\"https://excelcertify.com/wp-content/uploads/2025/07/GC-Partner1.png\" alt=\"Google Partner\" class=\"partner-img\">\n    </div>\n  </div>\n  <div class=\"meta-info\">\n    <p><strong>Fecha de Emisión:</strong> ${now.toFormat('dd/MM/yyyy')}</p>\n    <p><strong>Válido hasta:</strong> <span class=\"highlight\">${validityDate.toFormat('dd/MM/yyyy')}</span></p>\n    <p><strong>Presupuesto N°:</strong> PRE-26-${presupuestoID}</p>\n  </div>\n</div>\n\n<h1>Presupuesto de Capacitación</h1>\n<p style=\"color: #6b7280; margin-top: 0; font-size: 0.9rem;\">Propuesta profesional con tarifa congelada Enero 2025.</p>\n\n<div class=\"client-info\">\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.8rem; color:#9ca3af; margin-bottom:5px;\">Cliente</p>\n    <p><span class=\"label\">Empresa:</span> <strong>${$json.body.empresa}</strong></p>\n    <p><span class=\"label\">CUIT / ID:</span> ${$json.body.cuit || 'No informado'}</p>\n  </div>\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.8rem; color:#9ca3af; margin-bottom:5px;\">Contacto</p>\n    <p><span class=\"label\">Atención a:</span> ${$json.body.nombre_reserva}</p>\n    <p><span class=\"label\">Email:</span> ${$json.body.email_responsable}</p>\n  </div>\n</div>\n\n<h2>Detalle de la Inversión</h2>\n<table>\n  <thead><tr><th width=\"65%\">Descripción del Servicio</th><th width=\"35%\" style=\"text-align: right;\">Inversión Total</th></tr></thead>\n  <tbody>\n    <tr>\n      <td class=\"plan-desc\">\n        <strong style=\"font-size: 1rem; color: #111827;\">${planNombre}</strong><br>\n        <span style=\"font-size: 0.85rem; color: #6b7280;\">Modalidad Online en Vivo. Incluye certificación oficial.</span>\n      </td>\n      <td class=\"price-col\">${planPrecio} s / IVA</td>\n    </tr>\n  </tbody>\n</table>\n\n<h2>Tecnologías Incluidas</h2>\n<p style=\"margin-bottom: 10px; font-size: 0.9rem;\">El presente presupuesto contempla la capacitación en las siguientes áreas seleccionadas:</p>\n<div class=\"courses-box\">\n  ${cursosHTML}\n  <br>\n  <span class=\"change-warning\">/ Los cursos pueden ser cambiados hasta 30 días antes de la capacitación efectiva.</span>\n</div>\n\n<div class=\"terms\">\n  <h3 style=\"margin-top: 0; font-size: 0.9rem; font-weight: 700; color: #111827; margin-bottom: 10px;\">Términos y Condiciones Comerciales</h3>\n  <ul>\n    <li><strong>Validez de la Oferta:</strong> Precios congelados (tarifa Enero 2025) válidos para ejecución hasta Junio 2026, confirmando reserva en Enero.</li>\n    <li><strong>Forma de Pago:</strong> Transferencia bancaria o eCheq a favor de Integralitas S.A.S.</li>\n    <li><strong>Facturación:</strong> Se emitirá Factura A o C tras la confirmación. Con Factura A, el precio promocional está sujeto a un recargo del 16% + IVA.</li>\n    <li><strong>Confidencialidad:</strong> Documento confidencial para uso exclusivo de la empresa destinataria.</li>\n  </ul>\n</div>\n\n<div class=\"footer\">\n  <p><strong>Excel Certify</strong> - Integralitas S.A.S</p>\n  <p>Microsoft Solutions Partner & Google Partner</p>\n  <p>www.excelcertify.com | info@excelcertify.com</p>\n</div>\n\n</body>\n</html>`;\n\nreturn {\n  html_final: htmlContent,\n  id_unico: presupuestoID,\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy')\n};"},"id":"3f3ae538-0940-4494-aeda-e5d836306f8f","name":"Preparar HTML y Datos","type":"n8n-nodes-base.code","typeVersion":2,"position":[704,64]},{"parameters":{"method":"POST","url":"https://api.pdfshift.io/v3/convert/pdf","authentication":"genericCredentialType","genericAuthType":"httpBasicAuth","sendBody":true,"bodyParameters":{"parameters":[{"name":"source","value":"={{ $json.html_final }}"},{"name":"landscape","value":"false"},{"name":"use_print","value":"false"}]},"options":{"response":{"response":{"responseFormat":"file"}}}},"id":"e54e5c17-8b2e-4bdc-9dc6-61a5caac5478","name":"Generar PDF (PDFShift)","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[928,64],"notesInFlow":true,"credentials":{"httpBasicAuth":{"id":"nUGJyhzEG2yOkIO7","name":"Unnamed credential"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{}},"id":"ec0f84c2-8f21-4cd9-a2fe-650864ec8be1","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[1136,64],"webhookId":"e4c46f52-9f90-4110-8040-fe25c749258d","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"8e677bad-a037-43b4-a55a-cccd22d55126","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[1344,64]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Preparar HTML y Datos","type":"main","index":0}]]},"Preparar HTML y Datos":{"main":[[{"node":"Generar PDF (PDFShift)","type":"main","index":0}]]},"Generar PDF (PDFShift)":{"main":[[{"node":"Enviar Email con PDF","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: 2bef845b-371c-420a-9195-f110795b2ee8
workflowId: 5hyLXhD4yRQ2k4XO
authors: Victor Colussi
createdAt: 2026-01-05 17:45:52.443
updatedAt: 2026-01-05 17:45:52.443
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"65f6315d-be37-493a-8239-579f0d0dbd5b","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[496,64],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// 1. Calculamos fechas\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// 2. Formateamos el plan y precio\nconst planParts = $json.body.plan_detalle.split('-');\nconst planNombre = planParts[0].trim();\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// 3. Preparamos la lista de cursos\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\n// 4. HTML del Presupuesto (Diseño Final)\n// Nota: Usamos backticks (`) para poder poner el HTML en múltiples líneas cómodamente\nconst htmlContent = `\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Presupuesto Formal</title>\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');\n\nbody {\n    font-family: 'Inter', Helvetica, Arial, sans-serif;\n    color: #374151;\n    line-height: 1.4; /* Reduje un poco el interlineado */\n    margin: 0;\n    padding: 40px;\n    zoom: 0.8; /* <--- AQUÍ ESTÁ LA MAGIA DEL 80% */\n}\n\n/* Header Compacto */\n.legal-top { font-size: 0.7rem; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 20px; border-bottom: 1px dashed #e5e7eb; padding-bottom: 5px; text-align: center; font-weight: 600; }\n.header { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid #10b981; padding-bottom: 20px; margin-bottom: 30px; }\n\n/* Logos */\n.logos-container { display: flex; flex-direction: column; gap: 10px; }\n.main-logo { height: 55px; object-fit: contain; display: block; }\n.partner-logos { display: flex; gap: 15px; align-items: center; }\n.partner-img { height: 22px; filter: grayscale(100%); opacity: 0.6; }\n\n.meta-info { text-align: right; font-size: 0.85rem; color: #6b7280; }\n.meta-info strong { color: #111827; }\n\nh1 { color: #111827; font-size: 24px; margin: 0 0 5px 0; font-weight: 800; }\nh2 { color: #111827; font-size: 15px; font-weight: 700; border-bottom: 1px solid #e5e7eb; padding-bottom: 5px; margin-top: 25px; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; }\n\n.client-info { display: flex; justify-content: space-between; margin-bottom: 25px; background-color: #f9fafb; padding: 15px; border-radius: 8px; border: 1px solid #f3f4f6; }\n.client-col { width: 48%; }\n.client-col p { margin: 3px 0; font-size: 0.9rem; }\n.label { font-weight: 600; color: #4b5563; display: inline-block; width: 90px; }\n\ntable { width: 100%; border-collapse: collapse; margin-top: 10px; }\nth { background: #111827; color: #ffffff; padding: 8px 15px; text-align: left; font-weight: 600; font-size: 0.8rem; }\ntd { padding: 12px 15px; border-bottom: 1px solid #e5e7eb; vertical-align: middle; }\n.plan-desc strong { font-size: 1rem; color: #111827; }\n.plan-desc span { font-size: 0.8rem; color: #6b7280; display: block; }\n.price-col { text-align: right; font-weight: 700; color: #111827; font-size: 1rem; white-space: nowrap; background-color: #f0fdf4; }\n\n.courses-box { background: #fff; padding: 12px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 0.9rem; color: #374151; line-height: 1.6; }\n.change-warning { display: inline-block; font-size: 0.85rem; color: #16a34a; font-weight: 600; font-style: italic; margin-left: 5px; }\n\n.terms { margin-top: 25px; font-size: 0.75rem; color: #4b5563; }\n.terms ul { padding-left: 18px; margin-bottom: 0; }\n.terms li { margin-bottom: 4px; }\n\n.footer { margin-top: 40px; text-align: center; font-size: 0.7rem; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 15px; }\n.highlight { color: #10b981; font-weight: 600; }\n</style>\n</head>\n<body>\n\n<div class=\"legal-top\">Presupuesto válido para emitir Orden de Compra a favor de Excel Certify - Integralitas S.A.S según corresponda</div>\n\n<div class=\"header\">\n  <div class=\"logos-container\">\n    <!-- \n       IMPORTANTE: Reemplaza las URL largas de abajo por el código Base64 de tus imágenes.\n       Formato: src=\"data:image/png;base64,CODIGO_LARGO_AQUI...\"\n    -->\n    \n    <!-- TU LOGO (ExcelCertify) -->\n    <img src=\"data:image/png;base64,[encoded data, 14432 characters]\" alt=\"Excel Certify\" class=\"main-logo\">\n    \n    <div class=\"partner-logos\">\n        <!-- MICROSOFT -->\n        <img src=\"data:image/png;base64,[encoded data, 43856 characters]\" alt=\"Microsoft Partner\" class=\"partner-img\">\n        <!-- GOOGLE -->\n        <img src=\"data:image/png;base64,[encoded data, 18680 characters]\" alt=\"Google Partner\" class=\"partner-img\">\n    </div>\n  </div>\n\n  <div class=\"meta-info\">\n    <p><strong>Fecha de Emisión:</strong> {{ $json.fecha_emision }}</p>\n    <p><strong>Válido hasta:</strong> <span class=\"highlight\">{{ $json.fecha_validez }}</span></p>\n    <p><strong>Presupuesto N°:</strong> PRE-26-{{ $json.id_unico }}</p>\n  </div>\n</div>\n\n<h1>Presupuesto de Capacitación</h1>\n<p style=\"color: #6b7280; margin-top: 0; font-size: 0.9rem;\">Propuesta profesional con tarifa congelada Enero 2025.</p>\n\n<div class=\"client-info\">\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Cliente</p>\n    <p><span class=\"label\">Empresa:</span> <strong>{{ $json.body.empresa }}</strong></p>\n    <p><span class=\"label\">CUIT / ID:</span> {{ $json.body.cuit ? $json.body.cuit : 'No informado' }}</p>\n  </div>\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Contacto</p>\n    <p><span class=\"label\">Atención a:</span> {{ $json.body.nombre_reserva }}</p>\n    <p><span class=\"label\">Email:</span> {{ $json.body.email_responsable }}</p>\n  </div>\n</div>\n\n<h2>Detalle de la Inversión</h2>\n<table>\n  <thead><tr><th width=\"65%\">Descripción del Servicio</th><th width=\"35%\" style=\"text-align: right;\">Inversión Total</th></tr></thead>\n  <tbody>\n    <tr>\n      <td class=\"plan-desc\">\n        <strong>{{ $json.plan_nombre }}</strong>\n        <span>Modalidad Online en Vivo. Incluye certificación oficial.</span>\n      </td>\n      <td class=\"price-col\">\n        {{ $json.plan_precio }} s / IVA\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h2>Tecnologías Incluidas</h2>\n<p style=\"margin-bottom: 8px; font-size: 0.9rem;\">El presente presupuesto contempla la capacitación en las siguientes áreas seleccionadas:</p>\n\n<div class=\"courses-box\">\n  {{ $json.cursos_html }}\n  <span class=\"change-warning\">/ Los cursos pueden ser cambiados hasta 30 días antes de la capacitación efectiva.</span>\n</div>\n\n<div class=\"terms\">\n  <h3 style=\"margin-top: 0; font-size: 0.9rem; font-weight: 700; color: #111827; margin-bottom: 8px;\">Términos y Condiciones Comerciales</h3>\n  <ul>\n    <li><strong>Validez de la Oferta:</strong> Precios congelados (tarifa Enero 2025) válidos para ejecución hasta Junio 2026, confirmando reserva en Enero.</li>\n    <li><strong>Forma de Pago:</strong> Transferencia bancaria o eCheq a favor de Integralitas S.A.S.</li>\n    <li><strong>Facturación:</strong> Se emitirá Factura A o C tras la confirmación. Con Factura A, el precio promocional está sujeto a un recargo del 16% + IVA.</li>\n    <li><strong>Confidencialidad:</strong> Documento confidencial para uso exclusivo de la empresa destinataria.</li>\n  </ul>\n</div>\n\n<div class=\"footer\">\n  <p><strong>Excel Certify</strong> - Integralitas S.A.S</p>\n  <p>Microsoft Solutions Partner & Google Partner</p>\n  <p>www.excelcertify.com | info@excelcertify.com</p>\n</div>\n\n</body>\n</html>`;\n\nreturn {\n  html_final: htmlContent,\n  id_unico: presupuestoID,\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy')\n};"},"id":"3f3ae538-0940-4494-aeda-e5d836306f8f","name":"Preparar HTML y Datos","type":"n8n-nodes-base.code","typeVersion":2,"position":[704,64]},{"parameters":{"method":"POST","url":"https://api.pdfshift.io/v3/convert/pdf","authentication":"genericCredentialType","genericAuthType":"httpBasicAuth","sendBody":true,"bodyParameters":{"parameters":[{"name":"source","value":"={{ $json.html_final }}"},{"name":"landscape","value":"false"},{"name":"use_print","value":"false"}]},"options":{"response":{"response":{"responseFormat":"file"}}}},"id":"e54e5c17-8b2e-4bdc-9dc6-61a5caac5478","name":"Generar PDF (PDFShift)","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[928,64],"notesInFlow":true,"credentials":{"httpBasicAuth":{"id":"nUGJyhzEG2yOkIO7","name":"Unnamed credential"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Presupuesto').item.json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{"attachments":""}},"id":"ec0f84c2-8f21-4cd9-a2fe-650864ec8be1","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[1136,64],"webhookId":"e4c46f52-9f90-4110-8040-fe25c749258d","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"8e677bad-a037-43b4-a55a-cccd22d55126","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[1344,64]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Preparar HTML y Datos","type":"main","index":0}]]},"Preparar HTML y Datos":{"main":[[{"node":"Generar PDF (PDFShift)","type":"main","index":0}]]},"Generar PDF (PDFShift)":{"main":[[{"node":"Enviar Email con PDF","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: 01d61a0f-db21-40a3-bc51-b3d2f61e8936
workflowId: 5hyLXhD4yRQ2k4XO
authors: Victor Colussi
createdAt: 2026-01-05 18:03:10.306
updatedAt: 2026-01-05 18:03:10.306
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"65f6315d-be37-493a-8239-579f0d0dbd5b","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[496,64],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// 1. Calculamos fechas\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// 2. Formateamos el plan y precio\n// Aseguramos que plan_detalle exista para evitar error, si no, string vacío\nconst planDetalle = $json.body.plan_detalle || '';\nconst planParts = planDetalle.split('-');\nconst planNombre = planParts[0] ? planParts[0].trim() : 'Plan General';\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// 3. Preparamos la lista de cursos\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\n// 4. HTML del Presupuesto (Diseño Final)\nconst htmlContent = `\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Presupuesto Formal</title>\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');\nbody {\n    font-family: 'Inter', Helvetica, Arial, sans-serif;\n    color: #374151;\n    line-height: 1.4;\n    margin: 0;\n    padding: 40px;\n    zoom: 0.8;\n}\n\n/* Header Compacto */\n.legal-top { font-size: 0.7rem; color: #9ca3af; text-transform: uppercase;\nletter-spacing: 0.5px; margin-bottom: 20px; border-bottom: 1px dashed #e5e7eb; padding-bottom: 5px; text-align: center; font-weight: 600; }\n.header { display: flex; justify-content: space-between;\nalign-items: center; border-bottom: 2px solid #10b981; padding-bottom: 20px; margin-bottom: 30px; }\n\n/* Logos */\n.logos-container { display: flex; flex-direction: column; gap: 10px; }\n.main-logo { height: 55px; object-fit: contain; display: block; }\n.partner-logos { display: flex; gap: 15px; align-items: center; }\n.partner-img { height: 22px; filter: grayscale(100%); opacity: 0.6; }\n\n.meta-info { text-align: right; font-size: 0.85rem; color: #6b7280; }\n.meta-info strong { color: #111827; }\n\nh1 { color: #111827; font-size: 24px; margin: 0 0 5px 0; font-weight: 800; }\nh2 { color: #111827; font-size: 15px;\nfont-weight: 700; border-bottom: 1px solid #e5e7eb; padding-bottom: 5px; margin-top: 25px; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; }\n\n.client-info { display: flex;\njustify-content: space-between; margin-bottom: 25px; background-color: #f9fafb; padding: 15px; border-radius: 8px; border: 1px solid #f3f4f6; }\n.client-col { width: 48%; }\n.client-col p { margin: 3px 0; font-size: 0.9rem; }\n.label { font-weight: 600; color: #4b5563; display: inline-block; width: 90px; }\n\ntable { width: 100%; border-collapse: collapse; margin-top: 10px; }\nth { background: #111827; color: #ffffff; padding: 8px 15px; text-align: left;\nfont-weight: 600; font-size: 0.8rem; }\ntd { padding: 12px 15px; border-bottom: 1px solid #e5e7eb; vertical-align: middle; }\n.plan-desc strong { font-size: 1rem; color: #111827; }\n.plan-desc span { font-size: 0.8rem; color: #6b7280; display: block; }\n.price-col { text-align: right; font-weight: 700; color: #111827;\nfont-size: 1rem; white-space: nowrap; background-color: #f0fdf4; }\n\n.courses-box { background: #fff; padding: 12px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 0.9rem;\ncolor: #374151; line-height: 1.6; }\n.change-warning { display: inline-block; font-size: 0.85rem; color: #16a34a; font-weight: 600; font-style: italic; margin-left: 5px; }\n\n.terms { margin-top: 25px; font-size: 0.75rem; color: #4b5563; }\n.terms ul { padding-left: 18px; margin-bottom: 0; }\n.terms li { margin-bottom: 4px; }\n\n.footer { margin-top: 40px; text-align: center; font-size: 0.7rem; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 15px; }\n.highlight { color: #10b981; font-weight: 600; }\n</style>\n</head>\n<body>\n\n<div class=\"legal-top\">Presupuesto válido para emitir Orden de Compra a favor de Excel Certify - Integralitas S.A.S según corresponda</div>\n\n<div class=\"header\">\n  <div class=\"logos-container\">\n    \n    <img src=\"data:image/png;base64,[encoded data, 14432 characters]\" alt=\"Excel Certify\" class=\"main-logo\">\n    \n    <div class=\"partner-logos\">\n        <img src=\"data:image/png;base64,[encoded data, 43856 characters]\" alt=\"Microsoft Partner\" class=\"partner-img\">\n        <img src=\"data:image/png;base64,[encoded data, 18680 characters]\" alt=\"Google Partner\" class=\"partner-img\">\n    </div>\n  </div>\n\n  <div class=\"meta-info\">\n    <p><strong>Fecha de Emisión:</strong> ${now.toFormat('dd/MM/yyyy')}</p>\n    <p><strong>Válido hasta:</strong> <span class=\"highlight\">${validityDate.toFormat('dd/MM/yyyy')}</span></p>\n    <p><strong>Presupuesto N°:</strong> PRE-26-${presupuestoID}</p>\n  </div>\n</div>\n\n<h1>Presupuesto de Capacitación</h1>\n<p style=\"color: #6b7280; margin-top: 0; font-size: 0.9rem;\">Propuesta profesional con tarifa congelada Enero 2025.</p>\n\n<div class=\"client-info\">\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Cliente</p>\n    <p><span class=\"label\">Empresa:</span> <strong>${$json.body.empresa}</strong></p>\n    <p><span class=\"label\">CUIT / ID:</span> ${$json.body.cuit ? $json.body.cuit : 'No informado'}</p>\n  </div>\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Contacto</p>\n    <p><span class=\"label\">Atención a:</span> ${$json.body.nombre_reserva}</p>\n    <p><span class=\"label\">Email:</span> ${$json.body.email_responsable}</p>\n  </div>\n</div>\n\n<h2>Detalle de la Inversión</h2>\n<table>\n  <thead><tr><th width=\"65%\">Descripción del Servicio</th><th width=\"35%\" style=\"text-align: right;\">Inversión Total</th></tr></thead>\n  <tbody>\n    <tr>\n      <td class=\"plan-desc\">\n        <strong>${planNombre}</strong>\n        <span>Modalidad Online en Vivo. Incluye certificación oficial.</span>\n      </td>\n      <td class=\"price-col\">\n        ${planPrecio} s / IVA\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h2>Tecnologías Incluidas</h2>\n<p style=\"margin-bottom: 8px; font-size: 0.9rem;\">El presente presupuesto contempla la capacitación en las siguientes áreas seleccionadas:</p>\n\n<div class=\"courses-box\">\n  ${cursosHTML}\n  <span class=\"change-warning\">/ Los cursos pueden ser cambiados hasta 30 días antes de la capacitación efectiva.</span>\n</div>\n\n<div class=\"terms\">\n  <h3 style=\"margin-top: 0; font-size: 0.9rem; font-weight: 700; color: #111827; margin-bottom: 8px;\">Términos y Condiciones Comerciales</h3>\n  <ul>\n    <li><strong>Validez de la Oferta:</strong> Precios congelados (tarifa Enero 2025) válidos para ejecución hasta Junio 2026, confirmando reserva en Enero.</li>\n    <li><strong>Forma de Pago:</strong> Transferencia bancaria o eCheq a favor de Integralitas S.A.S.</li>\n    <li><strong>Facturación:</strong> Se emitirá Factura A o C tras la confirmación. Con Factura A, el precio promocional está sujeto a un recargo del 16% + IVA.</li>\n    <li><strong>Confidencialidad:</strong> Documento confidencial para uso exclusivo de la empresa destinataria.</li>\n  </ul>\n</div>\n\n<div class=\"footer\">\n  <p><strong>Excel Certify</strong> - Integralitas S.A.S</p>\n  <p>Microsoft Solutions Partner & Google Partner</p>\n  <p>www.excelcertify.com | info@excelcertify.com</p>\n</div>\n\n</body>\n</html>`;\n\nreturn {\n  html_final: htmlContent,\n  id_unico: presupuestoID,\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy')\n};"},"id":"3f3ae538-0940-4494-aeda-e5d836306f8f","name":"Preparar HTML y Datos","type":"n8n-nodes-base.code","typeVersion":2,"position":[704,64]},{"parameters":{"method":"POST","url":"https://api.pdfshift.io/v3/convert/pdf","authentication":"genericCredentialType","genericAuthType":"httpBasicAuth","sendBody":true,"bodyParameters":{"parameters":[{"name":"source","value":"={{ $json.html_final }}"},{"name":"landscape","value":"false"},{"name":"use_print","value":"false"}]},"options":{"response":{"response":{"responseFormat":"file"}}}},"id":"e54e5c17-8b2e-4bdc-9dc6-61a5caac5478","name":"Generar PDF (PDFShift)","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[928,64],"notesInFlow":true,"credentials":{"httpBasicAuth":{"id":"nUGJyhzEG2yOkIO7","name":"Unnamed credential"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Presupuesto').item.json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{"attachments":""}},"id":"ec0f84c2-8f21-4cd9-a2fe-650864ec8be1","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[1136,64],"webhookId":"e4c46f52-9f90-4110-8040-fe25c749258d","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"respondWith":"binary","responseDataSource":"setBody","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"={{ 'attachment; filename=Presupuesto_ExcelCertify_PRE-26-' + $json.id_unico + '.pdf' }}"}]}}},"id":"8e677bad-a037-43b4-a55a-cccd22d55126","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[1344,64]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Preparar HTML y Datos","type":"main","index":0}]]},"Preparar HTML y Datos":{"main":[[{"node":"Generar PDF (PDFShift)","type":"main","index":0}]]},"Generar PDF (PDFShift)":{"main":[[{"node":"Enviar Email con PDF","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: 0fc8924f-79fb-404c-8012-937ccbe067e3
workflowId: 5hyLXhD4yRQ2k4XO
authors: Victor Colussi
createdAt: 2026-01-05 18:33:15.074
updatedAt: 2026-01-05 18:33:15.074
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"65f6315d-be37-493a-8239-579f0d0dbd5b","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[496,64],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// 1. Calculamos fechas\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// 2. Formateamos el plan y precio\n// Aseguramos que plan_detalle exista para evitar error, si no, string vacío\nconst planDetalle = $json.body.plan_detalle || '';\nconst planParts = planDetalle.split('-');\nconst planNombre = planParts[0] ? planParts[0].trim() : 'Plan General';\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// 3. Preparamos la lista de cursos\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\n// 4. HTML del Presupuesto (Diseño Final)\nconst htmlContent = `\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Presupuesto Formal</title>\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');\nbody {\n    font-family: 'Inter', Helvetica, Arial, sans-serif;\n    color: #374151;\n    line-height: 1.4;\n    margin: 0;\n    padding: 40px;\n    zoom: 0.8;\n}\n\n/* Header Compacto */\n.legal-top { font-size: 0.7rem; color: #9ca3af; text-transform: uppercase;\nletter-spacing: 0.5px; margin-bottom: 20px; border-bottom: 1px dashed #e5e7eb; padding-bottom: 5px; text-align: center; font-weight: 600; }\n.header { display: flex; justify-content: space-between;\nalign-items: center; border-bottom: 2px solid #10b981; padding-bottom: 20px; margin-bottom: 30px; }\n\n/* Logos */\n.logos-container { display: flex; flex-direction: column; gap: 10px; }\n.main-logo { height: 55px; object-fit: contain; display: block; }\n.partner-logos { display: flex; gap: 15px; align-items: center; }\n.partner-img { height: 22px; filter: grayscale(100%); opacity: 0.6; }\n\n.meta-info { text-align: right; font-size: 0.85rem; color: #6b7280; }\n.meta-info strong { color: #111827; }\n\nh1 { color: #111827; font-size: 24px; margin: 0 0 5px 0; font-weight: 800; }\nh2 { color: #111827; font-size: 15px;\nfont-weight: 700; border-bottom: 1px solid #e5e7eb; padding-bottom: 5px; margin-top: 25px; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; }\n\n.client-info { display: flex;\njustify-content: space-between; margin-bottom: 25px; background-color: #f9fafb; padding: 15px; border-radius: 8px; border: 1px solid #f3f4f6; }\n.client-col { width: 48%; }\n.client-col p { margin: 3px 0; font-size: 0.9rem; }\n.label { font-weight: 600; color: #4b5563; display: inline-block; width: 90px; }\n\ntable { width: 100%; border-collapse: collapse; margin-top: 10px; }\nth { background: #111827; color: #ffffff; padding: 8px 15px; text-align: left;\nfont-weight: 600; font-size: 0.8rem; }\ntd { padding: 12px 15px; border-bottom: 1px solid #e5e7eb; vertical-align: middle; }\n.plan-desc strong { font-size: 1rem; color: #111827; }\n.plan-desc span { font-size: 0.8rem; color: #6b7280; display: block; }\n.price-col { text-align: right; font-weight: 700; color: #111827;\nfont-size: 1rem; white-space: nowrap; background-color: #f0fdf4; }\n\n.courses-box { background: #fff; padding: 12px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 0.9rem;\ncolor: #374151; line-height: 1.6; }\n.change-warning { display: inline-block; font-size: 0.85rem; color: #16a34a; font-weight: 600; font-style: italic; margin-left: 5px; }\n\n.terms { margin-top: 25px; font-size: 0.75rem; color: #4b5563; }\n.terms ul { padding-left: 18px; margin-bottom: 0; }\n.terms li { margin-bottom: 4px; }\n\n.footer { margin-top: 40px; text-align: center; font-size: 0.7rem; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 15px; }\n.highlight { color: #10b981; font-weight: 600; }\n</style>\n</head>\n<body>\n\n<div class=\"legal-top\">Presupuesto válido para emitir Orden de Compra a favor de Excel Certify - Integralitas S.A.S según corresponda</div>\n\n<div class=\"header\">\n  <div class=\"logos-container\">\n    \n    <img src=\"data:image/png;base64,[encoded data, 14432 characters]\" alt=\"Excel Certify\" class=\"main-logo\">\n    \n    <div class=\"partner-logos\">\n        <img src=\"data:image/png;base64,[encoded data, 43856 characters]\" alt=\"Microsoft Partner\" class=\"partner-img\">\n        <img src=\"data:image/png;base64,[encoded data, 18680 characters]\" alt=\"Google Partner\" class=\"partner-img\">\n    </div>\n  </div>\n\n  <div class=\"meta-info\">\n    <p><strong>Fecha de Emisión:</strong> ${now.toFormat('dd/MM/yyyy')}</p>\n    <p><strong>Válido hasta:</strong> <span class=\"highlight\">${validityDate.toFormat('dd/MM/yyyy')}</span></p>\n    <p><strong>Presupuesto N°:</strong> PRE-26-${presupuestoID}</p>\n  </div>\n</div>\n\n<h1>Presupuesto de Capacitación</h1>\n<p style=\"color: #6b7280; margin-top: 0; font-size: 0.9rem;\">Propuesta profesional con tarifa congelada Enero 2025.</p>\n\n<div class=\"client-info\">\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Cliente</p>\n    <p><span class=\"label\">Empresa:</span> <strong>${$json.body.empresa}</strong></p>\n    <p><span class=\"label\">CUIT / ID:</span> ${$json.body.cuit ? $json.body.cuit : 'No informado'}</p>\n  </div>\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Contacto</p>\n    <p><span class=\"label\">Atención a:</span> ${$json.body.nombre_reserva}</p>\n    <p><span class=\"label\">Email:</span> ${$json.body.email_responsable}</p>\n  </div>\n</div>\n\n<h2>Detalle de la Inversión</h2>\n<table>\n  <thead><tr><th width=\"65%\">Descripción del Servicio</th><th width=\"35%\" style=\"text-align: right;\">Inversión Total</th></tr></thead>\n  <tbody>\n    <tr>\n      <td class=\"plan-desc\">\n        <strong>${planNombre}</strong>\n        <span>Modalidad Online en Vivo. Incluye certificación oficial.</span>\n      </td>\n      <td class=\"price-col\">\n        ${planPrecio} s / IVA\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h2>Tecnologías Incluidas</h2>\n<p style=\"margin-bottom: 8px; font-size: 0.9rem;\">El presente presupuesto contempla la capacitación en las siguientes áreas seleccionadas:</p>\n\n<div class=\"courses-box\">\n  ${cursosHTML}\n  <span class=\"change-warning\">/ Los cursos pueden ser cambiados hasta 30 días antes de la capacitación efectiva.</span>\n</div>\n\n<div class=\"terms\">\n  <h3 style=\"margin-top: 0; font-size: 0.9rem; font-weight: 700; color: #111827; margin-bottom: 8px;\">Términos y Condiciones Comerciales</h3>\n  <ul>\n    <li><strong>Validez de la Oferta:</strong> Precios congelados (tarifa Enero 2025) válidos para ejecución hasta Junio 2026, confirmando reserva en Enero.</li>\n    <li><strong>Forma de Pago:</strong> Transferencia bancaria o eCheq a favor de Integralitas S.A.S.</li>\n    <li><strong>Facturación:</strong> Se emitirá Factura A o C tras la confirmación. Con Factura A, el precio promocional está sujeto a un recargo del 16% + IVA.</li>\n    <li><strong>Confidencialidad:</strong> Documento confidencial para uso exclusivo de la empresa destinataria.</li>\n  </ul>\n</div>\n\n<div class=\"footer\">\n  <p><strong>Excel Certify</strong> - Integralitas S.A.S</p>\n  <p>Microsoft Solutions Partner & Google Partner</p>\n  <p>www.excelcertify.com | info@excelcertify.com</p>\n</div>\n\n</body>\n</html>`;\n\nreturn {\n  html_final: htmlContent,\n  id_unico: presupuestoID,\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy')\n};"},"id":"3f3ae538-0940-4494-aeda-e5d836306f8f","name":"Preparar HTML y Datos","type":"n8n-nodes-base.code","typeVersion":2,"position":[704,64]},{"parameters":{"method":"POST","url":"https://api.pdfshift.io/v3/convert/pdf","authentication":"genericCredentialType","genericAuthType":"httpBasicAuth","sendBody":true,"bodyParameters":{"parameters":[{"name":"source","value":"={{ $json.html_final }}"},{"name":"landscape","value":"false"},{"name":"use_print","value":"false"}]},"options":{"response":{"response":{"responseFormat":"file"}}}},"id":"e54e5c17-8b2e-4bdc-9dc6-61a5caac5478","name":"Generar PDF (PDFShift)","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[928,64],"notesInFlow":true,"credentials":{"httpBasicAuth":{"id":"nUGJyhzEG2yOkIO7","name":"Unnamed credential"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Presupuesto').item.json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $('Webhook Presupuesto').item.json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $('Webhook Presupuesto').item.json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $('Preparar HTML y Datos').item.json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $('Preparar HTML y Datos').item.json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{"appendAttribution":false,"attachments":"data"}},"id":"ec0f84c2-8f21-4cd9-a2fe-650864ec8be1","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[1360,80],"webhookId":"e4c46f52-9f90-4110-8040-fe25c749258d","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"jsCode":"// 1. Obtener el nombre de la empresa y el ID desde el nodo anterior (o variables globales)\n// Asegúrate de que 'nombre_empresa' venga en tu JSON. Si no, cámbialo por la variable correcta.\nconst nombreEmpresa = $('Webhook Presupuesto').first().json.body.empresa || 'Cliente'; \nconst idUnico = $('Preparar HTML y Datos').first().json.id_unico;\n\n// 2. Definir el nuevo nombre\nconst nuevoNombre = `Presupuesto ${nombreEmpresa} ${idUnico}.pdf`;\n\n// 3. Modificar el nombre del archivo en los datos binarios\n// Nota: 'data' es la clave que se ve en tu captura de pantalla bajo OUTPUT\nif (items[0].binary && items[0].binary.data) {\n  items[0].binary.data.fileName = nuevoNombre;\n}\n\nreturn items;"},"type":"n8n-nodes-base.code","typeVersion":2,"position":[1104,64],"id":"9caf0bb3-c9a1-4a68-a666-809f330efdf8","name":"Code in JavaScript"},{"parameters":{"respondWith":"binary","responseDataSource":"set","options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/pdf"},{"name":"Content-Disposition","value":"=data"}]}}},"id":"8e677bad-a037-43b4-a55a-cccd22d55126","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[1360,288]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Preparar HTML y Datos","type":"main","index":0}]]},"Preparar HTML y Datos":{"main":[[{"node":"Generar PDF (PDFShift)","type":"main","index":0}]]},"Generar PDF (PDFShift)":{"main":[[{"node":"Code in JavaScript","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[]]},"Code in JavaScript":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


versionId: aff1cbc1-76b1-43a8-81eb-3b52045d9fb8
workflowId: 5hyLXhD4yRQ2k4XO
authors: Victor Colussi
createdAt: 2026-01-05 18:38:17.859
updatedAt: 2026-01-05 18:38:17.859
nodes:
  [{"parameters":{"httpMethod":"POST","path":"generar-presupuesto-pro","options":{}},"id":"65f6315d-be37-493a-8239-579f0d0dbd5b","name":"Webhook Presupuesto","type":"n8n-nodes-base.webhook","typeVersion":1,"position":[496,64],"webhookId":"generar-presupuesto-pro"},{"parameters":{"jsCode":"// 1. Calculamos fechas\nconst now = $now;\nconst validityDate = $now.plus({ days: 30 });\nconst presupuestoID = Math.floor(Math.random() * 90000) + 10000;\n\n// 2. Formateamos el plan y precio\n// Aseguramos que plan_detalle exista para evitar error, si no, string vacío\nconst planDetalle = $json.body.plan_detalle || '';\nconst planParts = planDetalle.split('-');\nconst planNombre = planParts[0] ? planParts[0].trim() : 'Plan General';\nconst planPrecio = planParts[1] ? planParts[1].trim() : 'A consultar';\n\n// 3. Preparamos la lista de cursos\nconst cursosArray = $json.body.cursos ? $json.body.cursos.split(', ') : [];\nconst cursosHTML = cursosArray.map(c => `• ${c}`).join('<br>');\n\n// 4. HTML del Presupuesto (Diseño Final)\nconst htmlContent = `\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Presupuesto Formal</title>\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');\nbody {\n    font-family: 'Inter', Helvetica, Arial, sans-serif;\n    color: #374151;\n    line-height: 1.4;\n    margin: 0;\n    padding: 40px;\n    zoom: 0.8;\n}\n\n/* Header Compacto */\n.legal-top { font-size: 0.7rem; color: #9ca3af; text-transform: uppercase;\nletter-spacing: 0.5px; margin-bottom: 20px; border-bottom: 1px dashed #e5e7eb; padding-bottom: 5px; text-align: center; font-weight: 600; }\n.header { display: flex; justify-content: space-between;\nalign-items: center; border-bottom: 2px solid #10b981; padding-bottom: 20px; margin-bottom: 30px; }\n\n/* Logos */\n.logos-container { display: flex; flex-direction: column; gap: 10px; }\n.main-logo { height: 55px; object-fit: contain; display: block; }\n.partner-logos { display: flex; gap: 15px; align-items: center; }\n.partner-img { height: 22px; filter: grayscale(100%); opacity: 0.6; }\n\n.meta-info { text-align: right; font-size: 0.85rem; color: #6b7280; }\n.meta-info strong { color: #111827; }\n\nh1 { color: #111827; font-size: 24px; margin: 0 0 5px 0; font-weight: 800; }\nh2 { color: #111827; font-size: 15px;\nfont-weight: 700; border-bottom: 1px solid #e5e7eb; padding-bottom: 5px; margin-top: 25px; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; }\n\n.client-info { display: flex;\njustify-content: space-between; margin-bottom: 25px; background-color: #f9fafb; padding: 15px; border-radius: 8px; border: 1px solid #f3f4f6; }\n.client-col { width: 48%; }\n.client-col p { margin: 3px 0; font-size: 0.9rem; }\n.label { font-weight: 600; color: #4b5563; display: inline-block; width: 90px; }\n\ntable { width: 100%; border-collapse: collapse; margin-top: 10px; }\nth { background: #111827; color: #ffffff; padding: 8px 15px; text-align: left;\nfont-weight: 600; font-size: 0.8rem; }\ntd { padding: 12px 15px; border-bottom: 1px solid #e5e7eb; vertical-align: middle; }\n.plan-desc strong { font-size: 1rem; color: #111827; }\n.plan-desc span { font-size: 0.8rem; color: #6b7280; display: block; }\n.price-col { text-align: right; font-weight: 700; color: #111827;\nfont-size: 1rem; white-space: nowrap; background-color: #f0fdf4; }\n\n.courses-box { background: #fff; padding: 12px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 0.9rem;\ncolor: #374151; line-height: 1.6; }\n.change-warning { display: inline-block; font-size: 0.85rem; color: #16a34a; font-weight: 600; font-style: italic; margin-left: 5px; }\n\n.terms { margin-top: 25px; font-size: 0.75rem; color: #4b5563; }\n.terms ul { padding-left: 18px; margin-bottom: 0; }\n.terms li { margin-bottom: 4px; }\n\n.footer { margin-top: 40px; text-align: center; font-size: 0.7rem; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 15px; }\n.highlight { color: #10b981; font-weight: 600; }\n</style>\n</head>\n<body>\n\n<div class=\"legal-top\">Presupuesto válido para emitir Orden de Compra a favor de Excel Certify - Integralitas S.A.S según corresponda</div>\n\n<div class=\"header\">\n  <div class=\"logos-container\">\n    \n    <img src=\"data:image/png;base64,[encoded data, 14432 characters]\" alt=\"Excel Certify\" class=\"main-logo\">\n    \n    <div class=\"partner-logos\">\n        <img src=\"data:image/png;base64,[encoded data, 43856 characters]\" alt=\"Microsoft Partner\" class=\"partner-img\">\n        <img src=\"data:image/png;base64,[encoded data, 18680 characters]\" alt=\"Google Partner\" class=\"partner-img\">\n    </div>\n  </div>\n\n  <div class=\"meta-info\">\n    <p><strong>Fecha de Emisión:</strong> ${now.toFormat('dd/MM/yyyy')}</p>\n    <p><strong>Válido hasta:</strong> <span class=\"highlight\">${validityDate.toFormat('dd/MM/yyyy')}</span></p>\n    <p><strong>Presupuesto N°:</strong> PRE-26-${presupuestoID}</p>\n  </div>\n</div>\n\n<h1>Presupuesto de Capacitación</h1>\n<p style=\"color: #6b7280; margin-top: 0; font-size: 0.9rem;\">Propuesta profesional con tarifa congelada Enero 2025.</p>\n\n<div class=\"client-info\">\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Cliente</p>\n    <p><span class=\"label\">Empresa:</span> <strong>${$json.body.empresa}</strong></p>\n    <p><span class=\"label\">CUIT / ID:</span> ${$json.body.cuit ? $json.body.cuit : 'No informado'}</p>\n  </div>\n  <div class=\"client-col\">\n    <p style=\"text-transform: uppercase; font-weight:bold; font-size: 0.75rem; color:#9ca3af; margin-bottom:5px;\">Contacto</p>\n    <p><span class=\"label\">Atención a:</span> ${$json.body.nombre_reserva}</p>\n    <p><span class=\"label\">Email:</span> ${$json.body.email_responsable}</p>\n  </div>\n</div>\n\n<h2>Detalle de la Inversión</h2>\n<table>\n  <thead><tr><th width=\"65%\">Descripción del Servicio</th><th width=\"35%\" style=\"text-align: right;\">Inversión Total</th></tr></thead>\n  <tbody>\n    <tr>\n      <td class=\"plan-desc\">\n        <strong>${planNombre}</strong>\n        <span>Modalidad Online en Vivo. Incluye certificación oficial.</span>\n      </td>\n      <td class=\"price-col\">\n        ${planPrecio} s / IVA\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h2>Tecnologías Incluidas</h2>\n<p style=\"margin-bottom: 8px; font-size: 0.9rem;\">El presente presupuesto contempla la capacitación en las siguientes áreas seleccionadas:</p>\n\n<div class=\"courses-box\">\n  ${cursosHTML}\n  <span class=\"change-warning\">/ Los cursos pueden ser cambiados hasta 30 días antes de la capacitación efectiva.</span>\n</div>\n\n<div class=\"terms\">\n  <h3 style=\"margin-top: 0; font-size: 0.9rem; font-weight: 700; color: #111827; margin-bottom: 8px;\">Términos y Condiciones Comerciales</h3>\n  <ul>\n    <li><strong>Validez de la Oferta:</strong> Precios congelados (tarifa Enero 2025) válidos para ejecución hasta Junio 2026, confirmando reserva en Enero.</li>\n    <li><strong>Forma de Pago:</strong> Transferencia bancaria o eCheq a favor de Integralitas S.A.S.</li>\n    <li><strong>Facturación:</strong> Se emitirá Factura A o C tras la confirmación. Con Factura A, el precio promocional está sujeto a un recargo del 16% + IVA.</li>\n    <li><strong>Confidencialidad:</strong> Documento confidencial para uso exclusivo de la empresa destinataria.</li>\n  </ul>\n</div>\n\n<div class=\"footer\">\n  <p><strong>Excel Certify</strong> - Integralitas S.A.S</p>\n  <p>Microsoft Solutions Partner & Google Partner</p>\n  <p>www.excelcertify.com | info@excelcertify.com</p>\n</div>\n\n</body>\n</html>`;\n\nreturn {\n  html_final: htmlContent,\n  id_unico: presupuestoID,\n  fecha_validez: validityDate.toFormat('dd/MM/yyyy')\n};"},"id":"3f3ae538-0940-4494-aeda-e5d836306f8f","name":"Preparar HTML y Datos","type":"n8n-nodes-base.code","typeVersion":2,"position":[704,64]},{"parameters":{"method":"POST","url":"https://api.pdfshift.io/v3/convert/pdf","authentication":"genericCredentialType","genericAuthType":"httpBasicAuth","sendBody":true,"bodyParameters":{"parameters":[{"name":"source","value":"={{ $json.html_final }}"},{"name":"landscape","value":"false"},{"name":"use_print","value":"false"}]},"options":{"response":{"response":{"responseFormat":"file"}}}},"id":"e54e5c17-8b2e-4bdc-9dc6-61a5caac5478","name":"Generar PDF (PDFShift)","type":"n8n-nodes-base.httpRequest","typeVersion":4.1,"position":[928,64],"notesInFlow":true,"credentials":{"httpBasicAuth":{"id":"nUGJyhzEG2yOkIO7","name":"Unnamed credential"}}},{"parameters":{"fromEmail":"avisos@info.excelcertify.com","toEmail":"={{ $('Webhook Presupuesto').item.json.body.email_responsable + ', victorrcolussi@gmail.com' }}","subject":"Presupuesto Formal (Válido 30 días) - ExcelCertify","html":"={{ '<p>Hola <strong>' + $('Webhook Presupuesto').item.json.body.nombre_reserva + '</strong>,</p><p>Adjunto encontrarás el presupuesto formal solicitado para <strong>' + $('Webhook Presupuesto').item.json.body.empresa + '</strong>.</p><ul><li><strong>Presupuesto N°:</strong> PRE-26-' + $('Preparar HTML y Datos').item.json.id_unico + '</li><li><strong>Válido hasta:</strong> ' + $('Preparar HTML y Datos').item.json.fecha_validez + '</li></ul><p>Quedamos a tu disposición para cualquier consulta.</p><p>Saludos,<br>El equipo de ExcelCertify.</p>' }}","options":{"appendAttribution":false,"attachments":"data"}},"id":"ec0f84c2-8f21-4cd9-a2fe-650864ec8be1","name":"Enviar Email con PDF","type":"n8n-nodes-base.emailSend","typeVersion":2.1,"position":[1360,80],"webhookId":"e4c46f52-9f90-4110-8040-fe25c749258d","credentials":{"smtp":{"id":"OiV6sH0CDrHSeXXH","name":"SMTP account 2"}}},{"parameters":{"jsCode":"// 1. Obtener el nombre de la empresa y el ID desde el nodo anterior (o variables globales)\n// Asegúrate de que 'nombre_empresa' venga en tu JSON. Si no, cámbialo por la variable correcta.\nconst nombreEmpresa = $('Webhook Presupuesto').first().json.body.empresa || 'Cliente'; \nconst idUnico = $('Preparar HTML y Datos').first().json.id_unico;\n\n// 2. Definir el nuevo nombre\nconst nuevoNombre = `Presupuesto ${nombreEmpresa} ${idUnico}.pdf`;\n\n// 3. Modificar el nombre del archivo en los datos binarios\n// Nota: 'data' es la clave que se ve en tu captura de pantalla bajo OUTPUT\nif (items[0].binary && items[0].binary.data) {\n  items[0].binary.data.fileName = nuevoNombre;\n}\n\nreturn items;"},"type":"n8n-nodes-base.code","typeVersion":2,"position":[1104,64],"id":"9caf0bb3-c9a1-4a68-a666-809f330efdf8","name":"Code in JavaScript"},{"parameters":{"respondWith":"binary","responseDataSource":"set","options":{}},"id":"8e677bad-a037-43b4-a55a-cccd22d55126","name":"Entregar PDF","type":"n8n-nodes-base.respondToWebhook","typeVersion":1,"position":[1360,288]}]

connections:
  {"Webhook Presupuesto":{"main":[[{"node":"Preparar HTML y Datos","type":"main","index":0}]]},"Preparar HTML y Datos":{"main":[[{"node":"Generar PDF (PDFShift)","type":"main","index":0}]]},"Generar PDF (PDFShift)":{"main":[[{"node":"Code in JavaScript","type":"main","index":0}]]},"Enviar Email con PDF":{"main":[[]]},"Code in JavaScript":{"main":[[{"node":"Entregar PDF","type":"main","index":0}]]}}


