Guía · Odoo · IA gobernada

Cómo integrar IA con Odoo para preparar cotizaciones que una persona apruebe antes de enviarlas

Si alguien te ofrece «que la IA cotice sola», la pregunta correcta no es qué modelo usa, sino en qué estado deja la cotización, qué puede leer, qué no puede escribir y quién aprueba. Esta guía responde eso con los estados y la documentación de Odoo, y con el método que aplicamos en Transgenia.

Respuesta breve. La forma segura de integrar IA con Odoo para cotizar es un flujo de cotización asistida con aprobación humana obligatoria: la IA lee la solicitud del cliente (correo, WhatsApp, formulario o PDF), extrae productos, cantidades y condiciones, consulta en Odoo precios, listas de precios y existencias con permisos de solo lectura, y crea la cotización en estado Cotización, es decir, en borrador; nunca la envía ni la confirma. Una persona la revisa, corrige y da clic en Enviar por correo o Confirmar. El control debe vivir del lado del servidor (estado validado antes de enviar, registro de quién aprobó, regreso a revisión si cambian precios o cantidades), no en un botón. En Odoo Online, además, la API externa solo está disponible en el plan Custom.
Diagrama 1. Meta-estructura de la guía: requisitos y alcance, siete pasos de la solicitud a la medición, estados y acciones, reglas de automatización, qué puede salir mal, ejemplo hipotético, postura y fuentes.
Ver diagrama Mermaid
mindmap
  root(("Cotizaciones preparadas por IA, aprobadas por una persona"))
    Requisitos y alcance
      edición y plan de Odoo
      API externa solo plan Custom en Online
      clave API rotada
    Siete pasos
      solicitud
      extracción estructurada
      consulta solo lectura
      borrador en Cotización
      notificación
      aprobación humana
      medición
    Estados y acciones
    Reglas de automatización
    Qué puede salir mal
    Ejemplo hipotético
    Qué opinamos y fuentes
Diagrama 1. Meta-estructura de la guía. El eje es uno solo: la IA prepara, la persona decide; todo lo demás son los controles que lo garantizan.

Requisitos y alcance

PuntoQué necesitasQué no cubre esta guía
Edición de OdooCommunity o Enterprise. El modelo de cotización (sale.order) y sus estados existen en ambas. Studio (reglas de automatización) es de pago: en Odoo Online, instalarlo cambia la base al plan Custom.Módulos de terceros de aprobación de la tienda de Odoo: existen, pero no los evaluamos aquí.
Despliegue y planServidor propio u Odoo.sh: la API externa está disponible. Odoo Online: «Access to data via the external API is only available on Custom Odoo pricing plans»; no está en One App Free ni Standard.Precios de planes y de la IA: van en una guía aparte de factores de costo.
VersiónOdoo 19 usa la API JSON-2 con clave API como bearer token. En versiones anteriores, JSON-RPC o XML-RPC; ambas están programadas para retirarse en Odoo 22.Odoo anterior a 13 (fuera del alcance del servicio de Transgenia).
CredencialesUna clave API creada por un usuario con los permisos mínimos (Preferencias ‣ Seguridad de la cuenta ‣ Nueva clave API) y rotada al menos cada tres meses.Nunca pedimos claves en formularios ni en chat.
Capa de IAClaude o ChatGPT vía API, o un servidor MCP (por ejemplo, el servidor abierto de Transgenia en modo de solo lectura) para que el agente consulte Odoo con herramientas acotadas.Agentes que escriben directamente sobre el ERP sin estado de borrador: no los recomendamos.
PersonasUn vendedor que aprueba, un responsable de precios y alguien que define los criterios de aceptación.Sustituir al vendedor. La IA prepara; la persona decide.

Paso a paso: de la solicitud a la cotización aprobada

1. Define qué cuenta como solicitud y por dónde llega

Correo, WhatsApp, formulario web, PDF o Excel. Para empezar, elige un solo canal y una sola categoría de productos. Un piloto acotado permite medir errores antes de ampliar.

2. Extrae datos estructurados, no prosa

La IA convierte el texto del cliente en un registro con cliente, líneas (producto, cantidad, unidad), fecha de entrega y condiciones. Si falta un dato o hay dos productos compatibles, el agente pregunta; no completa por su cuenta. Los proveedores de modelos ofrecen salidas estructuradas para esto; úsalas.

3. Consulta Odoo con permisos de solo lectura

