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

# Agente de catálogo

> Un chat con inteligencia artificial que propone etiquetas para tus productos y no toca ninguna hasta que apruebas el cambio.

Llega una campaña nueva y hay que etiquetar cuarenta productos con `campaign=DIA_DEL_PICANTE` antes del lanzamiento, repartidos entre varios países. Hacerlo producto por producto en la pantalla de **Products** es lento, y la inconsistencia sale cara: alguien escribe `picante` en un producto y `Picante` en otro, y el filtro que arma la campaña deja afuera a la mitad.

El **Agente de catálogo** existe para esto. Hablas con él o le subes un archivo, te muestra exactamente qué etiqueta va a cambiar en cada producto, y no toca nada hasta que apruebas. Está disponible desde el botón flotante 🤖 abajo a la derecha, en cualquier pantalla del backoffice.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/01-launcher.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=2c538baccf4176dd61e199184739e055" alt="Botón flotante del Agente de catálogo sobre la pantalla de productos" width="3200" height="2000" data-path="images/manuals/backoffice/catalog-agent/01-launcher.png" />
</Frame>

***

## Lo mínimo que hay que saber

<Note>
  **1. Necesita cuenta, país y vendor elegidos en el selector de contexto.** Sin los tres, el panel no arranca: no hay forma de proponer una etiqueta sin saber sobre qué catálogo.

  **2. El agente propone, nunca aplica solo.** Mientras la tarjeta de la propuesta diga **Pending approval**, ningún producto cambió. Aplicar es un click tuyo.

  **3. No existe un modo que borre por ausencia.** Un producto que no aparece en tu archivo no pierde ninguna etiqueta, sin importar el modo que elijas.

  **4. Un término nuevo o un alias siempre te los pregunta.** El agente no adivina si `picante` y `Picante` son lo mismo, ni traduce ni prolija un valor que no conoce. Esa decisión es tuya.
</Note>

***

## El camino simple

Para un ajuste puntual sobre pocos productos:

1. Abre el botón flotante 🤖.
2. Cuéntale al agente qué quieres cambiar, con nombres o códigos de producto.
3. Revisa la propuesta: qué producto, qué etiqueta, qué valor.
4. **Approve and apply**.

<Tip>
  Si tu caso es este —pocos productos, un cambio puntual, lo conversas y lo apruebas— ya terminaste. El resto del manual es para cargas masivas por archivo y para las decisiones que el agente te va a pedir en el camino.
</Tip>

***

## Dos formas de usarlo

### Conversando

Para ajustes puntuales sobre pocos productos. Al abrir el panel sin nada seleccionado, el agente ofrece dos atajos para arrancar: **Show me the current tag vocabulary** y **Help me prepare a bulk tag upload**.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/02-panel-vacio.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=6ed8b9de40d1bb01c46871c5ffa9df7b" alt="Panel del Agente de catálogo recién abierto, con las sugerencias iniciales" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/02-panel-vacio.png" />
</Frame>

Cada respuesta trae debajo los pasos que siguió el agente para llegar a ella, como chips de herramienta (`MCP · tags context`, `MCP · products search`). No hace falta entenderlos para usar el agente: están ahí para que puedas confiar en la respuesta sin tener que creerle de oficio.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/03-conversacion.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=fb674511d1702eecb74b101c02c748b4" alt="Pregunta sobre el vocabulario de etiquetas respondida con los chips de herramientas del agente" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/03-conversacion.png" />
</Frame>

### Con un archivo

Para carga masiva. Adjunta un CSV, JSON o Excel con el campo de mensaje del panel, y dile al agente qué hacer con él.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/04-archivo-adjunto.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=5602b66c460b990d3f5b402a40cecf33" alt="Archivo CSV adjuntado en el campo de mensaje del Agente de catálogo, antes de enviarlo" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/04-archivo-adjunto.png" />
</Frame>

<Note>
  **Límites del archivo:** 5 MB, 5.000 filas y 100 columnas. Un archivo que se pasa de cualquiera de los tres no se procesa.
</Note>

***

## Las decisiones que el agente te va a preguntar

### Modo: agregar o reemplazar

| Modo | Qué hace |
| - | - |
| **Agregar valores** | Suma los valores que trae el archivo a las etiquetas de cada producto. Nunca quita nada, ni de esas etiquetas ni de otras que el producto ya tenía. |
| **Reemplazar keys mencionadas** | Reemplaza el valor de las etiquetas que el archivo nombra. Las etiquetas que el archivo no toca quedan exactamente como estaban. |

