Files
ODOO4projects.com/blog/posts/howto-ai-automation.html
T
webmaster 9d14652a57 hide [hidden] site-wide: one [hidden] { display:none !important } in style.css
A filtered-out directory card stayed visible. The card is targeted by an
id-based ready-state selector (`.js #directory[data-dir-state="ready"]
#dirGrid > .dev-card`, two ids), which outranked the old per-element patch
`.dev-card[hidden] { display:none }` — so `card.hidden = true` set the
attribute and every card stayed on screen while the count line correctly
read "Showing 1 of 4".

Fix: one rule, `[hidden] { display:none !important }`, early in /style.css.
A class- or id-based `display` can no longer beat the attribute, so this
cannot recur with the next class that sets `display`. The per-element
`[hidden]` patches are removed so a single mechanism governs:
 - odoo-community-developers: cards + filter row + pager + modal
   (load-bearing — each sets `display`); focus-sliders/noscript (redundant)
 - index/de/es `.hero-notice[hidden]`, odoo-black-friday `.ads-consent[hidden]`
   (redundant — those elements set no `display`)
Re-fingerprint local assets (style.css changed): /style.css?v 3332fbba93 ->
061517baef across 51 pages.

Measured in a real browser (local harness, stubbed webhook; no record created,
no probe write) — computed display + geometry, never the `hidden` property:
 - filtered to one card: the other three report display:none and height 0;
   the visible set (1) equals the count line ("Showing 1 of 4") — 1 == 1
 - HEAD (pre-fix) reproduces the defect: 3 cards hidden=true yet display:flex,
   height 599.38 each; 4 visible vs the count's 1
 - pager: display:none height 0 with one page; display:flex height 66.83 with
   12 cards (Page 1 of 2); page 2 hides page-1 cards (display:none)
 - modals closed: display:none height 0; load state: cards 0, pager/empty
   display:none, filter row visibility:hidden by design
 - 375 px: same result, no horizontal overflow; avatar ask-row top identical
   across a row (2053.97 / links 2086.91)
2026-11-03 22:34:39 +00:00

259 lines
9.7 KiB
HTML

