Update backup: GLM Hub - Generar ícono con Gemini

This commit is contained in:
2026-08-09 04:01:07 +00:00
parent d2a2a5fb81
commit 3a4409e6ea
+199 -41
View File
@@ -1,5 +1,5 @@
{ {
"updatedAt": "2026-07-29T18:48:09.844Z", "updatedAt": "2026-08-03T13:45:01.318Z",
"createdAt": "2026-07-28T16:18:07.824Z", "createdAt": "2026-07-28T16:18:07.824Z",
"id": "F2rMlVS9mBypNNn7", "id": "F2rMlVS9mBypNNn7",
"name": "GLM Hub - Generar ícono con Gemini", "name": "GLM Hub - Generar ícono con Gemini",
@@ -21,7 +21,7 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-2992, -3712,
464 464
], ],
"webhookId": "bc20a398-5ecf-42a2-9d17-9396aa278708" "webhookId": "bc20a398-5ecf-42a2-9d17-9396aa278708"
@@ -35,7 +35,7 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-2736, -3456,
464 464
] ]
}, },
@@ -69,7 +69,7 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
-2512, -3232,
464 464
] ]
}, },
@@ -94,8 +94,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-2272, -2928,
640 576
] ]
}, },
{ {
@@ -223,8 +223,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-1600, -864,
272 352
] ]
}, },
{ {
@@ -246,8 +246,8 @@
"type": "@n8n/n8n-nodes-langchain.googleGemini", "type": "@n8n/n8n-nodes-langchain.googleGemini",
"typeVersion": 1.2, "typeVersion": 1.2,
"position": [ "position": [
-1360, -96,
272 384
], ],
"credentials": { "credentials": {
"googlePalmApi": { "googlePalmApi": {
@@ -290,8 +290,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-1072, 192,
192 304
] ]
}, },
{ {
@@ -303,8 +303,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-1072, 768,
384 464
] ]
}, },
{ {
@@ -328,9 +328,88 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-832, 1008,
384 464
] ]
},
{
"parameters": {
"content": "## 1. RECEPCIÓN Y VALIDACIÓN\n\nRecibe desde GLM Hub la solicitud para generar el icono y valida que la información obligatoria esté completa.\n\n- Comprueba los datos de la aplicación y la descripción del icono.\n- Normaliza la información recibida antes de continuar.\n- Detiene el proceso cuando faltan datos o la solicitud es incorrecta.\n- Devuelve una respuesta HTTP 400 para solicitudes inválidas.",
"height": 512,
"width": 1104,
"color": 2
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-3824,
240
],
"id": "0df68d74-d3c2-4257-be79-7a91077c3a07",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## 2. AUTORIZACIÓN DEL USUARIO\n\nConsulta Supabase para comprobar que la persona que solicita la generación del icono tenga permisos de administrador.\n\n- Busca el perfil y los permisos del usuario autenticado.\n- Normaliza el resultado devuelto por Supabase.\n- Permite continuar únicamente a administradores autorizados.\n- Devuelve una respuesta HTTP 403 cuando el usuario no tiene permisos.",
"height": 544,
"width": 976,
"color": "#891F3A"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-2368,
176
],
"id": "6133d6fd-9c82-40d2-8343-ceb670ec9410",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## 3. PREPARACIÓN DEL PROMPT\n\nConstruye las instrucciones que se enviarán a Gemini para generar un icono adecuado para la aplicación.\n\n- Utiliza el nombre, la descripción y el propósito de la aplicación.\n- Define el estilo visual requerido para los iconos de GLM Hub.\n- Evita textos, marcas de agua y elementos innecesarios.\n- Prepara un prompt claro y consistente para obtener mejores resultados.",
"height": 384,
"width": 832,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1216,
160
],
"id": "cf146dba-5bed-4158-83bc-b55c268b1837",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## 4. GENERACIÓN DEL ICONO\n\nEnvía el prompt a Gemini, genera la imagen y devuelve el icono al GLM Hub cuando el proceso finaliza correctamente.\n\n- Solicita a Gemini la creación del icono.\n- Recibe la imagen generada por el modelo.\n- Devuelve el resultado mediante la respuesta del webhook.\n- Permite que el GLM Hub utilice el icono generado en la aplicación.",
"height": 528,
"width": 592,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-192,
80
],
"id": "2fc45b39-21af-4151-90c8-0299f6a5a527",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## 5. CONTROL DE ERRORES DE GEMINI\n\nGestiona los fallos que puedan producirse durante la generación de la imagen y devuelve una respuesta controlada al GLM Hub.\n\n- Captura errores técnicos o respuestas fallidas de Gemini.\n- Prepara un mensaje comprensible para el usuario.\n- Evita que el workflow termine sin una respuesta.\n- Informa que el icono no pudo generarse para que pueda intentarse nuevamente.",
"height": 384,
"width": 704
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
544,
256
],
"id": "2caf2891-ccdf-434b-b773-5a4dca43e4a4",
"name": "Sticky Note4"
} }
], ],
"connections": { "connections": {
@@ -464,9 +543,9 @@
"meta": { "meta": {
"templateCredsSetupCompleted": true "templateCredsSetupCompleted": true
}, },
"versionId": "ce03fd5f-2d70-44f1-b1e2-b31fc92ddf62", "versionId": "b743c332-a154-44c3-a9c5-6c433e352520",
"activeVersionId": "ce03fd5f-2d70-44f1-b1e2-b31fc92ddf62", "activeVersionId": "b743c332-a154-44c3-a9c5-6c433e352520",
"versionCounter": 75, "versionCounter": 115,
"triggerCount": 1, "triggerCount": 1,
"shared": [ "shared": [
{ {
@@ -489,9 +568,9 @@
], ],
"tags": [], "tags": [],
"activeVersion": { "activeVersion": {
"updatedAt": "2026-07-28T20:24:18.000Z", "updatedAt": "2026-08-03T13:45:11.000Z",
"createdAt": "2026-07-28T20:23:55.454Z", "createdAt": "2026-08-03T13:45:01.320Z",
"versionId": "ce03fd5f-2d70-44f1-b1e2-b31fc92ddf62", "versionId": "b743c332-a154-44c3-a9c5-6c433e352520",
"workflowId": "F2rMlVS9mBypNNn7", "workflowId": "F2rMlVS9mBypNNn7",
"nodes": [ "nodes": [
{ {
@@ -508,7 +587,7 @@
"type": "n8n-nodes-base.webhook", "type": "n8n-nodes-base.webhook",
"typeVersion": 2.1, "typeVersion": 2.1,
"position": [ "position": [
-2992, -3712,
464 464
], ],
"webhookId": "bc20a398-5ecf-42a2-9d17-9396aa278708" "webhookId": "bc20a398-5ecf-42a2-9d17-9396aa278708"
@@ -522,7 +601,7 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-2736, -3456,
464 464
] ]
}, },
@@ -556,7 +635,7 @@
"type": "n8n-nodes-base.if", "type": "n8n-nodes-base.if",
"typeVersion": 2.2, "typeVersion": 2.2,
"position": [ "position": [
-2512, -3232,
464 464
] ]
}, },
@@ -581,8 +660,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-2272, -2928,
640 576
] ]
}, },
{ {
@@ -710,8 +789,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-1600, -864,
272 352
] ]
}, },
{ {
@@ -733,8 +812,8 @@
"type": "@n8n/n8n-nodes-langchain.googleGemini", "type": "@n8n/n8n-nodes-langchain.googleGemini",
"typeVersion": 1.2, "typeVersion": 1.2,
"position": [ "position": [
-1360, -96,
272 384
], ],
"credentials": { "credentials": {
"googlePalmApi": { "googlePalmApi": {
@@ -777,8 +856,8 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-1072, 192,
192 304
] ]
}, },
{ {
@@ -790,8 +869,8 @@
"type": "n8n-nodes-base.code", "type": "n8n-nodes-base.code",
"typeVersion": 2, "typeVersion": 2,
"position": [ "position": [
-1072, 768,
384 464
] ]
}, },
{ {
@@ -815,9 +894,88 @@
"type": "n8n-nodes-base.respondToWebhook", "type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.4, "typeVersion": 1.4,
"position": [ "position": [
-832, 1008,
384 464
] ]
},
{
"parameters": {
"content": "## 1. RECEPCIÓN Y VALIDACIÓN\n\nRecibe desde GLM Hub la solicitud para generar el icono y valida que la información obligatoria esté completa.\n\n- Comprueba los datos de la aplicación y la descripción del icono.\n- Normaliza la información recibida antes de continuar.\n- Detiene el proceso cuando faltan datos o la solicitud es incorrecta.\n- Devuelve una respuesta HTTP 400 para solicitudes inválidas.",
"height": 512,
"width": 1104,
"color": 2
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-3824,
240
],
"id": "0df68d74-d3c2-4257-be79-7a91077c3a07",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## 2. AUTORIZACIÓN DEL USUARIO\n\nConsulta Supabase para comprobar que la persona que solicita la generación del icono tenga permisos de administrador.\n\n- Busca el perfil y los permisos del usuario autenticado.\n- Normaliza el resultado devuelto por Supabase.\n- Permite continuar únicamente a administradores autorizados.\n- Devuelve una respuesta HTTP 403 cuando el usuario no tiene permisos.",
"height": 544,
"width": 976,
"color": "#891F3A"
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-2368,
176
],
"id": "6133d6fd-9c82-40d2-8343-ceb670ec9410",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## 3. PREPARACIÓN DEL PROMPT\n\nConstruye las instrucciones que se enviarán a Gemini para generar un icono adecuado para la aplicación.\n\n- Utiliza el nombre, la descripción y el propósito de la aplicación.\n- Define el estilo visual requerido para los iconos de GLM Hub.\n- Evita textos, marcas de agua y elementos innecesarios.\n- Prepara un prompt claro y consistente para obtener mejores resultados.",
"height": 384,
"width": 832,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1216,
160
],
"id": "cf146dba-5bed-4158-83bc-b55c268b1837",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## 4. GENERACIÓN DEL ICONO\n\nEnvía el prompt a Gemini, genera la imagen y devuelve el icono al GLM Hub cuando el proceso finaliza correctamente.\n\n- Solicita a Gemini la creación del icono.\n- Recibe la imagen generada por el modelo.\n- Devuelve el resultado mediante la respuesta del webhook.\n- Permite que el GLM Hub utilice el icono generado en la aplicación.",
"height": 528,
"width": 592,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-192,
80
],
"id": "2fc45b39-21af-4151-90c8-0299f6a5a527",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## 5. CONTROL DE ERRORES DE GEMINI\n\nGestiona los fallos que puedan producirse durante la generación de la imagen y devuelve una respuesta controlada al GLM Hub.\n\n- Captura errores técnicos o respuestas fallidas de Gemini.\n- Prepara un mensaje comprensible para el usuario.\n- Evita que el workflow termine sin una respuesta.\n- Informa que el icono no pudo generarse para que pueda intentarse nuevamente.",
"height": 384,
"width": 704
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
544,
256
],
"id": "2caf2891-ccdf-434b-b773-5a4dca43e4a4",
"name": "Sticky Note4"
} }
], ],
"connections": { "connections": {
@@ -943,15 +1101,15 @@
} }
}, },
"authors": "Isaac Aracena", "authors": "Isaac Aracena",
"name": "Version ce03fd5f", "name": "Version b743c332",
"description": "", "description": "",
"autosaved": true, "autosaved": true,
"workflowPublishHistory": [ "workflowPublishHistory": [
{ {
"createdAt": "2026-07-28T20:24:18.060Z", "createdAt": "2026-08-03T13:45:11.216Z",
"id": 3595, "id": 3848,
"workflowId": "F2rMlVS9mBypNNn7", "workflowId": "F2rMlVS9mBypNNn7",
"versionId": "ce03fd5f-2d70-44f1-b1e2-b31fc92ddf62", "versionId": "b743c332-a154-44c3-a9c5-6c433e352520",
"event": "activated", "event": "activated",
"userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029" "userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029"
} }