<Info>
  **No existe un modo que borre por ausencia.** Un producto que no está en el archivo no pierde nada, en ningún modo. Para vaciar una etiqueta hay que nombrarla explícitamente en el archivo con **Reemplazar keys mencionadas**.
</Info>

### Términos nuevos

Si un valor del archivo no existe en el vocabulario aprobado, el agente no lo traduce ni lo prolija: te lo muestra tal cual viene escrito en el archivo, y te pregunta si lo apruebas como término nuevo.

### Alias

Que un valor del archivo signifique en realidad uno que ya está aprobado —por ejemplo, que `Picante` del archivo sea el mismo `picante` del vocabulario— es una decisión tuya. El agente nunca lo asume por parecido: dos valores que se escriben distinto quedan como dos valores distintos hasta que decides que son alias.

***

## La propuesta: nada se toca hasta que apruebas

Antes de cambiar cualquier producto, el agente arma una propuesta con el detalle de cada cambio y la deja esperando tu decisión.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/05-propuesta.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=0ad023f7baca0929c3a57b619ad491cf" alt="Tarjeta de propuesta con el conteo de filas listas, no encontradas y con problemas" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/05-propuesta.png" />
</Frame>

<Warning>
  **La regla que ordena todo: mientras la tarjeta diga "Pending approval", no se tocó ningún producto.** El agente propone; aplicar el cambio es tu click en **Approve and apply**. Puedes cerrar el panel, pensarlo, o **Decline** sin que nada del catálogo haya cambiado.
</Warning>

Desplegando **Product changes** ves el detalle fila por fila, con el estado de cada una y los problemas que encontró el agente, si los hay.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/06-problemas.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=f8e49f60a2af62b03a18ce7ee47e494f" alt="Detalle de la propuesta con los productos listos y los problemas que requieren atención" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/06-problemas.png" />
</Frame>

### Los problemas que puede reportar, y que nunca adivina

| Problema | Qué significa | Qué hacer |
| - | - | - |
| **Ambiguo** | El identificador de la fila coincide con más de un producto. | Precisar el identificador o el código exacto en el archivo. |
| **No encontrado** | Ningún producto tiene ese identificador. | Revisar si el código está bien escrito y corresponde a esta cuenta, país y vendor. |
| **Fuera de vocabulario** | El valor no está entre los aprobados y todavía no lo aprobaste como término nuevo. | Decidir si es un término nuevo o un alias de uno que ya existe. |
| **Fila inválida** | La fila no se puede leer: faltan columnas o el formato está roto. | Corregir la fila en el archivo original y volver a subirlo. |

Ninguno de estos casos lo resuelve el agente por su cuenta. Los deja en la propuesta para que decidas.

***

## Qué pasa al aprobar: los tres finales posibles

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/07-aplicado.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=c58f98bb09ab275cef59ff958a84dbef" alt="Resultado tras aprobar la propuesta, con los enlaces a los productos modificados" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/07-aplicado.png" />
</Frame>

Al hacer click en **Approve and apply** puede pasar una de tres cosas:

* **Aplicado a todos.** Cada producto de la propuesta quedó con la etiqueta que viste. El agente te deja el enlace a cada uno.
* **Parcialmente aplicado.** Alguien editó uno de esos productos mientras revisabas la propuesta, así que ese cambió y los demás sí se aplicaron.
* **Nada aplicado.** Lo mismo, pero para todos los productos de la propuesta.

<Warning>
  **Esto no es un error: es la protección.** La aprobación vale para el diff que viste, no para uno que cambió por debajo mientras lo pensabas. Si alguien tocó el producto entre que se armó la propuesta y que aprobaste, el sistema prefiere avisarte antes que pisar ese cambio a ciegas. El remedio es simple: vuelve a subir el archivo o repite el pedido, y el agente arma la propuesta de nuevo con el estado actual del producto.
</Warning>

***

## El historial de conversaciones

El ícono del reloj abre **Conversation history**, con cada pedido anterior y su fecha. Sirve para volver a una propuesta que no llegaste a aprobar, o para recordar qué se le pidió al agente la semana pasada.

<Frame>
  <img src="https://mintcdn.com/firepos/nbTwlh6LW_LVmMx3/images/manuals/backoffice/catalog-agent/08-historial.png?fit=max&auto=format&n=nbTwlh6LW_LVmMx3&q=85&s=70f98f5ac0a5d63015a881585017d8b7" alt="Historial de conversaciones del Agente de catálogo con la fecha de cada pedido" width="1152" height="2000" data-path="images/manuals/backoffice/catalog-agent/08-historial.png" />
</Frame>

***

## Recetas: cómo se resuelven los casos reales

