Byviz Byviz Analytics
ACTUALIZADO A ELASTIC 9.3 - FEBRERO 2026

Elastic Workflows

Guía de referencia rápida en español

Automatización nativa en Elastic Stack. Triggers, steps, templating con Liquid y ejemplos prácticos listos para usar.

Por Iván Frías Molina · Consultor Elastic

¿Qué son Elastic Workflows?

Una nueva capacidad de automatización end-to-end dentro de Elastic Stack

Elastic Workflows es el nuevo motor de automatización nativo de Elastic que te permite crear procesos complejos sin programar ni usar herramientas externas.

Piensa en ellos como "recetas automatizadas" que conectan diferentes acciones dentro de tu stack de Elastic: buscar datos, crear alertas, generar dashboards, enviar notificaciones, e incluso integrar con agentes de IA.

Todo se define en archivos YAML simples donde describes qué quieres lograr, y Elastic se encarga de ejecutarlo de forma fiable y escalable. Si necesitas ayuda profesional implementando workflows en tu organización, ofrecemos consultoría y formación especializada.

🔄

Automatización Declarativa

Secuencias de pasos definidas en YAML para lograr outcomes específicos sin herramientas externas.

📊

YAML Simple

Define qué quieres hacer, no cómo hacerlo. Elastic maneja la ejecución automáticamente.

🎯

Todo en Elastic

Sin necesidad de Logstash, Zapier, n8n o herramientas externas. Todo dentro de tu cluster.

Ejemplos de uso real

🚨

Auto-respuesta a Incidentes

Situación: Detectas 500 errores en 5 minutos en producción.

Workflow automático:

  1. 1. Busca los logs afectados
  2. 2. Crea un ticket en Jira
  3. 3. Notifica al equipo en Slack
  4. 4. Genera un dashboard temporal

Todo en menos de 10 segundos, sin intervención humana.

📊

Reporting Automático

Situación: Necesitas un reporte diario de métricas para el equipo.

Workflow programado (cada día 8am):

  1. 1. Agrega datos de las últimas 24h
  2. 2. Calcula KPIs clave
  3. 3. Crea visualizaciones
  4. 4. Envía email con el resumen

Tu equipo recibe insights automáticamente, sin trabajo manual.

🧹

Limpieza Inteligente

Situación: Tus índices crecen y consumen espacio.

Workflow semanal:

  1. 1. Identifica logs de +30 días
  2. 2. Verifica que haya backups
  3. 3. Elimina índices antiguos
  4. 4. Reporta espacio liberado

Mantén tu cluster saludable sin preocuparte.

🤖

Análisis con IA

Situación: Recibes una alerta compleja y necesitas contexto.

Workflow con Agente IA:

  1. 1. Busca logs relacionados
  2. 2. Consulta agente IA para análisis
  3. 3. Recibe diagnóstico y recomendaciones
  4. 4. Ejecuta acciones sugeridas

La IA analiza patrones y sugiere soluciones en tiempo real.

🤖

Integración con Agentes IA

Una de las capacidades más potentes de Workflows

Elastic Workflows se integra nativamente con Agent Builder, el framework de Elastic para crear agentes de IA. Esto te permite combinar la potencia de búsqueda y análisis de Elastic con la inteligencia de modelos de lenguaje (LLMs).

¿Qué puedes hacer con IA en Workflows?

  • Análisis inteligente de logs: El agente lee logs complejos y te explica en lenguaje natural qué está ocurriendo.
  • Clasificación automática: La IA categoriza incidentes según severidad, impacto y urgencia sin reglas manuales.
  • Recomendaciones contextuales: Basándose en el histórico, sugiere acciones para resolver problemas similares.
  • Enriquecimiento de datos: La IA añade contexto adicional a tus documentos automáticamente.
  • Generación de consultas: Describe en lenguaje natural qué buscas, y la IA genera la query de Elasticsearch.

Ejemplo: Root Cause Analysis

Cuando una alerta se dispara, un workflow puede llamar a un agente IA que analiza logs, métricas y traces para identificar la causa raíz, generando un informe detallado en segundos.

Ejemplo: Triage Inteligente

La IA clasifica automáticamente cada incidente, asigna prioridades, sugiere el equipo adecuado para resolverlo y genera un resumen ejecutivo para el ticket.

