Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-IA-06: qué piezas participan, en qué orden hablan, qué APIs hay que construir con su request y su response, y qué le entrega a la épica siguiente.
Para quién. Los equipos que van a construir la épica, QA y arquitectura.
Estado. [Propuesta] del TL del Nuevo PIM, 18-oct-2026, construida sobre ADR-12. La spec de cada épica dice el qué; estas páginas, el cómo.
Fuente. docs/arquitectura/por-epica/epicas/FT-IA-06.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-IA-06-asistente-conversacional-reporte-errores.md.
En 30 segundos
Un seller que oferta sobre un producto que ya existe no puede modificarlo, y hoy para reportar un error depende de su KAM. Esta épica le da un asistente: escribe en lenguaje natural qué ve mal (le falta una foto, un dato) o por qué su producto no avanza; el asistente lo entiende con el estatus y los motivos del PIM, le explica lo que pueda y le arma un reporte que el seller confirma y que llega como tarea a Gobierno de Datos.
- Módulo dueño: MS-15 IA y enriquecimiento. También participan: MS-02 Producto, MS-06 Evaluación, MS-14 Avisos y ayuda.
- Etapa T · Transversal. Recibe de otras épicas y entrega a otras épicas.
- APIs: construye 2 y usa 3 que construyen otras épicas.
- Eventos: publica 1 y consume 1.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| FT-RAC-05 · Estatus del producto y motivos visibles para seller y… | El estatus que ve el seller (etiqueta, paso, qué le toca) y los motivos abiertos de cada producto. |
| FT-INT-05 · Multioferta y stock out | El seller ligado a un SKU que ya existe, que no puede modificar y sobre el que sólo oferta. |
| FT-RAC-02 · Score de calidad del producto | La calificación y lo que le falta a un producto, para explicar por qué no avanza. |
Entrega
| A | Qué |
|---|---|
| FT-PRD-05 · Edición y aprobación por campo según el dueño del dato | El reporte confirmado por el seller, ligado al producto y al paso, para que el dueño del dato lo corrija. |
| FT-RAC-06 · Métricas de tiempos por paso y clasificación de errores | Los reportes clasificados por tipo de error y paso del alta, para medir dónde se atoran los sellers. |
Tareas que abre o cierra: Gobierno de Datos.
2. Diagrama de contexto
Quién participa y cómo se conecta. Las pantallas llegan por el BFF del portal, que valida el token y compone; cada módulo vuelve a validar el token y decide sus permisos con los roles de MS-13.
🟩 Verde: nuevo, se construye · 🟦 Azul: ya existe y se queda, se reutiliza su código · 🟧 Naranja: temporal o se retira (se apaga en R3) · ⬜ Gris: sistema externo · ★ módulo dueño
3. Diagrama de flujo
El camino principal, paso por paso. Cuando una pantalla llama a un módulo se ven dos flechas: la pantalla al BFF y el BFF al módulo. Los eventos salen del outbox del módulo después de guardar; quien los consume ignora los repetidos.
Los pasos en texto
| Paso | De | A | Qué hace | API o evento |
|---|---|---|---|---|
| 1 | Seller | Entrada Única · Vendor Center | Escribe qué error ve en el producto | — |
| 2 | Entrada Única · Vendor Center | MS-15 IA y enriquecimiento (por el BFF) | Manda el mensaje con el producto y el paso | API-15-009 |
| 3 | MS-15 IA y enriquecimiento | MS-02 Producto | Lee el estatus que ve el seller | API-02-302 |
| 4 | MS-15 IA y enriquecimiento | MS-02 Producto | Lee los motivos abiertos del producto | API-02-029 |
| 5 | MS-15 IA y enriquecimiento | Modelos de IA | Entiende el mensaje y arma el reporte | — |
| 6 | MS-15 IA y enriquecimiento | Base pim | Guarda la conversación y el borrador del reporte | — |
| 7 | MS-15 IA y enriquecimiento | Entrada Única · Vendor Center | Responde y pide confirmar el reporte | — |
| 8 | Seller | Entrada Única · Vendor Center | Confirma que se mande | — |
| 9 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Registra el reporte ligado al producto | API-02-312 |
| 10 | MS-02 Producto | Base pim | Abre tarea de Gobierno de Datos en «Reportes de sellers» | — |
| 11 | MS-02 Producto | Eventos | Avisa la tarea nueva | catalog.product.changed/TASK_CHANGED |
| 12 | Eventos | MS-14 Avisos y ayuda | Entrega la tarea para avisar a Gobierno de Datos | catalog.product.changed/TASK_CHANGED |
3.1 ¿Por qué no avanza mi producto?
3.2 Error en un paso del alta
4. Si algo sale mal
- El modelo del asistente no responde. La pantalla ofrece el formulario corto de reporte (producto, paso, qué falta) y el reporte llega igual a Gobierno de Datos.
- El asistente no tiene el dato para explicar. Lo dice y ofrece mandar el reporte; nunca inventa un motivo: sólo usa el estatus, los motivos y la calificación del PIM.
- El seller manda muchos mensajes seguidos. MS-15 responde 429 y pide esperar; los reportes ya confirmados no se pierden.
- Gobierno de Datos no atiende el reporte a tiempo. El reloj de plazos del motor escala la tarea de su cola; el seller ve el reporte «en atención» con su fecha.
5. APIs
Las que construye esta épica (2)
POST /api/v2/ai/assistant/messages · Conversar con el asistente
| Campo | Valor |
|---|---|
| API | API-15-009 · MS-15 IA y enriquecimiento |
| Para qué | El seller escribe en lenguaje natural qué error ve en un producto o en un paso del alta; el asistente lo entiende con el estatus y los motivos del producto, le explica por qué no avanza cuando aplica y le arma un reporte que el seller confirma antes de mandarlo. |
| En esta épica | Conversar con el asistente y armar el reporte |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Seller o proveedor autenticado; sólo sobre productos que puede ver |
| Cabeceras | Authorization, X-Request-Id |
| Escribe en | ai_jobs |
Request
{
"conversationId": null,
"context": {
"productId": "PRD-0001190",
"sku": "1000001190",
"step": "DETALLE_OFERTA"
},
"message": "Estoy colgando este producto y le falta la foto del empaque"
}
Response · 200
{
"success": true,
"data": {
"conversationId": "cnv-0000412",
"reply": "Entendido: al producto 1000001190 le falta la foto del empaque. ¿Mando el reporte para que lo corrijan?",
"reportDraft": {
"draftId": "rpt-0000077",
"productId": "PRD-0001190",
"step": "DETALLE_OFERTA",
"errorType": "FALTA_IMAGEN",
"detail": "Falta la foto del empaque",
"suggestedQueue": "REPORTES_SELLERS"
},
"statusExplanation": null
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe o no es visible para quien llama |
| 429 | RATE_LIMITED | Demasiados mensajes por minuto |
| 503 | DEPENDENCY_UNAVAILABLE | El modelo no respondió: la pantalla ofrece el formulario corto de reporte |
POST /api/v2/products/{id}/error-reports · El seller o proveedor reporta un error de un producto que pu
| Campo | Valor |
|---|---|
| API | API-02-312 · MS-02 Producto |
| Para qué | El seller o proveedor reporta un error de un producto que puede ver pero no modificar (o de un paso de su alta): MS-02 abre una tarea de Gobierno de Datos en la cola «Reportes de sellers», ligada al producto, al paso y al borrador del asistente, y avisa con TASK_CHANGED. No cambia el producto. |
| En esta épica | Registrar el reporte confirmado como tarea de Gobierno de Datos |
Request
{
"reportDraftId": "rpt-0000077",
"source": "ASSISTANT",
"step": "DETALLE_OFERTA",
"errorType": "FALTA_IMAGEN",
"detail": "Falta la foto del empaque",
"sku": "1000001190"
}
Response · 201
{
"success": true,
"data": {
"reportId": "rep-0000301",
"productId": "PRD-0001190",
"taskId": "tsk-60412",
"taskType": "GOBIERNO_DE_DATOS",
"queue": "REPORTES_SELLERS",
"status": "OPEN",
"visibleToSeller": "En atención"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 403 | AUTHORIZATION_ERROR | Quien llama no tiene el permiso o no es el módulo autorizado |
| 422 | VALIDATION_ERROR | Falta un dato o viene con un formato inválido; el detalle dice qué campo |
| 409 | IDEMPOTENCY_MISMATCH | Se repite la llave de idempotencia con otro cuerpo |
Las que usa y construye otra épica (3)
Su request y su response están en la página de la épica que la construye.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-02-302 | GET /api/v2/workflow/status-views | Leer el estatus que ve el seller y en qué paso va | FT-RAC-05 · Estatus del producto y motivos visibles para seller y… |
| API-02-029 | GET /api/v2/workflow/comments?productIds= | Leer los motivos abiertos del producto | FT-PRD-04 · Propuesta del proveedor de Mercaderías |
| API-06-004 | GET /api/v2/evaluations/{evaluationId} | Leer la calificación y lo que le falta para avanzar | FT-FLU-03 · Decisión por negocio ante coincidencia |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.product.changed/TASK_CHANGED | MS-02 abre la tarea del reporte del seller | FT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-08, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.product.changed/TASK_CHANGED | MS-14 avisa a Gobierno de Datos que llegó un reporte a su cola | esta misma épica |
7. Datos
Cada colección tiene un solo dueño, el único que escribe en ella.
| Colección | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
ai_jobs | MS-15 | Cada trabajo de IA con su entrada, su resultado y su confianza. | escribe |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | lee |
tasks | MS-02 | Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento. | lee |
validation_results | MS-06 | El resultado de cada evaluación: lista negra, coincidencias con su confianza y score. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-IA-06·H1 · Reportarlo en lenguaje natural | P1 | pasos 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; API-15-009, API-02-312 |
| FT-IA-06·H2 · Decir en qué paso estoy y qué error veo | P1 | flujo «Error en un paso del alta» |
| FT-IA-06·H3 · Que el asistente me diga por qué mi producto no avanza, usando el estatus y… | P2 | flujo «¿Por qué no avanza mi producto?»; API-06-004, API-02-302 |
| FT-IA-06·H4 · Saber si el asistente es una iniciativa transversal | P3 | API-15-009. Fuera: Lo decide PEN-48; mientras, aplica D-IA-06-1: el PIM expone el asistente como API y no construye un chat aparte. |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-IA-06-1. El PIM no construye un chat por pantalla: expone el asistente como una API (API-15-009) con el contexto del producto y del paso. Si existe una iniciativa transversal de asistentes, su asistente usa esta misma API y el PIM sólo pone los datos y recibe los reportes. Por qué: No construir dos asistentes y que cualquier canal reporte igual. Se apoya en PEN-48, ADR-12.
- D-IA-06-2. El reporte lo confirma el seller y lo registra MS-02 como tarea de Gobierno de Datos en la cola «Reportes de sellers», ligada al producto y al paso; Gobierno de Datos lo resuelve o lo manda al dueño del dato (FT-PRD-05). El asistente no escribe en el producto ni abre tareas por su cuenta. Por qué: Con coincidencia el seller no modifica el SKU existente: el reporte es su vía para pedir la corrección, y la IA propone mientras la persona confirma. Se apoya en RF-ENR-15, RN-MAT-18.
- D-IA-06-3. Lo que el asistente explica sale del estatus que ve el seller y de los motivos de MS-02, y de la calificación de MS-06; si no hay dato, lo dice. Un producto que no alcanza la calificación se explica como «por completar», no como rechazo. Por qué: El asistente no puede contradecir lo que muestra el portal ni inventar motivos. Se apoya en RN-CAL-06, FT-RAC-05.
- D-IA-06-4. La conversación se guarda en ai_jobs con el seller y el producto, para saber qué se le dijo; el asistente rechaza y no guarda datos de clientes ni de pago si aparecen en el mensaje. Por qué: Trazabilidad de lo que respondió la IA sin guardar datos que el PIM no debe tener. Se apoya en ADR-12.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-35 | Modelo y contrato del asistente con el equipo de IA. |
| PD-02 | La fase del alta TO-BE de sellers, de la que depende cuándo se abre el asistente. |
También siguen abiertos: PEN-48, Si el asistente es una iniciativa transversal para todas las áreas o lo construye el PIM.
Fuentes
- [D]
trazabilidad/features/FT-IA-06-asistente-conversacional-reporte-errores.md: la ficha de la épica, con sus historias, reglas y bloqueos. - [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
- [D]
docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta. - [D]
docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida. - [D]
docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md§7: estados, tareas y canales. - [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.