Router y Filtros: Controlando el Flujo de Datos
¿Por qué necesitas routers y filtros?
En el mundo de la automatización, no todas las situaciones requieren el mismo tratamiento. Imagina que recibes un email con información de nuevos clientes: algunos vienen de tu página web, otros por recomendación y algunos son clientes VIP. ¿Deberían todos seguir el mismo camino? Probablemente no.
Los routers y filtros te permiten:
- Dirigir datos hacia diferentes destinos según su contenido
- Evitar errores al filtrar información incompleta o inválida
- Crear lógicas condicionales complejas sin código
- Optimizar el rendimiento de tus escenarios
- Mantenimiento más sencillo al tener flujos separados
El Router en Make (Integromat)
El Router es uno de los módulos más versátiles de Make. Al agregarlo a tu escenario, automáticamente crea dos caminos de salida: Route 1 y Route 2. Puedes agregar tantos routes como necesites haciendo clic en el botón "+".
Anatomía de un Router
| Elemento | Descripción | Ejemplo |
|---|---|---|
| Nombre de Route | Etiqueta descriptiva del camino | "Clientes VIP", "Leads norm"ales" |
| Filtro de Route | Condición que debe cumplirse | "Tipo = Premium" |
| Color del Route | Identificación visual rápida | Azul, verde, rojo, etc. |
| Orden de evaluación | El orden en que se evalúan las condiciones | De arriba a abajo |
Filtros: Los guardianes del flujo
Un filtro sin un router es como un guardia que deja pasar o no a las personas, pero no decide hacia dónde van. Los filtros siempre están asociados a un camino específico del router y evaluarán cada paquete de datos que llegue.
Sintaxis de condiciones en Make
Make utiliza operadores que debes dominar para crear filtros efectivos:
| Operador | Símbolo | Uso | Ejemplo |
|---|---|---|---|
| Igual a | = | Coincidencia exacta | status = "completado" |
| No igual a | ≠ | Diferente de | estado ≠ "cancelado" |
| Mayor que | > | Valor numérico mayor | presupuesto > 1000 |
| Menor que | < | Valor numérico menor | edad < 18 |
| Contiene | contains | Texto incluido | email contains "@empresa.com" |
| Existe | exists | El campo tiene valor | teléfono exists |
Caso práctico: Clasificación automática de tickets
Vamos a crear un escenario completo que demuestra el poder de routers y filtros. Situación: Tu sistema recibe tickets de soporte y necesitas clasificarlos automáticamente.
- Trigger: Nuevo ticket creado en tu sistema (JSON, webhook, o desde una app)
- Módulo Router: Se divide en 3 rutas según la prioridad
- Ruta 1 - Crítico: Prioridad = "crítico" → Notificación inmediata a Slack + Ticket en primera posición
- Ruta 2 - Normal: Prioridad = "normal" → Asignación automática por departamento
- Ruta 3 - Informativo: Prioridad = "bajo" → Guardar en base de datos para análisis mensual
// Ejemplo de estructura de datos del ticket
{
"ticket_id": "TKT-2024-0156",
"cliente": "Empresa ABC",
"prioridad": "crítico",
"asunto": "Sistema fuera de línea",
"descripcion": "都无法访问系统..."
}
// Los filtros serían:
// Ruta 1: prioridad = "crítico"
// Ruta 2: prioridad = "normal"
// Ruta 3: prioridad = "bajo" OR prioridad = "informativo"
Implementación paso a paso en Make
Ahora te guiaré detalladamente para construir este escenario:
Paso 1: Configurar el Trigger
Agrega el módulo que detectará los nuevos tickets. Puede ser un webhook personalizado, una consulta a API, o integración directa con tu CRM o herramienta de soporte.
Paso 2: Insertar el Router
Busca el módulo "Router" en la lista de módulos y arrástralo después del trigger. Make creará automáticamente dos rutas.
Paso 3: Configurar cada Ruta
Haz clic en el engranaje de cada ruta para configurar su filtro. Aparecerá una ventana donde podrás:
- Seleccionar el campo a evaluar (del módulo anterior)
- Elegir el operador de comparación
- Ingresar el valor a comparar
- Nombrar la ruta descriptivamente
Paso 4: Agregar acciones después de cada Ruta
Ahora cada ruta puede tener su propio conjunto de acciones. En nuestro ejemplo:
"La belleza del router está en que cada camino es completamente independiente. Puedes tener 3 acciones en una ruta y 15 en otra. Make ejecutará TODAS las acciones de cada ruta que aplique."Ver más: Configuración avanzada de filtros
Make permite filtros muy sofisticados que incluyen:
- Filtros con texto: contains, starts with, ends with, matches pattern (regex)
- Filtros con fechas: before, after, between, is empty
- Filtros numéricos: between, greater than or equal, less than or equal
- Filtros de arrays: exists in array, array contains, array is empty
- Filtros booleanos: is true, is false
También puedes usar funciones como: toLower(), toUpper(), formatDate(), parseDate(), entre muchas otras para transformar datos antes de evaluar.
El Router en Zapier: Paths
Zapier implementa el concepto de Router mediante "Paths". Aunque la implementación es diferente, el resultado es similar. Un Zap puede tener múltiples paths, y cada uno tiene sus propias condiciones.
Diferencias clave entre Make y Zapier
| Característica | Make (Integromat) | Zapier |
|---|---|---|
| Nombre del componente | Router + Filters | Paths |
| Número de rutas | Ilimitado | Máximo 3 por Zap (Plan gratuito: 2) |
| Condiciones por path | Multiple (AND/OR) | Multiple (AND/OR) |
| Evaluación | Primera que coincide | Todas las que coinciden |
| Visibilidad | Colores diferenciados | Secciones colapsables |
Patrones avanzados de automatización
Patrón 1: Router con fallback
Siempre incluye una ruta "catch-all" o de respaldo para datos que no coincidan con ninguna condición anterior:
// Ruta 1: Tipo = "A" → Acción A
// Ruta 2: Tipo = "B" → Acción B
// Ruta 3: (sin filtro / TRUE) → Acción de respaldo
// La ruta 3 atrapará cualquier dato que no sea A ni B
Patrón 2: Router en cascada
Puedes anidar routers para crear decisiones más complejas:
- Primer Router: Clasifica por región (Latam, Europa, Asia)
- Cada ruta tiene su propio Router interno: Clasifica por tipo de cliente
- Finalmente, cada sub-ruta ejecuta acciones específicas por región y tipo
Patrón 3: Filtro compuesto con múltiples condiciones
A veces un solo filtro no es suficiente:
// Condición compleja:
// (Tipo = "Premium" AND Monto > 5000) OR (Tipo = "VIP" AND exists(Código_referido))
//
// Esta condición es VERDADERA si:
// - Es cliente Premium con compra mayor a $5000, O
// - Es cliente VIP y tiene código de referido
Manejo de errores y casos edge
Un escenario robusto debe contemplar qué sucede cuando los datos no son los esperados:
- Datos faltantes: Usa el operador "exists" para verificar que los campos obligatorios existan
- Valores inesperados: El router fallback atrapa todo lo que no coincida
- Errores en módulos: Configura "Error Handlers" por ruta
- Datos duplicados: Considera agregar un filtro de deduplicación usando IDs únicos
Depuración y testing
Make ofrece herramientas excelentes para depurar routers y filtros:
- Run Once: Ejecuta el escenario con un solo conjunto de datos y ve qué rutas se activan
- Inspect Bundles: Revisa los datos que llegan a cada módulo
- Filter Results: En la cola de ejecución, filtra por rutas específicas
- Logs detallados: Activa logs completos para troubleshooting
Para practicar la depuración, crea un escenario de prueba con:
- Módulo HTTP que devuelve datos de prueba en JSON
- Router con 4 rutas diferentes
- Cada ruta envía un email a una dirección diferente
- Ejecuta múltiples veces cambiando los datos de entrada
- Verifica qué emails llegan según las condiciones
Este ejercicio te ayudará a entender visualmente cómo funcionan los filtros.
Quiz de comprensión
¿Qué sucede si un dato cumple la condición del filtro de la Ruta 1 y también la de la Ruta 2 en un Router de Make?
- A) Se ejecuta ambas rutas simultáneamente
- B) Solo se ejecuta la Ruta 1, ya que las rutas se evalúan en orden
- C) Se produce un error de duplicación
- D) El escenario se detiene y espera intervención manual
¿Cuál es la mejor práctica cuando tienes múltiples tipos de datos que necesitan tratamiento diferente?
- A) Crear un escenario separado para cada tipo
- B) Usar un Router con filtros específicos por ruta
- C) Enviar todo al mismo módulo y usar condicionales internos
- D) Filtrar manualmente antes de activar la automatización
Conclusión
Dominar routers y filtros es essencial para cualquier automatizador serio. Estas herramientas te permiten:
- Crear flujos de trabajo inteligentes que se adaptan a diferentes situaciones
- Reducir errores al validar datos antes de procesarlos
- Optimizar recursos procesando solo la información relevante
- Facilitar el mantenimiento al tener lógica clara y visual