Acciones
El panel Interactions te permite definir cómo responden los elementos del flow a distintos 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:
- Element: El componente de la pantalla que inicia la interacción: un botón, una respuesta de quiz, un campo de texto o cualquier otro elemento.
- Trigger: El evento que activa la lógica, como un toque, la aparición de un elemento o el envío de un formulario.
- Action: La tarea que ejecuta el flow en respuesta. Un solo trigger 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 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 activador.
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 pulsa el elemento | Botones, opciones de quiz, toggles, contadores regresivos, 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 Intro 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 | Video |
| Para elementos sin interacciones integradas (como Loader), On screen appear es el único disparador disponible. |
Tipos de acciones
Cualquier acción de navegación que lleve al usuario a otra pantalla debe ser siempre la última acción de la lista. Las acciones colocadas después (como Set variable) puede que no se ejecuten porque la app ya habrá cambiado de pantalla.
Navegar a la 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.
Avanzar a la siguiente pantalla
Avanza al usuario a la siguiente pantalla en el orden del flow. Úsalo en 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
Devuelve 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 continuo.
Abre una dirección web específica. Úsalo para redirigir a los usuarios a páginas web, artículos o perfiles en redes sociales fuera de las pantallas nativas de tu app. Para esta acción, puedes configurar dos ajustes:
- URL address: Establece una dirección URL. Además, puedes hacerla dinámica, por ejemplo, para dirigir a los usuarios a diferentes páginas según su respuesta en un cuestionario o con 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 integrado en la app para mantener a los usuarios dentro de ella. 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 específico en 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 aparezca.
Una acción Show o Hide sin elemento destino bloquea la vista previa 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 utilizar.
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.
Comprar
Desencadena un flow 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, como para ofertas de suscripción basadas en web.
Una acción de Purchase sin un Product o Web Paywall URL de destino impide la vista previa y la 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 ya han adquirido una suscripción en otro dispositivo o tras reinstalar la app, y necesitan recuperar el acceso a sus derechos.
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).
Seleccionar producto
Establece qué producto está seleccionado en un grupo de productos en la pantalla. Úsalo cuando un elemento distinto a la tarjeta de producto deba cambiar la selección; por ejemplo, un toggle que cambia al usuario entre un plan anual y uno semanal.
Cuando la acción se ejecuta, la selección se mueve al producto de destino. El resaltado de la tarjeta, cualquier texto vinculado a products.selectedProduct y el destino de la acción Purchase siguen la nueva selección.
Para esta acción, establece Product en el elemento de producto de destino. El selector muestra únicamente los elementos de producto que pertenecen a un grupo seleccionable de producto en la misma pantalla. Si la pantalla tiene varios grupos de productos, el selector muestra los productos válidos de todos ellos. Los productos de otras pantallas, los elementos de producto que están fuera de un grupo y otros tipos de elementos no aparecen. Cada producto se muestra con su título de producto en Adapty, no con el nombre del elemento.
Puedes añadir también Select product dentro de una acción condicional — por ejemplo, para seleccionar un producto cuando un interruptor está activado y otro cuando está desactivado.
Select product no está disponible en dos lugares:
- Dentro de componentes reutilizables: La selección de producto funciona por pantalla, por lo que una acción dentro de un componente no puede resolver un producto. Si una acción guardada termina dentro de un componente, el campo Product muestra una advertencia en lugar del selector.
- En el propio disparador On tap de una tarjeta de producto: Al pulsar una tarjeta ya se selecciona, por lo que una selección explícita en la misma interacción generaría un conflicto. La acción sigue disponible en esa tarjeta para otros disparadores, y en cualquier otro elemento.
Una acción Select product bloquea la previsualización y publicación cuando el producto de destino falta, está en otra pantalla o ya no pertenece a un grupo de productos. Asigna un producto válido o elimina la acción.
Acciones personalizadas
Una acción personalizada dispara un ID de acción con nombre que tu propio código de la app gestiona. Úsala cuando los tipos de acción integrados no cubren lo que necesitas.
Adapty proporciona el disparador; tu app implementa el comportamiento:
- En el builder, asignas un ID de acción a la interacción de un elemento.
- Cuando el usuario activa la interacción, el flow pasa el ID a tu app.
- Tu app identifica 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 un Action ID bloquea la previsualización y la publicación. Asigna un Action ID o elimina la acción.
Qué puedes hacer con las acciones personalizadas
Una acción personalizada no hace nada por sí sola. Tú asignas un ID de acción estático en el builder, y el código de tu app se encarga de lo que ocurre cuando recibe ese ID. 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: Dispara un ID como
viewed_special_offery registra el evento en tu sistema de analítica cuando tu app lo reciba. - Solicitar un permiso del sistema: Dispara un ID como
request_locationy llama al prompt de permisos del SO desde tu app. Para permisos que el prompt no puede conceder, abre los ajustes del sistema del teléfono. Adapty no muestra el prompt — lo hace tu app. - Iniciar autenticación nativa: Dispara un ID como
login_googley muestra tu propia pantalla de inicio de sesión. El flow no puede autenticar al usuario. - Aplicar lógica de negocio: Dispara un ID como
apply_discounty desbloquea contenido o cambia el estado de la app por tu cuenta. - Pasar una respuesta de quiz a tu app: Asigna un Action ID distinto a cada opción (por ejemplo,
goal_weight_lossygoal_muscle) y lee el ID en tu código. Úsalo para establecer un atributo de usuario personalizado sobre el que puedas segmentar más adelante. Como la acción solo lleva un ID fijo, esta es la única forma de reportar 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 luego goal_muscle. Haz que tu manejador sea idempotente para que prevalezca la señal más reciente.
Qué no pueden hacer las acciones personalizadas
Las acciones personalizadas son estáticas. El ID de acción se fija cuando construyes el flow — no puede leer variables ni entradas del usuario. Cuando se dispara la acción, tu app recibe únicamente ese ID, nunca el email, número de teléfono u otra entrada que el usuario haya introducido. 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. Las acciones personalizadas también son unidireccionales. Tu app no puede devolver un resultado al flow, y el flow no espera a que tu código termine. Si una acción Navigate next sigue a la acción personalizada, el usuario avanza a la siguiente pantalla aunque tu código falle — por ejemplo, cuando el usuario cierra tu pantalla de inicio de sesión sin haber iniciado sesión. Combinado con el Action ID estático, esto impide validar la entrada del usuario en tu app — por ejemplo, verificar un código SMS que el usuario introdujo y ramificarse según el resultado. Si el resto del flow depende de lo que haya hecho tu código, divide el flow entre dos placements.
Continuar el flow según el resultado
Si algunas pantallas deben aparecer solo después de que una acción personalizada tenga éxito — por ejemplo, pantallas que siguen a un inicio de sesión — divide el flow entre dos placements y deja que tu app decida cuándo mostrar la segunda parte:
- En el primer placement, crea un flow que termine con una acción personalizada (por ejemplo,
login). - En tu app, gestiona el Action ID: muestra tu pantalla de inicio de sesión y comprueba si el usuario ha iniciado sesión.
- Si el usuario ha iniciado sesión, muestra el flow del segundo placement con las pantallas de seguimiento. De esta forma, tu app controla la transición basándose en el resultado real, en lugar de que el flow navegue hacia adelante sin importar el resultado.
Acciones condicionales
Usa acciones condicionales para dividir el flow en distintos caminos según los datos del usuario.
Algunos casos de uso habituales son:
- Tienes un cuestionario en la pantalla y quieres llevar a los usuarios a diferentes pantallas según sus respuestas. En ese caso, añade una acción condicional a un botón.
- Quieres ofrecer distintos productos y ofertas a diferentes grupos de usuarios. Colócalos en pantallas separadas y configura las 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 aplicación lee las reglas de arriba abajo y se detiene en la primera coincidencia:
- IF: El flow comprueba la condición principal.
- ¿Es True? El flow ejecuta las acciones THEN inmediatamente y se detiene.
- ¿Es False? El flow pasa a la siguiente sección.
- ELSE IF: Aquí puedes añadir comprobaciones adicionales (por ejemplo, “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 hace nada.
- Una regla incompleta (sin operador o valor) bloquea la previsualización y la publicación.
Para cada regla, selecciona una variable a evaluar y una acción a ejecutar. Puedes definir más de una acción por regla.
El flow ejecuta solo una regla: la primera que coincida. Si necesitas ejecutar IF y ELSE IF al mismo tiempo, añade ambas acciones en 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 vista previa y la publicación. Consulta Problemas comunes para ver la lista completa.