💡 Nota: Los agentes IA pueden usar LLMs de OpenAI, Azure OpenAI, Amazon Bedrock, Google Vertex o modelos open-source desplegados en tu propia infraestructura.

Casos de uso reales con IA: automatización de observabilidad con análisis inteligente de logs, detección de anomalías con Machine Learning, clasificación automática de tickets de soporte, análisis de sentimiento en logs de aplicaciones, generación automática de dashboards según el contexto, y recomendaciones proactivas para optimización de infraestructura. La combinación de Elasticsearch, Kibana, Workflows y agentes IA crea un ecosistema completo de observabilidad inteligente.

Workflows vs Otras Herramientas

Si estás considerando migrar de Logstash a Workflows, actualizar desde Watcher, o evaluar alternativas a Zapier o n8n para automatización de Elastic Stack, esta comparativa te ayudará a entender las diferencias clave.

Característica Workflows Watcher Logstash
Complejidad de flujos ✓ Multi-step Limitado Pipeline lineal
Control de flujo ✓ If/Foreach/Wait No No
Gestión de datos ✓ Liquid templating Mustache Ruby/Grok
UI Management ✓ Kibana nativo ✓ Kibana Config files
Infraestructura ✓ Incluido en cluster ✓ Incluido ✗ Proceso separado

Anatomía de un Workflow

Estructura básica: metadata, constantes, inputs, triggers y steps

name: mi-primer-workflow
description: Ejemplo básico
enabled: true

triggers:
  - type: manual

steps:
  - name: buscar_logs
    type: elasticsearch.search
    with:
      index: "logs-*"
      query:
        match_all: {}
name: workflow-completo
description: Ejemplo con todos los componentes
enabled: true
tags: ["demo", "produccion"]

consts:
  indexName: "logs-app-*"
  threshold: 100

inputs:
  - name: environment
    type: string
    required: true
    default: "staging"

triggers:
  - type: scheduled
    with:
      every: 1h

steps:
  - name: buscar_errores
    type: elasticsearch.search
    with:
      index: "{{consts.indexName}}"
      query:
        match:
          level: "ERROR"

  - name: notificar
    type: console
    with:
      message: "Encontrados {{steps.buscar_errores.output.hits.total.value}} errores"
# ═══════════════════════════════════════════════════════════════
# METADATA - Identifica y describe el workflow
# ═══════════════════════════════════════════════════════════════
name: mi-workflow                # ← 1. Identificador único (requerido)
description: Qué hace           # ← 2. Descripción (opcional)
enabled: true                   # ← 3. Activar/desactivar ejecución
tags: ["demo"]                  # ← 4. Para organizar workflows

# ═══════════════════════════════════════════════════════════════
# CONSTANTS - Valores reutilizables definidos una vez
# ═══════════════════════════════════════════════════════════════
consts:
  indexName: "logs-*"         # ← 5. Acceder con {{consts.indexName}}
  threshold: 50

# ═══════════════════════════════════════════════════════════════
# INPUTS - Parámetros pasados al ejecutar el workflow
# ═══════════════════════════════════════════════════════════════
inputs:
  - name: env
    type: string              # ← 6. Tipo: string, number, boolean
    default: "prod"           # ← 7. Valor por defecto

# ═══════════════════════════════════════════════════════════════
# TRIGGERS - Cómo/cuándo se ejecuta el workflow
# ═══════════════════════════════════════════════════════════════
triggers:
  - type: manual              # ← 8. Click en botón Run
  # - type: scheduled          # ← 9. Programado (cron)
  # - type: alert              # ← 10. Desde una alerta

# ═══════════════════════════════════════════════════════════════
# STEPS - La lógica del workflow (se ejecutan en orden)
# ═══════════════════════════════════════════════════════════════
steps:
  - name: paso_uno            # ← 11. Nombre del step
    type: elasticsearch.search # ← 12. Tipo de acción
    with:                         # ← 13. Parámetros del step
      index: "{{consts.indexName}}" # ← 14. Usa constante
      query:
        match_all: {}

  - name: paso_dos
    type: console
    with:
      message: "Total: {{steps.paso_uno.output.hits.total.value}}" # ← 15. Usa output del step anterior

🎯 Triggers

Los eventos o condiciones que inician un workflow

🖱️

Manual

Ejecutar on-demand desde Kibana

