Nodo Elasticsearch en n8n: guía completa 2026

Si alguna vez configuraste un pipeline de logs o necesitás que tu automatización tire resultados de búsqueda en tiempo real, sabés que integrar Elasticsearch suele ser un dolor de cabeza. El nodo nativo de n8n Elasticsearch, que la plataforma viene puliendo desde hace un par de versiones, te resuelve justamente eso: indexar, buscar, actualizar y borrar documentos sin escribir una línea de código de conexión (y sin renegar con drivers).

Usarlo es bastante directo. Conectás tu instancia de n8n a un clúster de Elasticsearch u OpenSearch, elegís la operación, armás la query DSL si hace falta, y listo. Lo interesante es que no estás limitado a un caso de uso específico — lo mismo te sirve para armar un motor de búsqueda full-text para un ecommerce que para ingestar logs de monitoreo desde un webhook.

En 30 segundos

  • Soporta varias operaciones de documentos: crear o actualizar, buscar con DSL, obtener por ID, obtener todos y eliminar.
  • Funciona con Elasticsearch y OpenSearch sin configuración extra — la credencial reconoce ambos motores si la URL apunta bien.
  • Query DSL completo desde la UI: podés escribir match, term, bool, o cualquier variante compleja usando variables dinámicas con $json.
  • Workflow JSON gratuito disponible para importar: webhook que recibe datos, los procesa y los indexa en tiempo real, según el artículo original de Pirate Prentice.

n8n es una plataforma de automatización de flujos de trabajo de código abierto, desarrollada por n8n GmbH, que permite conectar servicios y aplicaciones mediante nodos para automatizar procesos de negocio sin código.

¿Qué es el nodo Elasticsearch de n8n?

El nodo Elasticsearch de n8n es un conector nativo que permite a cualquier workflow de n8n leer y escribir en un clúster de Elasticsearch sin intermediarios. Soporta tanto Elasticsearch tradicional como OpenSearch y variantes cloud (Elastic Cloud, Amazon OpenSearch). Las operaciones se dividen en dos grupos claros: manejo de documentos individuales por ID y operaciones sobre índices completos.

Técnicamente, el nodo se apoya en el cliente HTTP de Elasticsearch — no necesita paquetes extra, no tenés que instalar nada en el servidor de n8n. Con una credencial bien configurada, el resto es armar el payload y ejecutar.

¿Qué operaciones del nodo Elasticsearch de n8n están disponibles?

El nodo se centra en operaciones sobre documentos, cubriendo todas las necesidades habituales:

  • Crear o actualizar documento: inserta un documento, con ID explícito o autogenerado, y soporta upsert si se proporciona un ID.
  • Buscar con DSL: ejecuta una query DSL y devuelve los documentos que coinciden.
  • Obtener documento por ID: recupera un documento puntual por su identificador.
  • Eliminar documento: remueve un documento por ID.
  • Obtener todos los documentos: devuelve todos los documentos de un índice (usar con cuidado).

La operación de búsqueda con DSL es la que más vas a usar, porque es donde metés la query de búsqueda. El resto son operaciones de mantenimiento que, bien usadas, te ahorran tener que abrir Kibana a cada rato. Complementá con integrar n8n con Airtable.

¿Cómo configurar las credenciales de Elasticsearch en n8n?

La configuración es mínima, pero con dos detalles que te pueden trabar si los pasás por alto. Seguí este orden:

