Create /odoo-hermes landing page + link from homepage footer and blog posts with Odoo Hermes anchor text

This commit is contained in:
Oliver
2026-06-30 16:17:31 -03:00
parent 7442702722
commit cdfa125c2a
5 changed files with 711 additions and 5 deletions
+703
View File
@@ -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>&copy; 2026 derez.ai &mdash; 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>