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:
statusCode
es 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
statusCode
es 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
statusCode
es “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.com
toEmail: microagenciaia@gmail.com
subject: 🚨 CRITICAL: Website DOWN - microagencia.com
text:
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
cleanHtml
realiza lo siguiente:- Elimina scripts, estilos, encabezados (
<head>
), y metaetiquetas. - Elimina atributos
inline
comostyle
,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
, laurl
y 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 lakeywordToFind
está 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 yshouldSendAlert
que serátrue
sipassed
esfalse
).
- 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
passed
esfalse
(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
passed
estrue
(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.emailSend
1 (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
:microagencia
URL
: 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: