diff --git a/blog/index.json b/blog/index.json index 7eb1d8d..adb3748 100644 --- a/blog/index.json +++ b/blog/index.json @@ -6,7 +6,7 @@ "area": "guide", "agent": "hermes", "headline": "3 Ways to Integrate Odoo and Hermes Agent", - "teaser": "Direct XML-RPC, MCP server, or custom Hermes skill \u2014 three proven approaches to connect Odoo with Hermes Agent. Setup time, trade-offs, and when to use each.", + "teaser": "Direct XML-RPC API, Odoo MCP CLI client, or Hermes-to-n8n-to-Odoo pipeline \u2014 three proven approaches to connect Odoo with Hermes Agent. Trade-offs and when to use each.", "link": "blog/posts/three-ways-integrate-odoo-hermes.html" }, { diff --git a/blog/posts/three-ways-integrate-odoo-hermes.html b/blog/posts/three-ways-integrate-odoo-hermes.html index 4f6aae8..62848ad 100644 --- a/blog/posts/three-ways-integrate-odoo-hermes.html +++ b/blog/posts/three-ways-integrate-odoo-hermes.html @@ -6,11 +6,11 @@
- Odoo is the most popular open-source ERP in the world — CRM, sales, inventory, accounting, all in one system. - Hermes Agent is an open-source AI agent framework. Put them together and your agent can query customer records, + Odoo is the most popular open-source ERP — CRM, sales, inventory, accounting, all in one system. + Hermes Agent is an open-source AI agent framework. Put them together and your agent can query customer records, check inventory levels, create leads, generate invoices, and pull sales reports — all through natural language.
- There are three proven ways to connect the two. Each has different trade-offs in setup speed, - flexibility, and ongoing maintenance. This guide walks through all three so you can pick the right one. + There are three proven ways to connect the two. Each offers a different balance of speed, + determinism, and architectural flexibility.
-Already know which approach you want? The detailed speed runs are here: - Direct API, - MCP server, and - Direct vs MCP comparison.
-| Approach | -Setup Time | +Setup | Best For | -Components | +Determinism | ||
|---|---|---|---|---|---|---|---|
| 1. Direct API | -~3 minutes | -Single-ERP setups, production | -Hermes + Odoo only | +1. Direct XML-RPC API | +~3 min | +Simple queries, quick demos | +Low — LLM decides the call |
| 2. MCP Server | -~5 minutes | -Multi-tool agents, standardization | -Hermes + mcp-server-odoo + Odoo | +2. Odoo MCP CLI Client | +~5 min | +Multi-tool agents, MCP stacks | +Medium — tool-bound |
| 3. Custom Skill | -~15 minutes | -Complex workflows, custom logic | -Hermes + custom SKILL.md + Odoo | +3. Hermes → n8n → Odoo | +~10 min | +Deterministic business processes | +High — step-by-step workflows |
The simplest approach. You create a dedicated Odoo user with restricted permissions, paste the connection details into Hermes, and your agent calls the Odoo XML-RPC API directly.
-How it works: Hermes Agent has built-in Odoo tool support. When you configure the connection once, the agent can search, read, create, write, and unlink records on any Odoo model — CRM leads, partners, products, sales orders, invoices, and more.
The simplest approach. You create a dedicated Odoo user with restricted permissions, paste the connection details into Hermes, and your agent calls the Odoo XML-RPC API directly. Hermes has built-in Odoo tool support — once configured, the agent can search, read, create, and update records on any Odoo model.
config.yamlconfig.yaml# Hermes config.yaml snippet
odoo:
@@ -147,125 +140,111 @@ odoo:
api_key: "your-api-key"
readonly: true
- When to use: Quick queries, one-off lookups, demos, and prototyping. The LLM decides which API calls to make, so it's fast but the agent may chain calls in unexpected ways.
Deep dive: Speed Run: Create an Odoo Community Agent from Zero
The MCP approach inserts a translation layer between Hermes and Odoo. The mcp-server-odoo project (315+ GitHub stars, actively maintained) exposes Odoo models as MCP tools that Hermes can discover and call.
-How it works: You run the MCP server locally on the same machine as Hermes. It listens on an HTTP port and translates MCP tool calls into Odoo XML-RPC requests. Hermes discovers the available tools automatically when you register the server.
+The mcp-server-odoo project (315+ GitHub stars) exposes Odoo as a Model Context Protocol server. You run it as a CLI process, register it with Hermes via hermes mcp add, and the agent discovers Odoo tools automatically — search_records, create_record, read_record, and more.
git clone https://github.com/ivnvxd/mcp-server-odoo.gituvx mcp-server-odoo (port 8000, streamable-http transport)hermes mcp add odoo --url http://localhost:8000/mcpgit clone https://github.com/ivnvxd/mcp-server-odoo.gituvx mcp-server-odoohermes mcp add odoo --url http://localhost:8000/mcp#!/usr/bin/env bash
export ODOO_URL="https://your-instance.odoo4projects.com"
export ODOO_DB="your-database"
export ODOO_USER="agent@company.com"
-export ODOO_API_KEY="your-api-key"
-export ODOO_READONLY=1
+export ODOO_API_KEY="your...port ODOO_READONLY=1
export ODOO_MCP_TRANSPORT=streamable-http
export ODOO_MCP_PORT=8000
export ODOO_YOLO=read
uvx mcp-server-odoo
- When to use: You want a standardized MCP protocol for all tool connections. If Hermes already talks to GitHub, Slack, or Notion via MCP, Odoo fits right into the same stack.
The most flexible approach. You write a custom Hermes skill — a SKILL.md file — that defines exactly how the agent communicates with Odoo. This gives you full control over the tools, prompts, and error handling.
How it works: Hermes skills are markdown files with YAML frontmatter and a structured body. Your Odoo skill defines tools like search_leads, create_invoice, or check_inventory. Each tool uses terminal() to make curl calls to the Odoo XML-RPC endpoint, and the agent calls these tools by name during the conversation.
This is the most powerful approach — and the personal favorite of the derez.ai founder. Instead of the agent calling Odoo directly, Hermes delegates Odoo operations to n8n workflows that execute deterministic, step-by-step business logic.
+ +Why this matters: An LLM calling the Odoo API directly might chain calls in unexpected ways. It could create an invoice without checking if the customer exists, or skip a product validation step. With n8n as the middle layer, every business process is a deterministic workflow — the same inputs always produce the same outputs, in the same order.
+ +Here's how it works:
+ +A typical n8n workflow for invoice creation might look like this:
+Step 1: Receive webhook from Hermes (customer name, product SKU)
+Step 2: Search Odoo for the customer by name
+Step 3: If customer not found → return error to Hermes
+Step 4: Search Odoo for the product by SKU
+Step 5: If product not found → return error to Hermes
+Step 6: Create invoice header with customer ID
+Step 7: Add invoice line with product ID, quantity, price
+Step 8: Confirm invoice creation
+Step 9: Return invoice number and status to Hermes
+ Every step is deterministic — the workflow always checks for the customer first, then the product, then creates the invoice. No LLM hallucination in the middle of a billing process.
SKILL.md — in ~/.hermes/skills/odoo/SKILL.mdhermes skills install n8n# Odoo Hermes Skill
-
-## Tools
-
-### search_leads
-Search CRM leads with filters.
-Parameters: domain (list), limit (int, optional)
-Command: `curl -s "$ODOO_URL" -d '{"params": {"model": "crm.lead", "method": "search_read", "args": [{{domain}}], "kwargs": {"limit": {{limit|5}}}}}'`
-
-### create_lead
-Create a new CRM lead.
-Parameters: name (string), email (string, optional), phone (string, optional)
-Command: `curl -s "$ODOO_URL" -d '{"params": {"model": "crm.lead", "method": "create", "args": [{"name": "{{name}}", "email_from": "{{email}}", "phone": "{{phone}}"}]}}'`
-
- Pro Tip: The skill approach gives you the most control but also the most responsibility. You handle authentication, error handling, rate limiting, and API versioning yourself. For simpler setups, start with Method 1 or 2.
+Pro Tip: This is the derez.ai founder's recommended approach for production. The n8n layer gives you audit trails, error handling, retries, and human-in-the-loop approval for critical operations — none of which an LLM calling the API directly can guarantee.
Deep dive: Speed Run: Connect Hermes Agent to n8n in 10 Minutes
Not sure which to pick? Here's a quick flowchart:
Whichever approach you choose, these rules apply:
crm.lead, res.partner)Yes. Hermes Agent supports mixed setups — you can use the direct API for Odoo while connecting GitHub and Slack through MCP, and load a custom skill for Odoo-specific workflows on top of that. The methods are not mutually exclusive. Choose the right connection for each backend.
-Deploy a Hermes Agent with any of these Odoo integrations. Use coupon code blog950 for your first month free.
@@ -332,9 +302,9 @@ Command: `curl -s "$ODOO_URL" -d '{"params": {"model": "crm.lead", "method": "crderez.ai — Deploy your AI agent in 5 minutes. · - Direct Odoo Speed Run · + Direct API Speed Run · MCP Speed Run · - Direct vs MCP + n8n Speed Run