<AccordionGroup>
  <Accordion title="Sumar una etiqueta a un puñado de productos, por chat">
    1. Abre el botón flotante 🤖.
    2. Escribe algo como: "Agrégale `campaign=DIA_DEL_PICANTE` a los productos P-084, P-086 y P-087".
    3. Revisa la propuesta: tres productos, un valor cada uno.
    4. **Approve and apply**.

    Para un puñado de productos no hace falta armar ningún archivo.
  </Accordion>

  <Accordion title="Cargar un archivo para etiquetar cientos de productos antes de una campaña">
    1. Adjunta el CSV con las columnas de identificador y la etiqueta a cambiar.
    2. Pide modo **Agregar valores**, para no arriesgar ninguna etiqueta existente.
    3. Revisa los contadores de la propuesta: cuántas filas quedaron listas, cuántas no se encontraron.
    4. Resuelve los problemas señalados —si los hay— y **Approve and apply**.

    Los productos que no están en el archivo no se tocan.
  </Accordion>

  <Accordion title="Reemplazar una etiqueta mal cargada en todo un lote">
    1. Arma el archivo con el identificador de cada producto y el valor correcto de la etiqueta.
    2. Pide modo **Reemplazar keys mencionadas**, nombrando solo esa etiqueta.
    3. Revisa la propuesta: el valor viejo desaparece, el nuevo lo reemplaza. El resto de las etiquetas del producto queda igual.
    4. **Approve and apply**.
  </Accordion>

  <Accordion title="El archivo trae un valor que todavía no existe en el vocabulario">
    1. Sube el archivo y deja que el agente lo procese.
    2. Cuando te muestre el término nuevo, revisa que esté escrito como lo quieres ver en el catálogo: se aprueba tal cual viene, sin traducir ni corregir.
    3. Apruébalo como término nuevo.
    4. **Approve and apply**.

    Si el valor tiene una errata, corrígelo en el archivo antes de aprobar: una vez aceptado como término nuevo, queda en el vocabulario con esa escritura.
  </Accordion>

  <Accordion title="Un valor del archivo en realidad ya existe con otro nombre">
    1. Cuando el agente marque el valor como fuera de vocabulario, dile explícitamente que es un alias del valor existente.
    2. Confirma cuál de los dos nombres queda como el aprobado.
    3. **Approve and apply**.

    El agente no une los dos valores solo, aunque se parezcan: necesita esta confirmación.
  </Accordion>

  <Accordion title="Alguien más editó un producto mientras revisabas la propuesta">
    1. Apruebas la propuesta y el resultado dice **Parcialmente aplicado** o **Nada aplicado**.
    2. Revisa qué producto cambió mientras tanto —el mensaje del agente lo señala.
    3. Vuelve a subir el mismo archivo o repite el pedido conversacional.
    4. El agente arma una propuesta nueva con el estado actual del producto y la apruebas de nuevo.

    No hace falta buscar qué salió mal en el producto: alcanza con repetir el pedido.
  </Accordion>
</AccordionGroup>

***

## Un ejemplo con números

Un archivo `etiquetas-manual.csv` con cuatro filas, en modo **Agregar valores**, agregando `preparacion` a cada producto:

| externalId | Antes | Después | Resultado |
| - | - | - | - |
| 822 | sin `preparacion` | `preparacion=a_la_plancha` | Aplicado |
| 848 | sin `preparacion` | `preparacion=a_la_plancha` | Aplicado |
| 91184 | sin `preparacion` | `preparacion=frito` | Aplicado |
| PRD-NO-EXISTE-0000 | — | — | No encontrado |

Tres productos quedan listos (`productsReady: 3`) y una fila queda marcada como no encontrada (`notFound: 1`) porque ese código no existe en esta cuenta. `a_la_plancha` y `frito` se aprueban como términos nuevos porque no estaban antes en el vocabulario.

***

## Errores que salen caros

<Warning>
  **Confundir al agente con una herramienta de menú o de precios.** El Agente de catálogo solo cambia etiquetas de producto. No sincroniza nada a los canales de venta por sí mismo.
</Warning>

<Warning>
  **Creer que "Pending approval" ya se aplicó.** Nada cambió todavía. Si cierras el panel sin hacer click en **Approve and apply**, la propuesta queda ahí, sin efecto sobre el catálogo.
</Warning>

<Warning>
  **Dar por sentado que el agente une valores parecidos por su cuenta.** `Picante` y `picante` quedan como dos valores distintos hasta que marcas explícitamente que son alias. Si no lo haces, terminas con un término nuevo redundante en el vocabulario.
