> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear estrategias

> Crea, configura y gestiona Estrategias desde el panel de Aftersell — sin necesidad de código.

<div id="overview">
  ## Descripción general
</div>

El panel de Aftersell ofrece una interfaz visual para crear y gestionar Estrategias. Puedes crear estrategias, definir reglas de segmentación con disparadores, asignar productos para recomendar y configurar el comportamiento catch all — todo sin escribir una sola línea de código.

Esta guía recorre el proceso de principio a fin para crear una Estrategia en la interfaz.

***

<div id="navigating-to-strategies">
  ## Navegar a Estrategias
</div>

1. Inicia sesión en Aftersell.
2. Haz clic en **Strategies** en la navegación de la barra lateral izquierda.
3. Verás una lista de tus Estrategias existentes, o un estado vacío que te invita a crear la primera.

***

<div id="creating-a-new-strategy">
  ## Crear una nueva Estrategia
</div>

1. Haz clic en **Add Strategy**.
2. Se te llevará al editor de Estrategias, donde puedes añadir reglas.

<Tip>
  Haz clic en el **icono de lápiz** en la parte superior izquierda del editor de Estrategias para darle a tu Estrategia un nombre descriptivo. Un nombre claro facilita identificar las estrategias en el panel más adelante.
</Tip>

***

<div id="adding-rules">
  ## Añadir reglas
</div>

Cada Estrategia contiene una o más **reglas**. Una regla se compone de:

* **Disparadores** — el "cuándo" — criterios que deben cumplirse para que la regla coincida.
* **Acciones** — el "entonces" — la experiencia devuelta cuando la regla coincide.

<div id="defining-triggers">
  ### Definir disparadores
</div>

Los disparadores determinan cuándo se activa una regla. Puedes combinar hasta cinco disparadores en una misma regla. Un único conmutador **AND** / **OR** se aplica a todo el conjunto de condiciones: con **AND**, todos los disparadores deben coincidir; con **OR**, basta con que coincida uno solo. Los tipos de disparadores disponibles incluyen:

<div id="product-triggers">
  #### Disparadores de producto
</div>

Segmenta según los productos en contexto (el carrito del comprador, el pedido recién completado o el producto que se está viendo):

* **Producto(s) específico(s)** — coincide con productos concretos de Shopify por ID
* **Colección** — coincide con productos que pertenecen a colecciones específicas
* **Etiqueta(s)** — coincide con productos que tienen etiquetas específicas (p. ej., "sale", "summer")
* **Título** — coincide con el título del producto
* **Proveedor** — coincide con el nombre del proveedor/marca
* **Tipo** — coincide con el campo de tipo de producto (p. ej., "Apparel", "Electronics")
* **Handle** — coincide con el slug de la URL del producto
* **Metacampo** — coincide con pares personalizados de namespace/clave/valor de metacampos
* **Plan de venta** — coincide con productos de "suscripción" o de "compra única". Solo se evalúa cuando el contexto de la solicitud proporciona un plan de venta para el producto — las superficies de upsell de checkout y post-compra de Aftersell no lo envían, por lo que el disparador no coincidirá ahí a menos que una integración personalizada lo proporcione explícitamente

<div id="customer-triggers">
  #### Disparadores de cliente
</div>

Segmenta según quién es el comprador:

* **Etiqueta de cliente** — p. ej., "VIP", "loyalty-gold"
* **Código de país** — país de facturación
* **Código de provincia** — provincia/estado de facturación
* **Configuración regional** — configuración regional del cliente (p. ej., "en-US")
* **Acepta marketing** — estado de suscripción a marketing
* **Número de pedidos** — cantidad de pedidos anteriores
* **Total gastado** — gasto acumulado

<div id="cart-triggers">
  #### Disparadores de carrito
</div>

Segmenta según el estado general del carrito:

* **Subtotal del carrito** — p. ej., subtotal superior a \$50
* **Número de artículos** — cantidad total de artículos en el carrito
* **Número de líneas** — cantidad de líneas de artículos distintas
* **Atributo del carrito** — atributos personalizados del carrito establecidos mediante la API de carrito de Shopify
* **Nota del carrito** — el campo de nota del carrito

<div id="location-triggers">
  #### Disparadores de ubicación
</div>

Segmenta según dónde se envía la compra y la moneda de la tienda:

* **País de envío** — país de destino del envío
* **Provincia de envío** — provincia/estado de destino del envío
* **Método de envío** — método de envío seleccionado
* **Moneda de la tienda** — el código de la moneda activa de la tienda

<div id="marketing-triggers">
  #### Disparadores de marketing
</div>

Segmenta según la URL de la página en la que llegó el comprador:

* **URL** — coincide con una subcadena de la URL de aterrizaje, para que puedas segmentar una campaña o canal específico haciendo coincidir un parámetro incrustado en la URL (p. ej. `utm_source=newsletter`)

<div id="time-triggers">
  #### Disparadores de tiempo
</div>

Segmenta según el momento en que se evalúa la solicitud, en la hora de la tienda:

