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:

  1. Instala la app 'Studio' desde Aplicaciones si aún no está instalada.

  2. En la barra superior, activa el icono de Studio (herramientas).

  3. Selecciona el modelo o vista que quieres personalizar o crea una nueva aplicación desde cero.

  4. 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):

  1. Studio → Automation → New.

  2. Nombre y modelo objetivo.

  3. Elegir trigger (ej. On Update) y condiciones (dominio o expresión).

  4. Definir acciones (ej. Send Email o Execute Server Action).

  5. 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:

  1. Studio → Webhooks → New.

  2. Nombre y modelo objetivo.

  3. Odoo genera una URL secreta; habilita Log Calls para depuración.

  4. Define payload y la Server Action que se ejecutará al recibir la llamada.

  5. 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:

  1. Productos → Activar Studio.

  2. En Form view arrastra 'Char' y colócalo en la sección deseada.

  3. Label = 'Número de serie'. Marca 'Required' si es obligatorio. Añade Help Tooltip.

  4. 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:

  1. En el modelo objetivo, Studio → Automation → New.

  2. Trigger: On update. Condition: state == 'confirmed'.

  3. Action: Send Email → elegir plantilla o escribir contenido dinámico.

  4. 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:

  1. DB destino: Studio → Webhooks → New. Selecciona modelo objetivo y copia la URL generada.

  2. Habilita Log Calls para depuración.

  3. En DB origen: crear regla que 'Send Webhook Notification' a la URL destino con payload JSON.

  4. 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.