Odoo
Odoo
Este componente actúa como un puente inteligente entre Nappai y tu sistema Odoo. Su propósito principal es permitirte automatizar la gestión de datos clave de tu negocio, como crear contactos en el CRM, generar ventas, emitir facturas o controlar inventarios, sin necesidad de escribir código complejo.
Al usarlo, podrás sincronizar información entre Nappai y Odoo, asegurando que tus datos estén siempre actualizados y listos para ser utilizados en otras partes de tu automatización.
¿Cómo funciona?
El componente funciona como un adaptador orquestador. Cuando lo añades a tu flujo de trabajo, este se comunica con la API de Odoo para realizar acciones específicas (como leer, crear o actualizar registros).
Internamente, el componente se encarga de:
- Autenticar la conexión usando tus credenciales de seguridad.
- Recibir los datos que le proporcionas (por ejemplo, un nombre de cliente o el importe de una factura).
- Transformar esos datos para que Odoo los entienda correctamente (gracias a su “Modo de Mapeo”).
- Enviar la solicitud a Odoo y devolver los resultados (como el ID del cliente creado o el estado de la factura).
Puedes utilizarlo para interactuar con múltiples módulos de Odoo, incluyendo Contactos, Notas, Oportunidades, Pedidos de Venta, Facturas, Albaranes, Pagos y Productos.
Conexión y Credenciales
Para que este componente pueda comunicarse con tu instancia de Odoo, es necesario configurar previamente una credencial segura.
Este componente requiere una credencial de tipo Odoo API. Descripción de la credencial: Utiliza la URL de tu servidor Odoo, el nombre de la base de datos, el usuario y la clave de API para autenticarte mediante JSON-RPC.
Pasos para configurar:
- Dirígete a la sección de Credenciales en tu panel de Nappai.
- Crea una nueva credencial del tipo Odoo API.
- Rellena los campos requeridos:
- Odoo Server URL: La dirección de tu servidor Odoo (ej.
https://mi-servidor-odoo.com). - Database Name: El nombre de tu base de datos (ej.
mi_empresa). - Username: Tu usuario de acceso (ej.
admin@miempresa.com). - Api Key: Tu clave de API generada en Odoo.
- Odoo Server URL: La dirección de tu servidor Odoo (ej.
- Una vez guardada, regresa a tu flujo de trabajo y selecciona esta credencial en el campo Credential de este componente.
Entradas
Modo de Mapeo (Mapping Mode)
Este componente cuenta con una función especial llamada “Modo de Mapeo”. Cuando esta función está activada, cada campo de entrada te ofrece tres formas flexibles de proporcionar datos:
- Fixed (Fijo): Escribes el valor directamente en el campo (ej. un texto fijo).
- Mapped (Mapeado): Conectas la salida de otro componente anterior para usar el resultado dinámicamente (ej. el email de un formulario web).
- Javascript: Escribes un pequeño código Javascript para calcular el valor en tiempo real (ej. sumar dos importes).
Esta flexibilidad te permite crear automatizaciones mucho más inteligentes y conectadas.
Campos de Entrada
A continuación se detallan los campos disponibles para configurar el componente. Estos campos permiten definir los datos de entrada para las diferentes entidades de Odoo (Contactos, Oportunidades, Facturas, etc.).
-
Operation: [Required] Select the operation type to execute.
- Selecciona el tipo de operación principal que deseas realizar (ej. leer, crear, actualizar).
-
Name: [Required] Name to assign into Contact Resource. / Business Opportunity.
- El nombre principal del registro que deseas gestionar (puede referirse a un Contacto o a una Oportunidad de venta).
-
Email: Email to assign into Contact Resource.
- La dirección de correo electrónico asociada al recurso de contacto.
-
Phone: Phone Number to assign into Contact Resource.
- El número de teléfono para el recurso de contacto.
-
Memo: [Required] Memo text to assign into Note Resource.
- El texto de la nota que deseas guardar en Odoo.
-
Open: Define whether the Note Resource should be open or not.
- Indica si la nota de Odoo debe quedar abierta (True) o cerrada (False).
-
Color: Color to assign into Note Resource.
- El código de color asignado a la nota de Odoo.
-
Partner ID: Unique identifier of existing contact resource.
- El ID único de un contacto existente en Odoo (util para relacionar nuevas oportunidades con un cliente ya registrado).
-
Probability: Probabilistic percentage that an opportunity will occur (0% - 100%).
- Porcentaje de probabilidad (de 0 a 100) de que la oportunidad de venta se cierre con éxito.
-
Expected Revenue: Expected revenues for the defined opportunity.
- El importe de ingresos esperado asociado a la oportunidad de venta.
-
Lead: Oppurunity Type.
- Indica si la oportunidad es un Lead (prospecto) o de otro tipo.
-
Customer (Partner ID): [Required] ID of the customer (res.partner) for this sale order / invoice / payment.
- El ID del cliente (res.partner) necesario para generar ventas, facturas o pagos.
-
Order Lines: Order line items as Data. Each item should have: product_id (int), product_uom_qty (float), and optionally price_unit (float).
- Detalles de las líneas del pedido de venta (producto, cantidad, precio).
-
Invoice Type: Type of accounting move.
- El tipo de movimiento contable para la factura (ej. venta, compra, reembolso).
-
Invoice Lines: Invoice line items as Data. Each item should have: product_id (int), quantity (float), price_unit (float).
- Detalles de las líneas de la factura (producto, cantidad, precio).
-
Invoice Date: Invoice date in YYYY-MM-DD format. Leave empty for today.
- La fecha de la factura en formato YYYY-MM-DD. Déjalo vacío para usar la fecha actual.
-
Source Document: Reference to the source document (e.g. sale order name).
- Referencia al documento de origen (por ejemplo, el número de una orden de venta).
-
Amount: [Required] Payment amount.
- El importe total del pago.
-
Journal ID: ID of the payment journal (e.g. bank journal).
- El ID del diario de pagos (ej. diario de banco).
-
Payment Type: Type of payment.
- El tipo de pago (ej. recepción o pago).
-
Product Name: [Required] Name of the product.
- El nombre del producto a gestionar.
-
Sale Price: Sale price of the product.
- El precio de venta del producto.
-
Product Type: Type of the product.
- El tipo de producto (ej. producto consumible o servicio).
-
Internal Reference: Internal reference / SKU code for the product.
- Referencia interna o código SKU del producto.
-
Resource ID: [Required] Unique identifier of the Resource to be modified.
- El ID único del recurso que deseas modificar en Odoo.
-
Fields: Resource Fields to show.
- Los campos específicos del recurso que deseas visualizar o recuperar.
-
Top: Max amount of resources to retrieve.
- Número máximo de registros a recuperar en una lista.
-
Filters: Filter criteria to narrow down which records are returned. Connect a Data node with one or more filter objects. Each filter requires three keys: fieldName, operator, value. Available operators: equal, notEqual, like, greaterThen, lesserThen, greaterOrEqual, lesserOrEqual, in, notIn, childOf.
- Permite filtrar los resultados. Debes proporcionar un objeto JSON con los criterios (campo, operador y valor). Ejemplo:
{"fieldName": "name", "operator": "like", "value": "Juan"}.
- Permite filtrar los resultados. Debes proporcionar un objeto JSON con los criterios (campo, operador y valor). Ejemplo:
-
Resource Type: [Required] Choose one of the expected Odoo Resource Types to operate with. In case any of the specific Types does not hold every value you want to define, please use “Custom Resource”.
- Selecciona el tipo de recurso de Odoo con el que trabajar (ej. Contactos, Ventas). Usa “Custom Resource” si necesitas una entidad personalizada.
-
Resource Name: [Required] Name of the custom resource type you want to work with.
- El nombre del tipo de recurso personalizado si seleccionaste “Custom Resource”.
-
Resource Data: [Required] Define a custom Data for the Resource you want to operate with. (Structure examples provided for Contact, Note, Opportunity).
- Define los datos personalizados en formato JSON para el recurso que deseas gestionar. Ejemplo para Contacto:
{"name": "John Doe", "email": "john@example.com"}.
- Define los datos personalizados en formato JSON para el recurso que deseas gestionar. Ejemplo para Contacto:
Salidas
Al ejecutar este componente, recibirás los siguientes resultados para continuar con tu automatización:
- Data: [Any] Contiene los datos procesados por el componente.
- Esta salida incluye la respuesta de Odoo, como los IDs de los registros creados, los detalles actualizados o la lista de registros recuperados. Utiliza esta salida para mapear datos en nodos posteriores.
Ejemplo de Respuesta JSONjson
{ “id”: 105, “name”: “Cliente Corporativo S.A.”, “email”: “contacto@cliente.com”, “status”: “success”, “operation_type”: “create_contact” }
Conectividad
- Flujo de Datos: La salida
Datade este componente suele conectarse a nodos que requieren información de clientes, ventas o facturas, como:- Nodos de Formularios Web: Para enviar datos confirmados.
- Nodos de Lógica: Para decidir el siguiente paso basado en el éxito o fallo de la operación.
- Nodos de Base de Datos: Para almacenar el ID generado por Odoo en tu propio sistema.
- Nodos de Correo Electrónico: Para enviar facturas o confirmaciones generadas.
Ejemplo de Uso
Escenario: Crear un nuevo contacto y asignarle una oportunidad de venta en Odoo.
- Configura el campo Operation para seleccionar la acción de creación.
- En Name, escribe “Cliente Ejemplo” o mapea el nombre desde un formulario web.
- En Email, introduce
cliente@ejemplo.com. - Conecta este nodo a un siguiente nodo que gestione la oportunidad, usando el
iddeDatacomo Partner ID para vincular ambos registros. - Ejecuta el flujo. Odoo creará el contacto y devolverá el ID en la salida
Data.
Consejos y Mejores Prácticas
- Uso de Filtros: Utiliza el campo Filters cuando necesites encontrar registros específicos (como una factura por número) en lugar de recuperar toda la base de datos, lo que mejora el rendimiento.
- Mapeo Dinámico: Aprovecha el Mapping Mode para vincular campos de entrada con datos procedentes de otros componentes (ej. el importe de una venta procedente de un carrito de compras).
- Validación de Credenciales: Asegúrate de que la Odoo API tenga permisos de lectura/escritura en los módulos que vayas a utilizar (Ventas, Facturación, etc.).
- Formato de Fechas: Al trabajar con Invoice Date, usa siempre el formato
YYYY-MM-DDpara evitar errores de interpretación. - Recursos Personalizados: Si trabajas con entidades fuera de las estándar, usa Resource Type como “Custom Resource” y define la estructura en Resource Data.
Consideraciones de Seguridad
- Protección de Credenciales: Las claves API y los usuarios nunca deben ser expuestos en el código de los flujos. Utiliza siempre la sección de Credenciales de Nappai.
- Permisos de API: Configura la Odoo API con el menor nivel de permiso necesario (Principio de Mínimo Privilegio).
- Validación de Datos: Al ingresar datos sensibles (como importes o IDs), verifica que el tipo de dato coincida con lo esperado por Odoo (enteros para IDs y cantidades, strings para textos).
- Auditoría: El componente genera registros en
diagnostics(si está disponible en la configuración avanzada) que permiten rastrear errores de conexión o mapeo para fines de auditoría.