El agente busca el cliente en Contactos, mapea cada línea con el catálogo (clave, variante, unidad), lee la lista de precios asignada, los impuestos y la disponibilidad. Odoo calcula precios, descuentos e impuestos; la IA no inventa ni recalcula importes. Con un servidor MCP en modo de solo lectura, cualquier intento de escritura se rechaza antes de llegar a Odoo.

4. Crea la cotización en estado Cotización

Una cuenta técnica distinta a la del agente, con permiso de crear cotizaciones y nada más, registra el borrador con una etiqueta visible («Generada por IA») y una nota en el chatter que indique la solicitud de origen y la fecha. El estado inicial es Cotización. Nada se envía.

5. Notifica al vendedor con el resumen y las advertencias

Una actividad en Odoo o un aviso al canal del equipo con el enlace al borrador, los productos ambiguos, las existencias insuficientes y las condiciones fuera de política.

6. Revisión y aprobación humana

El vendedor corrige cantidades, precios o condiciones y decide. Solo entonces hace clic en Enviar por correo o en Confirmar. Según la documentación de Odoo 19, al confirmar «the quotation is confirmed, and the status changes to Sales Order» y «it officially turns into a sales order, which can then be invoiced and paid for».

7. Mide antes de ampliar

Porcentaje de borradores aprobados sin cambios, errores por tipo (producto, cantidad, precio), tiempo del vendedor por cotización y cotizaciones que requirieron aclaración. Con esos datos se decide si se amplía el canal o la categoría.

Diagrama 2. Los siete pasos: solicitud, extracción, consulta de solo lectura, borrador en estado Cotización, aviso al vendedor, aprobación humana con corrección, envío o confirmación y medición.
Ver diagrama Mermaid
flowchart TB
    S1["1. Solicitud del cliente: correo, WhatsApp, formulario o PDF"] --> S2["2. La IA extrae datos estructurados y pregunta si falta algo"]
    S2 --> S3["3. Consulta Odoo con permisos de solo lectura: cliente, catálogo, precios, existencias"]
    S3 --> S4["4. Cuenta técnica crea la cotización en estado Cotización, con etiqueta y nota"]
    S4 --> S5["5. Actividad o aviso al vendedor con las advertencias"]
    S5 --> S6{"6. ¿La persona aprueba?"}
    S6 -- "Corrige" --> S4
    S6 -- "Sí" --> S7["Enviar por correo o Confirmar: solo una persona"]
    S7 --> S8["7. Medir: aprobadas sin cambios, errores, tiempo, aclaraciones"]
Diagrama 2. El flujo completo. El único camino hacia Enviar o Confirmar pasa por una persona; la integración nunca llega ahí.

Estados y acciones permitidas

Estado en OdooQuién puede llevarla ahíQué se permite
Cotización (borrador)La integración, con una cuenta técnica de permisos mínimosCrear y editar líneas, etiquetar «Generada por IA», dejar nota en el chatter
Cotización enviadaSolo una persona, con Enviar por correoProhibido para el agente; el servidor valida que la IA no pueda invocar la acción
Pedido de ventaSolo una persona, con Confirmar (o el cliente desde el portal, si está configurado)Prohibido para el agente; dispara entregas y facturación
CanceladaUna personaRegistrar el motivo

Dos reglas que no son opcionales. Primera: el servidor valida el estado antes de ejecutar el envío; un botón de aprobación en la interfaz no es un control si la integración puede saltárselo. Segunda: si alguien modifica precios o cantidades después de la aprobación, la cotización regresa a revisión y queda registrado quién aprobó cada versión.

Diagrama 3. Estados de la cotización en Odoo: la integración solo crea el borrador; Enviar por correo, Confirmar y Cancelar quedan reservados a una persona; un cambio de precios devuelve a revisión.
Ver diagrama Mermaid
stateDiagram-v2
    [*] --> Cotizacion: la integración crea el borrador
    state "Cotización (borrador)" as Cotizacion
    state "Cotización enviada" as Enviada
    state "Pedido de venta" as Pedido
    Cotizacion --> Enviada: persona, Enviar por correo
    Cotizacion --> Pedido: persona, Confirmar
    Enviada --> Pedido: persona o cliente desde el portal
    Cotizacion --> Cancelada: persona
    Enviada --> Cotizacion: cambian precios o cantidades, vuelve a revisión
Diagrama 3. Estados y quién puede moverlos. La integración entra por un solo lugar, el borrador; todas las demás transiciones son humanas.

