Análisis Detallado del Workflow “Website Uptime Monitoring” en n8n
Este workflow está diseñado para monitorear el estado y el contenido de la web https://microagencia.com y enviar alertas por correo electrónico si detecta problemas, además de registrar el estado en Notion.
Aquí está el desglose paso a paso:
- Schedule check cada 5 Minutos (ID: 4a46397c…)
- Tipo de Nodo: n8n-nodes-base.scheduleTrigger (Disparador de Horario)
- Configuración: minutesInterval: 240 (esto significa que se ejecuta cada 240 minutos, es decir, cada 4 horas). Nota: Aunque el nombre del nodo dice “Every 5 Minutes”, la configuración actual es cada 4 horas.
- Qué hace: Este es el punto de inicio del workflow. Se activa automáticamente en el intervalo de tiempo configurado, iniciando todo el proceso de monitoreo.
- Tipo de Nodo: n8n-nodes-base.scheduleTrigger (Disparador de Horario)
- 1. Get Website Content (ID: a9488570…)
- Tipo de Nodo: n8n-nodes-base.httpRequest (Solicitud HTTP)
- Configuración:
- url: https://microagencia.com
User-Agent: n8n-monitor/1.0(Esto identifica la solicitud como proveniente del monitor de n8n).timeout: 15000(15 segundos para la respuesta).
- Qué hace: Una vez activado por el nodo “Schedule”, este nodo realiza una solicitud GET a la URL
https://microagencia.com. Intenta obtener el contenido HTML de la página. Si hay redirecciones, seguirá hasta 5.
- 2. Está caído? (ID: 0a480693…)
- Tipo de Nodo: n8n-nodes-base.if (Condicional)
- Conexiones: Tiene dos ramas de salida: una para
True(si la condición se cumple) y otra paraFalse(si la condición no se cumple). - Condición:
statusCodees igual a"200". - Qué hace: Este nodo verifica el código de estado HTTP de la respuesta del nodo anterior (“1. Get Website Content”).
- Si el
statusCodees diferente de “200” (ramaTrue): Significa que el sitio está caído o no responde con un “OK”. El flujo se dirige hacia el nodo “Send CRITICAL Alert – Site DOWN”. - Si el
statusCodees “200” (ramaFalse): Significa que el sitio está respondiendo correctamente. El flujo continúa hacia el nodo “3. Content Cleaner”.
- Si el
- Envía Alert – Sitio DOWN (ID: f717236f…)
- Tipo de Nodo:
n8n-nodes-base.emailSend(Enviar Correo Electrónico) - Configuración:
fromEmail: microagenciaia@gmail.comtoEmail: microagenciaia@gmail.comsubject: 🚨 CRITICAL: Website DOWN - microagencia.comtext:Un mensaje indicando que el sitio está caído, incluyendo el código de estado HTTP y la marca de tiempo.
- Qué hace: Se activa si el sitio no devuelve un código de estado 200 (está caído). Envía una alerta crítica por correo electrónico a la dirección especificada.
- Tipo de Nodo:
- 3. Limpia contenidos (ID: 18cdf8d6…)
- Tipo de Nodo:
n8n-nodes-base.code(Código JavaScript) - Qué hace: Este nodo ejecuta un script JavaScript para “limpiar” el contenido HTML obtenido. La función
cleanHtmlrealiza lo siguiente:- Elimina scripts, estilos, encabezados (
<head>), y metaetiquetas. - Elimina atributos
inlinecomostyle,onclick,onerror,onload. - Elimina todas las etiquetas HTML, dejando solo el texto.
- Normaliza los espacios (quita múltiples espacios y saltos de línea).
- Convierte todo el texto a minúsculas.
- Elimina scripts, estilos, encabezados (
- Salida: Este nodo produce un nuevo objeto con el
cleanedContent(contenido HTML limpio y en minúsculas), eloriginalBody, laurly elstatusCode.
- Tipo de Nodo:
- 4. Validador de contenido dinámico (ID: 11508db1…)
- Tipo de Nodo:
n8n-nodes-base.code(Código JavaScript) - Qué hace: Este es otro nodo de código que valida el contenido “limpio” del nodo anterior.
keywordToFind = 'microagencia': Define una palabra clave específica (microagencia) que se buscará en el contenido de la página.hasCustomKeyword: Verifica si lakeywordToFindestá presente en elcleanedContent.isNotEmpty: Comprueba si la longitud del contenido es mayor a 100 caracteres (un umbral de robustez).passed = validationResults.isNotEmpty && validationResults.hasCustomKeyword: Esta es la validación crítica. El sitio se considera que “pasó” las validaciones de contenido si NO está vacío (más de 100 caracteres) Y SÍ contiene la palabra clave'microagencia'.- Salida: Genera un objeto con
url,statusCode,validations(incluyendohasCustomKeyword,contentLength,isNotEmpty),passed(booleano indicando si la validación de contenido fue exitosa),checkedKeyword,timestamp, y undebug(con una vista previa del contenido yshouldSendAlertque serátruesipassedesfalse).
- Tipo de Nodo:
- 5. Check de validación de contenido (ID: 5d5fdb12…)
- Tipo de Nodo:
n8n-nodes-base.if(Condicional) - Conexiones: También tiene dos ramas de salida.
- Condición:
={{ $json.passed }}es igual afalse. - Qué hace: Este nodo revisa el resultado de la validación del contenido del nodo anterior.
- Si
passedesfalse(ramaTrue): Significa que la validación de contenido falló (el contenido está vacío o no contiene la palabra clave'microagencia'). El flujo se dirige hacia el nodo “Send WARNING Alert – Health Issue”. - Si
passedestrue(ramaFalse): Significa que el contenido del sitio pasó las validaciones (no está vacío y contiene la palabra clave). El flujo se dirige hacia el nodo “Create a database page”.
- Si
- Tipo de Nodo:
- Envia WARNING Alert & Health Issue (ID: 82e91768…)
- Tipo de Nodo:
n8n-nodes-base.emailSend1 (Enviar Correo Electrónico) - Configuración:
- fromEmail: microagenciaia@gmail.com
- toEmail: microagenciaia@gmail.com
- subject: ⚠️ WARNING: Website Health Issue – microagencia.com
text:Un mensaje de advertencia detallando los problemas de validación (URL, palabra clave buscada, si el contenido no está vacío y la marca de tiempo).
- Qué hace: Se activa si el sitio responde con un 200 OK, pero el contenido no cumple con los criterios de validación (por ejemplo, falta la palabra clave
'microagencia'o el contenido es demasiado corto). Envía una alerta de advertencia por correo electrónico.
- Tipo de Nodo:
- Crea pagina de database (ID: 69ca771d…)
- Tipo de Nodo:
n8n-nodes-base.notion(Notion) - Configuración: Crea una nueva página en una base de datos de Notion llamada “Website Monitoring” (ID:
231ad6e7...). - Propiedades de la página de Notion:
Nombre:microagenciaURL: La URL del sitio ({{ $json.url }})keyword: La palabra clave que se revisó ({{ $json.checkedKeyword }})passed: Un checkbox que se marca comotrue.
- Qué hace: Se activa si el sitio está funcionando y el contenido pasa todas las validaciones. Registra un nuevo elemento en una base de datos de Notion, indicando que el monitoreo fue exitoso para
microagencia.com.
- Tipo de Nodo:
