Switch
Switch
El componente Switch es como un guardia de tráfico o un conmutador inteligente para tus flujos de datos en Nappai. Su función principal es recibir un conjunto de información y decidir, basándose en ciertas reglas, hacia dónde debe ir cada parte de esos datos.
Imagina que tienes una lista de registros de clientes y quieres enviar los “Clientes VIP” a un equipo de soporte premium y a los “Clientes Estándar” a un equipo de atención general. El componente Switch te permite configurar esas reglas automáticamente sin necesidad de escribir código complejo.
¿Cómo funciona?
El componente funciona evaluando una propiedad específica (una “clave”) dentro de tus datos.
- Recepción: Recibe los datos de entrada (como un registro de usuario o una lista de ventas).
- Evaluación: Mira el valor de la “clave” que tú le indiques (por ejemplo, el “Rol” del usuario o el “Estado” de la venta).
- Decisión: Compara ese valor contra las condiciones que tú hayas definido.
- Distribución: Envía los datos a la salida correspondiente.
Además, tiene un “Modo de Mapeo” que puede actuar como un filtro para solo dejar pasar los datos que cumplen tus requisitos, o simplemente como un separador de caminos.
Conexión y Credenciales
Este componente no requiere la configuración de credenciales externas (como contraseñas de API o conexiones a servicios externos), ya que funciona procesando la lógica de tus datos directamente dentro del flujo de trabajo de Nappai.
Operaciones
No se incluyen operaciones específicas en esta vista, el componente maneja su lógica interna mediante la configuración de sus entradas.
Entradas
Modo de Mapeo (Mapping Mode)
Este componente cuenta con un modo especial llamado “Mapping Mode” (Modo de Mapeo). Cuando activas este modo mediante el interruptor, se habilita una entrada adicional llamada “Mapping Data” y cada campo de entrada te ofrece tres formas diferentes de proporcionar datos:
- Fixed (Fijo): Escribes el valor directamente en el campo.
- Mapped (Mapeado): Conectas la salida de otro componente para usar su resultado como valor.
- Javascript: Escribes código Javascript para calcular el valor dinámicamente.
Esta flexibilidad te permite crear flujos de trabajo más dinámicos y conectados.
Campos de Entrada
Los siguientes campos están disponibles para configurar este componente. Cada campo puede estar visible en diferentes operaciones:
-
Data Input: Es el origen de los datos que quieres procesar. Puede ser cualquier tipo de información (un diccionario, una lista, etc.). El componente leerá estos datos para decidir a dónde enviarlos.
- Visible en: Todas las operaciones
-
Switch Key: Es la propiedad específica dentro de tus datos sobre la cual se tomará la decisión. Por ejemplo, si tus datos son sobre un usuario, podrías indicar “status” o “role”. Soporta claves anidadas usando puntos (ejemplo:
user.name).- Visible en: Todas las operaciones
-
Number of Cases: Define cuántas reglas o caminos diferentes quieres crear. Cada caso tendrá su propio operador y valor para comparar.
- Visible en: Todas las operaciones
-
First Match Only: Una opción útil si un dato podría cumplir varias condiciones a la vez. Si activas esta opción, el sistema tomará la primera ruta que coincida y detendrá el proceso en esa rama, evitando que los datos se dupliquen en múltiples salidas.
- Visible en: Todas las operaciones
-
Enable Default Output: Agrega una salida extra llamada “Default”. Si los datos no coinciden con ninguna de las reglas anteriores, irán automáticamente a esta salida. Es útil para manejar errores o casos inesperados.
- Visible en: Todas las operaciones
Salidas
El componente produce varias salidas dependiendo de cuántos “Casos” (Cases) hayas configurado y si activaste la “Salida Predeterminada”.
- Salidas Condicionales (Case 1, Case 2, etc.): Los datos que coincidan con la regla específica de ese caso saldrán por este puerto. Puedes conectar estos puertos a otros nodos para procesar esos datos específicos.
- Salida Predeterminada (Default): Si activaste la opción Enable Default Output, los datos que no coincidan con ninguna regla anterior saldrán por aquí. Es ideal para enviar datos problemáticos a un registro de errores o para notificaciones manuales.
Ejemplo de Respuesta JSON
Si tu entrada era una lista de usuarios y usaste el Switch para dividirlos por rol, las salidas podrían contener objetos similares a este: json { “id”: 105, “name”: “Juan Pérez”, “role”: “admin”, “status”: “active” }
En este ejemplo, si la regla del primer caso buscaba usuarios con role igual a “admin”, este objeto saldría por la primera salida del componente.
Conectividad
Este componente suele conectarse lógicamente de la siguiente manera:
- Entrada: Se conecta comúnmente a la salida de un Webhook, un Trigger de Base de Datos o un Generador de Datos, ya que es el primer paso para organizar o “clasificar” la información que entra al sistema.
- Salidas: Se conecta a componentes de acción o procesamiento que requieren tipos específicos de datos, como:
- Envío de correos electrónicos (para un grupo específico de usuarios).
- Actualizaciones de bases de datos (solo para registros activos).
- Notificaciones de Slack/Teams (para alertar a equipos específicos).
Su propósito es asegurar que la acción siguiente solo reciba los datos relevantes para ella.
Ejemplo de Uso
Escenario: Automatización de soporte técnico.
Tienes un formulario de contacto que recibe mensajes. Quieres que los mensajes urgentes vayan al equipo de “Urgencias” y los mensajes generales al equipo de “Soporte General”.
- Conectas el formulario al componente Switch.
- En Switch Key, escribes
priority. - En Number of Cases, pones
2. - En el Caso 1, configuras la condición:
priorityes igual ahigh. - En el Caso 2, configuras la condición:
priorityes igual alow. - Conectas la salida del Caso 1 al nodo de “Enviar Email a Urgencias”.
- Conectas la salida del Caso 2 al nodo de “Enviar Email a Soporte General”.
- Activas Enable Default Output y lo conectas a un “Registro de Errores” por si el campo de prioridad viene vacío.
Ahora, cada mensaje entrante se distribuirá automáticamente a la persona correcta.
Plantillas
No se incluyen plantillas predefinidas para este componente específico.
Componentes Relacionados
No se incluyen componentes relacionados explícitos en la lista de enlaces.
Notas Importantes
No se incluyen notas específicas.
Consejos y Mejores Prácticas
- Usa el “Default Output”: Siempre es buena práctica activar la salida predeterminada para manejar casos imprevistos o datos inválidos que no cumplan ninguna regla.
- Claridad en las Claves: Asegúrate de que el Switch Key exista realmente en tus datos de entrada. Si la clave no existe, el componente no podrá tomar una decisión correcta y es posible que todos los datos vayan a la salida predeterminada o fallen.
- Orden importa: Si usas la opción First Match Only, recuerda que el orden de los casos es crucial. El primer caso coincidente “ganará” y el resto se ignorarán para ese registro.
Consideraciones de Seguridad
Este componente no maneja credenciales ni datos sensibles por sí mismo, pero ten cuidado de no exponer información privada en las salidas si no estás seguro de a dónde se están dirigiendo los siguientes nodos del flujo. Asegúrate de que las reglas de enrutamiento sean lógicas y no filtren accidentalmente información crítica.