Files
ODOO4projects.com/odoo-n8n-masterclass/index.html
T
webmaster 0e832d8fd1 perf(site-wide): render-blocking /style.css on 17 pages; <main> landmark; BF footer form action
Same defect the bootcamp carried (2aa9b19), fixed site-wide in one mechanical pass.

P0 (17 pages): /style.css was deferred via media="print" onload=... -> unstyled
first paint -> a BODY layout shift. Now a normal render-blocking
<link rel="stylesheet">; the now-redundant no-JS <noscript> for style.css is
dropped. Web fonts + Font Awesome keep their legitimate deferral.
Pages: index.html, odoo-black-friday/, odoo-hosting-offers/, de/index.html,
es/index.html, odoo-hosting-2027.html (+de/+es), odoo-community-upgrade.html
(+de/+es), odoo-staging-environment/, odoo-community-ai/,
odoo-n8n-masterclass/, australia.html, workshops/, what-can-i-use-odoo-for/.

P1 (1 page): /odoo-black-friday/ footer form action mailto: -> CRM webhook
(Lighthouse is-on-https). Changed only because the page already loads a handler
for #footerContactForm (static/black-friday.js). The other 13 mailto-form pages
load no handler and are left alone on purpose (no drive-by handler copy-in).
Added the no-JS <noscript> fallback so a JS-off visitor keeps a path.

P2 (35 pages): add a single <main> landmark wrapping the primary content; top
bar and footer stay outside. Additive only, no redesign.

Guards held: bootcamp EN/DE/ES and every JS/static file untouched; Buy forms
product_id 4/17 intact; one [data-bc-seats]; ads-consent gate intact.
verify-html.py PROBLEMS 0; competitor QC 74 pre-existing, 0 added.
2026-11-02 18:18:46 +00:00

