Descubre paso a paso cómo integrar Odoo con Tableau y Qlik Sense, configurando conexiones, extrayendo datos y creando dashboards interactivos.
Introducción
Odoo se ha consolidado como una de las plataformas ERP/CRM de código abierto más flexibles y extensibles del mercado. Su arquitectura modular permite adaptar procesos de negocio a cualquier sector, pero para obtener el máximo valor de la información es necesario combinarla con herramientas de Business Intelligence (BI) que faciliten el análisis visual y la toma de decisiones.
En este artículo técnico profundizaremos en la Odoo integración BI con dos de los líderes del segmento: Tableau y Qlik Sense. Veremos cómo conectar ambos sistemas, qué modelos de datos son más adecuados, y qué consideraciones de seguridad y rendimiento deben tenerse en cuenta.
Arquitectura de integración
La integración entre Odoo y una herramienta BI suele seguir uno de los siguientes patrones:
- Extracción directa vía API REST: Odoo expone sus datos a través de la API JSON-RPC o la nueva API REST (a partir de la versión 14). La herramienta BI consume los endpoints y transforma la información en tablas temporales.
- Conexión mediante ODBC/JDBC: Se instala un conector ODBC que permite a Tableau o Qlik Sense consultar la base de datos PostgreSQL de Odoo como si fuera una fuente relacional tradicional.
- Exportación a ficheros CSV/Excel: En entornos con restricciones de acceso directo, se programan exportaciones periódicas que la herramienta BI importa mediante conectores de ficheros.
El método más recomendable para entornos productivos es la combinación de API REST para datos transaccionales y ODBC para consultas de reporting histórico, ya que ofrece un buen equilibrio entre flexibilidad y rendimiento.
Conexión de Odoo con Tableau
1. Preparación del entorno Odoo
Para que Tableau pueda consumir los datos, es necesario habilitar la API y crear un usuario con los permisos adecuados:
- Acceder a Configuración → Usuarios & Empresas → Usuarios y crear un usuario técnico, por ejemplo
tableau_user. - Asignar los grupos
Technical FeaturesyAccess Rightsque permitan la lectura de los modelos requeridos (ventas, compras, inventario, contabilidad, etc.). - Generar un token de autenticación mediante Preferencias → API Keys. Guardar el
API Keyy elSecretpara usarlos en Tableau.
2. Configuración del conector Odoo en Tableau
Tableau Desktop incluye la opción Web Data Connector (WDC). Se puede utilizar un conector público disponible en GitHub o desarrollar uno propio siguiendo la documentación de Tableau SDK.
Pasos básicos:
- Seleccionar Conectar → Web Data Connector.
- Introducir la URL del conector, por ejemplo
https://github.com/odoo/tableau-wdc. - En la pantalla de configuración, ingresar la URL base de Odoo (p.ej.
https://miempresa.odoo.com), elAPI Keyy elSecret. - Seleccionar los modelos (objects) que se desean extraer:
sale.order,purchase.order,stock.move,account.move, etc. - Definir filtros de fecha y estado para limitar la carga de datos.
- Ejecutar la extracción y validar que los datos aparecen en Tableau como fuentes de datos.
3. Modelado y creación de visualizaciones
Una vez los datos están en Tableau, se recomienda crear vistas intermedias (extracts) que incluyan:
- Campos clave:
id,name,date_order,state,amount_total,partner_id. - Uniones con tablas de referencia:
res.partner(clientes/proveedores),product.product(productos). - Cálculos de KPI: margen bruto, rotación de inventario, tiempo medio de cobro.
Con estos extracts, los analistas pueden diseñar dashboards interactivos que muestren la evolución de ventas, el cumplimiento de objetivos y la salud financiera de la compañía.
Conexión de Odoo con Qlik Sense
1. Preparación del conector ODBC
Qlik Sense dispone de un conector nativo para PostgreSQL, que permite leer directamente la base de datos de Odoo. Los pasos son:
- Instalar el driver ODBC de PostgreSQL en el servidor donde se ejecuta Qlik Sense.
- Crear una DSN (Data Source Name) llamada, por ejemplo,
Odoo_Postgres, indicando la dirección del host, el puerto (5432), la base de datos (odoo) y las credenciales de un usuario con permisos de solo lectura. - En Qlik Sense, ir a Data load editor y añadir una conexión a la DSN creada.
2. Selección de tablas y vistas
Para evitar cargar datos innecesarios, es aconsejable crear vistas en PostgreSQL que consoliden la información requerida. Por ejemplo:
CREATE VIEW vw_sales_summary AS
SELECT so.id,
so.name,
so.date_order,
so.state,
so.amount_total,
rp.name AS partner_name,
pt.name AS product_name,
sm.quantity,
sm.price_unit
FROM sale_order so
JOIN res_partner rp ON so.partner_id = rp.id
JOIN sale_order_line sol ON sol.order_id = so.id
JOIN product_product pp ON sol.product_id = pp.id
JOIN product_template pt ON pp.product_tmpl_id = pt.id
JOIN stock_move sm ON sm.sale_line_id = sol.id;
Esta vista ya incluye la información de ventas, cliente y producto, lo que simplifica la carga en Qlik Sense.
3. Script de carga en Qlik Sense
Un ejemplo de script de carga sería:
LIB CONNECT TO 'Odoo_Postgres';
Sales:
LOAD id,
name,
date_order,
state,
amount_total,
partner_name,
product_name,
quantity,
price_unit;
SQL SELECT * FROM vw_sales_summary;
DROP TABLE vw_sales_summary;
Una vez cargados los datos, se pueden crear visualizaciones con las funciones de Qlik Sense, como Set Analysis para filtrar periodos, o Variables para calcular indicadores dinámicos.
Modelado de datos y buenas prácticas
| Aspecto | Recomendación | Impacto |
|---|---|---|
| Normalización vs Desnormalización | Desnormalizar los datos críticos (ventas, compras) en vistas específicas para reducir joins en tiempo de consulta. | Mejora del rendimiento en Tableau y Qlik Sense. |
| Filtrado incremental | Utilizar campos write_date o last_update para cargar solo los registros modificados desde la última extracción. |
Disminuye el tiempo de carga y el consumo de ancho de banda. |
| Gestión de claves primarias | Mantener los IDs de Odoo como claves únicas en los modelos BI y crear claves surrogate cuando sea necesario para relaciones many‑to‑many. | Evita duplicados y facilita la integración con otras fuentes. |
| Seguridad de datos | Aplicar row‑level security en Tableau y Qlik Sense mediante reglas basadas en el campo user_id de Odoo. |
Garantiza que cada usuario vea solo la información autorizada. |
Seguridad y cumplimiento
La exposición de datos de Odoo a herramientas externas debe gestionarse con los siguientes controles:
- HTTPS obligatorio para todas las llamadas a la API REST.
- Tokens de acceso con caducidad y rotación periódica.
- Roles de solo lectura en la base de datos PostgreSQL para conexiones ODBC/JDBC.
- Auditoría de logs en Odoo (módulo auditlog) para rastrear quién accede a qué datos y cuándo.
- Cifrado de datos en reposo mediante la configuración de PostgreSQL con
pgcryptosi la normativa lo exige.
Rendimiento y escalabilidad
Para entornos con gran volumen de transacciones, se aconseja:
- Utilizar materialized views en PostgreSQL para pre‑agregar datos de alto nivel (por ejemplo, ventas mensuales por región).
- Configurar caching en Tableau Server o Qlik Sense Enterprise, de forma que los extracts se actualicen en horarios de baja carga.
- Monitorizar los tiempos de respuesta de la API con herramientas como Postman Monitor o Grafana conectado a los logs de Odoo.
- Dimensionar adecuadamente los recursos de CPU y RAM del servidor Odoo, especialmente si se habilitan módulos de reporting intensivo.
Casos de uso típicos
A continuación, se describen algunos escenarios donde la Odoo integración BI aporta valor añadido:
- Dashboard de ventas en tiempo real: combina datos de
sale.orderycrm.leadpara visualizar el funnel de oportunidades y el cierre de negocios. - Análisis de rentabilidad por producto: cruza
account.moveconproduct.productpara obtener márgenes netos y comparar líneas de producto. - Control de inventario y rotación: usa la tabla
stock.movepara medir días de inventario disponible y detectar productos obsoletos. - Seguimiento de cumplimiento de objetivos financieros: integra datos de contabilidad y presupuestos para comparar resultados reales contra el plan.
Conclusiones
Integrar Odoo con Tableau y Qlik Sense permite transformar la gran cantidad de datos operativos que genera la plataforma en información estratégica accesible para todos los niveles de la organización. La clave del éxito radica en definir una arquitectura clara (API + ODBC), crear vistas o extracts optimizados, y aplicar buenas prácticas de seguridad y rendimiento.
Con los pasos descritos en este artículo, los equipos técnicos pueden implementar una solución robusta que garantice datos actualizados, dashboards interactivos y una visión integral del negocio, todo ello manteniendo la flexibilidad y la escalabilidad que caracterizan a Odoo y a las plataformas BI líderes.
Temas relacionados:



