Saltar al contenido principal

Promotions

Planes: Pro · Agency

Experimental

La funcionalidad Promotions está en desarrollo activo. El CRUD funciona, la detección de intent funciona, la analítica está incompleta. Trátalo como preview, aún no como herramienta de producción.

Las Promotions son cupones emitidos por IA que el LLM puede recomendar a compradores que hacen preguntas conversacionales tipo "¿hay descuento en esto?" o "¿tenéis alguna oferta?". El código de cupón, las reglas y el targeting viven todos en Clione — tu plataforma de storefront solo ve el cupón canjeado en checkout, igual que cualquier otro código promo.


Dónde vive

Por tienda: Store → Promotions. Plan-gated (feature coupon_basic).

La página muestra:

  • La lista de promotions para esta tienda.
  • Botón + New promotion.
  • Por fila: nombre, estado (active / paused / scheduled / ended), recuento de redenciones.

Crear una promotion

  1. Pulsa + New promotion.
  2. Rellena el formulario:
    • Name — etiqueta interna.
    • Coupon code — lo que el comprador introduce en checkout (o lo que el LLM sugiere).
    • Discount type + amount — porcentaje, importe fijo, envío gratis.
    • Eligibility — todos los productos, o filtrar por categoría / tags / SKUs.
    • Validity — fecha de inicio, fecha de fin, máximo de redenciones.
    • Intent triggers — keywords o clases de intent que el LLM vigila (p. ej. "abandoned cart", "first-time buyer", "price-sensitive").
  3. Guarda como Draft o Active.

Una vez activo, el cupón se incluye en el contexto de agente que Clione provee a ChatGPT, Perplexity, etc. vía el servidor MCP y el endpoint agent-discovery. Cuando la pregunta de un comprador encaja con los intent triggers, el LLM puede mostrar el cupón.


Pausar / activar / borrar

Menú de fila:

  • Pause — el cupón se queda en BD pero se excluye del contexto de agente. Las redenciones siguen contando contra el máximo.
  • Activate — re-incluye en el contexto de agente.
  • Delete — permanente. Las redenciones pasadas se conservan en analítica.

Notas por plataforma

Las Promotions son agnósticas a la plataforma del lado de Clione, pero el propio código de cupón debe existir en el sistema de promociones de tu plataforma de storefront para que la redención efectivamente aplique en checkout.

BigCommerce

Espejo manual en BC:

  1. Abre el admin de BigCommerce → Marketing → Promotions.
  2. Pulsa Add.
  3. Configura la promoción para que coincida con lo que pusiste en Clione:
    • Apply to → coincide con el filtro de eligibility (categoría, brand o lista de SKU).
    • Coupon code → debe ser exactamente el mismo string que el coupon code de Clione (case-sensitive).
    • Discount → coincide con porcentaje/fijo/envío-gratis e importe.
    • Fechas de validez → coinciden.
    • Usage limit → coincide con max-redemptions de Clione.
  4. Guarda y Activate.

Por qué se requiere el espejo manual: Clione no empuja actualmente a /v3/marketing/promotions de BC (está en el roadmap). Sin el cupón del lado BC, el comprador ve la sugerencia de descuento del LLM pero el checkout de BC rechaza el código.

Webhook de redención: El webhook store/cart/converted de BC está conectado en Clione. Cuando un carrito que usó un cupón gestionado por Clione convierte, el conteo de redenciones en el dashboard de Clione sube en ~30 segundos.

Shopify

Espejo manual en Shopify:

  1. Abre el admin de Shopify → Discounts.
  2. Pulsa Create discount → elige el tipo de descuento (Amount off products, Amount off order, Free shipping, Buy X get Y).
  3. Configura para que coincida con lo que pusiste en Clione:
    • Discount code → exactamente el mismo string que el coupon code de Clione (case-sensitive).
    • Applies to → coincide con el filtro de eligibility de Clione.
    • Customer eligibility → All customers, o restringe a un segmento de cliente si configuraste lo mismo en Clione.
    • Maximum discount uses → coincide con max-redemptions de Clione.
    • Active dates → coinciden.
  4. Guarda.

