
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.
📌 En resumen
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.