Acciones
El panel Interactions te permite definir cómo responden los elementos del flow ante eventos — como toques, apariciones de elementos y envíos de formularios. Para cada evento, asignas una o más acciones: navegar entre pantallas, mostrar u ocultar elementos, abrir URLs, establecer variables y más. Usa condiciones para personalizar el flow según los datos del usuario.
Cada interacción sigue una cadena de tres partes:
- Elemento: El componente de pantalla que inicia la interacción: un botón, una respuesta de quiz, un campo de entrada o cualquier otra cosa.
- Disparador: El evento que activa la lógica, como un toque, la aparición de un elemento o el envío de un formulario.
- Acción: La tarea que ejecuta el flow en respuesta. Un único disparador puede ejecutar varias acciones en secuencia.
Configurar interacciones
Para configurar una interacción:
- Selecciona un elemento en la pantalla o en el panel Layers.
- A la derecha, cambia al panel Interactions y haz clic en Add trigger.
- En la sección Button triggers, selecciona el tipo de disparador.
- Haz clic en Add action, haz clic en el nombre de la acción y selecciona un tipo de acción en el menú desplegable de la ventana Edit action.
- Configura las propiedades de la acción según el tipo de acción que hayas seleccionado.
- Si es necesario, haz clic en Add action para añadir más acciones al mismo desencadenador.
Tipos de disparadores
Los disparadores se activan en respuesta al comportamiento del usuario, cambios de estado de los elementos o la carga de la pantalla. On screen appear es universal; los demás son específicos de cada elemento.
| Disparador | Se activa cuando… | Compatible con |
|---|---|---|
| On screen appear | La pantalla se carga | Todos los elementos |
| On tap | El usuario toca el elemento | Botones, opciones de quiz, toggles, cuentas atrás, vídeos |
| On changed | El usuario cambia el valor del campo (escribiendo, seleccionando una fecha u hora) | Todos los elementos de entrada |
| On submit | El usuario envía un campo de texto pulsando Enter o Hecho en el teclado | Entradas de texto |
| On timer end | Un elemento Countdown llega a cero | Countdown |
| On playback finished | Un vídeo llega al final | Vídeo |
| Para elementos sin interacciones integradas (como Loader), On screen appear es el único disparador disponible. |
Tipos de acción
Cualquier acción de navegación que lleve al usuario a otra pantalla debe ser siempre la última de la lista. Las acciones que se coloquen después (como “Set Variable”) pueden no ejecutarse porque la app ya habrá cambiado de pantalla.
Navegar a una pantalla
Esta es la acción principal para mover a los usuarios entre pantallas. Lleva al usuario a una pantalla de destino específica.
Para esta acción, solo necesitas configurar la pantalla de destino. Si quieres habilitar la navegación dinámica, consulta Navegación y ramificación o la sección Acciones condicionales.
Navegar a la siguiente pantalla
Avanza al usuario a la siguiente pantalla en el orden del flow. Úsalo para flows lineales, donde el orden de las pantallas en el editor coincide con el orden en que quieres que los usuarios las vean.
Navegar hacia atrás
Lleva al usuario a la pantalla anterior en su historial de navegación, en lugar de la pantalla anterior en la secuencia.
Abrir URL
Usa enlaces en línea para insertar enlaces en texto fluido.
Abre una dirección web específica. Úsalo para enviar a los usuarios a páginas web, artículos o perfiles de redes sociales fuera de las pantallas nativas de tu app. Para esta acción, puedes configurar dos ajustes:
- URL address: Define una dirección URL. Además, puedes hacerla dinámica; por ejemplo, para llevar a los usuarios a páginas distintas según su respuesta en el quiz o usando los datos que han enviado. Para ello, haz clic en
y selecciona la variable que quieras usar. - Open in external browser: Define dónde quieres abrir los enlaces externos. Por defecto, se abren en un navegador in-app para que los usuarios no salgan de la aplicación. Marca la casilla Open in external browser si prefieres abrirlos en un navegador externo.
Cerrar flow
Cierra el flow actual.
Mostrar/ocultar elementos
Muestra u oculta un elemento concreto de la pantalla.
Esta acción anula el estado inicial definido en Visibility en el panel Design. Si Visibility está configurado en Hide, la acción Show hará que el elemento aparezca.
Una acción Show o Hide sin elemento de destino bloquea la previsualización y la publicación. Selecciona un destino o elimina la acción.
Mostrar alerta
Muestra una ventana emergente nativa del sistema. El usuario debe pulsar Ok para continuar.
Para las alertas, debes configurar su Title y Message. En ambos campos puedes usar variables para que el contenido sea dinámico. Para ello, haz clic en
y selecciona la variable que quieras usar.
Una acción Show alert con una configuración vacía o incompleta bloquea la previsualización y la publicación. Rellena ambos campos o elimina la acción.
Establecer variable
Actualiza el valor de una variable en el flow. Antes de añadir esta acción, crea las variables en el panel Variables de la izquierda (consulta Variables).
Haz clic en Add variable y define tantas variables y valores como necesites.
Una acción Set variable sin ninguna asignación bloquea la previsualización y la publicación. Configura al menos una asignación o elimina la acción.
Compra
Activa un flujo de compra directamente desde un botón o interacción en tu onboarding. Úsalo para que los usuarios se suscriban o compren un producto sin salir del flow. Puedes configurar dos comportamientos para esta acción:
- In-app store: Inicia una compra nativa. Establece Product en un producto específico, o en
products.selectedProductpara la selección actual del usuario en la pantalla. - Web payment: Envía al usuario a un paywall web en lugar de activar una compra nativa. Úsalo cuando quieras gestionar la transacción fuera de la app, por ejemplo para ofertas de suscripción basadas en web.
Una acción de Purchase sin un Product ni una Web Paywall URL de destino bloquea la previsualización y publicación. Asigna un destino o elimina la acción.
Restaurar compras
Activa el flow de restauración de compras en el dispositivo. Los usuarios lo utilizan cuando han comprado una suscripción en otro dispositivo o tras reinstalar la app, y necesitan recuperar el acceso a sus niveles de acceso.
No hay nada que configurar para esta acción: Adapty gestiona la restauración a través del flow nativo del store.
La acción Restore purchases también está preconfigurada en el enlace Restore del preset de botón Links (consulta Set up purchases).
Acciones personalizadas
Una acción personalizada lanza un Action ID con nombre que tu propio código de la app gestiona. Úsala cuando los tipos de acción predefinidos no cubran lo que necesitas.
Adapty proporciona el disparador; tu app implementa el comportamiento:
- En el builder, asignas un Action ID a la interacción de un elemento.
- Cuando el usuario activa la interacción, el flow pasa el ID a tu app.
- Tu app reconoce el ID y ejecuta tu código.
Configura una acción personalizada
- En la ventana Edit action, asigna un Action ID — una cadena que tu app reconocerá (por ejemplo,
show_discount). - En el código de tu app, implementa un manejador para este Action ID. Consulta Gestionar acciones de paywall para ver detalles de implementación y ejemplos de código.
Una acción Custom sin Action ID bloquea la previsualización y publicación. Asigna un Action ID o elimina la acción.
Qué puedes hacer con acciones personalizadas
Una acción personalizada no hace nada por sí sola. Tú defines un Action ID estático en el builder, y el código de tu app gestiona lo que ocurre cuando lo recibe. Todos los casos de uso que se describen a continuación siguen el mismo patrón: asigna un ID en el flow y luego gestiónalo en tu código.
- Activar un evento in-app: Lanza un ID como
viewed_special_offery luego registra el evento en tu sistema de análisis cuando tu app lo reciba. - Solicitar un permiso del sistema: Lanza un ID como
request_locationy luego llama al prompt de permisos del SO desde tu app. Adapty no muestra el prompt — lo hace tu app. - Iniciar autenticación nativa: Lanza un ID como
login_googley luego presenta tu propia pantalla de inicio de sesión. El flow no puede autenticar al usuario. - Aplicar lógica de negocio: Lanza un ID como
apply_discounty luego desbloquea contenido o cambia el estado de la app en tu lado. - Pasar una respuesta de un cuestionario a tu app: Asigna un Action ID diferente a cada opción (por ejemplo,
goal_weight_lossygoal_muscle) y luego lee el ID en tu código. Usa el ID para establecer un atributo de usuario personalizado por el que puedas segmentar más adelante. Como la acción solo lleva un ID fijo, esta es la única forma de registrar la elección — el flow no puede enviar el valor seleccionado.
Una acción personalizada se dispara en el momento en que el usuario selecciona una opción. Si el usuario cambia su respuesta, el flow también dispara el nuevo Action ID. Tu app recibirá ambos en orden — por ejemplo, goal_weight_loss y después goal_muscle. Haz que tu manejador sea idempotente para que siempre gane la última señal.
Lo que las acciones personalizadas no pueden hacer
Las acciones personalizadas son estáticas. El Action ID se fija cuando construyes el flow — no puede leer variables ni entradas del usuario. Cuando se dispara la acción, tu app solo recibe ese ID, nunca el correo electrónico, número de teléfono u otra información introducida por el usuario. Los campos de entrada permanecen dentro del flow como variables para ramificación y personalización. Para usar esos valores en tu app, recógelos a través de tu propia interfaz o API.
Acciones condicionales
Usa las acciones condicionales para dividir el flow en diferentes rutas según los datos del usuario.
Algunos casos de uso habituales:
- Tienes un cuestionario en la pantalla y quieres llevar a los usuarios a distintas pantallas según sus respuestas. En este caso, añade una acción condicional a un botón.
- Quieres ofrecer diferentes productos y ofertas a distintos grupos de usuarios. Colócalos en pantallas separadas y configura condiciones en un botón de navegación.
- Quieres saltarte ciertos pasos para usuarios que ya completaron un tutorial en una sesión anterior de la app. Las acciones condicionales funcionan como una cadena if / else-if / else. La app lee las reglas de arriba a abajo y se detiene en la primera coincidencia:
- IF: El flow comprueba la condición principal.
- ¿Es verdadera? El flow ejecuta las acciones THEN de inmediato y se detiene.
- ¿Es falsa? El flow pasa a la siguiente sección.
- ELSE IF: Aquí puedes añadir comprobaciones adicionales (p. ej., “Si no es Premium, ¿el usuario está en un Trial?”).
- ELSE (Fallback): Si ninguna de las reglas anteriores coincidió, el flow ejecuta las acciones de esta sección final.
- Si se añade una regla pero no tiene ninguna acción asignada, que se cumpla la condición no tiene ningún efecto.
- Una regla incompleta (sin operador o valor) bloquea la vista previa y la publicación.
Para cada regla, selecciona una variable a evaluar y una acción a ejecutar. Puedes añadir más de una acción por regla.
El flow ejecuta solo una regla: la primera que coincida. Si necesitas ejecutar tanto IF como ELSE IF al mismo tiempo, añade ambas acciones al IF.
Para aprender a hacer elementos seleccionables y organizarlos en grupos para usarlos en condiciones, consulta Elementos seleccionables y grupos.
Solución de problemas
Cualquier acción con campos obligatorios sin completar bloquea la previsualización y la publicación. Consulta Guardar y publicar flows para ver la lista completa.