</Warning>

<Warning>
  **Aprobar una propuesta vieja después de haber editado productos a mano.** El resultado puede salir parcial o no aplicarse nada. Es la protección funcionando, no un error: vuelve a subir el archivo para que la propuesta se arme con el estado actual.
</Warning>

<Warning>
  **Subir un archivo esperando que el tamaño no importe.** Con más de 5 MB, 5.000 filas o 100 columnas, el archivo no se procesa. Divídelo en partes más chicas.
</Warning>

***

## Glosario

| Término | Qué significa |
| - | - |
| **Agente de catálogo** | El chat con inteligencia artificial que propone etiquetas de producto y las aplica solo con aprobación. |
| **Vocabulario aprobado** | El conjunto de etiquetas (keys y valores) que ya existen en el catálogo. |
| **Término nuevo** | Un valor que no está en el vocabulario aprobado. Se aprueba con el texto tal cual viene en el archivo. |
| **Alias** | Que un valor del archivo signifique un valor ya aprobado. Exige decisión explícita. |
| **Agregar valores** | Modo que suma valores nuevos a las etiquetas del producto, sin quitar nada. |
| **Reemplazar keys mencionadas** | Modo que reemplaza el valor de las etiquetas que el archivo nombra; el resto queda igual. |
| **Propuesta** | El detalle de los cambios que el agente preparó, antes de aplicarse. |
| **Pending approval** | Estado de una propuesta que todavía no se aprobó. Ningún producto cambió. |
| **Approve and apply** | La acción que aplica la propuesta a los productos. |
| **Ambiguo** | Problema: el identificador de una fila coincide con más de un producto. |
| **No encontrado** | Problema: ningún producto tiene el identificador de la fila. |
| **Fuera de vocabulario** | Problema: el valor no existe entre los aprobados y no se decidió si es término nuevo o alias. |
| **Fila inválida** | Problema: la fila no se puede leer. |
| **Contexto** | La cuenta, el país y el vendor elegidos en el selector de arriba. El agente lo necesita completo para arrancar. |

***

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿El agente puede aplicar un cambio sin que yo lo apruebe?">
    No. Mientras la propuesta diga **Pending approval**, ningún producto cambió. Aplicar es siempre un click en **Approve and apply**.
  </Accordion>

  <Accordion title="¿Qué pasa si no elegí cuenta, país o vendor?">
    El panel no arranca. El agente necesita saber sobre qué catálogo trabaja antes de proponer nada, así que faltando cualquiera de los tres no hay propuesta posible.
  </Accordion>

  <Accordion title="¿Puede el agente borrar una etiqueta de un producto que no está en mi archivo?">
    No. No existe un modo que borre por ausencia. Un producto ausente del archivo no pierde ninguna etiqueta, elijas **Agregar valores** o **Reemplazar keys mencionadas**.
  </Accordion>

  <Accordion title="¿Cómo decide el agente qué hacer con un valor que no conoce?">
    No lo decide: te lo muestra tal cual viene escrito en el archivo y te pregunta si lo apruebas como término nuevo. Nunca lo traduce ni lo corrige por su cuenta.
  </Accordion>

  <Accordion title="¿El agente asume que dos valores parecidos son el mismo?">
    No. Que un valor sea alias de otro ya aprobado es una decisión explícita tuya. Dos valores que se escriben distinto quedan separados hasta que confirmas que son lo mismo.
  </Accordion>

  <Accordion title="Aprobé la propuesta y dice que se aplicó parcialmente. ¿Qué hago?">
    Alguien editó uno de esos productos mientras revisabas la propuesta, así que ese cambio no se aplicó para protegerte de pisar una edición que no viste. Vuelve a subir el archivo o repite el pedido: el agente arma la propuesta de nuevo con el estado actual.
  </Accordion>

  <Accordion title="¿El agente toca el menú, los precios o dispara sincronización a los canales?">
    No. Solo cambia las etiquetas del producto. No modifica menús ni precios, y no dispara ninguna publicación a los canales de venta.
  </Accordion>

  <Accordion title="¿Dónde veo lo que le pregunté al agente antes?">
    En **Conversation history**, el ícono del reloj arriba del panel. Ahí están todos los pedidos anteriores con su fecha.
  </Accordion>
</AccordionGroup>

***

## Alcance: lo que el agente no hace

El Agente de catálogo **solo** cambia las etiquetas del producto. No toca menús, no toca precios, y no dispara sincronización a los canales de venta. Si el cambio que necesitas es otro —una lista de precios, un menú, la disponibilidad en un canal— esta pantalla no es la herramienta.
