From 924932a2039c372427697823958ac9c88a910264 Mon Sep 17 00:00:00 2001 From: Isaac_Aracena Date: Fri, 5 Jun 2026 16:39:17 +0000 Subject: [PATCH] Update backup: Tablero CDC - Sync Proyecto a Sheet WEBHOOK --- ...ero-cdc-sync-proyecto-a-sheet-webhook.json | 233 ++++++++++++++++-- 1 file changed, 217 insertions(+), 16 deletions(-) diff --git a/tablero-cdc-sync-proyecto-a-sheet-webhook.json b/tablero-cdc-sync-proyecto-a-sheet-webhook.json index 2057175..dfe075d 100644 --- a/tablero-cdc-sync-proyecto-a-sheet-webhook.json +++ b/tablero-cdc-sync-proyecto-a-sheet-webhook.json @@ -1,5 +1,5 @@ { - "updatedAt": "2026-06-05T16:38:15.313Z", + "updatedAt": "2026-06-05T16:39:17.316Z", "createdAt": "2026-05-27T18:36:03.445Z", "id": "d39DtIUTQzduqX0v", "name": "Tablero CDC - Sync Proyecto a Sheet WEBHOOK", @@ -36,7 +36,7 @@ "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.4, "position": [ - 912, + 1216, 144 ], "id": "5fdded5f-5a19-4f40-bc75-21ae92ac3df2", @@ -71,7 +71,7 @@ "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.4, "position": [ - 1088, + 1392, 272 ], "id": "d2839f2d-af1f-49ab-bfd6-4c3b76f656ad", @@ -85,7 +85,7 @@ "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ - 1344, + 1648, 272 ], "id": "1a9e76bd-20f8-481b-82c1-95d631e261ae", @@ -286,7 +286,7 @@ "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.7, "position": [ - 1552, + 1856, 272 ], "id": "d66bf9b4-9694-4f43-8dd6-4e9efe4eece8", @@ -339,7 +339,7 @@ "type": "n8n-nodes-base.respondToWebhook", "typeVersion": 1.5, "position": [ - 1760, + 2064, 272 ], "id": "425a3374-03dc-4424-b089-3d86efbd565e", @@ -349,7 +349,7 @@ "parameters": { "content": "Sync Proyecto a Sheet WEBHOOK\n\nFlujo de producción que recibe project_id desde la app Tablero CDC y sincroniza el proyecto con Google Sheet PROYECTOS 2026.\n\nFlujo:\nWebhook -> preparar project_id -> leer projects -> leer project_links -> preparar fila -> upsert en Sheet -> responder webhook.\n\nNotas:\n- La app llama este flujo usando VITE_WEBHOOK_URL.\n- El upsert usa Project ID.\n- Encabezados del Sheet: fila 3.\n- Datos desde fila 4.\n- Filas viejas sin Project ID quedan como histórico.\n- Leer links del proyecto debe tener Always Output Data activo para que proyectos sin links también se peguen.\n\nSi cambia Supabase empresarial/self-hosted, actualizar URL y keys en los HTTP Request.", "height": 672, - "width": 1812 + "width": 2388 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, @@ -393,6 +393,213 @@ ], "id": "e891ba4b-23d2-4432-bb33-deffbee8097a", "name": "IF - Acción eliminar?" + }, + { + "parameters": { + "operation": "appendOrUpdate", + "documentId": { + "__rl": true, + "value": "1MfoIs_y7-4ad-g5dxzOo8oAFIdraA_ZT4k-OCGMtT4Q", + "mode": "list", + "cachedResultName": "APROBACIONES PROYECTOS", + "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MfoIs_y7-4ad-g5dxzOo8oAFIdraA_ZT4k-OCGMtT4Q/edit?usp=drivesdk" + }, + "sheetName": { + "__rl": true, + "value": 1563472127, + "mode": "list", + "cachedResultName": "PROYECTOS 2026", + "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MfoIs_y7-4ad-g5dxzOo8oAFIdraA_ZT4k-OCGMtT4Q/edit#gid=1563472127" + }, + "columns": { + "mappingMode": "defineBelow", + "value": { + "Año": "={{ $json[\"Año\"] }}", + "Mes": "={{ $json[\"Mes\"] }}", + "Tipo o nombre de proyecto": "={{ $json[\"Tipo o nombre de proyecto\"] }}", + "Cliente": "={{ $json[\"Cliente\"] }}", + "BU Solicita": "={{ $json[\"BU Solicita\"] }}", + "Marca": "={{ $json[\"Marca\"] }}", + "CM": "={{ $json[\"CM\"] }}", + "Status": "={{ $json[\"Status\"] }}", + "Comentarios": "={{ $json[\"Comentarios\"] }}", + "Link de propuesta": "={{ $json[\"Link de propuesta\"] }}", + "$ Interno Cargado": "={{ $json[\"$ Interno Cargado\"] }}", + "Link del Brief": "={{ $json[\"Link del Brief\"] }}", + "Link de artes finales": "={{ $json[\"Link de artes finales\"] }}", + "Project ID": "={{ $json[\"Project ID\"] }}" + }, + "matchingColumns": [ + "Project ID" + ], + "schema": [ + { + "id": "Año", + "displayName": "Año", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Mes", + "displayName": "Mes", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Tipo o nombre de proyecto", + "displayName": "Tipo o nombre de proyecto", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Cliente", + "displayName": "Cliente", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "BU Solicita", + "displayName": "BU Solicita", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Marca", + "displayName": "Marca", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "CM", + "displayName": "CM", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Status", + "displayName": "Status", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Comentarios", + "displayName": "Comentarios", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Link de propuesta", + "displayName": "Link de propuesta", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "$ Interno Cargado", + "displayName": "$ Interno Cargado", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Link del Brief", + "displayName": "Link del Brief", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Link de artes finales", + "displayName": "Link de artes finales", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "Project ID", + "displayName": "Project ID", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + } + ], + "attemptToConvertTypes": false, + "convertFieldsToString": false + }, + "options": { + "locationDefine": { + "values": { + "headerRow": 3, + "firstDataRow": 4 + } + } + } + }, + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 4.7, + "position": [ + 768, + 128 + ], + "id": "df240622-6ec0-44cb-b945-28c09bd50496", + "name": "Sheets - Upsert proyecto1", + "credentials": { + "googleSheetsOAuth2Api": { + "id": "K0hDZh3a85MpOHCs", + "name": "Google Sheets account 2" + } + } } ], "connections": { @@ -464,13 +671,7 @@ }, "IF - Acción eliminar?": { "main": [ - [ - { - "node": "Supabase - Leer proyecto", - "type": "main", - "index": 0 - } - ], + [], [ { "node": "Supabase - Leer links del proyecto", @@ -493,9 +694,9 @@ "meta": { "templateCredsSetupCompleted": true }, - "versionId": "ffaff37a-069c-4a4e-b120-9314991a6343", + "versionId": "206948f3-96ed-42c0-9c53-2f011c3b7524", "activeVersionId": "17638407-8c4f-4070-b040-a23f2750265e", - "versionCounter": 79, + "versionCounter": 84, "triggerCount": 1, "shared": [ {