Por qué se requiere el espejo manual: Igual que BC — Clione aún no crea descuentos de Shopify vía la Admin API. La mutation discountCodeBasicCreate de Shopify GraphQL está en el roadmap.

Webhook de redención: El manejo de webhooks de Shopify es parcial — el webhook orders/create dispara de forma fiable, pero la atribución de discount_code puede ser inconsistente si el descuento se aplicó vía Shopify Function. Trata los conteos de analítica como aproximados hasta que esto se afiance.

Roadmap de creación programática

Ambas plataformas exponen APIs para crear cupones. La razón por la que no se auto-crean hoy es un check deliberado de seguridad durante el periodo experimental — no queremos empujar promotions a tu storefront en vivo que no puedas auditar. Una vez la analítica + audit logs estén en su sitio, el auto-push será opt-in por tienda.


Analítica

La vista de analítica muestra:

  • Recuento de redenciones a lo largo del tiempo.
  • Top intent triggers que mostraron el cupón.
  • Atribución a proveedor LLM (ChatGPT vs Perplexity vs otros).

Nota: la analítica depende de que el storefront pase el código canjeado de vuelta vía webhook. Esto está conectado para BigCommerce; el manejo de webhooks de Shopify es parcial.


Resolución de problemas

El cupón nunca aparece en ChatGPT — Causas habituales:

  1. Los intent triggers no coinciden con lo que los usuarios realmente preguntan. Amplíalos.
  2. El filtro de eligibility del cupón es demasiado estrecho.
  3. El endpoint MCP / agent-discovery de tu tenant no es alcanzable desde la red del LLM. Revisa Org → MCP para el estado.

El cupón aparece pero el descuento no aplica en checkout — El código existe en Clione pero no en la plataforma de storefront. Crea el cupón coincidente en BC / Shopify con el mismo código, valor y reglas. La case-sensitivity importa en ambas plataformas — SAVE10 y save10 son códigos distintos.

La pestaña Promotions está bloqueada — Tu plan no incluye coupon_basic. Sube a Pro o Agency.

El conteo de redenciones de BigCommerce nunca se actualiza — Verifica que el webhook store/cart/converted está registrado. En BC admin → Settings → API → Webhooks. Si el webhook falta, desconecta y reconecta la tienda desde la pantalla Store → Settings de Clione; la reconexión registra los webhooks.

El conteo de redenciones de Shopify está descuadrado por varios — Limitación conocida: cuando un descuento se aplica vía Shopify Function (p. ej. una regla buy-X-get-Y), la atribución de discount_code en el webhook orders/create puede estar vacía. El pedido completa igualmente; solo el conteo de analítica se pierde. Está en la lista de fixes.

Los intent triggers disparan en la pregunta incorrecta — Los triggers matchean semánticamente, no por string exacto. Si "abandoned cart" dispara en "¿hay stock?", el LLM está sobre-generalizando. Aprieta el trigger añadiendo keywords negativos (p. ej. abandoned cart but not stock) en el campo trigger.

Catálogo de intent triggers

Las clases de intent que el LLM está entrenado para detectar:

IntentPatrón típico de preguntaMejor fit
discount_request"¿tenéis descuento?"Promos genéricas
abandoned_cartel LLM detecta que el comprador lleva un rato comparandoPromos de recuperación de carrito
first_time_buyer"primera vez comprando" / sin referencia previa a la marcaPromos de bienvenida
price_sensitive"qué es lo más barato" / "versión económica"Promos de tier de entrada
bundle_intent"¿tenéis un set/kit?"Promos de bundle
gift_intent"como regalo para X"Promos de regalo
subscription_intent"necesito esto regularmente"Promos de suscripción
seasonalreferencias a fiesta / temporadaPromos estacionales
loyaltyreferencias a compra anterior o membershipPromos de fidelidad

Puedes apilar varios intents en una sola promotion — el LLM la muestra si cualquiera de ellos matchea.

