odoo-integration

Generates Node.js XML-RPC integrations that sync Odoo models to Google Sheets and deploy on Railway.

21|5|Updated Mar 25, 2026
One-click install
npx skills add https://github.com/txampa/claude-skill-odoo-integration --skill odoo-integration-txampa
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: odoo-integration
Source: https://github.com/txampa/claude-skill-odoo-integration
Command: npx skills add https://github.com/txampa/claude-skill-odoo-integration --skill odoo-integration-txampa

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires xmlrpc, googleapis, node-cron, dotenv.

What problem does it solve? Connecting to Odoo via XML-RPC requires knowing exact endpoint paths, authentication flows, model names, state values, and field names that differ between Odoo versions (v8–v17). This Skill encodes that knowledge so you can build, debug, and deploy Odoo data syncs without re-explaining the integration stack every time. ## Core Features & Use Cases - OdooClient XML-RPC wrapper: Generates a reusable Node.js client with authenticate, searchRead, read, create, write, and search methods against /xmlrpc/2/common and /xmlrpc/2/object endpoints. - Model and state reference: Covers stock.picking, stock.move, sale.order, purchase.order, product.product, and res.partner with states, key fields, and domain filter patterns, including cross-version fallbacks like move_ids || move_lines. - Incremental sync with deduplication: Provides a SyncManager pattern that tracks synced keys and last dates, plus a Google Sheets output client and cron scheduler. - Use Case: Ask to sync stock.picking records in 'waiting' state to a Google Sheet every 15 minutes, and get a complete project with config, sync logic, debug scripts, .env template, and a Railway Procfile. ## Quick Start Ask the assistant to build an Odoo XML-RPC sync that reads confirmed sale orders from your Odoo instance and writes them to a Google Sheet on a cron schedule.

Frequently Asked Questions about odoo-integration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I connect to Odoo via XML-RPC from Node.js?

Use the xmlrpc npm package to create clients against the /xmlrpc/2/common and /xmlrpc/2/object endpoints. Authenticate with database, login, and password to get a uid, then call execute_kw for methods like search_read, read, create, and write.

How do I sync Odoo stock.picking records to Google Sheets?

Query stock.picking with searchRead using a state domain filter, then append rows via the Google Sheets API with a service account. Track synced records with a deduplication key column and a last-date value so each run only processes new records.

Does Odoo XML-RPC work the same across versions v8 to v17?

The XML-RPC protocol is identical across versions, but some field names changed. For example, move_lines became move_ids in v13 and min_date became scheduled_date. Use fallback patterns like picking.move_ids || picking.move_lines when the version is unknown.

Why does Odoo XML-RPC authentication fail without an error?

The xmlrpc library returns false instead of throwing when credentials or the database name are wrong. Always check if the returned uid is falsy after authenticate and reject explicitly, otherwise later calls fail with confusing errors.

How do I deploy an Odoo sync script on Railway?

Add a Procfile containing 'web: node index.js', set engines to Node 18 or higher in package.json, and configure all credentials as Railway environment variables. Paste the Google service account JSON as a single minified line in GOOGLE_CREDENTIALS.

Why does searchRead return only id and name fields?

Odoo XML-RPC never returns all fields by default; you must explicitly list the fields you need. Pass a fields array such as ['id', 'name', 'state', 'date', 'origin'] in every searchRead call, and raise the limit for production volumes.