Odoo es uno de los ERPs mas usados por pymes en Espana y Latinoamerica. Pero su potencial se multiplica cuando lo conectas con un agente IA que automatiza tareas del CRM: crear leads, actualizar oportunidades, programar seguimientos y generar informes. Todo desde lenguaje natural.
Este no es un tutorial teorico. En Sphyrna Solutions usamos Odoo internamente y hemos construido un agente IA que interactua con nuestro CRM. Aqui te explico la arquitectura, las decisiones tecnicas y los resultados reales.
Por que conectar un agente IA con Odoo
Odoo tiene una API XML-RPC robusta, pero usarla requiere conocer los modelos, campos y metodos de cada modulo. Un comercial no va a escribir codigo Python para crear un lead. Pero si puede decirle a un agente IA en lenguaje natural:
“Crea un lead para la empresa TechCorp, contacto Ana Garcia, email ana@techcorp.com, interesados en automatizar atencion al cliente. Ingresos esperados 15.000 euros.”
Y el agente traduce eso en las llamadas API correctas a Odoo, creando el lead con todos los campos rellenos. Sin formularios, sin navegar por menus, sin errores de entrada manual.
Casos de uso concretos
- Crear leads y oportunidades desde lenguaje natural (email, WhatsApp, chat interno)
- Actualizar etapas del pipeline de ventas automaticamente basandose en eventos
- Buscar informacion de contactos y empresas sin abrir Odoo
- Programar actividades de seguimiento con fechas y responsables
- Generar resumenes de pipeline: cuantas oportunidades, valor total, tasa de conversion
- Cualificar leads automaticamente con preguntas inteligentes
Arquitectura del agente
La arquitectura se basa en tres componentes principales:
1. LangGraph como orquestador
LangGraph es el framework que orquesta el flujo del agente. Define un grafo de estados donde cada nodo es un paso del razonamiento: recibir la instruccion, decidir que herramientas usar, ejecutarlas, y formular la respuesta.
La ventaja sobre llamar directamente al LLM es que el flujo es explicito, depurable y reproducible. Si algo falla, sabes exactamente en que nodo ocurrio y por que.
2. Herramientas (Tools) para Odoo
Cada operacion de Odoo se encapsula en una herramienta que el agente puede invocar. Las herramientas principales que implementamos:
- odoo_search_records: buscar registros en cualquier modelo de Odoo (res.partner, crm.lead, etc.)
- odoo_create_record: crear registros nuevos con validacion de campos
- odoo_update_record: actualizar campos de registros existentes
- odoo_call_method: ejecutar metodos de negocio (action_confirm, action_set_won, etc.)
- odoo_read_group: obtener agregaciones (totales, promedios, conteos por grupo)
Cada herramienta tiene una descripcion clara que el LLM usa para decidir cuando invocarla. Por ejemplo, la herramienta de busqueda especifica que modelos puede consultar y que campos son disponibles.
3. Conexion via XML-RPC
Odoo expone su API via XML-RPC en dos endpoints: /xmlrpc/2/common para autenticacion y /xmlrpc/2/object para operaciones CRUD. La autenticacion usa URL del servidor, nombre de la base de datos, usuario y API key (recomendada sobre password en produccion).
Un detalle importante: el username es obligatorio incluso cuando usas API key. La API key sustituye al password, no al login. Este es un error comun que genera problemas de autenticacion dificiles de diagnosticar.
Ejemplo practico: crear un lead por lenguaje natural
Veamos el flujo completo cuando un usuario le dice al agente: "Crea un lead para Maria Lopez de la empresa FoodTech, email maria@foodtech.es, interesada en automatizar pedidos por WhatsApp, presupuesto estimado 8.000 euros".
Paso 1: El agente analiza la instruccion
El LLM extrae los datos estructurados: nombre del contacto (Maria Lopez), empresa (FoodTech), email (maria@foodtech.es), necesidad (automatizar pedidos por WhatsApp), y presupuesto (8.000 euros).
Paso 2: Busca si ya existe el contacto
Antes de crear nada, el agente busca en res.partner por email para evitar duplicados. Regla de oro: siempre buscar antes de crear. Si encuentra un contacto existente, lo reutiliza.
Paso 3: Crea el contacto si no existe
Si no encuentra el contacto, crea un nuevo registro en res.partner con los datos extraidos. Tambien crea la empresa (is_company=True) si no existe, y vincula el contacto como hijo de la empresa (parent_id).
Paso 4: Crea la oportunidad en el CRM
Con el partner_id del contacto, crea una nueva oportunidad en crm.lead con el tipo "opportunity", los ingresos esperados (expected_revenue: 8000), y una descripcion que captura la necesidad del cliente. El lead se asigna automaticamente a la etapa inicial del pipeline.
Paso 5: Confirma al usuario
El agente devuelve un resumen: "Lead creado para Maria Lopez (FoodTech) con ID #245. Oportunidad por 8.000 euros en etapa 'Nuevo'. Se ha programado una actividad de seguimiento para dentro de 3 dias."
Lecciones de nuestra implementacion real
Tras meses usando este sistema internamente, estas son las lecciones mas importantes:
Siempre buscar antes de crear
El error mas comun en integraciones con CRM es crear duplicados. El agente debe buscar por email, nombre o referencia antes de crear cualquier registro. Esto parece obvio pero la mayoria de integraciones lo ignoran.
Especificar campos en cada busqueda
Nunca buscar sin especificar los campos que necesitas. Un search_read sin campos definidos devuelve TODOS los campos del modelo, lo que puede significar decenas de campos innecesarios que consumen tokens del LLM y ralentizan la respuesta.
Usar fields_get para descubrir modelos
Odoo tiene cientos de modelos con campos que varian entre versiones e instalaciones. En lugar de hardcodear los nombres de campos, el agente puede llamar a fields_get para descubrir la estructura del modelo en tiempo real. Esto hace la integracion robusta frente a actualizaciones de Odoo.
Confirmar acciones destructivas
El agente nunca debe confirmar pedidos, publicar facturas o eliminar registros sin pedir confirmacion al usuario. Estas acciones tienen efectos en cadena (movimientos de stock, asientos contables) que son dificiles de revertir.
Resultados: metricas reales
Desde que implementamos el agente IA con nuestro Odoo CRM:
- Tiempo medio para crear un lead: de 3-5 minutos manual a 15 segundos con el agente
- Tasa de duplicados en el CRM: reducida del 12% al 1%
- Seguimientos olvidados: reducidos un 90% gracias a actividades programadas automaticamente
- Tiempo dedicado a tareas administrativas del CRM: reducido un 70%
Stack tecnico completo
- Python 3.11+ como lenguaje base
- LangGraph para orquestacion del agente
- Odoo 18 como ERP/CRM
- XML-RPC para comunicacion con Odoo API
- FastAPI como servidor de la API del agente
- Claude o GPT-4o como LLM de razonamiento
- Docker para despliegue en produccion
Conclusion
Conectar un agente IA con Odoo no es ciencia ficcion: es una integracion practica que cualquier empresa con Odoo puede beneficiarse. La clave es una buena arquitectura (LangGraph + herramientas bien definidas) y las reglas de negocio correctas (buscar antes de crear, confirmar acciones destructivas, especificar campos).
En Sphyrna Solutions usamos esta arquitectura internamente y la ofrecemos a nuestros clientes. Si tu empresa usa Odoo y quieres explorar como un agente IA puede multiplicar la productividad de tu equipo comercial, hablemos.
Tambien te puede interesar: Agente IA vs Chatbot: diferencias reales en 2026 y nuestros casos de uso de agentes IA para empresas.
