Icon for OdooIcon for Node-RED

Odoo + Node-RED: Connecting Shop Floor Data to ERP

Integrates withCurated

Node-RED is commonly used to bridge Odoo's ERP layer with shop floor data sources that Odoo's IoT Box doesn't natively support. Where the Odoo IoT Box handles plug-and-play USB/serial hardware, Node-RED handles custom protocols, legacy PLCs, and OPC-UA or MQTT data streams — routing that data into Odoo via its XML-RPC or REST API.

Integration architecture

Shop Floor Equipment → [MQTT/OPC-UA/Modbus] → Node-RED → [XML-RPC/REST] → Odoo MRP

Node-RED subscribes to MQTT topics or OPC-UA nodes from machines, transforms the payload (e.g., converts a machine cycle count to a completed work order quantity), then calls Odoo's mrp.production or stock.move API to update manufacturing order progress in real time.

Use cases

  • Push machine counter readings into Odoo work order completions automatically, eliminating manual shop floor data entry
  • Route MQTT alerts from sensors (temperature, vibration) to Odoo quality checks or maintenance request creation
  • Synchronise inventory movements from barcode scanners (not on USB) into Odoo stock moves via REST
  • Trigger Odoo manufacturing order creation from external demand signals (e.g., customer portal orders via webhook)

Configuration steps

  1. Install the node-red-contrib-odoo community node or use the built-in HTTP Request node with Odoo's JSON-RPC endpoint
  2. In Odoo, create an API key (Custom plan required for external API access)
  3. In Node-RED, configure an inject/MQTT-in/OPC-UA node as the trigger source
  4. Add a function node to map the incoming data to Odoo's field schema
  5. Use an HTTP Request node targeting https://{your-odoo}/web/dataset/call_kw with JSON-RPC body

Tradeoffs and considerations

  • Odoo's External API requires the Custom plan (€29.90+/user/month) — this integration is not available on Standard or Community
  • Node-RED runs on-premise or at the edge; latency to Odoo Online (cloud) should be tested for high-frequency writes
  • For very high throughput (>100 events/second), consider buffering via MQTT or a time-series DB before batch-writing to Odoo
  • The node-red-contrib-odoo community node is not officially maintained by Odoo SA — verify compatibility with your Odoo version