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 @@ 3 Ways to Integrate Odoo and Hermes Agent — derez.ai Blog - + - + @@ -45,8 +45,8 @@ .method-card h3 { margin-top: 0; } .method-badge { display: inline-block; font-size: 0.7rem; font-weight: 700; padding: 2px 8px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; } .badge-fast { background: #00ff88; color: #000; } - .badge-standard { background: #f472b6; color: #000; } - .badge-flexible { background: #ffaa00; color: #000; } + .badge-mcp { background: #f472b6; color: #000; } + .badge-n8n { background: #ffaa00; color: #000; } .method-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; } .method-stat { font-size: 0.85rem; color: #999; } .method-stat span { color: #e0e0f0; font-weight: 600; } @@ -72,72 +72,65 @@ guide odoo hermes + n8n

- 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.

-
-

At a Glance

- + - + - - - - + + + + - - - - + + + + - - - - + + + +
ApproachSetup TimeSetup Best ForComponentsDeterminism
1. Direct API~3 minutesSingle-ERP setups, productionHermes + Odoo only1. Direct XML-RPC API~3 minSimple queries, quick demosLow — LLM decides the call
2. MCP Server~5 minutesMulti-tool agents, standardizationHermes + mcp-server-odoo + Odoo2. Odoo MCP CLI Client~5 minMulti-tool agents, MCP stacksMedium — tool-bound
3. Custom Skill~15 minutesComplex workflows, custom logicHermes + custom SKILL.md + Odoo3. Hermes → n8n → Odoo~10 minDeterministic business processesHigh — step-by-step workflows
⚡ Fastest — 3 min
-

Method 1: Direct API Integration (XML-RPC)

+

Method 1: Direct XML-RPC API

Setup: ~3 minutes
-
Latency: 1 hop (agent → Odoo)
-
Security: Dedicated Odoo user
-
Maintenance: None
+
Latency: 1 hop
+
Determinism: Low — LLM-driven
+
Best for: Simple queries, demos
-

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.

Setup

    -
  1. Create an Odoo API key — in your Odoo instance, generate a new API key under Settings → Users → Technical
  2. -
  3. Set the Hermes Odoo config — Add your Odoo URL, database, username, and API key to Hermes' config.yaml
  4. -
  5. Start Hermes — The Odoo tools are automatically available in every session
  6. +
  7. Generate an Odoo API key (Settings → Users → Technical)
  8. +
  9. Add the connection to Hermes' config.yaml
  10. +
  11. Start Hermes — Odoo tools are available automatically
# Hermes config.yaml snippet
 odoo:
@@ -147,125 +140,111 @@ odoo:
   api_key: "your-api-key"
   readonly: true
-

When to use this

- - +

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

-
🚀 Standard — 5 min
-

Method 2: MCP Server (Model Context Protocol)

+
🚀 MCP — 5 min
+

Method 2: Odoo MCP CLI Client

Setup: ~5 minutes
-
Latency: 2 hops (agent → MCP → Odoo)
-
Security: MCP transport layer
-
Maintenance: Server process
+
Latency: 2 hops
+
Determinism: Medium — tool-bound
+
Best for: Multi-tool setups
-

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.

Setup

    -
  1. Clone the servergit clone https://github.com/ivnvxd/mcp-server-odoo.git
  2. -
  3. Set environment variables — URL, database, username, API key
  4. -
  5. Start the serveruvx mcp-server-odoo (port 8000, streamable-http transport)
  6. -
  7. Register with Hermeshermes mcp add odoo --url http://localhost:8000/mcp
  8. -
  9. Start Hermes — Odoo tools appear automatically
  10. +
  11. Clone the server: git clone https://github.com/ivnvxd/mcp-server-odoo.git
  12. +
  13. Set environment variables (URL, db, user, API key)
  14. +
  15. Start: uvx mcp-server-odoo
  16. +
  17. Register: hermes mcp add odoo --url http://localhost:8000/mcp
  18. +
  19. Start Hermes — tools appear automatically
#!/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 this

- - +

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.

Deep dive: Speed Run: Connect Hermes Agent to Odoo via MCP

-
🔧 Flexible — 15 min
-

Method 3: Custom Hermes Skill

+
⚙️ Deterministic — 10 min
+

Method 3: Hermes → n8n → Odoo (The Favorite)

-
Setup: ~15 minutes
-
Latency: 1 hop (skill → Odoo)
-
Security: Full control
-
Maintenance: As needed
+
Setup: ~10 minutes
+
Latency: 3 hops
+
Determinism: High — step-by-step
+
Best for: Business processes
-

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:

+ +
    +
  1. Hermes Agent connects to n8n (via the official n8n skill)
  2. +
  3. n8n hosts pre-built Odoo workflows — each one a complete business process
  4. +
  5. Hermes calls an n8n webhook, which triggers the workflow
  6. +
  7. The workflow executes deterministic steps against the Odoo API
  8. +
  9. n8n returns the result to Hermes
  10. +
+ +

Example: Create an Invoice

+

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.

Setup

    -
  1. Create SKILL.md — in ~/.hermes/skills/odoo/SKILL.md
  2. -
  3. Define tools — Each tool has a name, description, parameter schema, and command template
  4. -
  5. Load the skill — Add it to your Hermes profile or load it in a session
  6. +
  7. Install the n8n skill in Hermes — loads the n8n toolset: hermes skills install n8n
  8. +
  9. Build n8n workflows — create webhook-triggered workflows for each Odoo operation (create invoice, update lead, check inventory, generate report)
  10. +
  11. Configure webhooks — each workflow exposes a unique webhook URL that Hermes can call
  12. +
  13. Start Hermes — tell your agent "create an invoice for [customer] with [product]" and it delegates to 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}}"}]}}'`
- -

When to use this

-
-

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

Decision Guide

-

Not sure which to pick? Here's a quick flowchart:

Security Best Practices

-

Whichever approach you choose, these rules apply:

Comparison Table

@@ -274,56 +253,47 @@ Command: `curl -s "$ODOO_URL" -d '{"params": {"model": "crm.lead", "method": "cr Feature Direct API - MCP Server - Custom Skill + MCP CLI + n8n Pipeline Setup time ~3 min ~5 min - ~15 min + ~10 min - Extra processes + Components + Hermes + Odoo + Hermes + MCP server + Odoo + Hermes + n8n + Odoo + + + Determinism + Low (LLM-driven) + Medium (tool-bound) + High (step-by-step) + + + Audit trail None - MCP server daemon None + Full (n8n executions) - Tool discovery - Built-in - Automatic (MCP list) - Defined in SKILL.md - - - Custom workflows - Limited - Limited - Full control - - - Multi-tool agent - Requires per-tool setup - One protocol for all - Per-skill setup - - - Security model - Odoo user permissions - MCP transport + Odoo perms - Odoo user + skill code + Error handling + LLM-dependent + LLM-dependent + Built-in (retry, stop) Best for - Production single-ERP + Simple queries, demos Multi-tool MCP stacks - Custom agent products + Invoice, order, data entry -

Can You Run Multiple Methods?

-

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.

-

Try It Yourself — First Month Free

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": "cr

derez.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