Create /odoo-hermes landing page + link from homepage footer and blog posts with Odoo Hermes anchor text
This commit is contained in:
@@ -0,0 +1,703 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<!-- ── SEO ───────────────────────────────────────────────── -->
|
||||
<title>Odoo Hermes — Connect Odoo ERP to Hermes AI Agent | derez.ai</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Odoo Hermes connects your Odoo ERP to Hermes AI Agent. XML-RPC, MCP, or n8n — three ways to integrate. Read, write, and automate Odoo data through natural language."
|
||||
/>
|
||||
<meta name="robots" content="index, follow" />
|
||||
<link rel="canonical" href="https://derez.ai/odoo-hermes" />
|
||||
|
||||
<!-- ── OG ─────────────────────────────────────────────────── -->
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://derez.ai/odoo-hermes" />
|
||||
<meta property="og:title" content="Odoo Hermes — Connect Odoo ERP to AI Agent" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Three ways to connect Odoo to Hermes Agent. XML-RPC direct, MCP protocol, or n8n deterministic workflows. Full step-by-step guide."
|
||||
/>
|
||||
<meta property="og:image" content="https://derez.ai/og-image.png" />
|
||||
<meta property="og:site_name" content="derez.ai" />
|
||||
|
||||
<!-- ── Twitter ────────────────────────────────────────────── -->
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content="Odoo Hermes — Connect Odoo ERP to AI Agent" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="Three ways to connect Odoo to Hermes Agent. XML-RPC direct, MCP protocol, or n8n deterministic workflows."
|
||||
/>
|
||||
|
||||
<!-- ── Structured Data (FAQ) ──────────────────────────────── -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "What is Odoo Hermes?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Odoo Hermes is the integration between Odoo ERP and Hermes AI Agent. It allows your AI agent to read, write, and automate data across Odoo modules — CRM, Sales, Inventory, Accounting — through natural language prompts."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "How do I connect Odoo to Hermes Agent?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "There are three ways: 1) Direct XML-RPC API — configure Odoo credentials in Hermes config.yaml and the agent calls the API directly. 2) Odoo MCP CLI client — run mcp-server-odoo and register with Hermes. 3) Hermes to n8n to Odoo — delegate Odoo operations to deterministic n8n workflows."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Is Odoo Hermes free?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Hermes Agent is open-source and free. Odoo Community Edition is also free. You only pay for hosting — derez.ai offers managed agents starting at $9.50/month with coupon code blog950."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Which integration method should I use?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "For quick queries and demos use XML-RPC direct. For multi-tool agents on MCP use the Odoo MCP CLI. For production business processes like invoicing and order management use Hermes to n8n to Odoo for deterministic step-by-step workflows."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Can Odoo Hermes write to my database?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Yes, but you control it. Set readonly: true in the config for read-only access, or remove it to allow create/update operations. Always use a dedicated Odoo user with restricted permissions for agent access."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- ── Plausible ──────────────────────────────────────────── -->
|
||||
<script
|
||||
defer
|
||||
data-domain="derez.ai"
|
||||
src="https://plausible.odoo4projects.com/js/script.file-downloads.outbound-links.tagged-events.js"
|
||||
></script>
|
||||
<script>
|
||||
window.plausible =
|
||||
window.plausible ||
|
||||
function () {
|
||||
(window.plausible.q = window.plausible.q || []).push(arguments)
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- ── Fonts ──────────────────────────────────────────────── -->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
|
||||
<!-- ── Styles ─────────────────────────────────────────────── -->
|
||||
<style>
|
||||
:root {
|
||||
--bg: #000810;
|
||||
--bg-card: #010f20;
|
||||
--bg-code: #001220;
|
||||
--border: #001a2e;
|
||||
--accent: #00f5ff;
|
||||
--accent-dim: rgba(0,245,255,0.08);
|
||||
--text: #e8e8f0;
|
||||
--text-muted: #888;
|
||||
--text-dim: #666;
|
||||
--radius: 8px;
|
||||
--radius-card: 14px;
|
||||
}
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
||||
line-height: 1.7;
|
||||
font-size: 15px;
|
||||
}
|
||||
a { color: var(--accent); text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
.container { max-width: 800px; margin: 0 auto; padding: 0 24px; }
|
||||
|
||||
/* ── Header ─────────────────────────────────────────── */
|
||||
.site-header {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 14px 0;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: var(--bg);
|
||||
z-index: 100;
|
||||
}
|
||||
.site-header .container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
max-width: 1100px;
|
||||
}
|
||||
.site-logo { display: flex; align-items: center; gap: 8px; }
|
||||
.site-logo-img { display: block; height: 34px; width: auto; }
|
||||
.nav-links {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 24px;
|
||||
font-size: 0.88rem;
|
||||
}
|
||||
.nav-links a { color: #999; transition: color .15s; }
|
||||
.nav-links a:hover { color: var(--text); text-decoration: none; }
|
||||
.header-actions { display: flex; align-items: center; gap: 12px; }
|
||||
.btn-login {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
font-size: 0.85rem;
|
||||
color: #999;
|
||||
padding: 6px 14px;
|
||||
border-radius: var(--radius);
|
||||
border: 1px solid var(--border);
|
||||
transition: all .15s;
|
||||
}
|
||||
.btn-login:hover { border-color: #333; color: var(--text); text-decoration: none; }
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 8px 22px;
|
||||
border-radius: var(--radius);
|
||||
font-weight: 600;
|
||||
font-size: 0.88rem;
|
||||
transition: all .2s;
|
||||
}
|
||||
.btn-primary {
|
||||
background: var(--accent);
|
||||
color: #000;
|
||||
border: 1px solid var(--accent);
|
||||
}
|
||||
.btn-primary:hover { background: #33f7ff; text-decoration: none; }
|
||||
.btn-outline {
|
||||
background: transparent;
|
||||
color: var(--accent);
|
||||
border: 1px solid var(--accent);
|
||||
}
|
||||
.btn-outline:hover { background: var(--accent-dim); text-decoration: none; }
|
||||
.hamburger {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
padding: 4px;
|
||||
}
|
||||
.hamburger span {
|
||||
display: block;
|
||||
width: 22px;
|
||||
height: 2px;
|
||||
background: #999;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
/* ── Hero ────────────────────────────────────────────── */
|
||||
.hero {
|
||||
padding: 60px 0 40px;
|
||||
text-align: center;
|
||||
}
|
||||
.hero .badge {
|
||||
display: inline-block;
|
||||
background: var(--accent-dim);
|
||||
color: var(--accent);
|
||||
border: 1px solid rgba(0,245,255,0.25);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
padding: 4px 12px;
|
||||
border-radius: 20px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.hero h1 { font-size: 2.6rem; font-weight: 700; line-height: 1.15; margin-bottom: 16px; }
|
||||
.hero p {
|
||||
font-size: 1.1rem;
|
||||
color: var(--text-muted);
|
||||
max-width: 600px;
|
||||
margin: 0 auto 24px;
|
||||
}
|
||||
.hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
|
||||
|
||||
/* ── Video ───────────────────────────────────────────── */
|
||||
.video-wrap {
|
||||
max-width: 360px;
|
||||
margin: 40px auto;
|
||||
aspect-ratio: 9/16;
|
||||
border-radius: var(--radius-card);
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
box-shadow: 0 8px 40px rgba(0,0,0,0.5);
|
||||
}
|
||||
.video-wrap iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* ── Content ─────────────────────────────────────────── */
|
||||
.content { padding-bottom: 60px; }
|
||||
.content h2 {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
margin: 48px 0 16px;
|
||||
color: #f0f0ff;
|
||||
}
|
||||
.content h3 {
|
||||
font-size: 1.15rem;
|
||||
font-weight: 600;
|
||||
margin: 28px 0 10px;
|
||||
color: #e0e0f0;
|
||||
}
|
||||
.content p { margin-bottom: 16px; color: #c8c8d8; }
|
||||
.content ul, .content ol { margin: 0 0 20px 24px; color: #c8c8d8; }
|
||||
.content li { margin-bottom: 8px; }
|
||||
.content strong { color: #f0f0ff; }
|
||||
.content code {
|
||||
background: var(--bg-code);
|
||||
padding: 2px 7px;
|
||||
border-radius: 4px;
|
||||
font-size: 0.88em;
|
||||
color: var(--accent);
|
||||
}
|
||||
.content pre {
|
||||
background: var(--bg-code);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 10px;
|
||||
padding: 16px 20px;
|
||||
margin: 0 0 20px;
|
||||
overflow-x: auto;
|
||||
font-size: 0.85rem;
|
||||
color: #c8f0ff;
|
||||
font-family: 'Courier New', monospace;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.content pre code { background: none; padding: 0; color: inherit; }
|
||||
.content .divider {
|
||||
border: none;
|
||||
border-top: 1px solid var(--border);
|
||||
margin: 36px 0;
|
||||
}
|
||||
.content .faq-item {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 18px 0;
|
||||
}
|
||||
.content .faq-item:last-child { border-bottom: none; }
|
||||
.content .faq-item h3 {
|
||||
font-size: 1rem;
|
||||
margin: 0 0 6px;
|
||||
cursor: pointer;
|
||||
color: var(--accent);
|
||||
}
|
||||
.content .faq-item p { margin: 0; font-size: 0.95rem; color: #aaa; }
|
||||
|
||||
/* ── Method cards ────────────────────────────────────── */
|
||||
.method-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 16px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.method-card {
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-card);
|
||||
padding: 24px;
|
||||
}
|
||||
.method-card h3 {
|
||||
font-size: 1rem;
|
||||
margin: 0 0 6px;
|
||||
color: var(--accent);
|
||||
}
|
||||
.method-card .speed { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 8px; display: block; }
|
||||
.method-card p { font-size: 0.9rem; margin: 0; }
|
||||
|
||||
/* ── CTA box ─────────────────────────────────────────── */
|
||||
.cta-box {
|
||||
background: var(--bg-card);
|
||||
border: 1px solid rgba(0,245,255,0.2);
|
||||
border-radius: var(--radius-card);
|
||||
padding: 32px 36px;
|
||||
margin: 40px 0;
|
||||
text-align: center;
|
||||
}
|
||||
.cta-box h3 { font-size: 1.2rem; margin-bottom: 8px; color: #f0f0ff; }
|
||||
.cta-box p { color: #999; margin-bottom: 18px; font-size: 0.95rem; }
|
||||
.cta-box .btn { font-size: 1rem; padding: 12px 32px; }
|
||||
|
||||
/* ── Footer ──────────────────────────────────────────── */
|
||||
.site-footer {
|
||||
border-top: 1px solid var(--border);
|
||||
padding: 24px 0;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.site-footer .container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
max-width: 1100px;
|
||||
font-size: 0.85rem;
|
||||
color: var(--text-dim);
|
||||
}
|
||||
.footer-links { display: flex; gap: 20px; }
|
||||
.footer-links a { color: var(--text-dim); }
|
||||
.footer-links a:hover { color: var(--accent); }
|
||||
|
||||
/* ── Responsive ──────────────────────────────────────── */
|
||||
@media (max-width: 700px) {
|
||||
.nav-links { display: none; }
|
||||
.hamburger { display: flex; }
|
||||
.hero h1 { font-size: 1.8rem; }
|
||||
.hero p { font-size: 1rem; }
|
||||
.method-grid { grid-template-columns: 1fr; }
|
||||
.site-footer .container { flex-direction: column; gap: 12px; }
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
body { font-size: 14px; }
|
||||
.hero { padding: 40px 0 24px; }
|
||||
.cta-box { padding: 24px 20px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════
|
||||
HEADER
|
||||
═══════════════════════════════════════════════════════════ -->
|
||||
<header class="site-header" id="site-header">
|
||||
<div class="container">
|
||||
<a href="/" class="site-logo">
|
||||
<img
|
||||
src="assets/images/logo.svg"
|
||||
alt="derez.ai"
|
||||
width="132"
|
||||
height="34"
|
||||
class="site-logo-img"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<ul class="nav-links" id="nav-links">
|
||||
<li><a href="https://derez.ai/#pricing">Pricing</a></li>
|
||||
<li><a href="https://derez.ai/#faq">FAQ</a></li>
|
||||
<li><a href="https://derez.ai/#blog">Blog</a></li>
|
||||
<li><a href="https://derez.ai/#topics">Topics</a></li>
|
||||
<li><a href="affiliate.html">Affiliate</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="header-actions">
|
||||
<a href="https://app.derez.ai" class="btn-login">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="11" width="18" height="11" rx="2" />
|
||||
<path d="M7 11V7a5 5 0 0 1 10 0v4" />
|
||||
</svg>
|
||||
Sign In
|
||||
</a>
|
||||
<a href="https://derez.ai/#pricing" class="btn btn-primary btn-signup-header">Buy Agent</a>
|
||||
<button class="hamburger" id="hamburger" aria-label="Toggle menu" onclick="toggleMobile()">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════
|
||||
HERO
|
||||
═══════════════════════════════════════════════════════════ -->
|
||||
<div class="container">
|
||||
<div class="hero">
|
||||
<div class="badge">Integration</div>
|
||||
<h1>Odoo Hermes</h1>
|
||||
<p>
|
||||
Connect your Odoo ERP to Hermes AI Agent and automate your business data
|
||||
through natural language. Three integration methods — pick the one that fits.
|
||||
</p>
|
||||
<div class="hero-actions">
|
||||
<a href="#setup" class="btn btn-primary">Setup Guide</a>
|
||||
<a href="#faq" class="btn btn-outline">FAQs</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ── YouTube Short (embedded)────────────────────────── -->
|
||||
<div class="video-wrap">
|
||||
<iframe
|
||||
src="https://www.youtube.com/embed/GVZMnq_NOxI"
|
||||
title="Odoo Hermes — AI Agent connects to Odoo via XML-RPC"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════
|
||||
CONTENT
|
||||
═══════════════════════════════════════════════════════ -->
|
||||
<div class="content">
|
||||
|
||||
<h2>What Is Odoo Hermes?</h2>
|
||||
<p>
|
||||
<strong>Odoo Hermes</strong> is the integration between <strong>Odoo ERP</strong> and
|
||||
<strong>Hermes AI Agent</strong>. It gives your AI agent direct access to your
|
||||
Odoo database — CRM contacts, sales orders, inventory levels, invoices, and more —
|
||||
all through natural language prompts.
|
||||
</p>
|
||||
<p>
|
||||
Instead of clicking through Odoo's module menus to find a customer or generate a
|
||||
report, you just ask your agent. "Show me all leads from last week." "What's the
|
||||
total value of open quotes?" "Create a new invoice for ACME Corp." Your agent
|
||||
handles the API calls and returns the answer.
|
||||
</p>
|
||||
<p>
|
||||
There are <strong>three ways</strong> to set up the connection, each with different
|
||||
trade-offs. The <a href="https://derez.ai/blog/posts/three-ways-integrate-odoo-hermes.html?utm_source=derez&utm_campaign=email">full comparison article</a>
|
||||
covers all three in detail, but here's the quick summary:
|
||||
</p>
|
||||
|
||||
<div class="method-grid">
|
||||
<div class="method-card">
|
||||
<h3>XML-RPC Direct</h3>
|
||||
<span class="speed">~3 min setup · Lowest latency</span>
|
||||
<p>Configure Odoo credentials in Hermes and the agent calls the API directly. Best for quick queries, demos, and prototyping.</p>
|
||||
</div>
|
||||
<div class="method-card">
|
||||
<h3>Odoo MCP CLI</h3>
|
||||
<span class="speed">~5 min setup · Standard protocol</span>
|
||||
<p>Run mcp-server-odoo and register with Hermes. Best for multi-tool agents that already use MCP for other services.</p>
|
||||
</div>
|
||||
<div class="method-card">
|
||||
<h3>n8n Pipeline</h3>
|
||||
<span class="speed">~10 min setup · Highest determinism</span>
|
||||
<p>Hermes delegates Odoo operations to n8n workflows. Best for production business processes where every step must be predictable.</p>
|
||||
</div>
|
||||
<div class="method-card">
|
||||
<h3>Speed Run</h3>
|
||||
<span class="speed">~10 min · Full walkthrough</span>
|
||||
<p>From zero to an Odoo-connected agent. Follow the <a href="https://derez.ai/blog/posts/speed-run-odoo-community-agent.html?utm_source=derez&utm_campaign=email">Odoo Speed Run</a> for the complete beginner-friendly guide.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Why Use Odoo Hermes?</h2>
|
||||
|
||||
<h3>One Interface, All Modules</h3>
|
||||
<p>
|
||||
Odoo has CRM, Sales, Inventory, Accounting, Manufacturing, and 30+ other modules.
|
||||
Each has its own UI, filters, and reports. Odoo Hermes collapses them all into a
|
||||
single text interface. Ask once, get answers from any module.
|
||||
</p>
|
||||
|
||||
<h3>Automate Repetitive Tasks</h3>
|
||||
<p>
|
||||
Instead of logging into Odoo every morning to check new leads, update stages, and
|
||||
generate reports, your agent does it on a schedule. Set up a <strong>cron job</strong>
|
||||
that runs "Pull all new leads from last 24 hours, categorize them by industry, and
|
||||
save the result to my dashboard" — and it happens automatically at 08:00 every day.
|
||||
</p>
|
||||
|
||||
<h3>Combine Odoo with Other Tools</h3>
|
||||
<p>
|
||||
Hermes Agent isn't limited to Odoo. It also browses the web, sends emails, reads
|
||||
files, and runs code. Your agent can research a prospect on LinkedIn,
|
||||
check their CRM record in Odoo, draft a personalized email, and send it — all in
|
||||
one session.
|
||||
</p>
|
||||
|
||||
<h3>No Code Required</h3>
|
||||
<p>
|
||||
You don't need to write Python scripts, build API integrations, or maintain
|
||||
middleware. Configure once in <code>config.yaml</code> and your agent is ready.
|
||||
The entire setup takes about 10 minutes.
|
||||
</p>
|
||||
|
||||
<hr class="divider" />
|
||||
|
||||
<h2 id="setup">Step-by-Step Setup (XML-RPC Direct)</h2>
|
||||
<p>
|
||||
This is the fastest path — one config block and your agent talks to Odoo directly.
|
||||
For the MCP or n8n approaches, see the <a href="https://derez.ai/blog/posts/three-ways-integrate-odoo-hermes.html?utm_source=derez&utm_campaign=email">full comparison guide</a>.
|
||||
</p>
|
||||
|
||||
<h3>Prerequisites</h3>
|
||||
<p>Have these ready before you start:</p>
|
||||
<ul>
|
||||
<li>Your Odoo instance URL (e.g. <code>https://your-instance.odoo4projects.com</code>)</li>
|
||||
<li>Odoo username and password (create a dedicated agent user — never use admin)</li>
|
||||
<li>Hermes Agent installed and running</li>
|
||||
</ul>
|
||||
|
||||
<h3>Step 1 — Generate an API Key</h3>
|
||||
<p>
|
||||
In Odoo, go to <strong>Settings → Users → select your agent user → Technical</strong>.
|
||||
Scroll to <strong>Security</strong> and click <strong>Generate API Key</strong>.
|
||||
Name it <code>hermes-agent</code> and copy the key immediately — Odoo only shows it once.
|
||||
</p>
|
||||
|
||||
<h3>Step 2 — Configure Hermes</h3>
|
||||
<p>Add this block to your <code>~/.hermes/config.yaml</code>:</p>
|
||||
<pre><code>odoo:
|
||||
url: "https://your-instance.odoo4projects.com"
|
||||
db: "your-database"
|
||||
user: "agent@company.com"
|
||||
api_key: "your-api-key"
|
||||
readonly: true</code></pre>
|
||||
<p>
|
||||
Set <code>readonly: true</code> for first setup. Remove it once you're confident
|
||||
and need the agent to create or update records.
|
||||
</p>
|
||||
|
||||
<h3>Step 3 — Give Your Agent the Prompt</h3>
|
||||
<p>Start Hermes and paste this prompt:</p>
|
||||
<pre><code>Connect to the ODOO 19 database with the credentials $ODOO_URL $ODOO_USER $ODOO_APIKEY</code></pre>
|
||||
|
||||
<h3>Step 4 — Verify</h3>
|
||||
<p>Ask your agent a simple question to confirm the connection works:</p>
|
||||
<pre><code>Give me a list of customers with their email addresses.</code></pre>
|
||||
<p>If everything is configured correctly, the agent returns live data from your Odoo instance:</p>
|
||||
<pre><code>1. Azure Interior — azure.interior@example.com
|
||||
2. Deco Addict — deco.addict@example.com
|
||||
3. Gem Furniture — gem.furniture@example.com
|
||||
4. Lumber Inc — lumber.inc@example.com
|
||||
Total: 8 customers in CRM</code></pre>
|
||||
|
||||
<p>That's it. Three minutes, one config block, and your agent talks to Odoo.</p>
|
||||
|
||||
<h3>What to Try Next</h3>
|
||||
<ul>
|
||||
<li><strong>"Show me all leads in the CRM"</strong> — pulls from <code>crm.lead</code></li>
|
||||
<li><strong>"List my recent sales orders"</strong> — queries <code>sale.order</code></li>
|
||||
<li><strong>"What products are low on stock?"</strong> — checks <code>stock.quant</code></li>
|
||||
<li><strong>"What's the total value of open quotes?"</strong> — sums draft sale orders</li>
|
||||
</ul>
|
||||
|
||||
<hr class="divider" />
|
||||
|
||||
<h2>Comparison: Which Method Should You Use?</h2>
|
||||
|
||||
<table style="width:100%;border-collapse:collapse;margin:20px 0;font-size:0.95rem;">
|
||||
<tr style="border-bottom:1px solid var(--border);">
|
||||
<th style="text-align:left;padding:8px 12px;color:var(--accent);">Factor</th>
|
||||
<th style="text-align:left;padding:8px 12px;color:var(--accent);">XML-RPC</th>
|
||||
<th style="text-align:left;padding:8px 12px;color:var(--accent);">MCP</th>
|
||||
<th style="text-align:left;padding:8px 12px;color:var(--accent);">n8n</th>
|
||||
</tr>
|
||||
<tr style="border-bottom:1px solid var(--border);">
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">Setup time</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">~3 min</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">~5 min</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">~10 min</td>
|
||||
</tr>
|
||||
<tr style="border-bottom:1px solid var(--border);">
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">Determinism</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">Low (LLM-driven)</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">Medium (tool-bound)</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">High (step-by-step)</td>
|
||||
</tr>
|
||||
<tr style="border-bottom:1px solid var(--border);">
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">Audit trail</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">None</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">None</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">Full (n8n logs)</td>
|
||||
</tr>
|
||||
<tr style="border-bottom:1px solid var(--border);">
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">Best for</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">Quick queries, demos</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">Multi-tool stacks</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">Invoices, orders, data entry</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;font-weight:600;">Components</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">Hermes + Odoo</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">+ MCP server</td>
|
||||
<td style="padding:8px 12px;color:#c8c8d8;">+ n8n</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr class="divider" />
|
||||
|
||||
<h2 id="faq">Frequently Asked Questions</h2>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>What is Odoo Hermes?</h3>
|
||||
<p>Odoo Hermes is the integration between Odoo ERP and Hermes AI Agent. It allows your AI agent to read, write, and automate data across Odoo modules — CRM, Sales, Inventory, Accounting — through natural language prompts instead of clicking through the Odoo UI.</p>
|
||||
</div>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>How do I connect Odoo to Hermes Agent?</h3>
|
||||
<p>There are three ways: <strong>XML-RPC direct</strong> — configure Odoo credentials in Hermes config.yaml and the agent calls the API directly. <strong>Odoo MCP CLI</strong> — run mcp-server-odoo and register with Hermes. <strong>n8n pipeline</strong> — delegate Odoo operations to deterministic n8n workflows. The right choice depends on whether you need speed (XML-RPC), standardization (MCP), or determinism (n8n).</p>
|
||||
</div>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>Is Odoo Hermes free?</h3>
|
||||
<p>Hermes Agent is open-source and free. Odoo Community Edition is also free with no per-user fees. You only pay for hosting — derez.ai offers managed agents starting at $9.50/month. Use coupon code <strong>blog950</strong> for your first month free.</p>
|
||||
</div>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>Which integration method is best for production?</h3>
|
||||
<p>The <strong>n8n pipeline</strong> is the most production-ready. Every Odoo operation runs through a deterministic workflow — check customer exists, then check product, then create invoice. This prevents the LLM from chaining API calls in unexpected ways. Use XML-RPC for quick queries and demos, n8n for business-critical operations like invoicing and order management.</p>
|
||||
</div>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>Can Odoo Hermes write to my database?</h3>
|
||||
<p>Yes, but you control it. Set <code>readonly: true</code> in the config for read-only access. Remove it to allow create/update operations. Always create a dedicated Odoo user for the agent with restricted model access — never use an admin account.</p>
|
||||
</div>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>What Odoo versions does Odoo Hermes support?</h3>
|
||||
<p>The XML-RPC and JSON-RPC APIs work with Odoo 15 through 19, including Odoo Community Edition and Odoo Enterprise. The MCP server supports Odoo 17+. The n8n approach works with any version that exposes a webhook-compatible API.</p>
|
||||
</div>
|
||||
|
||||
<div class="faq-item">
|
||||
<h3>Can I schedule Odoo Hermes to run automatically?</h3>
|
||||
<p>Yes. Hermes Agent has built-in cron job support. You can schedule prompts like "Check for new leads every hour and alert me if there are more than 5" or "Generate a weekly sales report every Monday at 09:00." The agent runs autonomously and sends you the results.</p>
|
||||
</div>
|
||||
|
||||
<!-- ── CTA ──────────────────────────────────────────── -->
|
||||
<div class="cta-box">
|
||||
<h3>Deploy Your Odoo Hermes Agent</h3>
|
||||
<p>
|
||||
First month free with coupon code <strong>blog950</strong>. From zero to
|
||||
an Odoo-connected AI agent in under 10 minutes.
|
||||
</p>
|
||||
<a href="https://derez.ai/#pricing" class="btn btn-primary">Buy Agent →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════
|
||||
FOOTER
|
||||
═══════════════════════════════════════════════════════════ -->
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<span>© 2026 derez.ai — AI Agent Hosting</span>
|
||||
<div class="footer-links">
|
||||
<a href="https://derez.ai/odoo-hermes">Odoo Hermes</a>
|
||||
<a href="https://derez.ai/affiliate.html">Affiliate Program</a>
|
||||
<a href="https://www.youtube.com/@derez_ai" target="_blank" rel="noopener">YouTube</a>
|
||||
<a href="https://www.linkedin.com/company/derez-ai" target="_blank" rel="noopener">LinkedIn</a>
|
||||
<a href="https://ODOO4projects.com?utm_source=derez" target="_blank" rel="noopener">Powered by ODOO4projects LLC</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- ── Mobile toggle ───────────────────────────────────────── -->
|
||||
<script>
|
||||
function toggleMobile() {
|
||||
const nav = document.getElementById('nav-links');
|
||||
nav.style.display = nav.style.display === 'flex' ? 'none' : 'flex';
|
||||
}
|
||||
</script>
|
||||
<script src="assets/js/script.js?v3" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user