Escribir en Odoo
aidoo_create, aidoo_write, aidoo_workflow, aidoo_execute y aidoo_delete: qué acota realmente una escritura, los modos por lotes y cómo abrir la escritura sin correr riesgos.
7 min de lecturaActualizado el 24 de agosto de 2026
Pasar de la lectura a la escritura cambia la naturaleza de la herramienta: una respuesta errónea se corrige, una escritura aplicada permanece. Por eso ningún permiso de escritura se concede por defecto.
Qué acota realmente una escritura
La única barrera del servidor son tus permisos
En cada llamada, Aidoo comprueba que tu clave lleva el permiso requerido, que el modelo y los campos no están bloqueados, y que la herramienta solo invoca el método de Odoo al que está ligada. Estos controles se ejecutan en el servidor: el asistente no puede sortearlos. Todo lo demás depende de tu cliente y de tu atención.
La aprobación en la conversación. Claude o ChatGPT te muestra la llamada y sus argumentos, y espera tu consentimiento. Es tu mejor punto de control sobre los valores, pero pertenece al cliente: puesto en «Permitir siempre», desaparece. Consulta Conectarse con Claude.
Los hints, como salvaguarda de calidad. Si el modelo afectado tiene un hint, la herramienta devuelve tus instrucciones al asistente en lugar de escribir, y le pide que revise sus valores. Es lo que hace que se aplique una regla del tipo «toda actividad debe asignarse al comercial del cliente, nunca al usuario actual».
Esto orienta al asistente, no lo obliga
La devolución de los hints vive en la herramienta MCP, no en el servidor: es el asistente quien decide confirmar. Cuenta con ello para la exactitud de los valores, nunca como barrera de seguridad. Lo que acota lo posible son los permisos y el bloqueo de modelos.
aidoo_create
Crea uno o varios registros.
- Unitario:
model+values - Por lotes:
model+values_list, una lista de diccionarios
En modo por lotes, todo sale en una sola llamada a Odoo. Es más rápido y, sobre todo, más coherente: Odoo aplica sus restricciones al conjunto.
Crea los tres contactos siguientes en Odoo: María Dubois ([email protected]), Pablo Martín ([email protected]) y Sofía Bernal ([email protected]), todos vinculados a la empresa Ejemplo SA.
aidoo_write
Modifica registros existentes.
- Unitario:
ids+values, los mismos valores para todos los identificadores - Por lotes:
batch, una lista de{ids, values}, cada grupo recibe sus propios valores
El modo por lotes devuelve el detalle grupo a grupo: si falla el tercero, sabes cuál y por qué, y los dos primeros quedan aplicados.
Archivar en lugar de eliminar
Poner active a false retira el registro de las vistas sin destruir la información ni romper los documentos que lo referencian. En la práctica totalidad de los casos, es la respuesta correcta a «elimina este contacto».
aidoo_workflow
Dispara una acción de negocio de Odoo: los botones de tus pantallas. Confirmar un presupuesto, validar una factura, recibir una transferencia.
Parámetros: model, ids, action. Solo se aceptan los métodos con prefijo action_ o button_; el servidor rechaza todo lo demás.
Confirma el presupuesto S00042.
La ventaja frente a aidoo_write: la acción dispara toda la lógica de Odoo asociada, asientos contables, movimientos de stock, secuencias, correos. Modificar el campo state a mano no haría nada de eso y dejaría tu base incoherente.
Nunca fuerces un estado por escritura directa
Si el asistente te propone poner state a sale con aidoo_write, recházalo y pide la acción de negocio. Un presupuesto «confirmado» sin los asientos asociados es una bomba de relojería contable.
aidoo_execute
Llama a un método arbitrario de Odoo: la salida de emergencia para lo que las demás herramientas no cubren.
Parámetros: model, method, args, kwargs.
Los métodos que duplicarían una herramienta dedicada están bloqueados: create, write, unlink, read, search_read, read_group, fields_get, export_data, load, import_data. De lo contrario, una clave con execute podría sortear la ausencia de create o de delete.
Es la herramienta más potente del catálogo. Merece una decisión consciente, no una casilla marcada «por si acaso».
aidoo_delete
Elimina definitivamente (unlink). Sin papelera del lado de Odoo: solo la opción « Snapshot antes de escribir » de Aidoo (ver más abajo) permite volver atrás.
La operación más arriesgada del catálogo
Odoo se niega a menudo a eliminar un registro referenciado en otro sitio: eso es una protección, no un fallo. Cuando lo acepta, la información se pierde, salvo snapshot de Aidoo, e incluso entonces las líneas vinculadas no vuelven. Mantén este permiso cerrado en producción y ábrelo puntualmente para una limpieza identificada.
Volver atrás (deshacer)
Cada escritura exitosa puede anularse durante 7 días, desde el panel lateral de la operación en el detalle de un Flujo, o directamente desde la burbuja del chat del widget de Odoo.
- Creación: deshacer elimina los registros creados. Disponible en todas partes, sin ningún ajuste.
- Modificación: deshacer restaura los valores anteriores. Requiere el ajuste Configuración → Anulación de operaciones → Snapshot antes de escribir (desactivado por defecto: añade una lectura de Odoo antes de cada escritura).
- Eliminación: deshacer recrea los registros desde el snapshot, con nuevos identificadores; las líneas vinculadas, adjuntos e imágenes no se restauran. Mismo ajuste requerido.
La anulación se ejecuta con tu propia identidad de Odoo (la pista de auditoría te nombra) y puede activarla el autor de la operación o un administrador del workspace. Si alguien modificó el registro entre tanto, la anulación queda bloqueada y se muestran los campos en conflicto: nunca sobrescribe un trabajo más reciente.
Deshacer todo de una vez. El detalle de un Flujo ofrece «Deshacer todo» encima de sus pasos, y una burbuja del chat muestra el mismo botón cuando un mensaje lleva varias operaciones. Las anulaciones se ejecutan en el orden inverso de las escrituras (la última se deshace primero), y un rechazo individual (conflicto, bloqueo de Odoo) no detiene a las demás: el resultado detalla lo que se anuló y lo que queda.
Las acciones de negocio no se pueden deshacer
aidoo_workflow y aidoo_execute disparan la lógica completa de Odoo (asientos contables, movimientos de stock, correos…): no existe un inverso genérico. Para revertir la confirmación de un presupuesto o la validación de una factura, usa la acción inversa de Odoo cuando exista.
Abrir la escritura sin correr riesgos
Empieza por el entorno de pruebas
Si dispones de una copia de tu base, activa create y write únicamente en el entorno staging. Los permisos se configuran por separado en cada entorno.
Escribe tus reglas de negocio en los hints
Antes de abrir la escritura, documenta tus convenciones en el hint del modelo: campos obligatorios, valores prohibidos, a quién hay que asignar. Estas instrucciones se reinyectan en cada intento de escritura, antes de ejecutar.
Consulta Hints y aprendizaje.
Abre modelo a modelo, no en bloque
Bloquea los modelos sensibles, asientos contables, nóminas, usuarios, aunque el permiso write esté concedido. El bloqueo por modelo se aplica antes que el permiso.
Revisa el registro la primera semana
El registro de peticiones muestra cada escritura: quién, qué, cuándo y con qué valores. Es la mejor forma de comprobar lo que el asistente hace realmente, antes de ampliar su alcance.
Diagnóstico
«Permission create is required»
El permiso no está concedido a tu clave en ese entorno. Se configura en Claves API.

Si no puedes concederlo, un flujo de trabajo guardado puede realizar la operación: validado una vez al crearlo, se ejecuta después con el permiso workflow.
«Access Denied» del lado de Odoo
El permiso de Aidoo está, pero tu cuenta de Odoo no tiene derecho a escribir en ese modelo. La solución está en Odoo, no en Aidoo: añade el grupo que falta a tu cuenta.
La escritura ha funcionado pero nada cambia en Odoo
Mira la empresa activa y los filtros de tu vista. Un registro creado en otra empresa no aparece en la pantalla actual.
El asistente da vueltas pidiendo confirmación
El hint del modelo contiene una instrucción que el asistente no consigue satisfacer: un valor obligatorio del que no dispone, por ejemplo. Abre el hint y comprueba que sea aplicable; suele ser una regla escrita para un caso particular y aplicada a todos.
Siguiente paso
- Hints y aprendizaje: codificar tus reglas de negocio
- Seguridad y permisos: bloquear modelos y campos