Primero, generá una API Key desde Kibana (Stack Management > API Keys) o desde la API de Elasticsearch directamente. No uses usuario/contraseña si podés evitarlo — la API Key es más segura y más fácil de rotar. Después, en n8n, creás una credencial de tipo Elasticsearch con dos campos: la URL del clúster (algo como http://192.168.1.100:9200 o la URL de tu servicio cloud) y la API Key.

El checkbox “Enable for self-signed certs in dev” está pensado para entornos de desarrollo con certificados autofirmados. Si estás en producción, no lo actives — configurá bien los certificados en el servidor de n8n.

Un error que vi varias veces: poner la URL con una barra al final. Elasticsearch rechaza ese formato. Si el nodo no conecta y la credencial parece correcta, revisá que la URL termine sin /.

¿Cómo crear y actualizar documentos desde n8n?

Crear un documento es la operación más directa. Elegís “Create” en el nodo, definís el índice (que puede ser una expresión dinámica), y pasás los campos en el body. El ID es opcional: si no lo ponés, Elasticsearch genera uno; si lo ponés y activás el toggle Upsert, el nodo inserta o actualiza según exista o no el documento.

Lo que más me gusta de acá es la posibilidad de usar expresiones para el nombre del índice. Ponele que estás ingerando logs y querés un índice mensual: definís el índice como logs-{$now.format('yyyy-MM')} y te olvidás de estar creando índices a mano. También podés pasar campos dinámicos con $json: si el webhook que dispara el workflow manda un payload con user_id y event_type, los referenciás directo en el body del documento. Para más detalles técnicos, mirá usar el nodo HTTP Request.

¿Cómo ejecutar consultas DSL (match, term, bool) en n8n?

Acá es donde el nodo se gana el sueldo. En la operación “Get All” (Document), tenés un campo Query DSL que acepta JSON puro de Elasticsearch, con soporte para variables de n8n mediante $json y expresiones.

Una match query simple se ve así:

  • Tipo: Match Query (full-text)
  • Buscás en un campo de texto y Elasticsearch analiza el término antes de buscar. Ideal para barras de búsqueda.

Para búsquedas exactas (un código de producto, un ID de usuario), usás term query. La diferencia con match es que term no analiza el texto — busca el valor exacto en el índice invertido. Si tenés un campo status con valores controlados (“active”, “inactive”), term es la herramienta correcta.

Y si necesitás combinar condiciones (por ejemplo: documentos de un usuario específico en un rango de fechas, con un término de búsqueda en el contenido), armás una bool query con must, filter, should y must_not. El nodo no te limita en la sintaxis DSL — todo lo que Elasticsearch soporta, lo podés meter en ese campo de texto.

El parámetro de búsqueda lo pasás dinámico con $json.searchTerm (o el nombre que tenga en tu payload). Así un mismo workflow sirve para búsquedas completamente distintas según lo que reciba.

¿Cómo manejar errores y continuar en workflows n8n-Elasticsearch?

Los errores más comunes son documento no encontrado, timeout de conexión, índice inexistente, y rechazo por IP no autorizada. La solución no es rezar — es configurar tres cosas en el nodo:

Primero, activá “Continue On Fail”. Esto evita que el workflow entero se frene porque un solo documento no existe o el clúster tardó medio segundo más de lo esperado — el error queda registrado y los nodos siguientes se ejecutan igual. Después, meté un Error Trigger que capture esos fallos y mande una alerta (a Slack, a Discord, o a donde quieras que llegue la notificación). Esto se conecta con lo que analizamos en enviar notificaciones a Slack.

Tercero, si estás en Elastic Cloud, autorizá la IP de tu instancia de n8n en el firewall del clúster. Sin esto, por más que la credencial esté bien configurada, las requests se rechazan antes de llegar al motor — y el mensaje de error no siempre es claro (a veces aparece como timeout genérico).

Un patrón que me funcionó: antes de hacer un Get por ID, verifico con un nodo IF que el ID no venga vacío. Parece una obviedad, pero cuando el dato viene de un formulario o un webhook externo, los IDs vacíos son más frecuentes de lo que uno cree.

¿Cómo importar el workflow JSON gratuito para indexar datos de webhook?

Pirate Prentice publicó un workflow JSON que podés importar directamente en tu instancia de n8n. El flujo es simple: Webhook > Code (enriquecer/validar payload) > Elasticsearch (crear documento).

Para importarlo, vas a la sección Workflows en n8n, hacés clic en “Import Workflow”, pegás el JSON que descargaste, y en dos minutos lo tenés corriendo. El nodo Code que incluye hace una validación mínima del payload antes de mandarlo a Elasticsearch — es un buen punto de partida para personalizarlo con tus propias reglas de negocio (tipo “no indexar si el campo event_type es nulo” o “agregar un timestamp del servidor si no viene en el payload”).

¿Lo mejor de ese workflow? Que te muestra cómo usar $now para timestamps y cómo estructurar el body de forma que Elasticsearch lo tome sin errores de mapping. Si estás arrancando con la integración, arrancar desde ese JSON te ahorra un par de horas de prueba y error.

Operación¿Para qué sirve?¿Usa Query DSL?
Crear/Actualizar documentoInsertar o actualizar un documento (con o sin ID explícito)No
Buscar con DSLBuscar documentos con query completa
Obtener documento por IDRecuperar un documento específico por IDNo
Eliminar documentoEliminar un documento por IDNo
Obtener todos los documentosDevolver todos los documentos de un índice (sin query)No
n8n elasticsearch nodo diagrama explicativo

Errores comunes al usar el nodo Elasticsearch en n8n

1. URL del clúster con barra al final. Si la credencial tiene http://localhost:9200/, el nodo falla con un error de conexión que no siempre es evidente (a veces dice “Authorization error” aunque la API Key sea correcta). La URL va sin barra.

2. Usar match en vez de term para campos exactos. Si buscás algo como status: "active" en un campo no analizado, match puede devolver resultados inesperados porque intenta analizar el término. Term es lo correcto para valores exactos. Te puede servir nuestra cobertura de instalar n8n con Docker.

3. No configurar “Continue On Fail” en flujos de ingesta masiva. Si estás indexando cientos de documentos y uno falla (ponele, por un campo mal formado), el workflow se detiene sin esta opción activada. El resto de los documentos quedan sin indexar.

4. Olvidar el firewall de Elastic Cloud. Si tu clúster está en Elastic Cloud y tu n8n corre en otro proveedor (o en un VPS propio), las requests no llegan hasta que autorices la IP saliente. Mucha gente asume que la credencial alcanza.

Preguntas Frecuentes

¿Cómo indexar documentos en Elasticsearch usando n8n?

Configurás un nodo Elasticsearch con operación “Create”, definís el índice (fijo o dinámico con expresiones como logs-{$now.format('yyyy-MM')}), completás los campos del documento en el body, y ejecutás el workflow. Si necesitás insertar o actualizar según existencia, activá la opción Upsert y proporcioná un ID explícito.

¿Cómo hacer búsquedas full-text en Elasticsearch desde n8n?

Usás la operación “Get All” (Document) y en el campo Query DSL escribís una match query sobre el campo de texto que querés buscar. El término de búsqueda puede ser fijo o dinámico con $json.searchTerm. Elasticsearch analiza el término y busca documentos relevantes en el índice.

¿Se puede usar OpenSearch con el nodo Elasticsearch de n8n?

Sí, el nodo funciona con cualquier clúster compatible con la API de Elasticsearch, incluido OpenSearch y Amazon OpenSearch. La configuración de credenciales es idéntica: URL del clúster y API Key (o usuario/contraseña si preferís ese método).

¿Cómo manejar errores de conexión en n8n Elasticsearch?

Activá “Continue On Fail” en el nodo para que el workflow no se detenga ante un fallo puntual, agregá un Error Trigger que capture y notifique los errores, y verificá que la IP de tu instancia de n8n esté autorizada en el firewall del clúster si usás Elastic Cloud. Si la conexión directamente no se establece, revisá que la URL no tenga barra al final.

¿Dónde descargar un workflow JSON gratuito para n8n Elasticsearch?

Pirate Prentice publicó un workflow completo en este artículo de Dev.to. Incluye webhook, validación de payload con nodo Code, e indexación en Elasticsearch. Se importa directamente en n8n con la opción “Import Workflow”.

Conclusión

El nodo de Elasticsearch para n8n cierra una brecha importante para cualquiera que trabaje con automatizaciones que necesitan búsqueda rápida o ingesta de datos estructurados. La implementación es robusta, cubre las operaciones que uno realmente necesita, y el soporte para Query DSL dinámico te da flexibilidad para armar desde dashboards de logs hasta motores de búsqueda para aplicaciones.

Lo que me gusta menos: la documentación oficial de n8n sobre este nodo todavía es escueta, y los mensajes de error cuando la conexión falla podrían ser más descriptivos (especialmente en casos de firewall). Pero el hecho de que haya un workflow JSON funcional dando vueltas ayuda bastante a saltar la curva de aprendizaje inicial. Si ya tenés un clúster corriendo y usás n8n para orquestar procesos, integrarlos es cuestión de minutos — y una vez que lo hacés, difícilmente vuelvas a manejar Elasticsearch por fuera de tus workflows.

Fuentes

Te puede interesar...