Odoo
Odoo conecta tu flujo con tu instancia de Odoo para trabajar con sus registros sin entrar en Odoo: contactos, notas, oportunidades, pedidos de venta, facturas, albaranes, pagos y productos. Si necesitas otro tipo de registro, puedes trabajar con cualquier modelo de Odoo indicando su nombre.
Es útil para que las ventas, los clientes y los cobros que nacen en otros sistemas (una tienda online, un formulario, un agente de IA) lleguen a Odoo, o para consultar datos de Odoo y usarlos en el resto del flujo.
Cuándo usarlo
- Un cliente se registra en tu web y quieres crearlo como contacto en Odoo.
- Llega un pedido de tu tienda online y quieres crear el pedido de venta en Odoo y confirmarlo.
- Quieres un informe con las facturas pendientes de cobro.
- Se registra un cobro en tu pasarela de pago y quieres anotar el pago en Odoo.
- Un agente de IA atiende a tus clientes y necesita consultar sus pedidos o facturas.
Configuración
Necesitas una credencial Odoo API con la dirección de tu servidor de Odoo, el nombre de la base de datos, tu usuario y una clave de API de Odoo. Consulta Credenciales.
| Campo | Qué hace |
|---|---|
| Credential (obligatorio) | La credencial Odoo API con la que se accede a tu Odoo. |
| Operation (obligatorio) | Lo que hace el componente. Ver Operaciones. |
| Resource Type (obligatorio) | El tipo de registro: contact (contacto), note (nota), opportunity (oportunidad), order (pedido de venta), invoice (factura), delivery_note (albarán), payment (pago), product (producto) o custom resource (otro modelo de Odoo). Por defecto, contact. Según el tipo elegido aparecen sus campos. |
| Resource ID (obligatorio) | El identificador del registro en Odoo. En Update Resource, Get Resource, Delete Resource y Confirm Resource. |
Campos de cada tipo de registro
Estos campos se usan al crear o modificar el registro (Create Resource y Update Resource).
| Tipo | Campos |
|---|---|
contact | Name (obligatorio), Email, Phone. |
note | Memo (obligatorio): el texto de la nota. Open: si la nota queda abierta; activado por defecto. Color: el color de la nota, como número; por defecto, 2. Desde Odoo 17, donde las notas pasaron a ser la app To-do, se crea una tarea pendiente: la primera línea de Memo es su título y, con Open desactivado, queda como hecha. |
opportunity | Name (obligatorio). Partner ID: el identificador del contacto. Probability: probabilidad de éxito de 0 a 100; por defecto, 100. Expected Revenue: ingresos esperados; por defecto, 5000. Lead: si está activado se crea como iniciativa (lead) en lugar de oportunidad; desactivado por defecto. |
order | Customer (Partner ID) (obligatorio): el identificador del cliente. Order Lines: las líneas del pedido, conectadas desde otro componente; cada línea lleva product_id (identificador del producto), product_uom_qty (cantidad) y, si quieres, price_unit (precio unitario). |
invoice | Invoice Type: out_invoice (factura de cliente), in_invoice (factura de proveedor), out_refund (rectificativa de cliente) o in_refund (rectificativa de proveedor); por defecto, out_invoice. Customer (Partner ID) (obligatorio). Invoice Lines: las líneas de la factura, conectadas desde otro componente, con product_id, quantity (cantidad) y price_unit. Invoice Date: la fecha en formato 2026-03-20. Source Document: la referencia del documento de origen, por ejemplo el número del pedido. |
payment | Customer (Partner ID) (obligatorio). Amount (obligatorio): el importe. Journal ID: el identificador del diario de pago, por ejemplo el del banco. Payment Type: inbound (cobro) o outbound (pago); por defecto, inbound. |
product | Product Name (obligatorio). Sale Price: el precio de venta. Product Type: consu (consumible), service (servicio) o product (almacenable); por defecto, consu. Desde Odoo 18, que ya no tiene el tipo almacenable, product crea un bien con control de inventario. Internal Reference: la referencia interna o código del producto. |
custom resource | Resource Name (obligatorio): el nombre técnico del modelo de Odoo, por ejemplo res.partner. Resource Data (obligatorio): los datos del registro, conectados desde otro componente o escritos como un objeto JSON. |
Los albaranes (delivery_note) no tienen campos propios: con ellos puedes consultar, eliminar y confirmar, pero no crear ni modificar.
Operaciones
| Operación | Qué hace |
|---|---|
Create Resource | Crea un registro nuevo del tipo elegido y devuelve sus datos. |
Update Resource | Cambia los datos de un registro existente y devuelve cómo ha quedado. Los campos de texto que dejes vacíos conservan su valor en Odoo. |
Get Resource | Trae un registro por su identificador. |
Get All Resources | Trae los registros del tipo elegido, con la posibilidad de filtrarlos. |
Delete Resource | Elimina un registro. |
Confirm Resource | Confirma o valida un registro: confirma un pedido de venta (order), publica una factura (invoice) o un pago (payment) y valida un albarán (delivery_note). Con otros tipos devuelve un error. |
Opciones de consulta
| Campo | Qué hace |
|---|---|
| Fields | Los campos de Odoo que quieres recibir, por ejemplo name o email. Si lo dejas vacío, se devuelven todos. Solo en Get Resource y Get All Resources. |
| Top | Cuántos registros traer como máximo. Por defecto, 50. Solo en Get All Resources. |
| Filters | Condiciones para traer solo algunos registros. Solo en Get All Resources. Ver más abajo. |
En Filters cada condición indica el campo de Odoo (fieldName), cómo se compara (operator) y el valor (value). Por ejemplo, para traer las facturas publicadas:
{"fieldName": "state", "operator": "equal", "value": "posted"}Para combinar varias condiciones, que deben cumplirse todas, escríbelas entre corchetes y separadas por comas. Los comparadores disponibles son equal (igual), notEqual (distinto), like (contiene el texto), greaterThen (mayor que), lesserThen (menor que), greaterOrEqual (mayor o igual), lesserOrEqual (menor o igual), in (está en una lista), notIn (no está en una lista) y childOf (pertenece a una jerarquía).
Resultado
La salida Data devuelve el registro con el que has trabajado tal como lo guarda Odoo, con todos sus campos o solo los que hayas pedido en Fields. Con Get All Resources sale un elemento por cada registro encontrado. Delete Resource y Confirm Resource devuelven una confirmación con el identificador del registro.
Puedes conectar el resultado a un agente para que lo use en su respuesta, o a otro componente Odoo, por ejemplo para confirmar el pedido que acabas de crear. El componente también se puede conectar a un Agente como herramienta. Ver Tool Mode.
Ejemplo
Una tienda online quiere que cada pedido pagado quede registrado y confirmado en Odoo.
- El pedido llega al flujo con el identificador del cliente en Odoo y sus líneas de producto.
- Añade Odoo con la operación
Create Resourcey el tipoorder. - En Customer (Partner ID) pon el identificador del cliente y conecta las líneas del pedido a Order Lines.
- Añade un segundo Odoo con la operación
Confirm Resource, el tipoordery, en Resource ID, el identificador del pedido que devuelve el primero.
Buenas prácticas
- Los identificadores de clientes, productos y diarios se consultan con
Get All Resources. Usa Filters y Top para no traer más registros de los necesarios. Delete Resourceno se puede deshacer, y Odoo puede impedir eliminar registros ya confirmados, como una factura publicada.
Componentes relacionados
- Odoo Webhook: pone en marcha un flujo cuando se crea o cambia un registro en Odoo.