Odoo Studio V18: Personaliza tus aplicaciones sin programar
Cada empresa tiene procesos únicos: campos adicionales en facturas, flujos de aprobación especiales, reportes a medida. El reto es que normalmente esto requiere programadores y proyectos largos de desarrollo. Con Odoo Studio en v18, puedes crear y personalizar aplicaciones sin escribir código: todo con interfaz gráfica, arrastrar y soltar, y lógica de negocio configurable. Esto permite a las áreas de negocio adaptarse rápido sin depender siempre del equipo técnico.
Martín Cisneros
10/14/20256 min read


1) ¿Qué es Odoo Studio y para qué sirve?
Odoo Studio es la herramienta low-code de Odoo que permite personalizar y crear aplicaciones, vistas, campos y automatizaciones sin escribir un módulo desde cero. Con Studio puedes añadir campos (char, date, relational, etc.), cambiar vistas (form, list, kanban…), crear menús, editar PDFs y configurar automatizaciones como acciones programadas o webhooks.
2) Acceso y primeros pasos (cómo abrir Studio)
Pasos para empezar:
Instala la app 'Studio' desde Aplicaciones si aún no está instalada.
En la barra superior, activa el icono de Studio (herramientas).
Selecciona el modelo o vista que quieres personalizar o crea una nueva aplicación desde cero.
Se abrirá el lienzo con la barra lateral de herramientas donde arrastrarás campos, bloques y automatizaciones.


3) Vista general de la interfaz (qué hay en la barra lateral)
La barra lateral de Studio suele contener:
Fields / Campos: lista de tipos de campos arrastrables.
Views / Vistas: cambiar o crear vistas (form, list, kanban, calendar, graph, pivot, gantt).
Automation / Automatizaciones: reglas automáticas, server actions, webhooks.
PDF Reports / Informes: editor de plantillas QWeb para PDFs.
Menus / Menú: Reorganizar y crear entradas de menú.
Access Rights / Reglas de acceso y export/import de personalización.
4) Campos y widgets — cada tipo, cómo y para qué
Resumen: Arrastra el campo al formulario (o usa Add > Field) y edita sus propiedades.
Propiedades comunes: Label, Nombre técnico (developer mode), Help Tooltip, Widget, Placeholder, Default value, Required, Read-only, Visibility (grupos).
Tipos básicos:
Char (texto corto): etiqueta, longitud, placeholder. Uso: códigos, referencias.
Text (textarea): texto multilínea.
Integer/Float/Monetary: números; Monetary usa campo currency_id asociado.
HTML: editor WYSIWYG para contenidos ricos.
Date / Datetime: fecha / fecha + hora; widgets como Date Range disponibles.
Booleanos/Selección:
Boolean: checkbox, toggle, button.
Selection: valores predefinidos; widgets: badge, radio, statusbar.
Binarios y multimedia:
Binary / File: archivos, imágenes (widget image), firma (widget sign). Útil para adjuntar documentación.
Relacionales (importante entender):
Many2one (muchos a uno): referencia a un registro de otro modelo. Configura el 'comodel' y dominio para filtrar.
One2many (uno a muchos): colección derivada; requiere un campo inverso (Many2one) en el modelo relacionado.
Many2many (muchos a muchos): Relación bidireccional; útil para tags y categorías múltiples.


Notas técnicas:
Many2one crea la columna FK (Foreign Key) en la base de datos. One2many no crea columna propia, sino que usa la FK del otro modelo. Para lógica más compleja o validaciones únicas, se suele usar Server Actions o desarrollar un módulo Python.
5) Widgets y visualización avanzada (por campo)
Status Bar (para campos Selection): ideal para pipelines y Kanban.
Date Range: presenta fecha inicio/fin en una única sección (requiere dos campos subyacentes).
Monetary: Añade currency_id oculto y activa funcionalidades en gráficos/pivots.
Image: Vista previa en cabecera del formulario si se ubica allí.
Checkbox → Toggle / Button: controles más visuales para booleanos.
6) Bloques y layout (cómo construir formularios limpios)
Elementos disponibles:
Group: Agrupa campos horizontal/vertical.
Notebook / Page / Tab: Pestañas para organizar información.
Separator: Separadores visuales.
Label: Texto estático explicativo.
Lines / One2many: Zonas para añadir líneas (ej. facturas/órdenes).
StatusBar: Barra de estado vinculada a un campo selection.
Smart Buttons / Action Buttons: Botones que ejecutan acciones o abren vistas relacionadas.
7) Vistas que puedes editar con Studio
Studio permite editar y crear las siguientes vistas:
Form view (formulario de edición de registros).
List/Tree view (listados/tablas).
Kanban (tarjetas en pipeline).
Calendar (eventos/fechas).
Graph/Pivot (gráficos y pivotes para análisis).
Gantt (proyectos/planificación).
Search view (filtros guardados, medidas).
8) Automatizaciones (Automated Actions / Server Actions)
Triggers disponibles: On Creation, On Update, On Deletion, On Change, On Schedule (programado), On Webhook (entrada externa).
Acciones posibles: Execute Python code (Server Action), Create/Update records, Send Email, Send Webhook, Add followers, Create next activity, Chain multiple actions.
Cómo crear una regla (paso a paso):
Studio → Automation → New.
Nombre y modelo objetivo.
Elegir trigger (ej. On Update) y condiciones (dominio o expresión).
Definir acciones (ej. Send Email o Execute Server Action).
Guardar y probar en una BD de test antes de producción.
Server Actions: Permiten ejecutar código Python en el servidor. Útil para lógicas complejas, pero revisar limitaciones en entornos hospedados (Odoo Online/Odoo.sh).


