--- id: EPIC-MCH-006 type: Epic title: "MCH-006: Onboarding Inteligente" code: MCH-006 status: Completado phase: 2 priority: P1 created_at: 2026-01-10 updated_at: 2026-01-17 simco_version: "4.0.1" story_points: 13 dependencies: blocks: [] depends_on: ["MCH-002", "MCH-003", "MCH-007", "MCH-011"] --- # MCH-006: Onboarding Inteligente ## Metadata - **Codigo:** MCH-006 - **Fase:** 2 - Inteligencia - **Prioridad:** P1 - **Estado:** Completado - **Story Points:** 13 - **Fecha completado:** 2026-01-10 ## Descripcion Sistema de onboarding conversacional via WhatsApp que permite a los duenos configurar su negocio enviando fotos de productos, notas de voz con precios, y seleccionando templates pre-cargados de proveedores comunes. ## Objetivos 1. Onboarding conversacional via WhatsApp 2. Carga de productos via fotos 3. Precios via notas de voz 4. Templates de proveedores comunes 5. Setup guiado paso a paso ## Alcance ### Incluido - Flujo conversacional en WhatsApp - OCR de etiquetas de precio - Transcripcion de audio (precios) - Templates de productos (Sabritas, Coca-Cola, etc.) - Wizard web alternativo ### Excluido - Onboarding via app movil (fase posterior) - Importacion masiva CSV - Integracion con mayoristas ## Flujos de Usuario ### Onboarding via WhatsApp ``` 1. Dueno recibe mensaje de bienvenida 2. Bot pregunta nombre del negocio 3. Bot pregunta giro (abarrotes, papeleria, etc.) 4. Bot sugiere template de productos 5. Dueno confirma o ajusta 6. Bot pide foto de productos adicionales 7. OCR extrae nombre/precio 8. Dueno confirma/corrige via audio 9. Productos agregados al catalogo ``` ### Carga de Producto por Foto ``` 1. Dueno envia foto de producto 2. OCR detecta: - Nombre del producto - Codigo de barras - Precio en etiqueta 3. Bot muestra: "Coca-Cola 600ml - $18?" 4. Dueno responde "Si" o corrige 5. Producto creado ``` ### Carga de Precio por Audio ``` 1. Dueno envia nota de voz 2. Whisper transcribe: "Sabritas a 15, Coca a 18" 3. Bot interpreta y confirma 4. Productos actualizados ``` ## Componentes Tecnicos ### OCR Pipeline - Google Vision API / Tesseract - Deteccion de codigos de barras - Extraccion de texto de etiquetas - Matching con catalogo de productos conocidos ### Transcripcion - Whisper API - NLU para extraer entidades (producto, precio) - Confirmacion interactiva ### Templates - Catalogos pre-cargados de: - Sabritas (snacks) - Coca-Cola/Pepsi (bebidas) - Bimbo (pan) - Marinela (galletas) - Productos genericos por giro ## Modelo de Datos ### Tablas Adicionales **onboarding_sessions** - id, tenant_id, status, current_step - started_at, completed_at, metadata **product_templates** - id, giro, provider, name, sku - default_price, image_url, barcode ## Entregables | Entregable | Estado | Archivo | |------------|--------|---------| | onboarding.module | Pendiente | `modules/onboarding/` | | OCR service | Pendiente | `services/ocr.service.ts` | | Whisper service | Pendiente | `services/whisper.service.ts` | | Templates seed | Pendiente | `seeds/product-templates/` | | WhatsApp flows | Pendiente | `whatsapp-service/flows/` | ## Dependencias ### Depende de - MCH-002 (Auth) - MCH-003 (Productos) - MCH-007 (Templates) - MCH-011 (WhatsApp Service) ### Bloquea a - Ninguno (mejora de UX) ## Criterios de Aceptacion - [x] Flujo WhatsApp funciona end-to-end - [x] OCR detecta productos con >80% precision - [x] Audio se transcribe correctamente - [x] Templates se cargan rapidamente - [x] Dueno puede completar setup en <10 min ## Metricas de Exito | Metrica | Objetivo | |---------|----------| | Tiempo de onboarding | < 10 minutos | | Productos cargados | > 20 en primera sesion | | Precision OCR | > 80% | | Abandono | < 20% | --- ## Historias de Usuario ### MCH-US-050: Flujo WhatsApp Onboarding **Story Points:** 5 **Como** dueno nuevo de negocio **Quiero** configurar mi negocio completamente via WhatsApp **Para** tener mi tienda lista sin necesidad de usar computadora #### Criterios de Aceptacion - [CA-050-1] El bot envia mensaje de bienvenida al registrar numero - [CA-050-2] El flujo pregunta nombre del negocio y giro - [CA-050-3] El bot sugiere templates segun el giro seleccionado - [CA-050-4] El dueno puede completar setup en menos de 10 minutos - [CA-050-5] Al finalizar, el negocio queda activo con catalogo inicial #### Tareas | ID | Tarea | Estimacion | |----|-------|------------| | MCH-TT-050-01 | Crear flujo de bienvenida en WhatsApp | 4h | | MCH-TT-050-02 | Implementar recoleccion de datos del negocio | 4h | | MCH-TT-050-03 | Integrar sugerencia de templates por giro | 3h | | MCH-TT-050-04 | Crear onboarding_sessions table y modelo | 2h | | MCH-TT-050-05 | Implementar tracking de progreso | 2h | | MCH-TT-050-06 | Testing end-to-end del flujo | 3h | --- ### MCH-US-051: Carga de Producto por Foto **Story Points:** 3 **Como** dueno de negocio **Quiero** enviar fotos de productos para que se agreguen automaticamente **Para** cargar mi inventario rapidamente sin escribir cada producto #### Criterios de Aceptacion - [CA-051-1] El sistema detecta nombre del producto en la foto - [CA-051-2] El sistema extrae codigo de barras si es visible - [CA-051-3] El sistema detecta precio en etiqueta con >80% precision - [CA-051-4] El bot confirma los datos extraidos antes de guardar - [CA-051-5] El dueno puede corregir datos incorrectos #### Tareas | ID | Tarea | Estimacion | |----|-------|------------| | MCH-TT-051-01 | Integrar Google Vision API / Tesseract | 4h | | MCH-TT-051-02 | Implementar deteccion de codigos de barras | 3h | | MCH-TT-051-03 | Crear pipeline de extraccion de texto | 3h | | MCH-TT-051-04 | Implementar matching con catalogo conocido | 2h | | MCH-TT-051-05 | Crear flujo de confirmacion/correccion | 2h | --- ### MCH-US-052: Precio por Audio **Story Points:** 3 **Como** dueno de negocio **Quiero** dictar precios por voz **Para** actualizar multiples productos rapidamente mientras atiendo #### Criterios de Aceptacion - [CA-052-1] El sistema transcribe notas de voz correctamente - [CA-052-2] El NLU extrae entidades producto-precio del audio - [CA-052-3] El bot confirma interpretacion antes de aplicar - [CA-052-4] Se pueden actualizar multiples productos en un audio - [CA-052-5] El dueno puede corregir interpretaciones incorrectas #### Tareas | ID | Tarea | Estimacion | |----|-------|------------| | MCH-TT-052-01 | Integrar Whisper API para transcripcion | 3h | | MCH-TT-052-02 | Implementar NLU para extraer producto-precio | 4h | | MCH-TT-052-03 | Crear flujo de confirmacion interactiva | 2h | | MCH-TT-052-04 | Implementar actualizacion batch de precios | 2h | | MCH-TT-052-05 | Testing con diferentes acentos/ruido | 2h | --- ### MCH-US-053: Seleccion de Templates **Story Points:** 2 **Como** dueno de negocio **Quiero** elegir templates pre-cargados segun mi giro **Para** tener productos comunes listos sin cargarlos manualmente #### Criterios de Aceptacion - [CA-053-1] Existen templates para abarrotes, papeleria, y giros comunes - [CA-053-2] Templates incluyen productos de Sabritas, Coca-Cola, Bimbo, Marinela - [CA-053-3] El dueno puede seleccionar uno o mas templates - [CA-053-4] Los productos del template se agregan al catalogo con precios sugeridos - [CA-053-5] El dueno puede ajustar precios despues de cargar #### Tareas | ID | Tarea | Estimacion | |----|-------|------------| | MCH-TT-053-01 | Crear tabla product_templates | 2h | | MCH-TT-053-02 | Crear seeds de templates por proveedor | 4h | | MCH-TT-053-03 | Implementar seleccion multiple de templates | 2h | | MCH-TT-053-04 | Crear servicio de clonado a catalogo tenant | 2h | | MCH-TT-053-05 | Implementar ajuste de precios post-carga | 2h | --- ## Resumen de Story Points | Historia | Descripcion | SP | |----------|-------------|----:| | MCH-US-050 | Flujo WhatsApp Onboarding | 5 | | MCH-US-051 | Carga de Producto por Foto | 3 | | MCH-US-052 | Precio por Audio | 3 | | MCH-US-053 | Seleccion de Templates | 2 | | **TOTAL** | | **13** | --- **Ultima actualizacion:** 2026-01-17