Update backup: Chat de WhatsApp - Propuestas Ejecutadas - Versión Final

This commit is contained in:
2026-07-26 04:01:07 +00:00
parent 66476a86ba
commit fc555c2575
@@ -1,5 +1,5 @@
{ {
"updatedAt": "2026-07-16T16:14:30.458Z", "updatedAt": "2026-07-25T17:09:23.931Z",
"createdAt": "2026-06-24T14:10:15.435Z", "createdAt": "2026-06-24T14:10:15.435Z",
"id": "CdosDIWBgnDMnPdr", "id": "CdosDIWBgnDMnPdr",
"name": "Chat de WhatsApp - Propuestas Ejecutadas - Versión Final", "name": "Chat de WhatsApp - Propuestas Ejecutadas - Versión Final",
@@ -42,8 +42,8 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4, "typeVersion": 4.4,
"position": [ "position": [
15344, 15248,
1648 1696
], ],
"id": "dad797ac-f70a-4550-a1bb-297d2f296dc4", "id": "dad797ac-f70a-4550-a1bb-297d2f296dc4",
"name": "WhatsApp - Enviar mensaje TEST" "name": "WhatsApp - Enviar mensaje TEST"
@@ -608,8 +608,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-7408, -7392,
-656 -576
], ],
"id": "99ec1dc9-7dde-42fa-8be2-9dc1b3986b12", "id": "99ec1dc9-7dde-42fa-8be2-9dc1b3986b12",
"name": "Code - Resolver paso activo WhatsApp TEST" "name": "Code - Resolver paso activo WhatsApp TEST"
@@ -4150,9 +4150,9 @@
"operation": "analyze", "operation": "analyze",
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"text": "={{ $json.gemini_prompt_audio }}", "text": "={{ $json.gemini_prompt_audio }}",
"inputType": "binary", "inputType": "binary",
@@ -4209,9 +4209,9 @@
"operation": "analyze", "operation": "analyze",
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"text": "={{ $json.gemini_prompt_imagen }}", "text": "={{ $json.gemini_prompt_imagen }}",
"inputType": "binary", "inputType": "binary",
@@ -4266,9 +4266,9 @@
"operation": "analyze", "operation": "analyze",
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"text": "={{ $json.gemini_prompt_video }}", "text": "={{ $json.gemini_prompt_video }}",
"inputType": "binary", "inputType": "binary",
@@ -4498,9 +4498,9 @@
"parameters": { "parameters": {
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"messages": { "messages": {
"values": [ "values": [
@@ -6598,8 +6598,8 @@
"type": "n8n-nodes-base.googleSheets", "type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7, "typeVersion": 4.7,
"position": [ "position": [
13888, 13808,
2016 1872
], ],
"id": "9932dc19-3202-4354-aae7-c33677259f41", "id": "9932dc19-3202-4354-aae7-c33677259f41",
"name": "Sheets - Actualizar link ejecutada en banco TEST", "name": "Sheets - Actualizar link ejecutada en banco TEST",
@@ -6618,7 +6618,7 @@
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
14096, 14096,
2016 1872
], ],
"id": "b2470e42-2786-491b-8f8d-84ac5cf7f31a", "id": "b2470e42-2786-491b-8f8d-84ac5cf7f31a",
"name": "Code - Restaurar contexto actualización banco TEST" "name": "Code - Restaurar contexto actualización banco TEST"
@@ -8387,7 +8387,7 @@
{ {
"parameters": { "parameters": {
"content": "## 🧭 ROUTER DEL REPORTE ACTIVO\n\nEste bloque decide qué hacer según la etapa actual de la sesión.\n\nEtapas:\n- ESPERANDO_AUDIO\n- ESPERANDO_IMAGENES\n- ESPERANDO_VIDEOS\n- PROCESANDO\n\nDecisiones principales:\n- Guardar audio\n- Pedir audio\n- Guardar imágenes\n- Validar FOTOS LISTAS\n- Guardar videos\n- Cerrar sin video\n- Cerrar con videos\n- Avisar procesamiento\n- Ignorar eventos no válidos\n\nRegla:\ncada mensaje se procesa según la etapa activa, no de forma aislada.", "content": "## 🧭 ROUTER DEL REPORTE ACTIVO\n\nEste bloque decide qué hacer según la etapa actual de la sesión.\n\nEtapas:\n- ESPERANDO_AUDIO\n- ESPERANDO_IMAGENES\n- ESPERANDO_VIDEOS\n- PROCESANDO\n\nDecisiones principales:\n- Guardar audio\n- Pedir audio\n- Guardar imágenes\n- Validar FOTOS LISTAS\n- Guardar videos\n- Cerrar sin video\n- Cerrar con videos\n- Avisar procesamiento\n- Ignorar eventos no válidos\n\nRegla:\ncada mensaje se procesa según la etapa activa, no de forma aislada.",
"height": 896, "height": 912,
"width": 1024, "width": 1024,
"color": 2 "color": 2
}, },
@@ -8404,14 +8404,14 @@
"parameters": { "parameters": {
"content": "## 🎙️ PASO 1 — AUDIO OBLIGATORIO\n\nEl reporte no avanza sin nota de voz.\n\nCuando llega un audio:\n- Se guarda el evento en wa_ejecuciones_eventos.\n- Se actualiza la sesión.\n- Se incrementa audio_count.\n- La etapa cambia a ESPERANDO_IMAGENES.\n- El bot pide las imágenes obligatorias.\n\nLa nota de voz debe explicar:\n- Propuesta o referencia\n- Marca/cliente\n- País\n- Ubicación\n- Qué se ejecutó o reportó\n- Comentarios o resultados", "content": "## 🎙️ PASO 1 — AUDIO OBLIGATORIO\n\nEl reporte no avanza sin nota de voz.\n\nCuando llega un audio:\n- Se guarda el evento en wa_ejecuciones_eventos.\n- Se actualiza la sesión.\n- Se incrementa audio_count.\n- La etapa cambia a ESPERANDO_IMAGENES.\n- El bot pide las imágenes obligatorias.\n\nLa nota de voz debe explicar:\n- Propuesta o referencia\n- Marca/cliente\n- País\n- Ubicación\n- Qué se ejecutó o reportó\n- Comentarios o resultados",
"height": 640, "height": 640,
"width": 2064, "width": 1408,
"color": 7 "color": 7
}, },
"type": "n8n-nodes-base.stickyNote", "type": "n8n-nodes-base.stickyNote",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
-5568, -5616,
-2800 -2832
], ],
"id": "cf2e46cc-9bb7-469c-9335-a578a24fc23e", "id": "cf2e46cc-9bb7-469c-9335-a578a24fc23e",
"name": "Sticky Note4" "name": "Sticky Note4"
@@ -8484,7 +8484,7 @@
"parameters": { "parameters": {
"content": "## ✅ CIERRE FINAL DEL REPORTE\n\nEste bloque genera el resultado final del reporte.\n\nProceso:\n1. Consolida análisis multimedia.\n2. Gemini genera JSON final estructurado.\n3. Se normaliza la respuesta.\n4. Se hace match contra el Banco de Propuestas.\n5. Se verifica duplicado.\n6. Se guarda en propuestas_ejecutadas.\n7. Se crea carpeta de ejecución en Drive.\n8. Se copia la plantilla de Slides.\n9. Se insertan imágenes y se borran slides vacíos.\n10. Se actualiza el link final.\n11. Si el match es alto, se actualiza el banco original.\n12. Se envía el link final por WhatsApp.\n\nRegla:\npropuestas externas o match bajo no actualizan el banco original.", "content": "## ✅ CIERRE FINAL DEL REPORTE\n\nEste bloque genera el resultado final del reporte.\n\nProceso:\n1. Consolida análisis multimedia.\n2. Gemini genera JSON final estructurado.\n3. Se normaliza la respuesta.\n4. Se hace match contra el Banco de Propuestas.\n5. Se verifica duplicado.\n6. Se guarda en propuestas_ejecutadas.\n7. Se crea carpeta de ejecución en Drive.\n8. Se copia la plantilla de Slides.\n9. Se insertan imágenes y se borran slides vacíos.\n10. Se actualiza el link final.\n11. Si el match es alto, se actualiza el banco original.\n12. Se envía el link final por WhatsApp.\n\nRegla:\npropuestas externas o match bajo no actualizan el banco original.",
"height": 1024, "height": 1024,
"width": 10848, "width": 10912,
"color": 6 "color": 6
}, },
"type": "n8n-nodes-base.stickyNote", "type": "n8n-nodes-base.stickyNote",
@@ -8499,7 +8499,7 @@
{ {
"parameters": { "parameters": {
"content": "## Fotos Listas\n\nActualizar a Fotos listas y preparar solicitud de videos", "content": "## Fotos Listas\n\nActualizar a Fotos listas y preparar solicitud de videos",
"height": 272, "height": 288,
"width": 944, "width": 944,
"color": 4 "color": 4
}, },
@@ -10097,15 +10097,19 @@
"settings": { "settings": {
"executionOrder": "v1", "executionOrder": "v1",
"binaryMode": "separate", "binaryMode": "separate",
"availableInMCP": true "availableInMCP": true,
"timeSavedMode": "fixed",
"errorWorkflow": "puF4LUczoSz3hcek",
"callerPolicy": "workflowsFromSameOwner",
"timezone": "America/Santo_Domingo"
}, },
"staticData": null, "staticData": null,
"meta": { "meta": {
"templateCredsSetupCompleted": true "templateCredsSetupCompleted": true
}, },
"versionId": "4d721462-7812-496f-9339-30107ebe2e83", "versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"activeVersionId": "4d721462-7812-496f-9339-30107ebe2e83", "activeVersionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"versionCounter": 249, "versionCounter": 298,
"triggerCount": 1, "triggerCount": 1,
"shared": [ "shared": [
{ {
@@ -10128,9 +10132,9 @@
], ],
"tags": [], "tags": [],
"activeVersion": { "activeVersion": {
"updatedAt": "2026-07-15T15:06:52.000Z", "updatedAt": "2026-07-22T01:29:09.000Z",
"createdAt": "2026-07-15T15:06:50.616Z", "createdAt": "2026-07-22T01:29:08.171Z",
"versionId": "4d721462-7812-496f-9339-30107ebe2e83", "versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"workflowId": "CdosDIWBgnDMnPdr", "workflowId": "CdosDIWBgnDMnPdr",
"nodes": [ "nodes": [
{ {
@@ -10168,8 +10172,8 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4, "typeVersion": 4.4,
"position": [ "position": [
15344, 15248,
1648 1696
], ],
"id": "dad797ac-f70a-4550-a1bb-297d2f296dc4", "id": "dad797ac-f70a-4550-a1bb-297d2f296dc4",
"name": "WhatsApp - Enviar mensaje TEST" "name": "WhatsApp - Enviar mensaje TEST"
@@ -10734,8 +10738,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-7408, -7392,
-656 -576
], ],
"id": "99ec1dc9-7dde-42fa-8be2-9dc1b3986b12", "id": "99ec1dc9-7dde-42fa-8be2-9dc1b3986b12",
"name": "Code - Resolver paso activo WhatsApp TEST" "name": "Code - Resolver paso activo WhatsApp TEST"
@@ -14276,9 +14280,9 @@
"operation": "analyze", "operation": "analyze",
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"text": "={{ $json.gemini_prompt_audio }}", "text": "={{ $json.gemini_prompt_audio }}",
"inputType": "binary", "inputType": "binary",
@@ -14335,9 +14339,9 @@
"operation": "analyze", "operation": "analyze",
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"text": "={{ $json.gemini_prompt_imagen }}", "text": "={{ $json.gemini_prompt_imagen }}",
"inputType": "binary", "inputType": "binary",
@@ -14392,9 +14396,9 @@
"operation": "analyze", "operation": "analyze",
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"text": "={{ $json.gemini_prompt_video }}", "text": "={{ $json.gemini_prompt_video }}",
"inputType": "binary", "inputType": "binary",
@@ -14624,9 +14628,9 @@
"parameters": { "parameters": {
"modelId": { "modelId": {
"__rl": true, "__rl": true,
"value": "models/gemini-3.1-pro-preview", "value": "models/gemini-2.5-pro",
"mode": "list", "mode": "list",
"cachedResultName": "models/gemini-3.1-pro-preview" "cachedResultName": "models/gemini-2.5-pro"
}, },
"messages": { "messages": {
"values": [ "values": [
@@ -16724,8 +16728,8 @@
"type": "n8n-nodes-base.googleSheets", "type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7, "typeVersion": 4.7,
"position": [ "position": [
13888, 13808,
2016 1872
], ],
"id": "9932dc19-3202-4354-aae7-c33677259f41", "id": "9932dc19-3202-4354-aae7-c33677259f41",
"name": "Sheets - Actualizar link ejecutada en banco TEST", "name": "Sheets - Actualizar link ejecutada en banco TEST",
@@ -16744,7 +16748,7 @@
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
14096, 14096,
2016 1872
], ],
"id": "b2470e42-2786-491b-8f8d-84ac5cf7f31a", "id": "b2470e42-2786-491b-8f8d-84ac5cf7f31a",
"name": "Code - Restaurar contexto actualización banco TEST" "name": "Code - Restaurar contexto actualización banco TEST"
@@ -18513,7 +18517,7 @@
{ {
"parameters": { "parameters": {
"content": "## 🧭 ROUTER DEL REPORTE ACTIVO\n\nEste bloque decide qué hacer según la etapa actual de la sesión.\n\nEtapas:\n- ESPERANDO_AUDIO\n- ESPERANDO_IMAGENES\n- ESPERANDO_VIDEOS\n- PROCESANDO\n\nDecisiones principales:\n- Guardar audio\n- Pedir audio\n- Guardar imágenes\n- Validar FOTOS LISTAS\n- Guardar videos\n- Cerrar sin video\n- Cerrar con videos\n- Avisar procesamiento\n- Ignorar eventos no válidos\n\nRegla:\ncada mensaje se procesa según la etapa activa, no de forma aislada.", "content": "## 🧭 ROUTER DEL REPORTE ACTIVO\n\nEste bloque decide qué hacer según la etapa actual de la sesión.\n\nEtapas:\n- ESPERANDO_AUDIO\n- ESPERANDO_IMAGENES\n- ESPERANDO_VIDEOS\n- PROCESANDO\n\nDecisiones principales:\n- Guardar audio\n- Pedir audio\n- Guardar imágenes\n- Validar FOTOS LISTAS\n- Guardar videos\n- Cerrar sin video\n- Cerrar con videos\n- Avisar procesamiento\n- Ignorar eventos no válidos\n\nRegla:\ncada mensaje se procesa según la etapa activa, no de forma aislada.",
"height": 896, "height": 912,
"width": 1024, "width": 1024,
"color": 2 "color": 2
}, },
@@ -18530,14 +18534,14 @@
"parameters": { "parameters": {
"content": "## 🎙️ PASO 1 — AUDIO OBLIGATORIO\n\nEl reporte no avanza sin nota de voz.\n\nCuando llega un audio:\n- Se guarda el evento en wa_ejecuciones_eventos.\n- Se actualiza la sesión.\n- Se incrementa audio_count.\n- La etapa cambia a ESPERANDO_IMAGENES.\n- El bot pide las imágenes obligatorias.\n\nLa nota de voz debe explicar:\n- Propuesta o referencia\n- Marca/cliente\n- País\n- Ubicación\n- Qué se ejecutó o reportó\n- Comentarios o resultados", "content": "## 🎙️ PASO 1 — AUDIO OBLIGATORIO\n\nEl reporte no avanza sin nota de voz.\n\nCuando llega un audio:\n- Se guarda el evento en wa_ejecuciones_eventos.\n- Se actualiza la sesión.\n- Se incrementa audio_count.\n- La etapa cambia a ESPERANDO_IMAGENES.\n- El bot pide las imágenes obligatorias.\n\nLa nota de voz debe explicar:\n- Propuesta o referencia\n- Marca/cliente\n- País\n- Ubicación\n- Qué se ejecutó o reportó\n- Comentarios o resultados",
"height": 640, "height": 640,
"width": 2064, "width": 1408,
"color": 7 "color": 7
}, },
"type": "n8n-nodes-base.stickyNote", "type": "n8n-nodes-base.stickyNote",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
-5568, -5616,
-2800 -2832
], ],
"id": "cf2e46cc-9bb7-469c-9335-a578a24fc23e", "id": "cf2e46cc-9bb7-469c-9335-a578a24fc23e",
"name": "Sticky Note4" "name": "Sticky Note4"
@@ -18610,7 +18614,7 @@
"parameters": { "parameters": {
"content": "## ✅ CIERRE FINAL DEL REPORTE\n\nEste bloque genera el resultado final del reporte.\n\nProceso:\n1. Consolida análisis multimedia.\n2. Gemini genera JSON final estructurado.\n3. Se normaliza la respuesta.\n4. Se hace match contra el Banco de Propuestas.\n5. Se verifica duplicado.\n6. Se guarda en propuestas_ejecutadas.\n7. Se crea carpeta de ejecución en Drive.\n8. Se copia la plantilla de Slides.\n9. Se insertan imágenes y se borran slides vacíos.\n10. Se actualiza el link final.\n11. Si el match es alto, se actualiza el banco original.\n12. Se envía el link final por WhatsApp.\n\nRegla:\npropuestas externas o match bajo no actualizan el banco original.", "content": "## ✅ CIERRE FINAL DEL REPORTE\n\nEste bloque genera el resultado final del reporte.\n\nProceso:\n1. Consolida análisis multimedia.\n2. Gemini genera JSON final estructurado.\n3. Se normaliza la respuesta.\n4. Se hace match contra el Banco de Propuestas.\n5. Se verifica duplicado.\n6. Se guarda en propuestas_ejecutadas.\n7. Se crea carpeta de ejecución en Drive.\n8. Se copia la plantilla de Slides.\n9. Se insertan imágenes y se borran slides vacíos.\n10. Se actualiza el link final.\n11. Si el match es alto, se actualiza el banco original.\n12. Se envía el link final por WhatsApp.\n\nRegla:\npropuestas externas o match bajo no actualizan el banco original.",
"height": 1024, "height": 1024,
"width": 10848, "width": 10912,
"color": 6 "color": 6
}, },
"type": "n8n-nodes-base.stickyNote", "type": "n8n-nodes-base.stickyNote",
@@ -18625,7 +18629,7 @@
{ {
"parameters": { "parameters": {
"content": "## Fotos Listas\n\nActualizar a Fotos listas y preparar solicitud de videos", "content": "## Fotos Listas\n\nActualizar a Fotos listas y preparar solicitud de videos",
"height": 272, "height": 288,
"width": 944, "width": 944,
"color": 4 "color": 4
}, },
@@ -20221,17 +20225,49 @@
} }
}, },
"authors": "Isaac Aracena", "authors": "Isaac Aracena",
"name": "Version 4d721462", "name": "Version a7e79bcb",
"description": "", "description": "",
"autosaved": false, "autosaved": false,
"workflowPublishHistory": [ "workflowPublishHistory": [
{ {
"createdAt": "2026-07-15T15:06:52.705Z", "createdAt": "2026-07-22T01:29:09.390Z",
"id": 2961, "id": 3360,
"workflowId": "CdosDIWBgnDMnPdr", "workflowId": "CdosDIWBgnDMnPdr",
"versionId": "4d721462-7812-496f-9339-30107ebe2e83", "versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"event": "activated", "event": "activated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029" "userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
},
{
"createdAt": "2026-07-25T17:06:44.294Z",
"id": 3418,
"workflowId": "CdosDIWBgnDMnPdr",
"versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"event": "activated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
},
{
"createdAt": "2026-07-25T17:09:24.556Z",
"id": 3422,
"workflowId": "CdosDIWBgnDMnPdr",
"versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"event": "activated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
},
{
"createdAt": "2026-07-25T17:06:44.216Z",
"id": 3417,
"workflowId": "CdosDIWBgnDMnPdr",
"versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"event": "deactivated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
},
{
"createdAt": "2026-07-25T17:09:24.386Z",
"id": 3421,
"workflowId": "CdosDIWBgnDMnPdr",
"versionId": "a7e79bcb-0835-4956-ae80-795a624a6e49",
"event": "deactivated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
} }
] ]
} }