* **Día de la semana** — el día actual
* **Hora del día** — la hora actual

<div id="dynamic-triggers">
  #### Disparadores dinámicos
</div>

* **Coincidir siempre** — un disparador sin condición que siempre se activa. Úsalo para que una regla se ejecute en todas las solicitudes (es distinto del [Catch all](#configuring-a-catch-all) a nivel de estrategia, que solo se activa cuando ninguna otra regla coincide).

<Note>
  No todos los disparadores se rellenan en todas las superficies. El checkout, por ejemplo, solo envía contexto de producto y de carrito — los disparadores de cliente, ubicación y marketing no coincidirán ahí. Consulta las guías de [Implementación de Estrategias](/es/aftersell/implementing_strategies_post_purchase_upsells) para saber qué envía cada superficie.
</Note>

<div id="operators">
  #### Operadores
</div>

Cada disparador utiliza un **operador** para definir cómo se compara el valor. Los operadores disponibles dependen del tipo de disparador.

| Operador                     | Descripción                                                                                                                                   |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Equals**                   | Coincide cuando el campo es exactamente el valor que especificas — p. ej., proveedor es igual a "Nike".                                       |
| **Does not equal**           | Coincide cuando el campo es cualquier cosa distinta del valor que especificas — útil para excluir un tipo de producto o proveedor concreto.   |
| **Contains any**             | Coincide cuando un campo multivalor incluye al menos un valor de tu lista — p. ej., un producto pertenece a cualquiera de varias colecciones. |
| **Does not contain any**     | Coincide cuando un campo multivalor no incluye ninguno de los valores de tu lista — p. ej., excluir productos etiquetados como "final-sale".  |
| **Contains all**             | Coincide cuando un campo multivalor incluye todos los valores de tu lista — p. ej., un producto debe tener las etiquetas "sale" y "summer".   |
| **Does not contain all**     | Coincide cuando a un campo multivalor le falta al menos uno de los valores de tu lista.                                                       |
| **Contains**                 | Coincide cuando un campo de texto incluye tu valor como subcadena — p. ej., el título contiene "Gift".                                        |
| **Does not contain**         | Coincide cuando un campo de texto no incluye tu valor.                                                                                        |
| **Greater than**             | Coincide cuando un campo numérico supera tu valor — p. ej., el subtotal del carrito es mayor que \$75.                                        |
| **Less than**                | Coincide cuando un campo numérico está por debajo de tu valor — p. ej., el número de pedidos es menor que 2 (compradores primerizos).         |
| **Greater than or equal to** | Coincide cuando un campo numérico alcanza o supera tu valor — p. ej., el total gastado es de al menos \$500.                                  |
| **Less than or equal to**    | Coincide cuando un campo numérico está en tu valor o por debajo — p. ej., el número de artículos del carrito no supera 3.                     |

No todos los operadores están disponibles para todos los disparadores:

* **Operadores de lista** (**Contains any / all** y sus negaciones) se aplican a campos multivalor como etiquetas, colecciones, etiquetas de cliente y productos específicos.
* **Operadores de texto** (**Equals**, **Contains** y sus negaciones) se aplican a campos de texto de valor único como título, proveedor, handle, configuración regional, país y URL.
* **Operadores numéricos** se aplican a campos como subtotal del carrito, número de artículos, número de líneas, número de pedidos, total gastado y hora del día. Los operadores numéricos no tienen variantes de negación.
* Algunos campos solo admiten **Equals** y **Does not equal** — plan de venta, día de la semana y acepta marketing.

<div id="defining-actions">
  ### Definir acciones
</div>

Las acciones crean la experiencia que quieres ofrecer al cliente. Aquí decides qué productos mostrar, cómo mostrarlos y qué datos adicionales pasar junto a ellos. Una regla puede tener varias acciones configuradas en conjunto para construir la experiencia completa.

Por regla, todas las acciones configuradas contribuyen a un único conjunto combinado. Por ejemplo, una regla con una acción de producto específico, una acción de colección y una acción basada en etiquetas devolverá productos de las tres fuentes juntas. Si un producto coincide con varias fuentes, se deduplica.

<div id="product-actions">
  #### Acciones de producto
</div>

Los mismos atributos de producto disponibles en el lado de los disparadores también están disponibles al definir acciones. Puedes devolver productos según:

* **Productos específicos** — selecciona manualmente productos individuales de tu catálogo de Shopify.
* **Colección** — devuelve todos los productos que pertenecen a una colección específica.
* **Atributos de producto** — devuelve productos que cumplen criterios como etiquetas, proveedor, tipo de producto o metacampos — los mismos tipos de atributos usados en los disparadores.

<div id="dynamic-actions">
  #### Acciones dinámicas
</div>

Las acciones dinámicas cambian lo que se devuelve según señales en tiempo real en lugar de una lista fija de productos. Los tipos de acciones dinámicas disponibles incluyen:

* **Más populares** — los productos con mejor rendimiento de tu tienda por volumen de ventas, ya sea a nivel de toda la tienda o limitado a una colección.
* **Comprados recientemente** — productos comprados recientemente en toda la tienda.
* **Heredar del cuándo** — reutiliza los propios disparadores de la regla (el "cuándo") como selector de productos, de modo que los productos devueltos cumplan los mismos criterios con los que se activó la regla.
* **Recomendaciones con IA** — sugerencias personalizadas generadas por el modelo de recomendaciones de Aftersell.

<div id="filtering-actions">
  #### Acciones de filtrado
</div>

Una vez montado el conjunto de productos, puedes configurar cuántos productos se devuelven y en qué orden:

* **Orden** — controla qué productos se seleccionan:
  * **Aleatorio** — una selección aleatoria.
  * **Precio: alto → bajo** — se devuelven primero los productos más caros.
  * **Precio: bajo → alto** — se devuelven primero los productos más baratos.
* **Cantidad/Límite** — establece el número máximo de productos a devolver.

<Info>
  Primero se aplica el orden y después la Cantidad/Límite. Por ejemplo, si tu orden está configurado en **Aleatorio**, todo el conjunto de productos se aleatoriza antes de aplicar el límite — así siempre obtienes una porción aleatoria, no los mismos productos en un orden aleatorio.
</Info>

<div id="key-value-actions">
  #### Acciones de clave-valor
</div>

Opcionalmente, adjunta pares clave-valor a una regla. Cuando la regla coincide, estos se devuelven en `meta.data` en la respuesta de la API junto con los resultados de productos. Los usos comunes incluyen:

* Texto de banner promocional
* Etiquetas de campaña para analítica

<Note>
  Si varias reglas coinciden y emiten la misma clave, gana el valor de la primera regla que coincida — las reglas posteriores no pueden sobrescribirlo.
</Note>

***

<div id="rule-priority-and-evaluation-order">
  ## Prioridad de reglas y orden de evaluación
</div>

Las reglas dentro de una Estrategia se evalúan en pasos jerárquicos y secuenciales. El paso 1 se evalúa primero, y así sucesivamente. Puedes reordenar las reglas arrastrándolas y soltándolas en el editor de Estrategias. El motor de evaluación:

1. Evalúa los disparadores de cada regla contra el contexto proporcionado.
2. Recopila productos de todas las reglas coincidentes.
3. Deduplica y limita el resultado al máximo configurado (predeterminado: 20 productos).

***

<div id="configuring-a-catch-all">
  ## Configurar un Catch all
</div>

El Catch all es una regla especial que actúa como paso final en cada evaluación de Estrategia. No tiene disparador: se activa automáticamente si ninguna otra regla de la Estrategia coincide con la solicitud actual.

Cuando está habilitado, el Catch all garantiza que tu espacio de recomendaciones nunca quede vacío. Su acción puede configurarse con cualquiera de los mismos tipos de acción disponibles para las reglas normales — productos específicos, colecciones, acciones dinámicas, etc.

* **Habilitar/deshabilitar** — activa o desactiva la regla Catch all para la Estrategia. Cuando está deshabilitada, las solicitudes que no coincidan con ninguna regla devolverán un resultado vacío.
* **Configurar acciones** — define qué devolver usando cualquier combinación de los tipos de acción disponibles, igual que en cualquier otra regla.

Cuando se activa el Catch all, la respuesta de la API indicará `resolution.fallbackUsed: true`.

***

<div id="global-filters">
  ## Filtros globales
</div>

Los filtros globales eliminan productos de la elegibilidad de selección en todas las reglas de una Estrategia. Puedes acceder a ellos mediante el **icono de filtro** junto al nombre de la estrategia, en la parte superior izquierda del editor de Estrategias.

Filtros globales disponibles:

* **Excluir agotados** — excluye automáticamente cualquier producto que no esté disponible para la compra en ese momento.
* **Excluir productos de entrada** — excluye el/los producto(s) que activaron la regla (p. ej., el producto que un comprador está viendo en una PDP), para que nunca recomiendes el mismo producto que el comprador ya está mirando.
* **Excluir por etiqueta de producto** — excluye productos que llevan etiquetas específicas.
* **Excluir por metacampo** — excluye productos que coinciden con un namespace/clave/valor de metacampo específico.
* **Excluir por ID de producto** — excluye productos específicos por ID.
* **Requerir stock en ubicación** — conserva solo los productos que tienen inventario disponible en una ubicación elegida (requiere permisos de lectura de inventario y ubicaciones).

***

<div id="validation-and-error-states">
  ## Validación y estados de error
</div>

Una Estrategia no puede guardarse si alguna regla está incompleta. Cada regla necesita al menos una condición (o el disparador **Coincidir siempre**) y al menos una acción; si falta cualquiera de las dos, aparecerán errores directamente sobre la regla en cuestión indicando qué debe resolverse.

Para eliminar el error y guardar la Estrategia, puedes:

* **Completar la regla** — añade el disparador y/o la acción que falta.
* **Eliminar la regla** — quítala por completo si ya no la necesitas.

El editor de Estrategias no permitirá guardar hasta que todas las reglas sean válidas.
