Adjuntos y OCR
aidoo_attach: introducir un documento en Odoo mediante un enlace de envío de un solo uso, activar la digitalización de una factura de proveedor y adjuntar un archivo en el chat.
7 min de lecturaActualizado el 16 de septiembre de 2026
Adjuntar un archivo a un registro de Odoo desde una conversación plantea un problema: un PDF de dos páginas convertido a base64 son cientos de miles de caracteres. Hacerlo pasar por una llamada de herramienta saturaría la conversación.
Aidoo lo resuelve de otro modo: el archivo nunca pasa por la IA. El asistente genera un enlace de envío, tú depositas el documento y Aidoo lo entrega a Odoo.
aidoo_attach
Una sola herramienta, dos acciones.
| Parámetro | Función |
|---|---|
action | request_upload para crear el enlace, status para recoger el resultado |
files | Las ranuras declaradas: una etiqueta, y obligatoria o no |
model + res_id | El registro de Odoo al que adjuntar los archivos |
purpose | invoice para disparar la digitalización de una factura de proveedor |
journal_id | El diario de compras deseado, si tienes varios |
upload_id | El identificador de envío, para la acción status |
model + res_id y purpose="invoice" se excluyen entre sí: o adjuntas a un registro existente, o creas una factura a partir del documento.
El principio
El asistente pide un enlace
Llama a aidoo_attach con action="request_upload" y declara los archivos esperados: una etiqueta por ranura, y si es obligatoria o no. Hasta diez ranuras.
Recibes una URL
El asistente te pasa el enlace. Es de un solo uso y válido durante 30 minutos.
Depositas tus archivos
La página muestra las ranuras con las etiquetas definidas por el asistente: «Factura de proveedor marzo 2026», «Contrato firmado». Arrastras tus archivos y validas.

