Update backup: GLM Hub - Solicitudes de acceso y aprobación

This commit is contained in:
2026-08-09 04:01:33 +00:00
parent b41d78a0c0
commit 155bb3eebf
+308 -116
View File
@@ -1,5 +1,5 @@
{ {
"updatedAt": "2026-07-30T22:15:55.410Z", "updatedAt": "2026-08-06T17:47:19.077Z",
"createdAt": "2026-07-29T13:08:05.444Z", "createdAt": "2026-07-29T13:08:05.444Z",
"id": "RaNkDfE2YCrZgCbx", "id": "RaNkDfE2YCrZgCbx",
"name": "GLM Hub - Solicitudes de acceso y aprobación", "name": "GLM Hub - Solicitudes de acceso y aprobación",
@@ -21,8 +21,8 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-784, -928,
208 192
], ],
"webhookId": "ad3e98b9-baf2-400f-90e7-dcd4c5c20457" "webhookId": "ad3e98b9-baf2-400f-90e7-dcd4c5c20457"
}, },
@@ -35,8 +35,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-560, -704,
208 192
] ]
}, },
{ {
@@ -69,8 +69,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
-336, -480,
208 192
] ]
}, },
{ {
@@ -94,8 +94,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-112, -160,
368 352
] ]
}, },
{ {
@@ -137,8 +137,8 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2, "typeVersion": 4.2,
"position": [ "position": [
-112, 304,
128 112
] ]
}, },
{ {
@@ -150,8 +150,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
784, 1440,
48 64
] ]
}, },
{ {
@@ -184,8 +184,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
1024, 1680,
48 64
] ]
}, },
{ {
@@ -203,8 +203,8 @@
"type": "n8n-nodes-base.gmail", "type": "n8n-nodes-base.gmail",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
1264, 1920,
-48 -32
], ],
"webhookId": "7dc65e7b-4fb6-4a2f-b685-34171dd9ce1a", "webhookId": "7dc65e7b-4fb6-4a2f-b685-34171dd9ce1a",
"credentials": { "credentials": {
@@ -235,8 +235,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
1504, 2160,
-48 -32
] ]
}, },
{ {
@@ -260,8 +260,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
1264, 1920,
160 176
] ]
}, },
{ {
@@ -275,8 +275,8 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-784, 432,
672 896
], ],
"webhookId": "cba1c38c-37bc-4acb-bd61-48035604a5c4" "webhookId": "cba1c38c-37bc-4acb-bd61-48035604a5c4"
}, },
@@ -289,8 +289,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-560, 656,
672 896
] ]
}, },
{ {
@@ -322,8 +322,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-336, 880,
672 896
] ]
}, },
{ {
@@ -338,8 +338,8 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-784, -544,
1040 1584
], ],
"webhookId": "54eeee1b-b24b-46ae-84dc-70c4103e3a3a" "webhookId": "54eeee1b-b24b-46ae-84dc-70c4103e3a3a"
}, },
@@ -352,8 +352,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-560, -320,
1040 1584
] ]
}, },
{ {
@@ -386,8 +386,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
-336, -96,
1040 1584
] ]
}, },
{ {
@@ -399,8 +399,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-112, 128,
1232 1776
] ]
}, },
{ {
@@ -432,8 +432,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
128, 368,
1232 1776
] ]
}, },
{ {
@@ -479,8 +479,8 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2, "typeVersion": 4.2,
"position": [ "position": [
-112, 128,
960 1504
] ]
}, },
{ {
@@ -492,8 +492,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
128, 1344,
960 1520
] ]
}, },
{ {
@@ -526,8 +526,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
368, 1584,
960 1520
] ]
}, },
{ {
@@ -545,8 +545,8 @@
"type": "n8n-nodes-base.gmail", "type": "n8n-nodes-base.gmail",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
608, 1824,
864 1424
], ],
"webhookId": "234c8e3b-b904-41b8-8a74-9ca835f759df", "webhookId": "234c8e3b-b904-41b8-8a74-9ca835f759df",
"credentials": { "credentials": {
@@ -585,8 +585,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
848, 2064,
960 1520
] ]
}, },
{ {
@@ -598,8 +598,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
96, 512,
128 112
] ]
}, },
{ {
@@ -632,8 +632,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
320, 736,
128 112
] ]
}, },
{ {
@@ -679,9 +679,105 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2, "typeVersion": 4.2,
"position": [ "position": [
544, 1200,
48 64
] ]
},
{
"parameters": {
"content": "## 1. RECEPCIÓN Y VALIDACIÓN\n\nEste bloque recibe desde GLM Hub una nueva solicitud de acceso y valida que la información obligatoria sea correcta.\n\n- Verifica los datos del usuario y de la aplicación solicitada.\n- Rechaza inmediatamente solicitudes incompletas o inválidas.\n- Solo las solicitudes válidas continúan hacia el registro en Supabase.",
"height": 560,
"width": 1104,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1024,
-16
],
"id": "55489511-4594-4d60-8b68-87f0210e4b9e",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## 2. REGISTRO DE LA SOLICITUD\n\nGuarda la solicitud de acceso en Supabase y confirma que el registro se haya creado correctamente.\n\n- Almacena la información de la solicitud y su estado inicial.\n- Recupera y normaliza los datos devueltos por Supabase.\n- Solo permite continuar cuando existe una confirmación válida del registro.",
"height": 384,
"width": 736,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
192,
-64
],
"id": "729f2bb0-c1f2-424f-ae39-bf69ea94317c",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## 3. ENVÍO A LOS APROBADORES\n\nGenera los enlaces de decisión, prepara los correos y notifica a las personas responsables de aprobar o rechazar la solicitud.\n\n- Construye enlaces únicos para la aprobación y el rechazo.\n- Genera el contenido personalizado de los correos.\n- Envía la solicitud a los aprobadores mediante Gmail.\n- Confirma al GLM Hub que la solicitud fue enviada correctamente.\n- Devuelve un error controlado si no fue posible completar el registro.",
"height": 560,
"width": 1264,
"color": "#357C27"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1104,
-224
],
"id": "32a9a9ad-bd7c-4d67-93db-d6537fd3a978",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## 4. CONFIRMACIÓN DE LA DECISIÓN\n\nRecibe al aprobador desde el enlace enviado por correo y muestra una página previa antes de registrar la decisión definitiva.\n\n- Lee los parámetros incluidos en el enlace de aprobación o rechazo.\n- Construye una página con los datos de la solicitud.\n- Solicita una confirmación final para evitar decisiones accidentales.",
"height": 352,
"width": 1062,
"color": "#8F622D"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
192,
720
],
"id": "305bb9cd-16f5-4f87-a3b4-f6009a683085",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## 5. VALIDACIÓN Y REGISTRO DE LA DECISIÓN\n\nValida la decisión confirmada por el aprobador y actualiza la solicitud correspondiente en Supabase.\n\n- Comprueba que la solicitud, el enlace y la decisión sean válidos.\n- Registra en Supabase la aprobación o el rechazo.\n- Impide procesar decisiones incorrectas, incompletas o manipuladas.\n- Muestra una respuesta controlada cuando la decisión no puede ser aceptada.",
"height": 624,
"width": 1184,
"color": "#52500F"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-624,
1328
],
"id": "0289d494-ec4a-4f09-89ed-02006e0fcc4e",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "## 6. NOTIFICACIÓN Y RESULTADO FINAL\n\nPrepara el resultado de la decisión, determina si se necesita intervención de IT Support y finaliza el proceso.\n\n- Construye el mensaje final de aprobación o rechazo.\n- Evalúa si la decisión debe notificarse al equipo de IT.\n- Envía por Gmail la información necesaria cuando corresponde.\n- Muestra al aprobador el resultado definitivo de la operación.",
"height": 432,
"width": 1104,
"color": "#276D4F"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1184,
1264
],
"id": "7881e095-8b12-4b96-83fd-a174d8dd0703",
"name": "Sticky Note5"
} }
], ],
"connections": { "connections": {
@@ -950,9 +1046,9 @@
"meta": { "meta": {
"templateCredsSetupCompleted": true "templateCredsSetupCompleted": true
}, },
"versionId": "a4528c24-f544-4063-9bda-2b04c9943a97", "versionId": "dc3ed690-5728-414e-a322-137e35e8f9b6",
"activeVersionId": "a4528c24-f544-4063-9bda-2b04c9943a97", "activeVersionId": "dc3ed690-5728-414e-a322-137e35e8f9b6",
"versionCounter": 72, "versionCounter": 137,
"triggerCount": 3, "triggerCount": 3,
"shared": [ "shared": [
{ {
@@ -975,9 +1071,9 @@
], ],
"tags": [], "tags": [],
"activeVersion": { "activeVersion": {
"updatedAt": "2026-07-29T15:29:25.000Z", "updatedAt": "2026-08-06T17:47:21.000Z",
"createdAt": "2026-07-29T15:29:15.992Z", "createdAt": "2026-08-06T17:47:19.081Z",
"versionId": "a4528c24-f544-4063-9bda-2b04c9943a97", "versionId": "dc3ed690-5728-414e-a322-137e35e8f9b6",
"workflowId": "RaNkDfE2YCrZgCbx", "workflowId": "RaNkDfE2YCrZgCbx",
"nodes": [ "nodes": [
{ {
@@ -994,8 +1090,8 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-784, -928,
208 192
], ],
"webhookId": "ad3e98b9-baf2-400f-90e7-dcd4c5c20457" "webhookId": "ad3e98b9-baf2-400f-90e7-dcd4c5c20457"
}, },
@@ -1008,8 +1104,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-560, -704,
208 192
] ]
}, },
{ {
@@ -1042,8 +1138,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
-336, -480,
208 192
] ]
}, },
{ {
@@ -1067,8 +1163,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-112, -160,
368 352
] ]
}, },
{ {
@@ -1110,8 +1206,8 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2, "typeVersion": 4.2,
"position": [ "position": [
-112, 304,
128 112
] ]
}, },
{ {
@@ -1123,8 +1219,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
784, 1440,
48 64
] ]
}, },
{ {
@@ -1157,8 +1253,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
1024, 1680,
48 64
] ]
}, },
{ {
@@ -1176,8 +1272,8 @@
"type": "n8n-nodes-base.gmail", "type": "n8n-nodes-base.gmail",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
1264, 1920,
-48 -32
], ],
"webhookId": "7dc65e7b-4fb6-4a2f-b685-34171dd9ce1a", "webhookId": "7dc65e7b-4fb6-4a2f-b685-34171dd9ce1a",
"credentials": { "credentials": {
@@ -1208,8 +1304,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
1504, 2160,
-48 -32
] ]
}, },
{ {
@@ -1233,8 +1329,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
1264, 1920,
160 176
] ]
}, },
{ {
@@ -1248,8 +1344,8 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-784, 432,
672 896
], ],
"webhookId": "cba1c38c-37bc-4acb-bd61-48035604a5c4" "webhookId": "cba1c38c-37bc-4acb-bd61-48035604a5c4"
}, },
@@ -1262,8 +1358,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-560, 656,
672 896
] ]
}, },
{ {
@@ -1295,8 +1391,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-336, 880,
672 896
] ]
}, },
{ {
@@ -1311,8 +1407,8 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-784, -544,
1040 1584
], ],
"webhookId": "54eeee1b-b24b-46ae-84dc-70c4103e3a3a" "webhookId": "54eeee1b-b24b-46ae-84dc-70c4103e3a3a"
}, },
@@ -1325,8 +1421,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-560, -320,
1040 1584
] ]
}, },
{ {
@@ -1359,8 +1455,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
-336, -96,
1040 1584
] ]
}, },
{ {
@@ -1372,8 +1468,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-112, 128,
1232 1776
] ]
}, },
{ {
@@ -1405,8 +1501,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
128, 368,
1232 1776
] ]
}, },
{ {
@@ -1452,8 +1548,8 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2, "typeVersion": 4.2,
"position": [ "position": [
-112, 128,
960 1504
] ]
}, },
{ {
@@ -1465,8 +1561,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
128, 1344,
960 1520
] ]
}, },
{ {
@@ -1499,8 +1595,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
368, 1584,
960 1520
] ]
}, },
{ {
@@ -1518,8 +1614,8 @@
"type": "n8n-nodes-base.gmail", "type": "n8n-nodes-base.gmail",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
608, 1824,
864 1424
], ],
"webhookId": "234c8e3b-b904-41b8-8a74-9ca835f759df", "webhookId": "234c8e3b-b904-41b8-8a74-9ca835f759df",
"credentials": { "credentials": {
@@ -1558,8 +1654,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
848, 2064,
960 1520
] ]
}, },
{ {
@@ -1571,8 +1667,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
96, 512,
128 112
] ]
}, },
{ {
@@ -1605,8 +1701,8 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
320, 736,
128 112
] ]
}, },
{ {
@@ -1652,9 +1748,105 @@
"type": "n8n-nodes-base.httpRequest", "type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2, "typeVersion": 4.2,
"position": [ "position": [
544, 1200,
48 64
] ]
},
{
"parameters": {
"content": "## 1. RECEPCIÓN Y VALIDACIÓN\n\nEste bloque recibe desde GLM Hub una nueva solicitud de acceso y valida que la información obligatoria sea correcta.\n\n- Verifica los datos del usuario y de la aplicación solicitada.\n- Rechaza inmediatamente solicitudes incompletas o inválidas.\n- Solo las solicitudes válidas continúan hacia el registro en Supabase.",
"height": 560,
"width": 1104,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1024,
-16
],
"id": "55489511-4594-4d60-8b68-87f0210e4b9e",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## 2. REGISTRO DE LA SOLICITUD\n\nGuarda la solicitud de acceso en Supabase y confirma que el registro se haya creado correctamente.\n\n- Almacena la información de la solicitud y su estado inicial.\n- Recupera y normaliza los datos devueltos por Supabase.\n- Solo permite continuar cuando existe una confirmación válida del registro.",
"height": 384,
"width": 736,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
192,
-64
],
"id": "729f2bb0-c1f2-424f-ae39-bf69ea94317c",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## 3. ENVÍO A LOS APROBADORES\n\nGenera los enlaces de decisión, prepara los correos y notifica a las personas responsables de aprobar o rechazar la solicitud.\n\n- Construye enlaces únicos para la aprobación y el rechazo.\n- Genera el contenido personalizado de los correos.\n- Envía la solicitud a los aprobadores mediante Gmail.\n- Confirma al GLM Hub que la solicitud fue enviada correctamente.\n- Devuelve un error controlado si no fue posible completar el registro.",
"height": 560,
"width": 1264,
"color": "#357C27"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1104,
-224
],
"id": "32a9a9ad-bd7c-4d67-93db-d6537fd3a978",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## 4. CONFIRMACIÓN DE LA DECISIÓN\n\nRecibe al aprobador desde el enlace enviado por correo y muestra una página previa antes de registrar la decisión definitiva.\n\n- Lee los parámetros incluidos en el enlace de aprobación o rechazo.\n- Construye una página con los datos de la solicitud.\n- Solicita una confirmación final para evitar decisiones accidentales.",
"height": 352,
"width": 1062,
"color": "#8F622D"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
192,
720
],
"id": "305bb9cd-16f5-4f87-a3b4-f6009a683085",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## 5. VALIDACIÓN Y REGISTRO DE LA DECISIÓN\n\nValida la decisión confirmada por el aprobador y actualiza la solicitud correspondiente en Supabase.\n\n- Comprueba que la solicitud, el enlace y la decisión sean válidos.\n- Registra en Supabase la aprobación o el rechazo.\n- Impide procesar decisiones incorrectas, incompletas o manipuladas.\n- Muestra una respuesta controlada cuando la decisión no puede ser aceptada.",
"height": 624,
"width": 1184,
"color": "#52500F"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-624,
1328
],
"id": "0289d494-ec4a-4f09-89ed-02006e0fcc4e",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "## 6. NOTIFICACIÓN Y RESULTADO FINAL\n\nPrepara el resultado de la decisión, determina si se necesita intervención de IT Support y finaliza el proceso.\n\n- Construye el mensaje final de aprobación o rechazo.\n- Evalúa si la decisión debe notificarse al equipo de IT.\n- Envía por Gmail la información necesaria cuando corresponde.\n- Muestra al aprobador el resultado definitivo de la operación.",
"height": 432,
"width": 1104,
"color": "#276D4F"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1184,
1264
],
"id": "7881e095-8b12-4b96-83fd-a174d8dd0703",
"name": "Sticky Note5"
} }
], ],
"connections": { "connections": {
@@ -1915,15 +2107,15 @@
} }
}, },
"authors": "Isaac Aracena", "authors": "Isaac Aracena",
"name": "Version a4528c24", "name": "Version dc3ed690",
"description": "", "description": "",
"autosaved": true, "autosaved": false,
"workflowPublishHistory": [ "workflowPublishHistory": [
{ {
"createdAt": "2026-07-29T15:29:25.705Z", "createdAt": "2026-08-06T17:47:21.133Z",
"id": 3624, "id": 4229,
"workflowId": "RaNkDfE2YCrZgCbx", "workflowId": "RaNkDfE2YCrZgCbx",
"versionId": "a4528c24-f544-4063-9bda-2b04c9943a97", "versionId": "dc3ed690-5728-414e-a322-137e35e8f9b6",
"event": "activated", "event": "activated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029" "userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
} }