Buenas prácticas

  • Crea siempre primero el cupón correspondiente del lado de la plataforma. Un código mostrado que no aplica en checkout rompe la confianza del comprador más que no mostrar código en absoluto.
  • Pon caps de max-redemption realistas. Sin cap, una mención viral en un thread popular de LLM puede vaciar el presupuesto promo de un día para otro.
  • Usa códigos únicos por canal. Si también usas los mismos códigos para email marketing, la atribución se vuelve confusa.
  • Revisa la analítica semanalmente. La vista analítica de Promotions muestra qué intents están mostrando tus cupones — si "discount_request" nunca dispara pero "bundle_intent" sí, retira el descuento y vuélcate en bundles.

Atribución de datos

Cuando una redención se atribuye a un cupón mostrado por Clione, la fila de analítica lo etiqueta con:

  • Clase de intent originante.
  • Proveedor LLM (cuando es detectable desde la cadena de referer).
  • Timestamp de primer toque (cuando el LLM mostró por primera vez el código).
  • Time-to-conversion (en horas/días).

La atribución es best-effort — los proveedores de LLM no siempre pasan un referer o un click ID. Lo que importa es la tendencia agregada, no la precisión por pedido.

Sintaxis del filtro de eligibility

El filtro de eligibility acepta estas formas:

  • Todos los productos — filtro vacío; el cupón aplica a toda la tienda.
  • Por category / collection — elige de una lista. Lógica AND si se eligen varias.
  • Por tag — separados por coma. Matchea cualquiera (OR).
  • Por patrón SKU — sintaxis glob, p. ej. SKU-ABC-* matchea todos los SKUs que empiezan por SKU-ABC-.
  • Por rango de precio — min/max en divisa de tienda.
  • Por vendor / brand — elige de lista.

Puedes combinar varios filtros; el LLM solo muestra el cupón cuando todos los filtros matchean el producto del que el comprador está hablando.

Targeting geográfico

Un cupón puede limitarse a países específicos. Elige de la lista de países en Advanced → Geographic targeting. El LLM usa el locale del comprador (cuando es detectable desde los metadatos de sesión del proveedor LLM) para gatear el mostrado.

Nota: muchos proveedores LLM no exponen la ubicación de forma fiable. El targeting geográfico es best-effort y debería estar respaldado por un gate geográfico del lado de la plataforma (BC: "Customer groups by location"; Shopify: Markets con reglas de descuento).

Buenas prácticas de coupon code

  • Usa códigos únicos — no reutilices el mismo código entre canales (email, social, partners). La atribución se vuelve imposible.
  • Evita códigos fáciles de adivinarSAVE10 está bien para promos puntuales pero invita al abuso para evergreen.
  • Elige códigos que lean bien en la salida del LLM — cortos, memorables, todo en mayúsculas. Códigos con caracteres aleatorios se ven spam.
  • Menciona el código de forma prominente en el widget FAQ — si tienes una FAQ "¿Tenéis descuentos?", embebe el código promo en la respuesta con una nota clara "expira X".

Límites de hoy

  • Máximo 50 cupones activos por tienda.
  • Máximo 5 intent triggers por cupón.
  • Máximo 12 filtros de eligibility por cupón.
  • Máximo 100 redenciones rastreadas por cupón por día (los overflows aún se permiten por la plataforma; solo el conteo de analítica se limita).

Contacta a soporte si tocas estos y necesitas límites más altos.

Dónde aparece el cupón

Cuando un cupón gestionado por Clione está activo y sus intent triggers matchean la pregunta de un comprador, el LLM puede mostrar el código en:

  • Flujos shopping de ChatGPT — cuando el contexto de agente expone el MCP de Clione.
  • Comparaciones de producto de Perplexity — lo mismo, vía el endpoint agent-discovery.
  • Otros LLMs que consumen MCP o el JSON-LD público — descubrible, pero el mostrado queda a su discreción.

El mostrado no está garantizado — cada proveedor LLM tiene su propia discreción sobre si mencionar cupones. El uplift agregado en una ventana de 30 días es la métrica que vigilar, no el mostrado por conversación.