2026-06-15 · DATA ROOM
Adaptify AI
E-commerce: Personalización AI en tiempo real dispara tus ventas.
ELEVATOR PITCH
Adaptify AI revoluciona el e-commerce mediano, transformando cada visita en una venta con personalización de contenido 1-a-1 en tiempo real, impulsada por IA. Esto dispara las tasas de conversión al adaptar mensajes, descripciones y ofertas dinámicamente, combatiendo el rebote y los carritos abandonados. Nuestra solución cuenta con un Health Score del 87% y un Margen de Beneficio del 90%, asegurando fiabilidad y rentabilidad.
VALUE PROPOSITION
A diferencia de la segmentación tradicional, Adaptify AI genera contenido textual dinámico 1-a-1 para cada visitante, ofreciendo una hiper-personalización que los grandes jugadores no pueden igualar para SMBs, con una integración sencilla.
EXPLAINER.md
Adaptify AI Engine — MVP Explainer
Concepto
Adaptify AI es un motor de personalización 1-a-1 para e-commerce, diseñado como B2B SaaS. Analiza el comportamiento de cada visitante en tiempo real y usa un LLM para reescribir titulares, CTAs y descripciones de producto de forma individual — sin segmentos predefinidos ni reglas manuales.
Problema resuelto: Las tiendas medianas de Shopify/Magento/BigCommerce muestran el mismo contenido a todos los visitantes → alta tasa de rebote, carritos abandonados.
Arquitectura
Cliente (Shopify JS Plugin)
│
├─ POST /api/v1/track ← Eventos de comportamiento (async)
│
└─ POST /api/v1/personalize ← Solicitud de contenido personalizado
│
▼
┌─────────────────────────────┐
│ Spring Boot 4 / Java 25 │
│ │
│ TrackingController │
│ → TrackingService │◄── @Async (Virtual Threads)
│ → VisitorProfile │
│ │
│ PersonalizationController │
│ → PersonalizationService │
│ → LlmService │◄── ConcurrentHashMap cache
│ → LlmApiClient │◄── Feign + Resilience4j CB
│ → Template FB │ (fallback cuando LLM no disponible)
│ │
│ DashboardController │
│ → DashboardService │◄── Métricas de uplift
│ │
│ JwtAuthFilter │◄── Spring Security 7.x
└─────────────────────────────┘
│
▼
┌─────────────────────────────┐
│ H2 (dev) / PostgreSQL │
│ ─ websites │
│ ─ visitor_profiles │
│ ─ personalization_events │
└─────────────────────────────┘
Decisiones técnicas clave
| Aspecto | Decisión | Razón |
|---|---|---|
| Async tracking | %%INLINE0%% + Virtual Threads | Respuesta %%INLINE1%% < 10ms |
| LLM cache | ConcurrentHashMap in-process | Latencia < 200ms sin Redis externo |
| Resilience | Resilience4j CB + Retry programático | Tolera fallos del LLM sin caída total |
| Auth | JWT (jjwt 0.12.6) per-website | Aislamiento de datos entre clientes |
| LLM Fallback | Template-based personalización | App funciona sin API key configurada |
| DB | H2 (dev) / PostgreSQL (prod) | Zero-config para desarrollo local |
Endpoints
Públicos (sin autenticación)
| Método | Path | Descripción |
|---|---|---|
| %%INLINE3%% | %%INLINE4%% | Registra un sitio web, devuelve API key |
| %%INLINE5%% | %%INLINE6%% | Intercambia API key por JWT Bearer |
| %%INLINE7%% | %%INLINE8%% | Recibe eventos de comportamiento del visitor |
Protegidos (JWT Bearer requerido)
| Método | Path | Descripción |
|---|---|---|
| %%INLINE9%% | %%INLINE10%% | Devuelve contenido personalizado por LLM |
| %%INLINE11%% | %%INLINE12%% | Métricas de conversión y uplift |
| %%INLINE13%% | %%INLINE14%% | Estadísticas del caché de prompts |
Monitoring
| Método | Path | Descripción |
|---|---|---|
| %%INLINE15%% | %%INLINE16%% | Health check |
| %%INLINE17%% | %%INLINE18%% | Info del servicio |
Flujo de Integración (Shopify Plugin)
1. Onboarding:
POST /api/v1/websites/register → { apiKey: "ak_abc..." }
POST /api/v1/auth/token → { token: "eyJ..." }
2. En cada visita (JS snippet en theme.liquid):
POST /api/v1/track { visitorId, websiteId, eventType: "PAGE_VIEW", pageUrl, pageTitle }
POST /api/v1/track { visitorId, websiteId, eventType: "CLICK", elementId: "add-to-cart" }
3. Personalización (second visit o server-side):
POST /api/v1/personalize
Authorization: Bearer {jwt}
{
"visitorId": "vis_123",
"websiteId": "ws_456",
"elementId": "hero-headline",
"originalContent": "Discover our new collection",
"context": "Homepage hero"
}
→ { "personalizedContent": "Curated sustainable picks for eco-conscious shoppers" }
4. Dashboard:
GET /api/v1/dashboard/stats/{websiteId}
→ { uniqueVisitors, totalPersonalizations, upliftRate, elementStats: [...] }
Tracking Script (JavaScript)
// Inyectar en theme.liquid (Shopify)
(function() {
const WEBSITE_ID = "{{ shop.metafields.adaptify.website_id }}";
const API_URL = "https://your-adaptify-instance.com/api/v1/track";
// Generar/recuperar visitor ID anónimo
let vid = localStorage.getItem("_adaptify_vid");
if (!vid) {
vid = "vis_" + crypto.randomUUID();
localStorage.setItem("_adaptify_vid", vid);
}
function track(eventType, extra = {}) {
navigator.sendBeacon(API_URL, JSON.stringify({
visitorId: vid, websiteId: WEBSITE_ID,
eventType, pageUrl: location.href,
pageTitle: document.title, ...extra
}));
}
// Eventos automáticos
track("PAGE_VIEW");
let maxScroll = 0;
window.addEventListener("scroll", () => {
const depth = Math.round((window.scrollY / document.body.scrollHeight) * 100);
if (depth > maxScroll) { maxScroll = depth; track("SCROLL", { scrollDepth: depth }); }
}, { passive: true });
document.addEventListener("click", e => {
const el = e.target.closest("[data-adaptify]");
if (el) track("CLICK", { elementId: el.dataset.adaptify });
});
// Tiempo en página
window.addEventListener("beforeunload", () =>
track("TIME_ON_PAGE", { timeOnPageMs: performance.now() }));
})();
Modelo de Datos
websites
| Campo | Tipo | Descripción |
|---|---|---|
| id | UUID | PK generado automáticamente |
| name | VARCHAR | Nombre del sitio |
| domain | VARCHAR UNIQUE | Dominio (ej. myshop.myshopify.com) |
| api_key | VARCHAR UNIQUE | Clave de API generada al registro |
| active | BOOLEAN | Si el sitio está activo |
| created_at | TIMESTAMP | Fecha de registro |
visitor_profiles
| Campo | Tipo | Descripción |
|---|---|---|
| id | UUID | PK |
| website_id | VARCHAR | FK lógica a website |
| visitor_id | VARCHAR | ID anónimo de cookie |
| interesttagsjson | TEXT | JSON array de tags de interés |
| session_count | INT | Número de visitas |
| total_clicks | INT | Clics totales |
| avgscrolldepth | INT | Profundidad media de scroll (%) |
personalization_events
| Campo | Tipo | Descripción |
|---|---|---|
| id | UUID | PK |
| website_id | VARCHAR | Website al que pertenece |
| visitor_id | VARCHAR | Visitor anónimo |
| elementid | VARCHAR | Elemento personalizado (ej. %%INLINE23%%) |
| static_content | TEXT | Contenido original |
| personalized_content | TEXT | Contenido generado por LLM |
| shown | BOOLEAN | Si se mostró al visitante |
| converted | BOOLEAN | Si hubo conversión posterior |
| from_cache | BOOLEAN | Si vino del caché (no llamó al LLM) |
| latency_ms | BIGINT | Tiempo de respuesta en ms |
Análisis de Negocio
Mercado objetivo
- TAM: $10.4B mercado global de personalización e-commerce (2024)
- SAM: 2M+ tiendas Shopify que necesitan personalización pero no tienen recursos tech
- SOM: 10,000 tiendas como objetivo año 1 (~$5M ARR con plan $499/mes)
Modelo de monetización (B2B SaaS por niveles)
| Plan | Precio/mes | Visitantes únicos/mes | LLM calls/mes |
|---|---|---|---|
| Starter | $49 | 10,000 | 50,000 |
| Growth | $199 | 50,000 | 250,000 |
| Pro | $499 | 200,000 | 1,000,000 |
| Enterprise | Custom | Unlimited | Unlimited |
ROI para el cliente
- Según McKinsey, la personalización aumenta la conversión entre 10-30%
- Con una tasa de conversión base del 2%, Adaptify apunta a +15% → 2.3%
- Para una tienda con $100K/mes de ingresos → +$15K/mes adicional
- Payback period del plan Growth: < 2 semanas
Ventaja competitiva
- vs. Dynamic Yield/Salesforce: 10x más barato, integración en minutos vía Shopify plugin
- vs. reglas manuales: No requiere segmentos → personalización verdadera 1-a-1
- vs. AI generativa genérica: Prompts especializados en e-commerce + perfil de comportamiento real
Riesgos
- Latencia LLM: Mitigado con caché de prompts y fallback de plantillas
- Privacidad: Solo datos anónimos (cookie ID), sin PII — compatible con GDPR
- Dependencia de Shopify: Roadmap incluye BigCommerce, Magento, WooCommerce
- Coste LLM: Con gpt-4o-mini a $0.15/1M tokens y max_tokens=150, coste por call ≈ $0.0001
Cómo Ejecutar
Prerrequisitos
- Java 25+
- Maven 3.9+
Inicio rápido (H2 en memoria)
cd solutions/2026-06-15-adaptify-ai-engine
mvn spring-boot:run
La aplicación inicia en http://localhost:8080. H2 se auto-configura en memoria.
Con LLM real (OpenAI)
mvn spring-boot:run \
-Dspring-boot.run.jvmArguments="\
-Dadaptify.llm.api-key=sk-... \
-Dadaptify.llm.model=gpt-4o-mini"
Con PostgreSQL (producción)
mvn spring-boot:run \
-Dspring-boot.run.jvmArguments="\
-Dspring.datasource.url=jdbc:postgresql://localhost:5432/adaptify \
-Dspring.datasource.username=adaptify \
-Dspring.datasource.password=secret \
-Dspring.jpa.hibernate.ddl-auto=update \
-Dadaptify.llm.api-key=sk-..."
Prueba rápida
# 1. Registrar sitio
curl -X POST http://localhost:8080/api/v1/websites/register \
-H "Content-Type: application/json" \
-d '{"name":"My Shopify Store","domain":"mystore.myshopify.com"}'
# → {"websiteId":"...","apiKey":"ak_..."}
# 2. Obtener JWT
curl -X POST http://localhost:8080/api/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"apiKey":"ak_..."}'
# → {"token":"eyJ...","expiresInMs":86400000}
# 3. Enviar evento de tracking
curl -X POST http://localhost:8080/api/v1/track \
-H "Content-Type: application/json" \
-d '{"visitorId":"vis_abc","websiteId":"<id>","eventType":"PAGE_VIEW","pageUrl":"/fashion/summer","pageTitle":"Summer Fashion Collection"}'
# 4. Personalizar contenido
curl -X POST http://localhost:8080/api/v1/personalize \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{"visitorId":"vis_abc","websiteId":"<id>","elementId":"hero-headline","originalContent":"Shop our new arrivals","context":"Homepage hero"}'
# → {"personalizedContent":"Curated for fashion lovers: Shop our new arrivals","fromCache":false,"latencyMs":45}
# 5. Ver dashboard
curl http://localhost:8080/api/v1/dashboard/stats/<websiteId> \
-H "Authorization: Bearer eyJ..."
Referencias
- McKinsey on Personalization
- Google AI for E-commerce
- BCG on Generative AI in Marketing
- Spring Boot 4.0 Release Notes
- Resilience4j Documentation
- jjwt 0.12.x API
FinOps Analysis para Adaptify AI
Estimación de Costos Operativos Mensuales
Para Adaptify AI, hemos proyectado los costos operativos basándonos en un escenario inicial de micro-startup con una base de clientes en crecimiento.
1. Estimación de Tokens LLM
Asumiendo un promedio de 25,000 visitantes únicos por cliente SMB y una tasa de aproximadamente el 58% de estos visitantes generando una llamada única al LLM (después de considerar la efectividad de la caché y la variación de perfiles), con 20 clientes iniciales, tendríamos:
Llamadas LLM por cliente: 25,000 visitantes 0.58 = ~14,500 llamadas/mes Total de llamadas LLM: 14,500 llamadas/cliente 20 clientes = 290,000 llamadas/mes
- Tokens por llamada: Se estima un prompt de ~500 tokens (perfil de visitante + contexto) y una respuesta de ~50 tokens (titular/CTA personalizado), totalizando ~550 tokens por llamada.
Utilizando OpenAI gpt-4o-mini por su excelente relación costo-efectividad y baja latencia:
- Costo de entrada: $0.00015 / 1K tokens
- Costo de salida: $0.0006 / 1K tokens
- Costo Total de LLM: ~$30.45/mes
2. Desglose de Costos Mensuales
- LLM Tokens (OpenAI gpt-4o-mini): $15/mes (basado en ~80M tokens/mes)
- Cloud Hosting (AWS/GCP/Azure):
- Base de Datos (PostgreSQL gestionado):
- Costo Total Operativo Mensual: $15 (LLM) + $25 (Cloud) + $10 (DB) = $50/mes
Estimación de Ingresos Mensuales
Basado en el modelo de monetización B2B SaaS con suscripción por niveles para SMBs, y un precio de nivel de entrada de $25/mes:
- Clientes Iniciales: 20 clientes
- Precio por Cliente: $25/mes
Cálculo del Margen de Beneficio
- Ingresos Mensuales: $500
- Costos Operativos Mensuales: $50
- Beneficio Mensual: $500 - $50 = $450
Este alto margen de beneficio es típico para startups SaaS con costos de infraestructura optimizados y un LLM muy costo-efectivo como gpt-4o-mini, especialmente en las etapas iniciales donde los costos fijos son bajos.
Optimizaciones FinOps Concretas
- Caché de Respuestas LLM: La implementación de una caché robusta (como Caffeine o Redis, ya mencionada) es la optimización más crítica. Almacenar respuestas a prompts idénticos o muy similares para perfiles de usuario recurrentes o segmentos bien definidos reducirá drásticamente las llamadas al LLM y, por ende, los costos y la latencia.
- Optimización de Prompts: Revisar y refinar continuamente los prompts enviados al LLM para asegurar que sean lo más concisos posible sin perder efectividad. Cada token cuenta en el costo. Utilizar técnicas de compresión de contexto si es viable.
- Monitoreo Proactivo de Costos: Implementar dashboards de FinOps para visualizar los costos de LLM y cloud en tiempo real. Configurar alertas para picos inesperados en el uso de tokens o recursos de infraestructura para reaccionar rápidamente.
- Procesamiento por Lotes (Batch Processing): Para el script de seguimiento y el análisis de comportamiento del visitante, considerar el procesamiento por lotes de datos menos urgentes durante las horas de menor actividad. Esto puede optimizar el uso de recursos de base de datos y computacionales al evitar picos de carga innecesarios.
- Evaluación de Modelos LLM Alternativos: A medida que la startup crezca, investigar modelos LLM de código abierto más pequeños o proveedores alternativos para tareas específicas que no requieran la capacidad completa de gpt-4o-mini, o para cargas de trabajo que puedan ser ejecutadas en infraestructura propia si la escala lo justifica (aunque gpt-4o-mini es ya muy competitivo).
- Uso de Instancias Reservadas/Planes de Ahorro: Una vez que la carga de trabajo y el uso de infraestructura sean predecibles, considerar la adquisición de instancias reservadas o planes de ahorro en la nube. Esto puede reducir los costos de VM y DB en un 30-60% a largo plazo.
MVP FEATURES
- 01Script de seguimiento para analizar el comportamiento del visitante en tiempo real (clics, scroll, tiempo en página) y crear un perfil de interés anónimo.
- 02API de personalización que recibe un perfil de visitante y devuelve texto dinámico (ej. titulares, llamadas a la acción) generado por un LLM.
- 03Dashboard simple para configurar qué elementos del sitio web personalizar y para visualizar el aumento en la conversión (uplift) vs. el contenido estático.
- 04Integración inicial como plugin para Shopify para facilitar la instalación y configuración.
“Transforma cada visita en tu e-commerce en una venta con personalización AI que se adapta en tiempo real.”
Revisar la implementación y priorizar mejoras de UX/DX para el MVP, especialmente la gestión de `Website` y validaciones.
NetSentry AI
85NetSentry AI capacita a los equipos de SRE y DevOps para convertir el vasto ruido de la telemetría en análisis de causa raíz instantáneos, ahorrando millones en tiempo de inactividad. Nuestra innovadora arquitectura de agentes colaborativos, validada con un Health Score del 87%, ofrece claridad y eficiencia sin precedentes.
TelemetryGuard
84TelemetryGuard automatiza el análisis de causa raíz de incidentes en producción para equipos de SRE y DevOps. Nuestros agentes de IA colaborativos transforman terabytes de telemetría en hipótesis precisas y explicables, reduciendo drásticamente el MTTR y el estrés. Con un 'INVEST' de SharkTank (75/100) y alta escalabilidad (90/100), la calidad y el potencial están validados.
RootCause AI
81RootCause AI es una API que utiliza agentes de IA colaborativos para diagnosticar la causa raíz de fallos de red en segundos, no en horas, eliminando la fatiga de alertas para equipos SRE/DevOps. Con un Health Score del 87% y un Margen de Beneficio del 92%, ofrecemos una solución escalable y financieramente sólida.