Common Mistakes When Adding the SeaText Code to Odoo (and How to Avoid Them)
Most SeaText install failures on Odoo come from a small set of repeatable errors: pasting the snippet into the wrong block, forgetting to save the configuration, using an outdated API key, or testing on...
If the SeaText AI snippet is not running on your Odoo site, the cause is almost always one of a handful of setup errors. The most common are pasting the code into the wrong Odoo block, forgetting to click Save in the right place, using an old API key from a previous account, or installing it on a domain that does not match the account. Working through the steps below will catch the issue before you start changing things you do not need to change.
How the Odoo install is supposed to work
SeaText runs as a single JavaScript snippet that you paste into your Odoo website. According to the official SeaText Odoo Integration guide, the steps are: log in to Odoo, open the Website module, go to Edit, find the Embed Code block inside Dynamic Content, drag it onto the page, click the block's Edit button, paste the SeaText code, click Save, then enable Hide on Desktop and save again. The script is inert until activated, so a wrong paste will not break your page, it will just fail to load SeaText.
Diagnostic order: find the cause before you fix it
Start at the most likely layer and move down. This saves you from re-pasting code three times.
- Domain check. Open the SeaText dashboard and confirm the registered domain matches the URL you are testing on, including www versus non-www and http versus https.
- Save check. Open the Odoo page in Edit mode and click into the Embed Code block. If the snippet is still there, you saved correctly. If the field is empty, the paste did not stick.
- Visibility check. Confirm Hide on Desktop is on only if you want the widget off-screen, and that the block was actually published, not left in draft.
- Cache check. Hard-refresh the page (Ctrl/Cmd + Shift + R) or clear Odoo's website cache before assuming the script is broken.
- Console check. Open browser dev tools, go to the Network tab, and look for the SeaText script request. A 404 or blocked status points to a domain or ad-blocker issue.
The 7 most common mistakes (and how to fix each one)
1. Pasting the code into the wrong block
Odoo's editor has several input areas, including the page Settings, HTML/Code snippets, and the Embed Code block under Dynamic Content. Only the Embed Code block is meant for third-party scripts. If you paste into a text block or a custom HTML field, the code renders as visible text or is stripped on save.
Fix: Remove the pasted text, drag a fresh Embed Code block from Dynamic Content, then paste inside it.
2. Forgetting to click Save (or saving in the wrong place)
The SeaText guide calls out two separate saves: one inside the pop-up where you paste the code, and another after enabling Hide on Desktop. Many users save the first pop-up, walk away, and assume the snippet is live. It is not, until the second save is also clicked.
Fix: Re-open the block in Edit mode. If the code is missing, re-paste and click Save. Then toggle Hide on Desktop if needed and click Save again on the main toolbar.
3. Using an outdated API key from a previous SeaText account
SeaText accounts are tied to a single primary URL, and old keys from a previous project, test domain, or a colleague's trial account will silently fail. The SeaText documentation explicitly states: "If you need to use SEATEXT AI on multiple domains (e.g., a development domain and a production domain), you must create separate accounts for each domain. Each SEATEXT AI account is linked to a single primary URL."
Fix: Log into the SeaText account that matches the live domain, copy the snippet fresh from the dashboard, then replace whatever is currently inside the Odoo Embed Code block.
4. Testing on a localhost or dynamic development domain
SeaText restricts development URLs for security reasons. The source pack notes: "Development URLs, such as localhost, are restricted for security reasons. Ensure you use a valid, real domain for these cases. Dynamic development domains may not function properly, as SEATEXT AI might be unable to reliably associate traffic with your account." This means a perfect paste on a staging URL will look broken even when everything is correct.
Fix: Verify behavior on the registered production domain, or create a separate account tied to your staging hostname.
5. Leaving the snippet in draft or unpublished
Odoo's editor lets you build without publishing. If you close the tab after saving the Embed Code block but before clicking the top-level Save / Publish action, the snippet is saved as a draft and will not run on the live page.
Fix: Look for the orange or red "unpublished" banner at the top of the editor. Click Save on the main toolbar to push the change live.
6. Not refreshing or clearing Odoo's website cache
Odoo caches pages aggressively to keep load times low. After a correct paste, visitors may still see a stale version without the script for several minutes, which makes a working install look broken.
Fix: Hard-refresh, then clear the cache from Website > Configuration > Settings or your CDN if one sits in front of Odoo.
7. Installing with the wrong account scope (multiple sites on one account)
If you manage two Odoo sites on different domains and try to use one SeaText account, only the primary domain will report data and respond. The other site will appear silent.
Fix: Create one SeaText account per domain, as the SeaText guide requires.
Key facts at a glance
| Topic | Detail from the SeaText Odoo integration guide |
|---|---|
| Where the code goes | Embed Code block inside Dynamic Content in the Odoo Website editor |
| Saves required | One inside the pop-up after pasting, one after toggling Hide on Desktop |
| Default visibility | Visible — use Hide on Desktop if the widget should not appear on screen |
| Account-to-domain link | One SeaText account per primary URL |
| Development domains | Restricted; create a separate account for staging |
| Safety before activation | Script is inert until activated, so a wrong paste will not break the site |
Limitations and when the advice does not apply
This guide assumes a standard Odoo Website module with the default block-based editor. If your site uses a heavily customized theme that strips Embed Code blocks, or if you run Odoo behind a reverse proxy that rewrites script tags, the standard paste method may not work and a developer review is the next step. SeaText also offers an edge-script deployment for non-Odoo stacks, but that is a separate install path and not covered here.
FAQ
Where exactly in Odoo does the SeaText code go?
Inside the Embed Code block, which lives in the Dynamic Content section of the Website editor. Drag it onto the page, click its Edit button, and paste the snippet there.
Do I need to click Save more than once?
Yes. The SeaText guide requires one save inside the code pop-up and a second save after you adjust the Visibility setting.
Can I use the same SeaText snippet on my staging and production domains?
No. Each SeaText account is linked to a single primary URL. Create a separate account for each domain, including a separate staging account if you want staging traffic to register.
Why does the script not load on localhost?
SeaText restricts development URLs for security reasons and cannot reliably associate traffic from dynamic development domains with an account. Test on the registered production domain instead.
Will a bad paste break my Odoo site?
No. The SeaText JavaScript remains inert until activated. A wrong paste shows no visible effect rather than breaking the page.
How do I confirm the script is actually running?
Open browser dev tools, go to the Network tab, hard-refresh, and look for a SeaText script request that returns a 200 status. Also confirm the registered domain in your SeaText dashboard matches the URL you are testing on.
What should I check first if nothing shows up?
The five-step diagnostic order above: domain match, save state, visibility setting, cache, and the browser console. In practice, the second save being missed is the most common single cause.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How SeaText helps after a clean Odoo install
Once the JavaScript snippet is correctly placed, saved twice, and tied to a SeaText account that matches your Odoo domain, SeaText starts running in the background. It adapts landing page copy to each visitor's source, runs autonomous A/B tests on headlines and CTAs, and recovers wasted ad spend from bot clicks. The Odoo integration is designed so that the script is inert until activated, which means a wrong paste will not damage your existing site. What SeaText does not do is replace your Odoo backend, sync with Odoo databases, or write back to Odoo records. It works on the visitor-facing layer only.