9) Webhooks — recibir y enviar datos en tiempo real.
Cómo crear/usar webhooks:
Studio → Webhooks → New.
Nombre y modelo objetivo.
Odoo genera una URL secreta; habilita Log Calls para depuración.
Define payload y la Server Action que se ejecutará al recibir la llamada.
Prueba en entorno de desarrollo antes de producción.


10) Informes PDF (QWeb) — cómo editarlos en Studio
Studio permite editar las plantillas QWeb de reportes (factura, cotización, albarán):
Abrir Reports en Studio y seleccionar el reporte a editar.
Usar el editor visual para cambios simples o el editor XML para ajustes avanzados (requiere conocimientos de QWeb/HTML).
Probar siempre la vista previa para verificar el resultado en PDF.


11) Crear modelos y aplicaciones / Exportar personalizaciones
Con Studio puedes crear un nuevo modelo (tabla) y una aplicación completa: vistas, campos y menú inicial.
Al usar features como Tags, Pipeline o Lines, Studio crea modelos relacionados automáticamente. Puedes exportar la personalización como un módulo (studio_customization) para importarlo en otra BD.


12) Seguridad y visibilidad (Access Rights / Record Rules£).
En Studio puedes controlar la visibilidad de campos por grupos (Allow visibility to groups / Forbid visibility).
Cambios relevantes en ACL o Record Rules deben probarse cuidadosamente: errores pueden dejar funciones inaccesibles. Para ajustes avanzados, revisa Settings → Technical → Security.


13) Limitaciones y buenas prácticas
Limitaciones a considerar:
No sustituye el desarrollo cuando la lógica es muy compleja (transacciones, librerías externas, tests unitarios).
Evitar Server Actions con código demasiado largo (difícil de mantener).
Probar siempre en copia de la BD antes de aplicar cambios en producción.
Exportar y versionar el ZIP de studio_customization con regularidad.
14) Ejemplos prácticos (paso a paso)
Ejemplo A — Añadir campo 'Número de serie' (Char) al formulario de Producto.
Pasos:
Productos → Activar Studio.
En Form view arrastra 'Char' y colócalo en la sección deseada.
Label = 'Número de serie'. Marca 'Required' si es obligatorio. Añade Help Tooltip.
Guardar y probar creando un producto.
Alcance / límites: Studio crea el campo en la base de datos; si necesitas que el valor sea único, debes crear una validación extra mediante Server Action o módulo Python.
Ejemplo B — Automatización: enviar email al pasar a estado 'confirmed'
Pasos:
En el modelo objetivo, Studio → Automation → New.
Trigger: On update. Condition: state == 'confirmed'.
Action: Send Email → elegir plantilla o escribir contenido dinámico.
Guardar y probar creando el cambio de estado.
Alcance: útil para notificaciones; para lógicas complejas de envío masivo, combinar con colas y trabajos programados.
Ejemplo C — Webhook para sincronizar un campo desde otra BD
Pasos:
DB destino: Studio → Webhooks → New. Selecciona modelo objetivo y copia la URL generada.
Habilita Log Calls para depuración.
En DB origen: crear regla que 'Send Webhook Notification' a la URL destino con payload JSON.
Probar con Postman o cambios en origen; revisar logs en destino.
Alcance: potente para integraciones simples; para sincronizaciones complejas conviene usar módulos o middleware que manejen colas y reintentos.
15) Checklist antes de publicar en producción
Probar en BD duplicada.
Revisar y documentar Server Actions.
Validar reglas de acceso (ACL/Record Rules).
Exportar studio_customization y guardar versión.
Hacer pruebas de integración (webhooks/outbounds).
Recursos oficiales y lectura recomendada
Documentación oficial de Odoo Studio (Fields, Views, Automation, Reports).
Tutoriales de Odoo para QWeb y Server Actions.
Odoo Studio v18 permite que el negocio tome control de las personalizaciones: crear campos, vistas, automatizaciones y aplicaciones sin depender siempre de desarrolladores. Sin embargo, hay límites: para lógica compleja y componentes críticos, sigue siendo recomendable un módulo desarrollado a medida y buenas prácticas de pruebas y versionado.
En Exdoo podemos desarrollar cualquier módulo para Odoo en México, implementamos tu ERP con consultores experimentados no solo en Odoo, sino en procesos de negocios; tenemos 10 años trabajando solamente con Odoo en México y otros países.
Exdoo TI S DE RL DE CV
10 años de experiencia en Odoo