Full-featured Odoo 19 ERP integration for OpenClaw. Control your entire business via natural language chat commands.
- 80+ operations across 13 Odoo modules
- Smart actions with fuzzy matching and auto-creation
- Zero dependencies β pure Python with built-in XML-RPC
- 100% test coverage β 73 comprehensive tests
- Production ready β Thread-safe, retry logic, error handling
- π Sales & CRM (quotations, orders, leads, opportunities)
- π Purchasing (POs, vendors, receipts)
- π¦ Inventory (products, stock levels, alerts)
- π° Invoicing (customer invoices, payments)
- π Projects & Tasks (management, timesheets)
- π₯ HR (employees, departments, expenses, leave)
- π Fleet (vehicles, odometer, maintenance)
- π Manufacturing (BOMs, production orders)
- π Calendar (events, meetings)
- ποΈ eCommerce (website orders, product publishing)
npx clawhub install odoo-erp-connector# Clone the repository
git clone https://github.com/nullnaveen/openclaw-odoo-skill.git
cd openclaw-odoo-skill
# Windows: Run installer
.\setup.ps1
# OR copy manually to OpenClaw skills directory
# Windows: %APPDATA%\npm\node_modules\openclaw\skills\odoo-erp-connector\
# Mac/Linux: ~/.local/share/openclaw/skills/odoo-erp-connector/- Copy
config.json.templatetoconfig.json - Edit with your Odoo credentials:
{
"url": "http://your-odoo-server:8069",
"db": "your_database_name",
"username": "your_email@company.com",
"api_key": "your_odoo_api_key"
}- Log in to Odoo
- Go to Settings β Users & Companies β Users
- Open your user record
- Scroll to Access Tokens
- Click Generate
- Copy the key into
config.json
"Create a quotation for Acme Corp with 10 Widgets at $50 each"
"Confirm sales order SO00042"
"Show me all draft quotations"
"Create a lead for Rocky, email rocky@example.com, potential $50k deal"
"Move lead #47 to Qualified stage"
"Show me the sales pipeline"
"What's the stock level for Widget X?"
"Show products with stock below 20 units"
"Create a new product: TestWidget, $25 price, min stock 10"
"Create a project called Website Redesign"
"Create task 'Fix login button' in Website Redesign"
"Log 3 hours on task #42"
"Create employee John Smith, job title Developer"
"Show me all employees in Engineering"
"Submit expense report for $45.99"
[See SKILL.md for complete command reference with 30+ examples]
The connector automatically handles missing dependencies with fuzzy matching:
Example: "Create quotation for Rocky with 100 Snake Skins at $10 each"
- Searches for customer "Rocky" (case-insensitive)
- If not found β creates new customer "Rocky"
- Searches for product "Snake Skin"
- If not found β creates product with $10 price
- Creates quotation linking both
- Reports: "β Created quotation S00059 for Rocky with 100 Γ Snake Skin at $1,150"
- OdooClient β Low-level XML-RPC wrapper with authentication
- Model Ops β 13 business module classes (Sales, CRM, Purchase, HR, etc.)
- SmartActionHandler β High-level natural language interface with find-or-create workflows
# Run full test suite
python run_full_test.py
# Test single module
pytest tests/test_partners.py -v73 tests covering all 13 modules with 100% feature coverage.
- Python 3.10+
- Odoo 19.0 (may work with 17-18 with field adjustments)
- OpenClaw 2026.2.0+
- No external Python dependencies
openclaw-odoo-skill/
βββ SKILL.md # OpenClaw skill definition
βββ README.md # This file
βββ package.json # Skill metadata
βββ config.json.template # Configuration template
βββ setup.ps1 # Windows installer
βββ requirements.txt # Python dependencies (none)
βββ odoo_skill/ # Python connector package
β βββ client.py # XML-RPC client
β βββ config.py # Configuration loader
β βββ errors.py # Custom exceptions
β βββ smart_actions.py # Smart action workflows
β βββ models/ # 13 module operation classes
β β βββ partner.py
β β βββ sale_order.py
β β βββ crm.py
β β βββ purchase.py
β β βββ invoice.py
β β βββ inventory.py
β β βββ project.py
β β βββ hr.py
β β βββ fleet.py
β β βββ manufacturing.py
β β βββ calendar_ops.py
β β βββ ecommerce.py
β βββ sync/ # Real-time sync modules
β β βββ poller.py # Change detection poller
β β βββ webhook.py # Webhook server
β βββ utils/ # Helper utilities
βββ tests/ # Test suite (73 tests)
- SKILL.md β Complete skill definition with 30+ command examples
- README.md β Installation guide and quick start (this file)
- TEST_RESULTS.md β Test coverage report
The security scan on ClawHub correctly identifies this skill as having powerful capabilities:
- β Full CRUD operations across Odoo modules (required for ERP management)
- β Webhook server for real-time updates (optional feature)
- β Background polling for change detection (optional feature)
- β XML-RPC network access (required for Odoo communication)
These are legitimate features for an ERP connector. The skill contains no malicious code β review the source if you have concerns.
- Verify Odoo URL and server is running
- Check database name matches exactly
- Regenerate API key if authentication fails
- Ensure Python 3.10+ is installed
- No external dependencies needed (uses built-in
xmlrpc.client)
- Check Odoo user has access to required modules
- Some operations require specific permissions (Admin, Sales Manager, etc.)
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new features
- Submit a pull request
MIT License - see LICENSE file for details
NullNaveen
- ClawHub: @NullNaveen
- GitHub: @nullnaveen
- Issues: GitHub Issues
- ClawHub: odoo-erp-connector
- Discord: OpenClaw Community
Version: 1.0.1
Last Updated: 2026-02-09
Status: Production Ready β