Install
openclaw skills install odooOperate Odoo across CRM, sales, inventory, purchasing, and accounting with module-aware planning, read-before-write checks, and safe execution.
openclaw skills install odooOdoo operating workflow for live ERP systems. Use this when the agent must inspect, report on, reconcile, import, configure, or safely change data in Odoo Online, Odoo.sh, or self-hosted environments.
Use when the task clearly belongs to Odoo: CRM, quotations, sales orders, invoices, stock moves, purchase orders, manufacturing, projects, subscriptions, or accounting. Best fit when the user needs help across modules, environments, and hosting surfaces instead of only one narrow report or one raw API call.
Use this skill to turn vague business asks into safe, module-aware actions: identify the right records, choose the right interface, preview impact, and only then write or automate.
Memory lives in ~/odoo/. If ~/odoo/ does not exist, run setup.md. See memory-template.md for structure.
~/odoo/
├── memory.md # companies, modules, approval boundaries, and stable preferences
├── instances.md # instance URLs, environments, versions, and auth lanes
├── modules.md # custom modules, renamed fields, and local conventions
└── incidents.md # failed imports, access issues, broken automations, and recoveries
Use the smallest matching file instead of mentally loading the whole ERP every time.
| Topic | File |
|---|---|
| Setup guide | setup.md |
| Memory template | memory-template.md |
| Hosting surface map | surfaces.md |
| Operating lanes by module | operations.md |
| Real request translations | examples.md |
| Safe writes and approval ladder | safety.md |
| Reporting and KPI scoping | reporting.md |
| API, imports, and automation choices | integrations.md |
| Common Odoo models and objects | models.md |
| Broken flow and access triage | triage.md |
create, write, unlink, or import.surfaces.md for Odoo Online, Odoo.sh, or self-hosted constraintsoperations.md for day-to-day business flowsexamples.md for fast translation from user request to lane and safe first movereporting.md for KPIs and reconciliationsafety.md for risky writes, corrections, and approvalsintegrations.md for API, import/export, and automation designtriage.md for access, module, and workflow failuresUse these defaults when the request is underspecified or when multiple Odoo paths are possible. They are not shortcuts; they are the safest first move for each common situation.
| Situation | First move | Why |
|---|---|---|
| Vague business request | Translate it into module, model, state, and output format | Prevents acting on the wrong object |
| Unknown hosting model | Classify as Odoo Online, Odoo.sh, or self-hosted before suggesting tools | UI, shell, logs, and API access differ sharply |
| Bulk update | Preview affected records, duplicates, required keys, and rollback plan | Imports and mass writes are easy to misapply |
| Reporting request | Lock company, period, timezone, status filters, and measures | Odoo numbers drift fast without scope |
| Automation request | Decide between server action, scheduled action, import, or external API | The cheapest automation is often already inside Odoo |
| Access error | Check groups, record rules, company scope, and environment first | Most "broken" actions are permissions or context |
| Broken inventory/accounting flow | Preserve traceability, then fix upstream document or post reversal | Direct edits often make audits worse |
product.template when the workflow actually needs variants on product.product| Endpoint | Data Sent | Purpose |
|---|---|---|
https://<odoo-host>/web | browser session data chosen by the user | interactive review and manual operations |
https://<odoo-host>/xmlrpc/2/common | database name, username, password | authenticate and resolve user id |
https://<odoo-host>/xmlrpc/2/object | model names, domains, field names, record payloads | read and write records via XML-RPC |
https://<odoo-host>/jsonrpc | JSON-RPC payloads for auth or model calls | scripted integrations when JSON-RPC is available |
| user-chosen export target | report data explicitly requested by the user | deliver CSV, Excel, PDF, or downstream sync |
No other external endpoints should be used unless the user asks for a specific connected system.
Data that stays local:
~/odoo/Data that may touch external systems:
This skill does NOT:
Install with clawhub install <slug> if user confirms:
crm — customer pipeline workflows when the work is mainly around leads, deals, and sales motioninventory — stock-focused operating guidance when warehouse flows become the main problemaccounting — accounting-first workflows for journals, reconciliation, close, and financial controlspowerpoint — executive summaries and deck outputs from Odoo reporting workword — polished SOPs, proposals, and customer-facing documents built from Odoo contextclawhub star odooclawhub sync