Dónde encajan las reglas de automatización de Odoo

Las reglas de automatización de Studio «allow the execution of one or more predefined actions in response to a specific trigger». Hay cinco categorías de disparador (valores actualizados, eventos de correo, condiciones de tiempo, personalizados y externos) y acciones como actualizar registro, crear actividad, enviar correo o SMS, enviar WhatsApp, ejecutar código o enviar un webhook. Sirven para avisar al vendedor cuando llega un borrador etiquetado o para devolver a revisión una cotización cuyo total cambió. No sirven para sustituir el control del servidor: la documentación recomienda activar el modo desarrollador para los filtros y, en Odoo Online, instalar Studio cambia la base al plan Custom.

Diagrama 4. Controles del lado del servidor: agente de solo lectura, cuenta técnica acotada, validación del estado en el servidor, registro de quién aprobó, idempotencia por mensaje de origen y regreso a revisión si cambian precios.
Ver diagrama Mermaid
flowchart TB
    A["Agente de IA: permisos de solo lectura"] --> B["Cuenta técnica separada: solo crear cotizaciones"]
    B --> C["Servidor valida el estado antes de enviar"]
    C --> D["Persona aprueba; queda registrado quién"]
    D --> E["Envío o confirmación"]
    B -. "clave de idempotencia por mensaje de origen" .-> B
    D -. "si cambian precios o cantidades" .-> C
Diagrama 4. Los controles que no son opcionales. Un botón de aprobación en la interfaz no es un control si la integración puede saltárselo.

Qué puede salir mal

Ejemplo hipotético

Este ejemplo ilustra un flujo propuesto; no presenta resultados de un cliente ni cifras. Una distribuidora recibe por correo: «Necesito 20 cajas de guantes de nitrilo medianos y 5 de guantes grandes, entrega el jueves, factura al RFC de siempre». La IA extrae dos líneas, la fecha y la instrucción de facturación; encuentra dos presentaciones de guante mediano y pregunta cuál; con la respuesta, consulta existencias y lista de precios del cliente y crea la cotización en estado Cotización con la etiqueta «Generada por IA» y la nota «origen: correo del 12 de octubre». El vendedor recibe una actividad, ve que hay 18 cajas disponibles del mediano, ajusta a 18 y 7, y envía. La instrucción de facturar no se ejecuta: la factura la emite contabilidad cuando corresponda. Si faltara un precio o el agente no tuviera permiso de leer la lista de precios, el flujo se detendría pidiendo validación. Consultar existencias no equivale a reservarlas.

Qué opinamos en Transgenia

Sobre la herramienta que usamos: MCP-Odoo-Tools es un servidor MCP de código abierto (MIT) con 28 herramientas, cobertura de Odoo 10 a 19 en Community, Enterprise y Online, modo de solo lectura y aviso de privacidad (Transgenia no intermedia ni almacena los datos; los resultados van al cliente MCP y al proveedor del modelo). Está en PyPI como odoo-mcp-tools 1.4.0 y como plugin «Odoo Tools» en el directorio de Claude, donde, según el panel de administración del directorio con datos al 11 de octubre de 2026, acumula 506 instalaciones, 203 cuentas activas en 28 días y 0 errores en 15,651 cargas.

Fuentes

Cada hecho técnico de esta guía se apoya en una fuente pública consultada el 12 de octubre de 2026. Las cifras del plugin son de Transgenia y se indican como tales.

Preguntas frecuentes

¿Puede la IA enviar la cotización al cliente si una persona ya revisó una similar?

No en nuestro método. Cada cotización es una decisión comercial distinta: precios, disponibilidad y condiciones cambian. El agente la deja en estado Cotización y el envío lo ejecuta una persona. El servidor valida ese estado antes de permitir el envío, de modo que la integración no pueda saltárselo.

¿En qué estado de Odoo debe quedar una cotización preparada por IA?

En Cotización, el estado inicial del modelo sale.order, con una etiqueta visible y una nota en el chatter que indique su origen. Los estados Cotización enviada y Pedido de venta quedan reservados a una persona: el primero con Enviar por correo, el segundo con Confirmar, que según la documentación de Odoo 19 convierte la cotización en un pedido de venta facturable.

¿Qué permisos necesita el agente de IA en Odoo?