triggers:
  - type: manual

# 💡 Casos de uso:
# - Tareas on-demand
# - Testing y desarrollo
# - Análisis puntuales
# - Limpieza manual

Scheduled

Programación automática (cron)

triggers:
  - type: scheduled
    with:
      every: 1h        # Cada hora
      # every: 30m      # Cada 30 min
      # every: 1d       # Cada día
      # every: "0 9 * * *" # Cron: 9am

# 💡 Casos de uso:
# - Reporting periódico
# - Limpieza de índices
# - Agregaciones diarias
# - Backups automáticos
🚨

Alert

Desde reglas de alerting

triggers:
  - type: alert

# Se activa cuando una regla
# de alerting se dispara.
# El workflow recibe el contexto
# completo de la alerta.

# 💡 Casos de uso:
# - Auto-respuesta a incidentes
# - Crear tickets automáticos
# - Enriquecimiento de alertas
# - Escalado inteligente

⚙️ Steps

Las acciones que componen tu workflow

🔍 elasticsearch.search

Busca documentos en un índice

- name: buscar
  type: elasticsearch.search
  with:
    index: "logs-*"
    query:
      match:
        level: "ERROR"

➕ elasticsearch.index

Indexa nuevos documentos

- name: indexar
  type: elasticsearch.index
  with:
    index: "metrics-custom"
    document:
      timestamp: "{{now}}"
      value: 42

🔄 elasticsearch.update

Actualiza documentos existentes

- name: actualizar
  type: elasticsearch.update
  with:
    index: "users"
    id: "user-123"
    document:
      status: "active"

🗑️ elasticsearch.delete

Elimina documentos

- name: eliminar
  type: elasticsearch.delete
  with:
    index: "temp-logs"
    query:
      range:
        @timestamp:
          lt: "now-30d"

📊 kibana.dashboard.create

Crea dashboards automáticamente

- name: crear_dashboard
  type: kibana.dashboard.create
  with:
    title: "Dashboard {{inputs.cliente}}"
    description: "Auto-generado"

✏️ kibana.saved_object.update

Modifica objetos guardados

- name: actualizar_objeto
  type: kibana.saved_object.update
  with:
    type: "visualization"
    id: "viz-123"

🔀 if

Ejecución condicional

- name: validar
  type: if
  with:
    condition: "{{steps.buscar.output.hits.total.value > 10}}"
    then:
      - type: console
        with:
          message: "⚠️ Umbral superado"

🔁 foreach

Itera sobre arrays

- name: procesar_cada_uno
  type: foreach
  with:
    items: "{{steps.buscar.output.hits.hits}}"
    do:
      - type: console
        with:
          message: "Procesando: {{item._id}}"

⏸️ wait

Pausa la ejecución

- name: esperar
  type: wait
  with:
    duration: "30s"  # 30 segundos
    # duration: "5m"   # 5 minutos
    # duration: "1h"   # 1 hora

🌐 http.request

Llamadas a APIs externas

- name: llamar_api
  type: http.request
  with:
    url: "https://api.ejemplo.com/alert"
    method: POST
    body:
      message: "Alerta desde Elastic"

💬 slack.message

Notificaciones a Slack

- name: notificar_slack
  type: slack.message
  with:
    channel: "#alertas"
    text: "🚨 {{steps.buscar.output.hits.total.value}} errores detectados"

✉️ email.send

Enviar emails

- name: enviar_email
  type: email.send
  with:
    to: "equipo@empresa.com"
    subject: "Reporte diario"
    body: "Resumen adjunto"

💧 Templating con Liquid

Gestiona datos dinámicos en tus workflows

Sintaxis Común

Sintaxis Resultado Uso
{{inputs.env}} "prod" Acceso a inputs
{{consts.index}} "logs-*" Acceso a constantes
{{steps.s1.output}} {...} Output de step previo
{{steps.s1.output.hits.total.value}} 100 Navegación anidada
{{now}} 2026-02-04T... Timestamp actual
{% if ... %} - Condicionales

Ejemplo Completo

consts:
  threshold: 50

