Condiciones y ramificaciones en workflows: if, switch y grupos AND/OR
Aprende a usar condiciones en workflows de Omnifox: el nodo Si, Switch de varias ramas, grupos AND/OR, El contacto tiene etiqueta y Horario laboral.
Un workflow sin condiciones es una linea recta: hace lo mismo con todos los contactos. Las condiciones en workflows son el cerebro de la automatizacion, porque deciden por donde sigue cada conversacion segun quien escribe, que canal usa, que dice o a que hora llega. En Omnifox un workflow es siempre un trigger + un grafo de nodos, y las condiciones son los nodos que abren varias salidas (edges) para que cada caso tome su propio camino.
En esta guia recorremos los nodos de condicion reales del editor: Si (una regla), Switch (varias ramas), los grupos anidados AND/OR, El contacto tiene etiqueta y Horario laboral. Al final tendras un ejemplo de ruteo completo listo para copiar.
El nodo Si: la decision mas simple
Si (una regla) evalua una sola condicion y abre dos salidas: verdadero y falso. Es la bifurcacion clasica de tipo binario.
Un flujo tipico:
- Trigger Mensaje recibido (filtro: solo primer mensaje).
- Nodo
Si-> regla:{{$conversation.channel_name}}es WhatsApp. - Rama verdadero ->
Enviar plantilla de WhatsApp. - Rama falso ->
Enviar mensajenormal.
La gracia del nodo Si es que puedes evaluar cualquier variable de contacto, conversacion o mensaje. Por ejemplo, ramificar segun {{$contact.company}} este vacio o no para separar clientes B2B de consumidores finales. Recuerda la regla clave del motor: una variable desconocida se resuelve como cadena vacia, no rompe la evaluacion.
Switch: mas de dos caminos
Cuando necesitas mas de dos salidas, el nodo Switch (varias ramas) es la herramienta correcta. Cada rama tiene su propio conjunto de reglas y el flujo toma la primera que se cumple, de arriba hacia abajo, con una salida de fallback al final para lo que no encaje.
Un caso frecuente es rutear por palabra clave o por etapa del contacto:
- Rama 1: el texto contiene "factura" ->
Transferir a un agentedel equipo de facturacion. - Rama 2: el texto contiene "precio" o "planes" ->
Asignar agente IAde ventas. - Rama 3 (fallback):
Enviar mensajecon el menu de opciones.
El orden importa: coloca arriba las reglas mas especificas y deja las genericas abajo. Si dos ramas pudieran cumplirse a la vez, gana la primera.
Grupos AND/OR: logica que se lee como una frase
Las reglas reales rara vez son de un solo dato. Omnifox permite grupos anidados para combinar condiciones con AND y OR, del tipo (A AND B) OR C. Esto convierte una decision compleja en algo legible.
Ejemplo de un grupo dentro de un nodo Si:
(
{{$contact.tags}}contiene VIP ANDHorario laboral= En horario) OR{{$conversation.channel_name}}= Llamadas
Es decir: atiende de inmediato si es un cliente VIP dentro del horario, o si el contacto llega por el canal de llamadas sin importar la etiqueta. Los grupos evitan tener que encadenar tres o cuatro nodos Si en escalera; toda la logica vive en un solo nodo y se mantiene facil de auditar.
El contacto tiene etiqueta: segmentar sin escribir reglas
El contacto tiene etiqueta es una condicion dedicada que revisa las etiquetas del contacto y abre una rama por presencia/ausencia. Es mucho mas limpio que comparar {{$contact.tags}} con texto libre.
Combinala con el trigger Etiqueta anadida o con un nodo previo Anadir etiqueta para armar embudos:
- Trigger Mensaje recibido.
- Nodo
El contacto tiene etiqueta-> tiene cliente? - Si ->
Transferir a un agentede postventa. - No ->
Anadir etiquetalead yAsignar agente IAde ventas.
Horario laboral: la condicion de tres ramas
Horario laboral es especial porque no abre dos salidas, sino tres: En horario, Fuera de horario y Feriado. Lee la configuracion de horarios y el calendario de feriados de tu workspace, asi que no tienes que codificar fechas a mano.
Un patron de auto-respuesta muy usado:
- Trigger Mensaje recibido.
- Condicion
Horario laboral. - En horario ->
Transferir a un agente. - Fuera de horario ->
Enviar mensaje: "Te respondemos en la manana" +Posponer conversacion. - Feriado ->
Enviar plantilla de WhatsAppcon el aviso del feriado.
Un ejemplo de ruteo end-to-end
Juntemos todo en un solo workflow de recepcion:
Mensaje recibido (solo primero) -> Horario laboral
- Feriado ->
Enviar mensajede feriado -> fin. - Fuera de horario ->
Enviar mensaje+Posponer conversacion. - En horario ->
Switch:- contiene "soporte" ->
El contacto tiene etiquetaVIP? -> Si:Transferir a un agentesenior / No: cola normal. - contiene "ventas" ->
Asignar agente IA. - fallback ->
Hacer preguntacon el menu.
- contiene "soporte" ->
Con cinco tipos de condicion cubres practicamente cualquier ruteo omnicanal.
Errores comunes y buenas practicas
- No dejes ramas sin salida. Toda condicion debe cerrar todas sus ramas; un
Switchsin fallback deja conversaciones atascadas. - Ordena de especifico a general en
Switch: la primera regla verdadera gana. - Prefiere
El contacto tiene etiquetaen vez de comparar texto de tags a mano; es mas robusto. - Apoyate en
Horario laboralen lugar de nodosFecha/horasueltos: mantiene feriados centralizados. - Testea con casos limite: variable vacia, contacto sin etiquetas, mensaje fuera de horario.
Puedes armar todo esto de forma visual, arrastrando nodos en el editor de workflows de Omnifox, y probar cada rama antes de publicar. Empieza con un Si simple y ve sumando Switch y grupos AND/OR a medida que tu operacion crece: manana tus conversaciones se rutearan solas.
Comentarios (0)
Todavía no hay comentarios. Sé el primero en compartir tu opinión.
Dejá un comentario
Tu email nunca se publica. Los comentarios se moderan antes de aparecer.