Lectura de contactos, productos, listas de precios y existencias, y nada más. La creación del borrador la hace una cuenta técnica separada con permiso de crear cotizaciones, sin acceso a confirmar, entregar ni facturar. Con un servidor MCP en modo de solo lectura, toda escritura se rechaza antes de llegar a Odoo.

¿Funciona en Odoo Online?

Solo si el plan incluye la API externa: según la documentación de Odoo 19, el acceso a datos por la API externa está disponible únicamente en el plan Custom, no en One App Free ni Standard. En servidor propio y en Odoo.sh no existe esa restricción.

¿Sirve igual con Claude que con ChatGPT?

Sí. El modelo extrae datos estructurados y pregunta cuando hay ambigüedad; el control del flujo (estado de borrador, permisos, validación del servidor) no depende del modelo. Claude Code ejecuta servidores MCP locales, por eso es donde corre el plugin de Odoo; ChatGPT se conecta mediante la API de OpenAI o conectores de cada proveedor.

¿Qué pasa si el cliente pide un producto que no existe en el catálogo?

El agente no debe inventarlo ni elegir «el más parecido» en silencio. Crea el borrador con la línea pendiente y una nota interna que indique el ítem no encontrado, o pregunta antes de crear nada. El vendedor resuelve.

¿Las reglas de automatización de Studio bastan para imponer la aprobación?

Sirven para avisar (crear una actividad, enviar un correo o un mensaje de WhatsApp) y para devolver a revisión una cotización cuyo total cambió. No sustituyen la validación del servidor sobre el estado antes de enviar. Studio es de pago: en Odoo Online, instalarlo cambia la base al plan Custom.

¿Cómo evito cotizaciones duplicadas cuando la integración reintenta?

Usa el identificador del mensaje o correo de origen como clave de idempotencia: si ya existe un borrador con ese origen, no se crea otro. Es uno de los controles que probamos antes de abrir el canal.

¿La cotización aprobada genera la factura automáticamente?

No. Confirmar un pedido no debe timbrar nada por sí solo; la facturación sigue el flujo autorizado de contabilidad, con su propia revisión. Separar la confirmación comercial del CFDI evita facturas emitidas por un mensaje mal interpretado.

¿Qué versión de Odoo necesito?

Odoo 19 ofrece la API JSON-2 con clave API; en versiones anteriores se usa JSON-RPC o XML-RPC, que están programadas para retirarse en Odoo 22. El servidor MCP abierto de Transgenia cubre Odoo 10 a 19; el servicio de implementación se ofrece para 13 a 19.

¿Qué debo preparar antes de pedir una evaluación de este flujo?

El canal por el que llegan las solicitudes, ejemplos reales de solicitudes, la versión, edición y plan de Odoo, las listas de precios vigentes, quién aprueba hoy las cotizaciones y qué criterio de aceptación usarías para el piloto. Los accesos se acuerdan en la evaluación; no compartas credenciales.

¿Cómo se mide si el flujo funciona?

Con cuatro números por semana: borradores aprobados sin cambios, errores por tipo (producto, cantidad, precio), tiempo del vendedor por cotización y solicitudes que requirieron aclaración. Sin medición con evidencia no publicamos cifras ni ampliamos el alcance.

Siguiente paso

Si tu empresa ya opera Odoo y recibe solicitudes de cotización por correo o WhatsApp, revisa primero la oferta de implementación de IA e integración con Odoo y, si eres comercializadora o distribuidora, la página de Odoo para comercializadoras, donde están las tres guías juntas. Luego solicita una evaluación: definimos el proceso, los permisos y los criterios de aceptación antes de cotizar.

Sobre el autor y Transgenia

Efraín Carreón Ortiz es Director General de Centrum Transgenia, una boutique tecnológica mexicana. Está acreditado con la insignia oficial Claude Code (Claude Partner Badge) emitida por Anthropic, verificable en Credly.

Transgenia es OpenAI Select Partner dentro del OpenAI Partner Network y partner registrado en el Claude Partner Network de Anthropic. Equipo: Víctor Estrada Bello, Chief PMO; Danild Johan Zambrana López, Chief Technology Officer; Jaime Lozano Castañeda, Chief Marketing Officer; Efraín Carreón Ortiz, Director General (Chief Executive Officer).

Hablemos: contacto@transgenia.org, WhatsApp +52 55 8034 0405, agenda de 15 minutos o la página de contacto.

Sigue leyendo

← Volver al Blog
Transgenia, Verified IT agency on Vai.me