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 acciones

Important

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.

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

Tip

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 en el panel Design. Si Visibility está configurado en Hide, la acción Show hará que aparezca.

Important

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

Important

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.

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.

Important

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.

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.
Important

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.

Configuración de la acción Purchase en la ventana Edit action

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.

Seleccionar acción de producto en la ventana Editar acción con el selector de productos mostrando tarjetas de productos

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.
Important

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:

  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.

Configura 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 de paywall para ver detalles de implementación y ejemplos de código.
Important

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.
Important

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.
Important

Para cada regla, selecciona una variable a evaluar y una acción a ejecutar. Puedes definir más de una acción por regla.

Important

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.

Acciones condicionales

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.