diff --git a/glmway-workflow.json b/glmway-workflow.json index 0815efb..1ae40bb 100644 --- a/glmway-workflow.json +++ b/glmway-workflow.json @@ -1,6 +1,6 @@ { "$json": { - "updatedAt": "2026-07-02T17:25:55.366Z", + "updatedAt": "2026-07-02T17:58:46.091Z", "createdAt": "2026-06-08T13:50:12.174Z", "id": "F1iPg8hktNAebZua", "name": "GLMWay", @@ -1162,7 +1162,7 @@ "parameters": { "content": "## Recordatorio a nuevo ingreso 24 horas antes de la sesion\n", "height": 464, - "width": 2224, + "width": 2080, "color": 6 }, "type": "n8n-nodes-base.stickyNote", @@ -1760,8 +1760,8 @@ "type": "n8n-nodes-base.gmail", "typeVersion": 2.2, "position": [ - 1296, - 736 + 1152, + 752 ], "id": "10b2cb4e-274d-4913-9345-2c024c071f4c", "name": "Send a message espanol2", @@ -1786,8 +1786,8 @@ "type": "n8n-nodes-base.gmail", "typeVersion": 2.2, "position": [ - 1296, - 944 + 1152, + 960 ], "id": "1dc76989-8c58-4ffe-9e1c-5113a59d346c", "name": "Send a message ingles2", @@ -1954,8 +1954,8 @@ "type": "n8n-nodes-base.wait", "typeVersion": 1.1, "position": [ - 1680, - 1072 + 1536, + 1088 ], "id": "ee5bb9bc-b8cb-493f-8463-ae0a24cf1f0d", "name": "Wait1", @@ -2685,8 +2685,8 @@ "type": "n8n-nodes-base.supabase", "typeVersion": 1, "position": [ - 1504, - 848 + 1360, + 864 ], "id": "ddf0a273-d3bc-44cc-888b-d789ce72ff77", "name": "Actualizar estado a recordado", @@ -3366,20 +3366,6 @@ }, "disabled": true }, - { - "parameters": { - "amount": 2 - }, - "type": "n8n-nodes-base.wait", - "typeVersion": 1.1, - "position": [ - 1264, - 2272 - ], - "id": "f6ec4ef9-94a9-4dbb-8c44-0bbd1a6f0f87", - "name": "Wait5", - "webhookId": "09d53dc8-c92a-43d2-a47f-477c0d1317af" - }, { "parameters": { "operation": "update", @@ -3977,7 +3963,7 @@ }, { "parameters": { - "sendTo": "={{ $json.session.correo_instructor }}", + "sendTo": "=eidan.then14@gmail.com", "subject": "Entrenamiento #TheGLMWay", "emailType": "text", "message": "=Hello,\n\nI am writing to inform you that there are no registered participants for today's scheduled activity.\n\nBest regards", @@ -3999,12 +3985,11 @@ "id": "QWNicjw1khRm5BVI", "name": "Eidan - Gmail account" } - }, - "disabled": true + } }, { "parameters": { - "sendTo": "={{ $json.session.correo_instructor }}", + "sendTo": "=eidan.then14@gmail.com", "subject": "#TheGLMWay Training", "emailType": "text", "message": "=Hello,\n\nThis is to inform you that, as of now, there are no people enrolled for today's activity.\n\nBest regards.\n\nThis is an automated message generated by the enrollment management system.", @@ -4026,8 +4011,7 @@ "id": "QWNicjw1khRm5BVI", "name": "Eidan - Gmail account" } - }, - "disabled": true + } }, { "parameters": { @@ -4698,8 +4682,8 @@ "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ - 1104, - 736 + 960, + 752 ], "id": "67785f93-1b98-43f4-a72b-c94072ca22e6", "name": "Cambiar zona horaria4" @@ -4711,8 +4695,8 @@ "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ - 1104, - 944 + 960, + 960 ], "id": "b574514b-817a-4798-a44b-2eae1077e118", "name": "Cambiar zona horaria5" @@ -6226,19 +6210,19 @@ "recurrenceRules": [] }, "node:Comenzo evento ingles": { - "lastTimeChecked": "2026-07-02T17:09:26Z" + "lastTimeChecked": "2026-07-02T19:00:13Z" }, "node:Comenzo evento español": { - "lastTimeChecked": "2026-07-02T17:09:26Z" + "lastTimeChecked": "2026-07-02T18:59:34Z" }, "node:Termino evento español": { - "lastTimeChecked": "2026-07-02T17:09:26Z" + "lastTimeChecked": "2026-07-02T18:59:35Z" }, "node:Termino evento ingles": { - "lastTimeChecked": "2026-07-02T17:09:26Z" + "lastTimeChecked": "2026-07-02T18:59:33Z" }, "node:Prueba": { - "lastTimeChecked": "2026-07-02T17:09:26Z" + "lastTimeChecked": "2026-07-02T18:59:59Z" }, "node:Schedule Trigger2": { "recurrenceRules": [] @@ -6583,9 +6567,9 @@ } ] }, - "versionId": "a0c36c4a-88e6-4aa0-bc8f-d89186085616", - "activeVersionId": "ed31a19f-9dc8-454f-bf44-dd17635297b2", - "versionCounter": 3987, + "versionId": "fd8d6eab-dabd-462e-a535-455b8571a191", + "activeVersionId": "fd8d6eab-dabd-462e-a535-455b8571a191", + "versionCounter": 4008, "triggerCount": 13, "shared": [ { @@ -6608,9 +6592,9 @@ ], "tags": [], "activeVersion": { - "updatedAt": "2026-07-02T17:09:27.000Z", - "createdAt": "2026-07-02T17:02:32.430Z", - "versionId": "ed31a19f-9dc8-454f-bf44-dd17635297b2", + "updatedAt": "2026-07-02T17:59:04.000Z", + "createdAt": "2026-07-02T17:58:46.100Z", + "versionId": "fd8d6eab-dabd-462e-a535-455b8571a191", "workflowId": "F1iPg8hktNAebZua", "nodes": [ { @@ -7767,7 +7751,7 @@ "parameters": { "content": "## Recordatorio a nuevo ingreso 24 horas antes de la sesion\n", "height": 464, - "width": 2224, + "width": 2080, "color": 6 }, "type": "n8n-nodes-base.stickyNote", @@ -7815,7 +7799,7 @@ "parameters": { "content": "## Notificacion inicial\n\nEnvia notificacion de sesion en el primer dia de trabajo del empleado", "height": 608, - "width": 3008, + "width": 3216, "color": 6 }, "type": "n8n-nodes-base.stickyNote", @@ -8357,7 +8341,7 @@ "sendTo": "={{ $('Loop Over Items1').item.json.email }}", "subject": "Entrenamiento #TheGLMWay", "emailType": "text", - "message": "=¡Hola, GLMer!\n\nEste es un recordatorio de tu entrenamiento, donde te transmitiremos nuestra cultura, nuestro ADN y por qué somos diferentes al resto.\n\n¡Te esperamos puntual y con toda la energía para aprender!\n\nÚnete aquí:\n{{ $('Obtener sesion').item.json.enlace_reunion }}", + "message": "=¡Hola, GLMer!\n\nEste es un recordatorio de tu entrenamiento, donde te transmitiremos nuestra cultura, nuestro ADN y por qué somos diferentes al resto.\n\n¡Te esperamos puntual y con toda la energía para aprender!\n\nÚnete aquí:\n\n{{ $('Obtener sesion').item.json.enlace_reunion }}", "options": { "appendAttribution": false } @@ -8365,8 +8349,8 @@ "type": "n8n-nodes-base.gmail", "typeVersion": 2.2, "position": [ - 1296, - 736 + 1152, + 752 ], "id": "10b2cb4e-274d-4913-9345-2c024c071f4c", "name": "Send a message espanol2", @@ -8383,7 +8367,7 @@ "sendTo": "={{ $('Loop Over Items1').item.json.email }}", "subject": "#TheGLMWay Training", "emailType": "text", - "message": "=Hello, GLMer!\n\nThis is a reminder about your training session, where we'll share our culture, our DNA, and what makes us different from the rest.\n\nWe're looking forward to seeing you on time and ready to learn!\n\nJoin here:\n{{ $('Obtener sesion').item.json.enlace_reunion }}", + "message": "=Hello, GLMer!\n\nThis is a reminder about your training session, where we'll share our culture, our DNA, and what makes us different from the rest.\n\nWe're looking forward to seeing you on time and ready to learn!\n\nJoin here:\n\n{{ $('Obtener sesion').item.json.enlace_reunion }}", "options": { "appendAttribution": false } @@ -8391,8 +8375,8 @@ "type": "n8n-nodes-base.gmail", "typeVersion": 2.2, "position": [ - 1296, - 944 + 1152, + 960 ], "id": "1dc76989-8c58-4ffe-9e1c-5113a59d346c", "name": "Send a message ingles2", @@ -8559,8 +8543,8 @@ "type": "n8n-nodes-base.wait", "typeVersion": 1.1, "position": [ - 1680, - 1072 + 1536, + 1088 ], "id": "ee5bb9bc-b8cb-493f-8463-ae0a24cf1f0d", "name": "Wait1", @@ -9290,8 +9274,8 @@ "type": "n8n-nodes-base.supabase", "typeVersion": 1, "position": [ - 1504, - 848 + 1360, + 864 ], "id": "ddf0a273-d3bc-44cc-888b-d789ce72ff77", "name": "Actualizar estado a recordado", @@ -9971,20 +9955,6 @@ }, "disabled": true }, - { - "parameters": { - "amount": 2 - }, - "type": "n8n-nodes-base.wait", - "typeVersion": 1.1, - "position": [ - 1264, - 2272 - ], - "id": "f6ec4ef9-94a9-4dbb-8c44-0bbd1a6f0f87", - "name": "Wait5", - "webhookId": "09d53dc8-c92a-43d2-a47f-477c0d1317af" - }, { "parameters": { "operation": "update", @@ -10528,30 +10498,6 @@ } } }, - { - "parameters": { - "operation": "getAll", - "tableId": "sesiones_glmway", - "returnAll": true, - "filters": { - "conditions": [] - } - }, - "type": "n8n-nodes-base.supabase", - "typeVersion": 1, - "position": [ - -176, - 2144 - ], - "id": "d34e225b-25bb-4a0a-845c-b9e274529000", - "name": "Get many rows", - "credentials": { - "supabaseApi": { - "id": "2PlsR6rpK7rQTIEn", - "name": "Sofia test - Supabase account" - } - } - }, { "parameters": { "jsCode": "const months = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n\nfunction formatearFecha(dateTimeStr) {\n if (!dateTimeStr) return null;\n const datePart = dateTimeStr.split('T')[0];\n const [year, month, day] = datePart.split('-');\n return `${parseInt(day, 10)} ${months[parseInt(month, 10) - 1]}`;\n}\n\nfunction detectarIdioma(summary) {\n if (!summary) return null;\n if (summary.includes(\"#TheGLMWay Training\")) return \"EN\";\n if (summary.includes(\"Entrenamiento #TheGLMWay\")) return \"ES\";\n return null;\n}\n\nfunction formatearHora(dateTimeStr) {\n if (!dateTimeStr) return null;\n const timePart = dateTimeStr.split('T')[1];\n if (!timePart) return null;\n return timePart.substring(0, 5);\n}\n\nconst output = [];\n\nfor (const item of $input.all()) {\n const event = item.json;\n\n const startRaw = event.start?.dateTime || event.start?.date;\n const endRaw = event.end?.dateTime || event.end?.date;\n const url = event.conferenceData?.entryPoints?.[0]?.uri || null;\n const idioma = detectarIdioma(event.summary);\n\n // Ignorar eventos vacíos o sin datos esenciales\n if (!event.summary || !startRaw) {\n console.log(\"Evento ignorado (vacío):\", JSON.stringify(event));\n continue;\n }\n\n output.push({\n json: {\n id: event.id,\n titulo: event.summary,\n idioma: idioma,\n fecha: formatearFecha(startRaw),\n hora_inicio: formatearHora(startRaw),\n hora_fin: formatearHora(endRaw),\n url: url,\n descripcion: event.description || null\n }\n });\n}\n\nconsole.log(`Sesiones procesadas: ${output.length}`);\nreturn output;\n\n// Agrega esto antes del return output\nconst resumen = output.map(i => ({\n meet_id: i.json.meet_id,\n titulo: i.json.titulo,\n fecha_sesion: i.json.fecha_sesion,\n hora_inicio: i.json.hora_inicio,\n hora_fin: i.json.hora_fin,\n enlace_reunion: i.json.enlace_reunion,\n idioma: i.json.idioma\n}));\nconsole.log(JSON.stringify(resumen));" @@ -10606,10 +10552,10 @@ }, { "parameters": { - "sendTo": "eidan.then14@gmail.com", + "sendTo": "=eidan.then14@gmail.com", "subject": "Entrenamiento #TheGLMWay", "emailType": "text", - "message": "=Hola,\n\nTe escribo para informarte que, hasta el momento, no hay personas inscritas para la actividad de hoy.\n\nSaludos.\n\nEste es un mensaje automático generado por el sistema de gestión de inscripciones.", + "message": "=Hello,\n\nI am writing to inform you that there are no registered participants for today's scheduled activity.\n\nBest regards", "options": { "appendAttribution": false } @@ -10628,12 +10574,11 @@ "id": "QWNicjw1khRm5BVI", "name": "Eidan - Gmail account" } - }, - "disabled": true + } }, { "parameters": { - "sendTo": "eidan.then14@gmail.com", + "sendTo": "=eidan.then14@gmail.com", "subject": "#TheGLMWay Training", "emailType": "text", "message": "=Hello,\n\nThis is to inform you that, as of now, there are no people enrolled for today's activity.\n\nBest regards.\n\nThis is an automated message generated by the enrollment management system.", @@ -10655,8 +10600,7 @@ "id": "QWNicjw1khRm5BVI", "name": "Eidan - Gmail account" } - }, - "disabled": true + } }, { "parameters": { @@ -10670,7 +10614,7 @@ "conditions": [ { "id": "df25aa3e-d48f-4e52-ae1f-47678e954d52", - "leftValue": "={{ $json.session.idioma }}", + "leftValue": "={{ $('Obtener sesion1').item.json.idioma }}", "rightValue": "EN", "operator": { "type": "string", @@ -11182,7 +11126,7 @@ }, { "parameters": { - "sendTo": "eidan.then14@gmail.com", + "sendTo": "=eidan.then14@gmail.com", "subject": "Entrenamiento #TheGLMWay", "emailType": "text", "message": "=
| \n Sesión de entrenamiento \n{{ $json.session.titulo }}\n | \n ||
| \n 📅 {{ $json.session.fecha_sesion }} | 🕒 {{ $json.session.hora_inicio }} - {{ $json.session.hora_fin }} \n🎤 Instructor: {{ $json.session.instructor }} \n \n | \n ||
| \n Hola, \nAquí tienes el listado de participantes para la sesión de hoy: \n | \n ||
\n {{ (function(){\n const data = $json.session.participantes || {};\n const colores = ['#4f46e5','#0891b2','#059669','#d97706','#dc2626','#7c3aed','#db2777'];\n let i = 0;\n let html = '';\n\n for (const pais in data) {\n const nombrePais = pais && pais.trim() !== '' ? pais : 'Sin país asignado';\n const color = colores[i % colores.length];\n i++;\n const lista = data[pais];\n\n html += `\n
No hay participantes registrados. ';\n })() }}\n | \n ||
| \n Saludos, | \n