<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>
Build AI-Powered Workflows with Odoo &amp; n8n | ODOO4projects
</title>
<meta
name="description"
content="Connect Odoo to AI services and automate repetitive tasks using n8n workflows. A hands-on guide for busy operators."
/>
<link
rel="canonical"
href="https://odoo4projects.com/blog/posts/howto-ai-automation.html"
/>
<meta
property="og:title"
content="Build AI-Powered Workflows with Odoo &amp; n8n"
/>
<meta
property="og:description"
content="Connect Odoo to AI services and automate repetitive tasks using n8n workflows. A hands-on guide for busy operators."
/>
<meta property="og:type" content="article" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="../../images/favicon.ico" />
<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:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="../../style.css?v=061517baef" />
<style>
/* Blog post specific overrides — matching homepage light theme */
body {
background: #fff;
color: #212529;
}
.blog-post-container {
width: 80%;
max-width: 800px;
margin: 0 auto;
padding: 0 20px;
}
@media (max-width: 768px) {
.blog-post-container {
width: 100%;
}
}
.blog-header {
padding: 2rem 0;
border-bottom: 1px solid #e5e3e0;
}
.blog-header a {
color: #65435c;
text-decoration: none;
font-size: 0.85rem;
}
.blog-header a:hover {
text-decoration: underline;
}
.post-title {
font-family: "Inter Tight", sans-serif;
font-size: clamp(1.5rem, 3vw, 2.2rem);
font-weight: 700;
margin: 1.5rem 0 0.5rem;
color: #1b1319;
}
.post-meta {
color: rgba(33, 37, 41, 0.5);
font-size: 0.85rem;
margin-bottom: 2rem;
}
.post-content h2 {
font-family: "Inter Tight", sans-serif;
font-size: 1.3rem;
margin-top: 2rem;
color: #1b1319;
}
.post-content p {
margin: 1rem 0;
}
.post-content ul,
.post-content ol {
padding-left: 1.5rem;
}
.post-content li {
margin: 0.5rem 0;
}
.post-content code {
background: #f6f5f4;
color: #714b67;
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-size: 0.9em;
}
.post-content pre {
background: #f6f5f4;
color: #1b1319;
padding: 1rem;
border-radius: 0.6rem;
overflow-x: auto;
border: 1px solid #e5e3e0;
font-size: 0.9rem;
}
.pro-tip {
border-left: 3px solid #714b67;
background: #f6f5f4;
padding: 1rem 1.25rem;
margin: 1.5rem 0;
border-radius: 0 0.6rem 0.6rem 0;
}
.pro-tip strong {
color: #714b67;
}
.cta-box {
border: 1px solid rgba(113, 75, 103, 0.2);
background: #f6f5f4;
padding: 1.5rem;
margin: 2rem 0;
border-radius: 0.6rem;
text-align: center;
}
.cta-box h3 {
margin: 0 0 0.5rem;
color: #1b1319;
}
.cta-box p {
margin: 0 0 1rem;
color: rgba(33, 37, 41, 0.55);
font-size: 0.9rem;
}
.cta-box .btn {
display: inline-block;
padding: 0.6rem 1.5rem;
background: #714b67;
color: #fff;
text-decoration: none;
border-radius: 0.5rem;
font-weight: 600;
font-size: 0.85rem;
transition: opacity 0.2s;
}
.cta-box .btn:hover {
opacity: 0.85;
}
.post-footer {
padding: 2rem 0;
border-top: 1px solid #e5e3e0;
margin-top: 2rem;
}
.post-footer a {
color: #65435c;
text-decoration: none;
}
.post-footer a:hover {
text-decoration: underline;
}
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Build AI-Powered Workflows with Odoo & n8n",
"datePublished": "2026-06-06",
"url": "https://odoo4projects.com/blog/posts/howto-ai-automation.html",
"author": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/"
},
"publisher": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/",
"logo": {
"@type": "ImageObject",
"url": "https://odoo4projects.com/images/logo.png"
}
}
}
</script>
<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
<script>
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
plausible.init()
</script>
</head>
<body>
<main>
<div class="blog-post-container">
<div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a>
</div>
<article>
<h1 class="post-title">
Build AI-Powered Workflows with Odoo &amp; n8n
</h1>
<div class="post-meta">June 6, 2026 &middot; How-To</div>
<div class="post-content">
<p>
Combining Odoo's business management capabilities with
AI services unlocks powerful automation. With n8n
running alongside your ODOO4projects instance, you can
build intelligent workflows that save hours every day.
</p>
<h2>What You'll Need</h2>
<ul>
<li>An ODOO4projects instance (any plan)</li>
<li>An n8n instance (self-hosted or cloud)</li>
<li>
API keys for your AI service (OpenAI, Anthropic,
etc.)
</li>
</ul>
<h2>Example: AI-Powered Lead Scoring</h2>
<p>
Create an <a href="../../odoo-n8n-masterclass/">n8n workflow</a> that triggers whenever a new lead
is created in Odoo CRM. The workflow sends the lead data
to an AI model for scoring and enrichment, then updates
the lead record with the results.
</p>
<pre><code>1. Trigger: New Lead in Odoo CRM
2. Action: Send lead data to GPT-4 for scoring
3. Action: Enrich with company info from web search
4. Action: Update lead priority in Odoo
5. Action: Notify sales team via Slack</code></pre>
<div class="pro-tip">
<strong>Pro Tip:</strong> Use ODOO4projects' n8n
integration channel for a pre-built connection template.
It handles authentication, rate limiting, and error
logging out of the box.
</div>
<h2>Deploy in Minutes</h2>
<p>
With ODOO4projects, you can <a href="../../odoo-hosting-2027.html">deploy n8n alongside your
Odoo instance</a> with a single click. No complex networking
or security configuration needed &mdash; everything is
pre-configured.
</p>
<div class="cta-box">
<h3>Automate Your Business Today</h3>
<p>Combine Odoo with AI and n8n on ODOO4projects.</p>
<a href="../../index.html#pricing" class="btn"
>Get Started</a
>
</div>
</div>
</article>
<div class="post-footer">
<a href="../../index.html#blog">&larr; Back to all posts</a>
</div>
</div>
</main>
</body>
</html>