El asistente recoge el resultado
Llama a aidoo_attach con action="status" y el identificador de envío. Obtiene pending, completed o error, y en caso de éxito los identificadores de los adjuntos creados en Odoo.
Adjuntar a un registro existente
Tengo el contrato firmado de Ejemplo SA para poner en su ficha de cliente.
El asistente localiza la ficha, genera un enlace que apunta a ese registro concreto y te lo entrega. Tras tu envío, el archivo aparece en los adjuntos de la ficha en Odoo.
Puedes pedir varias ranuras a la vez, algunas de ellas opcionales:
Tengo que adjuntar el contrato firmado y, si lo encuentro, el anexo técnico, en la ficha del cliente Ejemplo SA.
Digitalizar una factura de proveedor
El segundo uso, y el más útil en el día a día. Con purpose="invoice", Aidoo no se limita a adjuntar el archivo: lo entrega al motor de digitalización de facturas de Odoo, que extrae proveedor, fechas, importes y líneas, y crea una factura de proveedor en borrador.
Tengo tres facturas de proveedor que registrar, ¿puedes digitalizármelas?
El asistente genera un enlace con tres ranuras. Depositas tus PDF o fotos y Odoo crea tres borradores de factura.
El diario utilizado
Por defecto, el primer diario de compras de tu empresa. Si tienes varios (por entidad, por tipo de gasto), indícalo: «en el diario de compras Gastos generales».
La digitalización es una ayuda a la introducción de datos
El OCR de Odoo se equivoca: un importe mal leído, un proveedor no reconocido, un IVA aproximado. Las facturas se crean en borrador precisamente para que las revises. No valides nunca en masa sin control.
Esta funcionalidad depende del módulo de digitalización de Odoo. Si no está instalado o activado en tu instancia, la llamada falla con un error explícito.
Lo que se acepta
| Restricción | Valor |
|---|---|
| Tamaño máximo por archivo | 20 MB |
| Ranuras por enlace | 10 |
| Validez del enlace | 30 minutos |
| Número de usos | 1 |
Los tipos de archivo se controlan por su contenido real, no por su extensión: renombrar un ejecutable como .pdf no engaña al filtro. Se aceptan once extensiones: pdf, png, jpg, jpeg, webp, xlsx, docx, xls, doc, csv y txt.
Seguridad del enlace
Un enlace, un envío
El token se consume de forma atómica en el primer envío correcto. Aunque el enlace se filtre después, ya no sirve de nada. Pasados 30 minutos sin usarse, caduca solo.
El enlace no da acceso a nada más: no permite leer tus datos, solo depositar los archivos declarados, hacia el destino fijado al crearlo. Un enlace generado para la ficha de cliente 42 no puede usarse para escribir en otro sitio.
La página de envío está protegida frente a intentos repetidos, y los archivos nunca se escriben en el disco de Aidoo: pasan por memoria camino de Odoo.
Permiso necesario
aidoo_attach exige el permiso attach, desactivado por defecto. Se activa en Claves API.
No disponible para los agentes
Los agentes autónomos no pueden usar aidoo_attach. La herramienta presupone una persona que recibe un enlace y deposita un archivo: sin interlocutor, no tiene sentido. Es una prohibición absoluta del motor de reglas, no un ajuste.
Diagnóstico
El enlace ha caducado
Pasados 30 minutos hay que pedir otro. Dile simplemente al asistente que el enlace ha caducado.
«Archivo rechazado»
El contenido no corresponde a un tipo autorizado, o supera los 20 MB. Para un escaneo voluminoso, reduce la resolución: 300 ppp bastan de sobra para el OCR.
El estado se queda en «pending»
El envío no se ha completado. Recarga la página de envío y comprueba que ninguna ranura obligatoria haya quedado vacía.
La factura se crea pero sale vacía
El OCR no ha reconocido nada. Ocurre con fotos borrosas, escaneos muy inclinados y facturas manuscritas. El archivo queda adjunto al borrador: puedes introducir los datos a mano teniéndolo delante.
Adjuntar un archivo en el chat
Desde el 16 de septiembre de 2026, las conversaciones ofrecen un clip: la discusión de un agente en Aidoo, el chat de un agente en el widget de Odoo y el chat «Aidoo AI». También puedes arrastrar un archivo a la zona de escritura o pegar una imagen. Hasta 5 archivos por mensaje, 20 MB cada uno.
| Tipo | Tratamiento | Coste |
|---|---|---|
Imágenes (png, jpg, webp) | Redimensionadas (1600 px, metadatos eliminados) y mostradas al modelo | Tokens del modelo |
PDF, Word (docx, doc) | Leídos por el lector de documentos (visión) y transcritos a texto | 1 crédito por cada 20 páginas, 30 páginas máx., una sola vez por archivo idéntico |
Hojas de cálculo (xlsx, csv) | Convertidas en tabla de texto (máximo 500 filas y 40 columnas por hoja) | Gratis |
Texto (txt, md) | Inyectado tal cual (máximo 60 000 caracteres) | Gratis |
Solo para modelos que ven imágenes
El clip solo está activo si el modelo del chat tiene visión (Claude, GPT-5, Gemini). La biblioteca de modelos lo indica con una insignia de clip; el modelo «Auto» no forma parte hoy. Con otro modelo el botón queda atenuado y la explicación aparece al pasar el cursor.
Lo que conviene saber:
- El archivo nunca se escribe en Odoo. Solo sirve para la conversación y desaparece de Aidoo a los 7 días. Para archivarlo en Odoo, usa
aidoo_attachmás arriba. - El contenido llega al modelo como un dato del usuario, nunca como una instrucción: un documento que contenga instrucciones se señala, no se ejecuta.
- El texto extraído de un documento sigue visible para el modelo durante el resto de la conversación. Una imagen solo acompaña al mensaje en el que la adjuntaste: vuelve a enviarla si la retomas más tarde.
- La lectura de PDF y Word sigue el ajuste del espacio «Lectura de documentos» (Ajustes). Desactivado, solo se aceptan imágenes, hojas de cálculo y texto.
- Como con el enlace de envío, el tipo se comprueba por el contenido real del archivo, en memoria, sin escritura en disco; un adjunto solo puede enviarse una vez, por la persona que lo subió.
Siguiente paso
- Hints y aprendizaje: enseñar tus convenciones al asistente
- Seguridad y permisos: decidir quién puede subir archivos