steps:
  - name: buscar
    type: elasticsearch.search
    with:
      index: "logs-{{inputs.environment}}"  # ← Usa input
      query:
        match:
          level: "ERROR"

  - name: validar
    type: if
    with:
      # ← Compara output del step anterior con constante
      condition: "{{steps.buscar.output.hits.total.value > consts.threshold}}"
      then:
        - type: slack.message
          with:
            channel: "#alertas"
            # ← Interpola datos en el mensaje
            text: "🚨 Encontrados {{steps.buscar.output.hits.total.value}} errores en {{inputs.environment}}"

Tip avanzado: Liquid en Workflows soporta filtros como | upcase, | date, y | default, así como operadores de comparación (==, >, <), operadores lógicos (and, or), y loops {% for %}. Para debugging de templates, puedes usar el step console para imprimir valores durante el desarrollo. Más detalles en el blog de tutoriales.

📦 Workflows Completos

Ejemplos reales y templates reutilizables en GitHub

Repositorio GitHub

Más de 50+ ejemplos de workflows listos para usar: auto-respuesta a alertas, agregaciones, enriquecimiento de datos, integraciones y mucho más.

Workflows de ejemplo: Alerting automático · Reporting · Enriquecimiento · Limpieza · Integraciones

¿Necesitas workflows customizados? Como parte de mis servicios de consultoría, ofrezco diseño e implementación de workflows a medida para casos de uso específicos de tu infraestructura. También puedes aprender a crearlos tú mismo en mis formaciones especializadas de Elastic.

📚 Aprende Más

Recursos adicionales para dominar Elastic Workflows

📝

Blog Byviz

Tutoriales paso a paso, casos reales de implementación y troubleshooting de workflows en entornos de producción.

  • Guías prácticas en español
  • Casos reales en banca y fintech
  • Mejores prácticas y patrones
Ver posts de Workflows →
📖

Documentación Oficial

Referencias completas de Elastic sobre Workflows, API, arquitectura y todas las capacidades disponibles.

Ir a Docs Elastic →

Preguntas Frecuentes

Respuestas a las dudas más comunes sobre Elastic Workflows

Elastic Workflows es el motor de automatización nativo de Elastic que permite crear procesos complejos sin programar ni usar herramientas externas. Se definen en archivos YAML donde describes qué quieres lograr, y Elastic se encarga de ejecutarlo de forma fiable y escalable.
Elastic Workflows soporta 3 tipos de triggers:
  • Manual: Ejecutado on-demand desde Kibana para testing y análisis puntuales
  • Scheduled: Programación automática con sintaxis cron para reporting periódico y limpieza
  • Alert: Disparado desde reglas de alerting para respuesta automática a incidentes
Sí, Elastic Workflows se integra nativamente con Agent Builder, el framework de Elastic para crear agentes de IA. Puedes usar LLMs de OpenAI, Azure OpenAI, Amazon Bedrock, Google Vertex o modelos open-source para análisis inteligente de logs, clasificación automática, recomendaciones contextuales y generación de consultas en lenguaje natural.
Workflows permite flujos multi-step con control de flujo (if/foreach/wait), gestión de datos con Liquid templating, y está incluido en el cluster sin infraestructura adicional.

Watcher está limitado a flujos simples sin control de flujo avanzado, usa Mustache para templating.

Logstash requiere un proceso separado, tiene pipelines lineales sin ramificaciones condicionales complejas, y está más enfocado en ingestión de datos que en automatización de workflows.
Liquid es el lenguaje de templating usado en Workflows para gestionar datos dinámicos. Permite acceder a inputs {{inputs.env}}, constantes {{consts.index}}, outputs de steps previos {{steps.s1.output}} y usar condicionales. Es similar a Mustache (usado en Watcher) pero más potente y flexible.
No necesitas programar. Workflows usa YAML declarativo donde describes qué quieres hacer, no cómo hacerlo. Si sabes escribir una query de Elasticsearch básica (como match: { field: "value" }) y entiendes lógica condicional simple (if/then), puedes crear workflows complejos. La curva de aprendizaje es mucho menor que Logstash o programación tradicional.

¿Más preguntas? Contáctame o visita el blog para tutoriales detallados.

¿Necesitas ayuda implementando Workflows?

Como Consultor y Gold Contributor de Elastic con 10+ años de experiencia, puedo ayudarte a diseñar e implementar workflows para tu caso específico.

Diseño de workflows custom para tu infraestructura

Migración desde Logstash/Watcher a Workflows

Formación in-company sobre automatización