La acción necesita varias piezas de información antes de poder completarse.
→Recopilar cada valor en su propio paso como un slot; el asistente solicitará los que aún no se hayan proporcionado y omitirá los ya suministrados.
Por qué: El llenado de slots basado en pasos maneja entradas desordenadas y multivalor sin ramificaciones manuales.
Referencia↗
Un valor debe persistir después de que la acción actual termine.
→Almacenarlo en una variable de sesión, no en una variable de paso/acción. Las variables de acción tienen un alcance limitado a la acción; las variables de sesión viven durante toda la conversación.
Por qué: Elegir el ámbito incorrecto es un error clásico: el valor desaparece cuando la acción se completa o no se comparte entre acciones.
Un paso pide al usuario que elija de un conjunto conocido y fijo.
→Usar un tipo de respuesta de "opciones" con opciones definidas en lugar de texto libre, y mapear cada opción a un valor.
Por qué: Las opciones restringen la entrada, eliminan la ambigüedad de análisis y se renderizan como botones en los canales compatibles.
Un valor recopilado (correo electrónico, fecha, cantidad) puede estar mal formado.
→Añadir una condición de validación en el paso; si es inválida, mantener al usuario en el paso con una indicación correctiva.
Por qué: La validación en el momento de la captura evita pasar datos incorrectos a las extensiones y a los pasos posteriores.
Los pasos posteriores solo deben ejecutarse para ciertos usuarios o valores.
→Establecer condiciones de paso en variables ya recopiladas para que los pasos se omitan cuando su condición sea falsa.
Por qué: Las condiciones expresan ramificaciones sin duplicar acciones; el editor las evalúa de arriba abajo.
Múltiples acciones necesitan el mismo subflujo (por ejemplo, verificar identidad).
→Factorizar la lógica compartida en una subacción y llamarla desde cada acción padre.
Por qué: Las subacciones mantienen la lógica de verificación DRY y consistente; duplicar pasos se desfasa.
El usuario hace una pregunta no relacionada a mitad del flujo ("¿cuáles son sus horarios?").
→Permitir la digresión para que el asistente responda la pregunta secundaria y luego regrese a la acción interrumpida.
Por qué: Bloquear las digresiones impone un script rígido que frustra a los usuarios con solicitudes secundarias legítimas.
Necesidad de calcular o transformar un valor dentro de un paso.
→Usar el lenguaje de expresiones integrado (por ejemplo, funciones de cadena y matemáticas en variables) en el paso o la respuesta.
Por qué: Las transformaciones ligeras pertenecen a las expresiones; recurrir a un webhook para matemáticas triviales es excesivo.
Una acción de seguimiento necesita un valor que el usuario dio anteriormente.
→Referenciar la variable de sesión existente en lugar de volver a solicitarla.
Por qué: Volver a preguntar por datos conocidos se siente como un error; llevar el contexto hacia adelante es una característica distintiva de un buen flujo.
Un flujo debe detenerse o saltar a otra acción bajo una condición.
→Usar "terminar la acción" o una transición de "ir a un paso en otra acción" para controlar el flujo explícitamente.
Por qué: Las transiciones explícitas evitan el paso inesperado al siguiente paso después de una condición terminal.