Skip to main content

Configuración básica

Puedes instalar la integración de Odoo desde nuestro Marketplace. Una vez instalada, podrás buscar registros, gestionar productos, contactos, órdenes de venta, facturas y consultar inventario directamente desde tu agente.

Prerrequisitos

Antes de usar esta integración, necesitas:
  1. Instancia de Odoo activa — Puede ser Odoo.com (SaaS) o self-hosted
  2. API Key de Odoo — Genera una clave API desde tu perfil de usuario en Odoo

Credenciales requeridas

CampoDescripciónRequerido
HostURL de tu servidor Odoo (ej. https://miempresa.odoo.com)
DatabaseNombre de la base de datos de Odoo
UsernameEmail o nombre de usuario de Odoo
API KeyClave API generada en Odoo
Para generar tu API Key, ve a tu perfil en Odoo: Preferencias > Cuenta > Claves API > Nueva clave API.

Funcionalidades

Buscar registros

Busca registros en cualquier modelo de Odoo con filtros. Útil para encontrar clientes, productos, órdenes, facturas, etc. Inputs:
  • model (string) — Nombre del modelo (ej. “res.partner”, “sale.order”, “product.product”).
  • domain (opcional, array) — Filtro de dominio Odoo (ej. [["is_company", "=", true]]).
  • fields (opcional, array de string) — Campos a recuperar.
  • limit (opcional, number) — Máximo de registros (default 80, max 500).
  • offset (opcional, number) — Registros a saltar para paginación.
  • order (opcional, string) — Orden de resultados (ej. “name asc, id desc”).
Ejemplo:
{
  "model": "res.partner",
  "domain": [["is_company", "=", true]],
  "fields": ["name", "email", "phone"],
  "limit": 20
}

Obtener registro

Obtiene un registro específico por su ID. Inputs:
  • model (string) — Nombre del modelo.
  • id (number) — ID del registro.
  • fields (opcional, array de string) — Campos a recuperar.
Ejemplo:
{
  "model": "product.product",
  "id": 42,
  "fields": ["name", "list_price", "qty_available"]
}

Crear producto

Crea un nuevo producto en Odoo con validación de categoría. Inputs:
  • name (string) — Nombre del producto.
  • categ_id (number) — ID de la categoría del producto.
  • type (opcional, enum: consu | service | product) — Tipo de producto.
  • list_price (opcional, number) — Precio de venta.
  • standard_price (opcional, number) — Precio de costo.
  • default_code (opcional, string) — Referencia interna / SKU.
  • barcode (opcional, string) — Código de barras.
  • description (opcional, string) — Descripción interna.
  • description_sale (opcional, string) — Descripción para clientes.
  • uom_id (opcional, number) — ID de unidad de medida.
  • sale_ok (opcional, boolean) — Puede venderse.
  • purchase_ok (opcional, boolean) — Puede comprarse.
  • weight (opcional, number) — Peso en kg.
  • volume (opcional, number) — Volumen en m³.
  • dry_run (opcional, boolean) — Validar sin crear.
Ejemplo:
{
  "name": "Laptop Dell XPS 15",
  "categ_id": 1,
  "type": "product",
  "list_price": 1500,
  "default_code": "LAPTOP-001"
}

Crear registro genérico

Crea un registro en cualquier modelo de Odoo.
Para productos, contactos, órdenes de venta y facturas, usa las herramientas específicas.
Inputs:
  • model (string) — Nombre del modelo.
  • values (objeto) — Valores de los campos.
  • dry_run (opcional, boolean) — Validar sin crear.
Ejemplo:
{
  "model": "stock.picking",
  "values": {
    "partner_id": 10,
    "picking_type_id": 1
  }
}

Actualizar registro

Actualiza un registro existente en cualquier modelo. Inputs:
  • model (string) — Nombre del modelo.
  • id (number) — ID del registro.
  • values (objeto) — Valores a actualizar.
  • dry_run (opcional, boolean) — Validar sin actualizar.
Ejemplo:
{
  "model": "product.product",
  "id": 42,
  "values": {
    "list_price": 1299.99
  }
}

Eliminar registro

Elimina un registro de cualquier modelo.
Esta acción es irreversible. Debes confirmar explícitamente.
Inputs:
  • model (string) — Nombre del modelo.
  • id (number) — ID del registro.
  • confirm (boolean) — Debe ser true para confirmar.
Ejemplo:
{
  "model": "product.product",
  "id": 999,
  "confirm": true
}

Gestionar contacto

Crea o actualiza un contacto (cliente, proveedor o persona). Inputs:
  • action (enum: create | update) — Acción a realizar.
  • id (opcional, number) — ID del contacto (requerido para update).
  • name (opcional, string) — Nombre del contacto.
  • email (opcional, string) — Email.
  • phone (opcional, string) — Teléfono fijo.
  • mobile (opcional, string) — Teléfono móvil.
  • street (opcional, string) — Dirección línea 1.
  • street2 (opcional, string) — Dirección línea 2.
  • city (opcional, string) — Ciudad.
  • zip (opcional, string) — Código postal.
  • country_id (opcional, number) — ID del país.
  • state_id (opcional, number) — ID del estado/provincia.
  • vat (opcional, string) — Número de identificación fiscal.
  • is_company (opcional, boolean) — Es empresa.
  • company_type (opcional, enum: person | company) — Tipo de contacto.
  • customer_rank (opcional, number) — Rango de cliente (>0 = es cliente).
  • supplier_rank (opcional, number) — Rango de proveedor (>0 = es proveedor).
  • dry_run (opcional, boolean) — Validar sin guardar.
Ejemplo:
{
  "action": "create",
  "name": "Empresa ABC S.A.",
  "email": "[email protected]",
  "phone": "+593 2 123 4567",
  "is_company": true,
  "customer_rank": 1,
  "vat": "1790012345001"
}

Procesar orden de venta

Crea, confirma o cancela una orden de venta/cotización. Inputs:
  • action (enum: create | confirm | cancel | set_to_draft) — Acción a realizar.
  • id (opcional, number) — ID de la orden (requerido excepto para create).
  • partner_id (opcional, number) — ID del cliente (requerido para create).
  • lines (opcional, array de objeto) — Líneas de la orden:
    • product_id (number) — ID del producto.
    • quantity (opcional, number) — Cantidad (default 1).
    • price_unit (opcional, number) — Precio unitario.
    • discount (opcional, number) — Porcentaje de descuento.
    • name (opcional, string) — Descripción de la línea.
  • pricelist_id (opcional, number) — ID de la lista de precios.
  • payment_term_id (opcional, number) — ID del término de pago.
  • note (opcional, string) — Nota interna.
  • dry_run (opcional, boolean) — Validar sin ejecutar.
Ejemplo:
{
  "action": "create",
  "partner_id": 15,
  "lines": [
    {
      "product_id": 42,
      "quantity": 2,
      "price_unit": 1500
    }
  ]
}

Gestionar factura de cliente

Crea, publica o cancela una factura de cliente. Inputs:
  • action (enum: create | post | cancel | reset_to_draft) — Acción a realizar.
  • id (opcional, number) — ID de la factura (requerido excepto para create).
  • partner_id (opcional, number) — ID del cliente (requerido para create).
  • invoice_date (opcional, string) — Fecha de factura (YYYY-MM-DD).
  • invoice_date_due (opcional, string) — Fecha de vencimiento (YYYY-MM-DD).
  • lines (opcional, array de objeto) — Líneas de la factura:
    • product_id (opcional, number) — ID del producto.
    • name (string) — Descripción.
    • quantity (opcional, number) — Cantidad (default 1).
    • price_unit (number) — Precio unitario.
    • account_id (opcional, number) — ID de la cuenta contable.
    • tax_ids (opcional, array de number) — IDs de impuestos.
  • journal_id (opcional, number) — ID del diario.
  • currency_id (opcional, number) — ID de la moneda.
  • ref (opcional, string) — Referencia/memo.
  • dry_run (opcional, boolean) — Validar sin ejecutar.
Ejemplo:
{
  "action": "create",
  "partner_id": 15,
  "invoice_date": "2025-01-15",
  "lines": [
    {
      "name": "Servicio de consultoría",
      "quantity": 10,
      "price_unit": 100
    }
  ]
}

Registrar pago

Registra un pago para una o más facturas. Inputs:
  • invoice_ids (array de number) — IDs de las facturas a pagar.
  • amount (number) — Monto del pago.
  • journal_id (number) — ID del diario de pago (banco/caja).
  • payment_date (opcional, string) — Fecha del pago (YYYY-MM-DD).
  • payment_method_id (opcional, number) — ID del método de pago.
  • ref (opcional, string) — Referencia del pago.
  • dry_run (opcional, boolean) — Validar sin ejecutar.
Ejemplo:
{
  "invoice_ids": [123],
  "amount": 1000,
  "journal_id": 7,
  "payment_date": "2025-01-15",
  "ref": "TRANS-001"
}

Verificar stock

Consulta la disponibilidad de stock de uno o más productos. Inputs:
  • product_id (opcional, number) — ID de un producto.
  • product_ids (opcional, array de number) — IDs de múltiples productos.
  • location_id (opcional, number) — ID de ubicación específica.
  • include_reserved (opcional, boolean) — Incluir cantidades reservadas (default true).
Ejemplo:
{
  "product_ids": [42, 43, 44]
}