837 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ODOO x N8N Masterclass: Call n8n from Odoo, Live in 2 Hours</title>
<meta
name="description"
content="Two live hours with Oliver Arnold: call n8n webhooks from Odoo automated actions and build a working automation yourself. Free trial systems, $120."
/>
<link rel="canonical" href="https://odoo4projects.com/odoo-n8n-masterclass/" />
<meta property="og:title" content="ODOO x N8N Masterclass: Call n8n from Odoo, Live in 2 Hours" />
<meta
property="og:description"
content="Two live hours with Oliver Arnold: call n8n webhooks from Odoo automated actions and build a working automation yourself. Free trial systems, $120."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://odoo4projects.com/odoo-n8n-masterclass/" />
<meta name="twitter:card" content="summary" />
<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
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap"
media="print"
onload="this.media='all'"
/>
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" />
<style>
/* ---- ODOO x N8N Masterclass landing page (page-scoped; additive).
The block below is the bootcamp page's page-scoped CSS, reused so the two
course pages share one visual language. Only the hero photo comment is
rewritten; every value is the bootcamp's. ---- */
.bc-sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Top bar (page-scoped: the site has no global header) */
.bc-topbar {
background: var(--midnight-2);
border-bottom: 1px solid var(--line-brass);
padding: 0.85rem 0;
}
.bc-topbar .container {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
flex-wrap: wrap;
}
.bc-brand {
font-family: Marcellus, Georgia, serif;
font-size: 1.15rem;
letter-spacing: 0.04em;
color: #fff;
}
.bc-brand span {
color: var(--brass);
}
.bc-topbar-links {
display: flex;
gap: 1.25rem;
font-size: 0.82rem;
}
.bc-topbar-links a {
color: rgba(255, 255, 255, 0.7);
}
.bc-topbar-links a:hover {
color: var(--brass);
}
/* Language selector — slides into the top-bar row, right of the links, behind a hairline brass divider.
CI §1/§2: brass marks the active language; lang.js owns the markup. */
.bc-topbar-links {
margin-left: auto;
}
.bc-topbar .lang-switch-slot {
display: flex;
align-items: center;
padding-left: 1rem;
border-left: 1px solid rgba(201, 162, 39, 0.45);
}
.bc-topbar .lang-switch {
color: rgba(255, 255, 255, 0.7);
}
.bc-topbar .lang-switch a:hover,
.bc-topbar .lang-switch a:focus-visible {
color: var(--brass-bright);
}
.bc-topbar .lang-switch a[aria-current="true"] {
color: var(--brass);
text-decoration: underline;
text-underline-offset: 3px;
}
/* Hero — same treatment as the bootcamp page: our own London night aerial
(CI §5) behind the header copy, with the identical two-zone scrim
(.78 0%-88%, ramp 88%-94%, .25 94%-100%) so every text block in the copy
zone keeps its contrast floor. Numbers for the scrim: see the bootcamp
page's comment and handoffs/2026-10-24-webmaster-to-olchi-bootcamp-page-published.md. */
.bc-hero {
min-height: 0;
padding: 3.5rem 0 3rem;
background-image: linear-gradient(90deg,
rgba(13, 27, 46, 0.78) 0%,
rgba(13, 27, 46, 0.78) 88%,
rgba(13, 27, 46, 0.25) 94%,
rgba(13, 27, 46, 0.25) 100%),
url("/images/hero/bootcamp-hero-desktop-1920.webp");
background-size: cover;
background-position: 50% 25%;
background-repeat: no-repeat;
}
/* The global .hero::after is a second, 50%-opacity midnight wash for the homepage's
flat hero; with the photo + gradient scrim above the copy it only dulls the shot,
so it is switched off on this page. One page-scoped rule, no global CSS touched. */
.bc-hero::after {
content: none;
}
@media (max-width: 640px) {
.bc-hero {
background-image: linear-gradient(90deg,
rgba(13, 27, 46, 0.78) 0%,
rgba(13, 27, 46, 0.78) 88%,
rgba(13, 27, 46, 0.25) 94%,
rgba(13, 27, 46, 0.25) 100%),
url("/images/hero/bootcamp-hero-mobile-900.webp");
background-position: 50% 50%;
}
}
/* wrapped hero-stat labels keep their tick on the first line */
.bc-hero .hero-stat {
align-items: flex-start;
}
.bc-hero .hero-stat i {
line-height: 1.6;
}
.bc-lead {
font-size: 1.05rem;
color: rgba(23, 28, 38, 0.78);
max-width: 720px;
margin: 0 auto 1rem;
line-height: 1.75;
}
.section-dark .bc-lead,
.bc-lead.on-dark {
color: rgba(255, 255, 255, 0.72);
}
.bc-subline {
font-family: Marcellus, Georgia, serif;
font-size: 1.15rem;
color: var(--midnight);
text-align: center;
max-width: 720px;
margin: 1.75rem auto 1.25rem;
letter-spacing: 0.02em;
}
.bc-action {
text-align: center;
margin-top: 0.5rem;
}
/* The CTAs are native basket <form>s with a <button>. A <button> takes
`line-height: normal` from the UA font shorthand while an <a> inherits the
body line-height, which would make the button 5.6px shorter. Match the
anchors' height: one declaration, no new look. */
form[action$="/shop/post_basket"] .btn {
line-height: inherit;
}
/* Grids — auto-fit so no breakpoint is needed */
.bc-list {
list-style: none;
padding: 0;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1rem;
max-width: 1040px;
}
/* Learning tiles (light canvas) */
.bc-lessons {
list-style: none;
counter-reset: bc-lesson;
padding: 0;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1rem;
max-width: 1040px;
}
.bc-lessons li {
counter-increment: bc-lesson;
position: relative;
background: var(--ivory);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-rest);
padding: 1.4rem 1.4rem 1.4rem 3.4rem;
transition: box-shadow 0.25s, transform 0.25s;
}
.bc-lessons li:hover {
box-shadow: var(--shadow-hover);
transform: translateY(-3px);
}
.bc-lessons li::before {
content: counter(bc-lesson);
position: absolute;
left: 1.15rem;
top: 1.3rem;
font-family: Marcellus, Georgia, serif;
font-size: 1.5rem;
color: var(--brass-deep);
line-height: 1;
}
.bc-lessons h3 {
font-size: 1rem;
font-weight: 400;
color: var(--midnight);
margin-bottom: 0.35rem;
}
.bc-lessons p {
font-size: 0.86rem;
color: rgba(23, 28, 38, 0.78);
line-height: 1.6;
margin: 0;
}
/* Cards on midnight */
.bc-cards {
list-style: none;
padding: 0;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1rem;
max-width: 1040px;
}
.bc-cards li {
background: rgba(255, 255, 255, 0.04);
border: 1px solid var(--line-brass);
border-radius: var(--radius-lg);
padding: 1.35rem 1.4rem;
}
.bc-cards h3 {
font-size: 1rem;
color: #fff;
margin-bottom: 0.45rem;
}
.bc-cards p {
font-size: 0.86rem;
color: rgba(255, 255, 255, 0.72);
line-height: 1.65;
margin: 0;
}
.bc-note {
max-width: 720px;
margin: 1.5rem auto 0;
font-size: 0.86rem;
color: rgba(23, 28, 38, 0.78);
line-height: 1.65;
}
.bc-note.on-dark {
color: rgba(255, 255, 255, 0.6);
}
.bc-note strong {
color: var(--midnight);
}
.bc-note.on-dark strong {
color: #fff;
}
/* Definition list (prerequisites) */
.bc-schedule {
max-width: 720px;
margin: 0 auto;
display: grid;
grid-template-columns: minmax(9rem, auto) 1fr;
gap: 0.55rem 1.25rem;
background: var(--ivory);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-rest);
padding: 1.5rem 1.75rem;
}
.bc-schedule dt {
font-family: Marcellus, Georgia, serif;
font-size: 0.92rem;
color: var(--brass-deep);
}
.bc-schedule dd {
margin: 0;
font-size: 0.9rem;
color: var(--ink);
line-height: 1.55;
}
/* Price line */
.bc-price {
font-family: Marcellus, Georgia, serif;
font-size: 1.3rem;
color: var(--midnight);
text-align: center;
margin: 0 auto 1rem;
}
/* Related links */
.bc-related {
list-style: none;
padding: 0;
margin: 2rem auto 0;
max-width: 720px;
display: grid;
gap: 0.5rem;
}
.bc-related li {
position: relative;
padding-left: 1.4rem;
font-size: 0.88rem;
}
.bc-related li::before {
content: "";
position: absolute;
left: 0.25rem;
top: 0.55rem;
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--brass);
}
.bc-related a {
color: var(--midnight);
text-decoration: underline;
text-decoration-color: var(--brass);
text-underline-offset: 2px;
}
.bc-related a:hover {
text-decoration-color: var(--brass-deep);
text-decoration-thickness: 2px;
}
/* FAQ (native details/summary — no JS) */
.bc-faq-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
max-width: 1000px;
margin: 0 auto;
align-items: start;
}
.bc-faq {
background: var(--ivory);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 0.4rem 1.25rem;
box-shadow: var(--shadow-rest);
transition: box-shadow 0.25s;
}
.bc-faq[open],
.bc-faq:hover {
box-shadow: var(--shadow-hover);
}
.bc-faq summary {
cursor: pointer;
list-style: none;
padding: 0.85rem 0;
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.75rem;
font-family: Marcellus, Georgia, serif;
font-size: 0.98rem;
color: var(--midnight);
}
.bc-faq summary::-webkit-details-marker {
display: none;
}
.bc-faq summary::after {
content: "+";
font-family: Inter, sans-serif;
color: var(--brass);
font-size: 1.15rem;
line-height: 1;
flex-shrink: 0;
}
.bc-faq[open] summary::after {
content: "\2212";
}
.bc-faq summary:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
border-radius: var(--radius);
}
.bc-faq .bc-a {
font-size: 0.87rem;
color: rgba(23, 28, 38, 0.78);
line-height: 1.7;
padding-bottom: 1rem;
}
.bc-faq .bc-a p:last-child {
margin-bottom: 0;
}
@media (max-width: 768px) {
.bc-faq-grid {
grid-template-columns: 1fr;
}
.bc-schedule {
grid-template-columns: 1fr;
gap: 0.15rem 0;
padding: 1.25rem 1.35rem;
}
.bc-schedule dd {
margin-bottom: 0.7rem;
}
}
/* Focus states */
.btn:focus-visible,
.bc-topbar-links a:focus-visible,
.bc-related a:focus-visible {
outline: 3px solid var(--brass-bright);
outline-offset: 2px;
border-radius: var(--radius);
}
.btn-brass:focus-visible {
outline-color: #fff;
}
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Course",
"name": "ODOO × N8N Masterclass",
"description": "A two-hour live masterclass on connecting Odoo to n8n: calling n8n webhooks from Odoo automated actions, how the n8n integration for Odoo works, and website workarounds for extending your automation. Hands-on in free trial systems.",
"url": "https://odoo4projects.com/odoo-n8n-masterclass/",
"provider": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/"
},
"instructor": {
"@type": "Person",
"name": "Oliver Arnold",
"jobTitle": "Technical Lead",
"worksFor": {
"@type": "Organization",
"name": "ODOO4projects"
}
},
"inLanguage": "en",
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "online",
"courseWorkload": "PT2H",
"startDate": "2027-02-04",
"instructor": {
"@type": "Person",
"name": "Oliver Arnold"
}
},
"offers": {
"@type": "Offer",
"price": "120.00",
"priceCurrency": "USD",
"category": "Paid",
"url": "https://20.odoo4projects.com/shop/post_basket"
}
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Do I need to know n8n already?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. You can arrive having never opened it. The session starts at the webhook and builds up from there, inside n8n's own free plan."
}
},
{
"@type": "Question",
"name": "What do I need to know before I join?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Two things. Basic Odoo, meaning you know what workflows and automated actions are and where they live in the interface. And basic programming, enough to know what an API is and how one gets called."
}
},
{
"@type": "Question",
"name": "What do I need installed?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nothing. A computer and a browser. We provide the free Odoo trial system, so you are working in a live setup rather than a video. You use n8n on n8n's own free plan."
}
},
{
"@type": "Question",
"name": "Do I get a certificate?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. You receive a certificate at the end of the masterclass."
}
},
{
"@type": "Question",
"name": "What language is it in?",
"acceptedAnswer": {
"@type": "Answer",
"text": "English."
}
},
{
"@type": "Question",
"name": "Is this for me if I do not write code?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, as long as you can read code rather than write it. You need to understand what an API call is, not to build an application. If code is entirely foreign to you, the bootcamp covers automating your business without any of it."
}
}
]
}
]
}
</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>
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
<div class="bc-topbar">
<div class="container">
<a class="bc-brand" href="/">ODOO4<span>projects</span></a>
<nav class="bc-topbar-links" aria-label="Page links">
<a href="/index.html#pricing">Plans &amp; pricing</a>
<a href="/workshops/">Workshops</a>
<a href="/support.html">Support</a>
</nav>
<div data-lang-switcher class="lang-switch-slot"></div>
</div>
</div>
<!-- Hero -->
<main>
<section class="hero bc-hero">
<div class="container">
<p class="hero-kicker">2 HOURS &middot; LIVE &middot; OLIVER ARNOLD &middot; ENGLISH</p>
<p class="hero-kicker">NEXT SESSION &middot; THURSDAYS IN FEBRUARY 2027 &middot; 17:00 CENTRAL TIME</p>
<h1>ODOO &times; N8N Masterclass</h1>
<p class="hero-sub">
Two live hours with Oliver Arnold, working inside real Odoo and n8n systems: make your ERP start
its own jobs instead of waiting for someone to click.
</p>
<div class="hero-stats">
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> 2 hours live, with a Q&amp;A at the end</span>
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> You build and test a live automation yourself</span>
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> A free Odoo trial system; n8n on n8n's own free plan</span>
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> Certificate when you are done</span>
</div>
<div class="hero-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":44,"qty":1}]' />
<input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Buy for 120.00 USD</button>
</form>
</div>
</div>
</section>
<!-- What the two hours give you -->
<section class="section-light">
<div class="container">
<h2 class="section-title">What the two hours give you</h2>
<p class="bc-lead">
Your Odoo system already knows the moment a quote is confirmed, a stock level drops, or an
invoice gets paid. Today most of that knowledge sits still until a person notices it and does the
next thing by hand.
</p>
<p class="bc-lead">
In two hours you learn how to hand that next thing to n8n. One Odoo automated action fires on a
business event, calls an n8n webhook, and n8n carries the work forward while you are somewhere
else. You build it in the session and you keep the pattern afterwards.
</p>
<p class="bc-subline">Two hours. One working automation. Your system doing its own work.</p>
<div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":44,"qty":1}]' />
<input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Buy for 120.00 USD</button>
</form>
</div>
</div>
</section>
<!-- Who this is for -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">Who this is for</h2>
<p class="bc-lead">
You already run Odoo and you can name the manual steps that pile up every week. The quote that
needs a message sent, the payment that needs a note added, the report someone rebuilds by hand on
Friday. You know your way around workflows and automated actions in the interface, and you are
comfortable enough with code to read a payload.
</p>
<p class="bc-lead">
This is not a first course in Odoo, and it is not an owner's introduction to ERP. If you have
never opened Odoo, or an API is still a vague word to you, start with the
<a href="/odoo-erp-automation-bootcamp/">ODOO ERP Automation Bootcamp</a> instead. This
masterclass assumes you are already past that line.
</p>
</div>
</section>
<!-- What you will learn -->
<section class="section-light">
<div class="container">
<h2 class="section-title">What you will learn</h2>
<ol class="bc-lessons">
<li>
<h3>Calling n8n webhooks from Odoo automated actions.</h3>
<p>The core of the session. You set an automated action to fire on a business event and call an n8n webhook, carrying the record's data with it, and you watch the workflow pick it up on the other side. This is the piece most people have never wired up themselves.</p>
</li>
<li>
<h3>How the n8n integration for Odoo works, with tips and tricks from real use cases.</h3>
<p>What is actually happening underneath when the two systems talk, the parts that trip people up, and the shortcuts that come from running this on live systems rather than in a demo.</p>
</li>
<li>
<h3>Smart website workarounds for extending your Odoo automation.</h3>
<p>Where Odoo's own automation stops, and the website-side workarounds that get you further without writing a custom module.</p>
</li>
</ol>
<p class="bc-lead">For a worked example end to end, our post on <a href="/blog/posts/odoo-19-to-20-invoice-migration-with-n8n-and-mcp.html">migrating invoices between Odoo versions</a> shows the same idea with an n8n workflow and an MCP tool.</p>
</div>
</section>
<!-- The hands-on part -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">The hands-on part</h2>
<p class="bc-lead">
You spend most of the two hours inside the systems. We give you a free Odoo trial environment,
and you work through the exercises step by step inside n8n's own free plan: build the automated
action, wire the webhook, run the workflow, then break it and fix it with Oliver alongside you.
</p>
<p class="bc-lead">
You finish having tested a live automation on your own screen, and you keep access to the pattern
you built.
</p>
<p class="bc-note on-dark">
<strong>On n8n, in plain words:</strong> the n8n workspace is n8n's own free plan, which you sign
up for yourself. It is not part of the $120 and not included.
</p>
</div>
</section>
<!-- What you need first -->
<section class="section-light">
<div class="container">
<h2 class="section-title">What you need first</h2>
<dl class="bc-schedule">
<dt>Basic Odoo</dt>
<dd>You know what workflows and automated actions are and where to find them.</dd>
<dt>Basic programming</dt>
<dd>You know what an API is and how one gets called. You do not need to be a developer.</dd>
<dt>n8n experience</dt>
<dd>None needed. You can arrive having never opened n8n.</dd>
</dl>
<p class="bc-note">
If the first two do not describe you yet, the
<a href="/odoo-erp-automation-bootcamp/">bootcamp</a> is the right first step.
</p>
</div>
</section>
<!-- Your instructor -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">Your instructor</h2>
<p class="bc-lead">
<strong>Oliver Arnold, Technical Lead at ODOO4projects.</strong>
</p>
<p class="bc-lead">
Oliver has spent more than 25 years building software that has to keep working, and he is the lead
architect of the platform our hosting runs on. He teaches the way he works: the real system on the
screen, the real error in front of you, and the two of you fixing it together.
</p>
<p class="bc-lead">
He is the only instructor on this masterclass. Every session is him.
</p>
</div>
</section>
<!-- Price and booking -->
<section class="section-light">
<div class="container">
<h2 class="section-title">Price and booking</h2>
<p class="bc-price">The masterclass costs USD 120.00.</p>
<p class="bc-lead">
Covers two live hours with Oliver, the Q&amp;A, the step-by-step exercises, the free Odoo trial
system, and your certificate when you finish.
</p>
<p class="bc-subline">Next session: Thursdays in February 2027, 17:00 Central Time</p>
<p class="bc-note">
The four Thursdays are 4, 11, 18 and 25 February 2027. Central Time is UTC&minus;6 in February
&mdash; calendar invites carry the correct local time.
</p>
<div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":44,"qty":1}]' />
<input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Buy for 120.00 USD</button>
</form>
</div>
<ul class="bc-related">
<li><a href="/support.html#contact">Questions before you book? Talk to us first</a></li>
<li><a href="/workshops/">All our live courses, side by side</a></li>
<li><a href="/odoo-erp-automation-bootcamp/">The ten-week bootcamp, if you are starting from zero</a></li>
<li><a href="/support.html">What our support does and does not cover</a></li>
</ul>
</div>
</section>
<!-- FAQ -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">Questions people ask first</h2>
<div class="bc-faq-grid">
<details class="bc-faq">
<summary class="plausible-event-name=FAQ">Do I need to know n8n already?</summary>
<div class="bc-a">
<p>No. You can arrive having never opened it. The session starts at the webhook and builds up from there, inside n8n's own free plan.</p>
</div>
</details>
<details class="bc-faq">
<summary class="plausible-event-name=FAQ">What do I need to know before I join?</summary>
<div class="bc-a">
<p>Two things. Basic Odoo, meaning you know what workflows and automated actions are and where they live in the interface. And basic programming, enough to know what an API is and how one gets called.</p>
</div>
</details>
<details class="bc-faq">
<summary class="plausible-event-name=FAQ">What do I need installed?</summary>
<div class="bc-a">
<p>Nothing. A computer and a browser. We provide the free Odoo trial system, so you are working in a live setup rather than a video. You use n8n on n8n's own free plan.</p>
</div>
</details>
<details class="bc-faq">
<summary class="plausible-event-name=FAQ">Do I get a certificate?</summary>
<div class="bc-a">
<p>Yes. You receive a certificate at the end of the masterclass.</p>
</div>
</details>
<details class="bc-faq">
<summary class="plausible-event-name=FAQ">What language is it in?</summary>
<div class="bc-a">
<p>English.</p>
</div>
</details>
<details class="bc-faq">
<summary class="plausible-event-name=FAQ">Is this for me if I do not write code?</summary>
<div class="bc-a">
<p>Yes, as long as you can read code rather than write it. You need to understand what an API call is, not to build an application. If code is entirely foreign to you, the <a href="/odoo-erp-automation-bootcamp/">bootcamp</a> covers automating your business without any of it.</p>
</div>
</details>
</div>
</div>
</section>
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) -->
</main>
<footer class="footer">
<div class="container">
<div class="fgrid">
<div>
<h4>Useful Links</h4>
<ul>
<li><a href="/odoo-erp-automation-bootcamp/">ODOO Bootcamp</a></li>
<li><a href="/odoo-hosting-2027.html">ODOO Hosting in 2027</a></li>
<li><a href="/support.html">Support</a></li>
<li><a href="/legal.html">Legal</a></li>
</ul>
</div>
<div>
<h4>Partners</h4>
<div class="partner-list">
<a href="https://oc-guy.com" target="_blank" rel="noopener" class="partner-item"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#c9a227" stroke-width="2" aria-hidden="true"><path d="M20 7h-9M14 17H5M20 7l-4-4M20 7l-4 4M4 17l4 4M4 17l4-4" /></svg> OC Guy</a>
<a href="https://oca-py.org" target="_blank" rel="noopener" class="partner-item"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#c9a227" stroke-width="2" aria-hidden="true"><path d="M20 7h-9M14 17H5M20 7l-4-4M20 7l-4 4M4 17l4 4M4 17l4-4" /></svg> OCA Paraguay</a>
<a href="https://OD8N.com" target="_blank" rel="noopener" class="partner-item"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#c9a227" stroke-width="2" aria-hidden="true"><path d="M20 7h-9M14 17H5M20 7l-4-4M20 7l-4 4M4 17l4 4M4 17l4-4" /></svg> OD8N</a>
</div>
</div>
<div class="fcol-desc">
<h4>About us</h4>
<p>We build smart, scalable business solutions by combining the <strong>stability</strong> of Odoo ERP with the <strong>power</strong> of AI Agents and N8N automations.</p>
<p>From streamlined sales to global rollouts, our <strong>lean, eco-friendly</strong> approach helps businesses cut costs, boost efficiency, and grow without limits.</p>
</div>
<div>
<h4>Follow us on</h4>
<div class="social">
<a href="https://www.linkedin.com/company/odoo4projects/" target="_blank" aria-label="LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.05c.53-.95 1.83-1.95 3.76-1.95 4.02 0 4.76 2.5 4.76 5.75V21h-4v-5.5c0-1.31-.02-3-1.9-3-1.9 0-2.19 1.42-2.19 2.9V21H9z" /></svg></a>
<a href="https://www.youtube.com/@ODOO4projects" target="_blank" aria-label="YouTube"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23 12s0-3.2-.41-4.73a2.5 2.5 0 0 0-1.76-1.77C19.3 5.1 12 5.1 12 5.1s-7.3 0-8.83.4A2.5 2.5 0 0 0 1.4 7.27C1 8.8 1 12 1 12s0 3.2.41 4.73a2.5 2.5 0 0 0 1.76 1.77c1.53.4 8.83.4 8.83.4s7.3 0 8.83-.4a2.5 2.5 0 0 0 1.76-1.77C23 15.2 23 12 23 12zM9.75 15.02V8.98L15.5 12z" /></svg></a>
</div>
<form class="footer-contact-form" id="footerContactForm" action="mailto:hello@odoo4projects.com" method="post" enctype="text/plain">
<label class="bc-sr-only" for="footerContactEmail">Your email address</label>
<input type="email" id="footerContactEmail" name="email" placeholder="Your email address" required />
<div class="footer-textarea-wrap">
<label class="bc-sr-only" for="footerContactText">Your message</label>
<textarea id="footerContactText" name="message" placeholder="Your message..." required></textarea>
<button type="submit" class="footer-send-btn" aria-label="Send message"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M2 21l21-9L2 3v7l15 2-15 2z" /></svg></button>
</div>
<div class="footer-form-status" id="footerFormStatus" role="status"></div>
</form>
</div>
</div>
<div class="fcopy">Copyright &copy; ODOO4projects LLC</div>
</div>
</footer>
<script defer src="/static/buy.js"></script>
<script defer src="/static/lang.js"></script>
</body>
</html>