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:

  1. 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.
  2. Trigger: El evento que activa la lógica, como un toque, la aparición de un elemento o el envío de un formulario.
  3. 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:

  1. Selecciona un elemento en la pantalla o en el panel Layers.
  2. A la derecha, cambia al panel Interactions y haz clic en Add trigger.
Botón Add trigger
  1. En la sección Button triggers, selecciona el tipo de disparador.
Selección del tipo de disparador
  1. 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.
Add action button
  1. Configura las propiedades de la acción según el tipo de acción que hayas seleccionado.
  2. 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.

DisparadorSe activa cuando…Compatible con
On screen appearLa pantalla se cargaTodos los elementos
On tapEl usuario pulsa el elementoBotones, opciones de quiz, toggles, contadores regresivos, vídeos
On changedEl usuario cambia el valor del campo (escribiendo, seleccionando una fecha u hora)Todos los elementos de entrada
On submitEl usuario envía un campo de texto pulsando Intro o Hecho en el tecladoEntradas de texto
On timer endUn elemento Countdown llega a ceroCountdown
On playback finishedUn vídeo llega al finalVideo
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 acción de la lista. Las acciones colocadas después (como “Set Variable”) pueden no ejecutarse porque la app ya habrá cambiado de 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 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.

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 Variable icon 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.
Open URL

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 del panel Design. Si Visibility está configurado como 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. Los usuarios deben pulsar Ok para continuar.

En 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 Variable icon y selecciona la variable que quieras usar.

Una acción Show alert con una configuración vacía o incompleta bloquea la vista previa y la publicación. Rellena ambos campos o elimina la acción.

Show alert

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 vista previa y la publicación. Configura al menos una asignación o elimina la acción.

Set variable

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.selectedProduct para 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 Purchase sin un Product o Web Paywall URL de destino bloquea la previsualización y la publicación. Asigna un destino o elimina la acción.

Configuración de la acción Purchase en la ventana Editar 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).

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:

  1. En el builder, asignas un ID de acción a la interacción de un elemento.
  2. Cuando el usuario activa la interacción, el flow pasa el ID a tu app.
  3. Tu app identifica el ID y ejecuta tu código.

Configurar una acción personalizada

  1. En la ventana Edit action, asigna un Action ID — una cadena que tu app reconocerá (por ejemplo, show_discount).
  2. En el código de tu app, implementa un manejador para este Action ID. Consulta Gestionar acciones del paywall para ver los 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.

Configuración de acción personalizada con el campo Action ID en la ventana Edit action

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_offer y registra el evento en tu sistema de analítica cuando tu app lo reciba.
  • Solicitar un permiso del sistema: Dispara un ID como request_location y 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_google y 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_discount y 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_loss y goal_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:

  1. En el primer placement, crea un flow que termine con una acción personalizada (por ejemplo, login).
  2. En tu app, gestiona el Action ID: muestra tu pantalla de inicio de sesión y comprueba si el usuario ha iniciado sesión.
  3. 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:
  1. 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.
  2. ELSE IF: Aquí puedes añadir comprobaciones adicionales (por ejemplo, “Si no es Premium, ¿el usuario está en un Trial?”).
  3. ELSE (Fallback): Si ninguna de las reglas anteriores coincidió, el flow ejecuta las acciones de esta sección final.

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 con la que coincide. Si necesitas ejecutar IF y ELSE IF al mismo tiempo, añade ambas acciones a IF.

Para aprender a hacer elementos seleccionables y organizarlos en grupos para usarlos en condiciones, consulta Elementos seleccionables y grupos.

Acciones condicionales

Solucionar problemas

Cualquier acción con campos obligatorios vacíos bloquea la previsualización y la publicación. Consulta Guardar y publicar flows para ver la lista completa.