Seatext library

When to Create Separate SeaText Accounts for Each Odoo Domain

Create a separate SeaText account for every distinct domain you run in Odoo — production, staging, or separate brand sites — because each SeaText account is bound to a single primary URL. Development domains...

SeaText ties each account to one primary URL. If you operate multiple Odoo domains — a production site, a staging environment, or separate brand websites — you need a separate SeaText account for each one. Development URLs such as localhost are blocked for security, and dynamic development subdomains often fail to link traffic to your account reliably.

Why Domain Isolation Matters for SeaText

SeaText's AI agents read visitor behavior, rewrite copy in real time, and attribute conversions to specific traffic sources. That attribution only works when the script can unambiguously match a request to the account that owns the domain. When two domains share one account, the system cannot tell which site generated a click, a scroll, or a purchase. The result is mixed telemetry, broken personalization, and inaccurate conversion relay to ad platforms.

Odoo's multi-website feature lets you run several sites from one database, but each site usually has its own domain name. SeaText treats each domain as a separate property. The integration guide states: "Each SEATEXT AI account is linked to a single primary URL." That rule is not a suggestion — it is a technical constraint of how the JavaScript snippet identifies your account.

When Separate Accounts Are Required

Use this checklist to decide if you need a new SeaText account:

  • Different registered domain namesexample.com and shop.example.com count as separate primary URLs.
  • Production versus staging — A staging domain like staging.example.com needs its own account.
  • Separate brands or business units — Each brand domain gets its own account.
  • Multiple Odoo websites with distinct domains — Odoo's multi-website mode with unique domains requires separate SeaText accounts.
  • Client sites you manage — Agencies should create one account per client domain.

If any of the above apply, create a new SeaText account and install its unique snippet on that domain only.

When a Single Account May Suffice

You can keep one account when:

  • All traffic runs through one domain, even if Odoo serves multiple websites via path prefixes (e.g., example.com/brand-a, example.com/brand-b).
  • You use subdirectories, not subdomains or separate domains.
  • You have a single production domain and no staging environment.

In these cases the primary URL stays the same, so one SeaText account covers the entire Odoo installation.

How SeaText Associates Traffic with Accounts

The SeaText JavaScript snippet contains an account identifier. When a page loads, the script sends the current hostname to SeaText's edge network. The edge network matches that hostname to the primary URL registered in your account. If the hostname does not match, the request is rejected or attributed to the wrong account.

This design prevents cross-domain data leakage. It also means you cannot point two domains at one snippet and expect clean data. The integration documentation warns: "Dynamic development domains may not function properly, as SEATEXT AI might be unable to reliably associate traffic with your account."

Development vs Production Domain Handling

Localhost and 127.0.0.1 are explicitly blocked. You cannot test SeaText on a bare local server. Workarounds:

  • Use a real domain pointed to your local machine via /etc/hosts or a tunneling service (ngrok, Cloudflare Tunnel) that provides a stable HTTPS URL.
  • Register a staging domain (e.g., staging.yourcompany.com) and create a dedicated SeaText account for it.
  • Do not reuse the production account on staging — telemetry will pollute both environments.

Each staging domain still needs its own account because it has a distinct primary URL.

Multi-Website Odoo Setups

Odoo supports three multi-website patterns:

  1. Separate domainsbrand-a.com, brand-b.com. Each needs a SeaText account.
  2. Subdomainsshop.example.com, blog.example.com. Each subdomain is a distinct primary URL; each needs an account.
  3. Path-basedexample.com/shop, example.com/blog. One primary URL (example.com), one SeaText account.

Check your Odoo website configuration under Website → Configuration → Domain Names. If the "Domain" field differs per website, you need separate SeaText accounts.

Key Facts

RuleDetailSource
Account-to-URL bindingEach SeaText account links to a single primary URLS1
Multiple domainsCreate separate accounts for each domain (production, staging, separate brands)S1
Development restrictionsLocalhost and dynamic dev domains are restricted; use a valid real domainS1
Multi-website OdooOne account per distinct domain or subdomain; path-based sites share one accountS1
Traffic associationSeaText matches request hostname to registered primary URL for attributionS1

Limitations and Exceptions

  • No wildcard domains — You cannot register *.example.com as a primary URL.
  • No account merging — Data from two accounts cannot be combined retroactively.
  • Agency management — Agencies must maintain separate logins per client domain; there is no multi-account dashboard in the current UI.
  • SSL required — The primary URL must serve HTTPS; HTTP-only domains will not work.

If your setup involves reverse proxies, CDN edge rewrites, or headless Odoo frontends, verify that the hostname seen by the browser matches the primary URL exactly. Mismatches break attribution.

FAQ

Can I use one SeaText account for a production domain and its www subdomain?

No. example.com and www.example.com are different hostnames. Choose one as the canonical primary URL and redirect the other at the DNS or server level.

What happens if I install the production snippet on staging by mistake?

Staging traffic will be attributed to the production account, polluting reading telemetry, A/B test results, and conversion relay data. Create a dedicated staging account.

Do I need separate billing for each account?

Yes. Each SeaText account has its own subscription. Plan limits (page views, agents, languages) apply per account.

Can I move a domain from one SeaText account to another?

Contact support. The domain must be removed from the old account and added to the new one; historical data does not transfer.

Does Odoo's multi-company feature change the account rule?

No. Multi-company is a backend data separation. SeaText cares only about the public hostname visitors see.

What if I have 20 client sites as an agency?

Create 20 SeaText accounts. Use a password manager and label each account with the client domain. There is no bulk management API today.

Will a single account work if I use Cloudflare Workers to rewrite hostnames?

Only if the browser's address bar shows the same primary URL registered in SeaText. If the worker serves client-a.com but the browser shows client-a.com, it works. If the browser shows platform.yourapp.com/client-a, it will not match.

Decision Criteria: Separate Account or Not

Use this quick decision table to guide your setup. It covers the most common Odoo configurations.

ScenarioPrimary URLAccounts NeededWhy
Single production siteexample.com1One domain, one account
Production + stagingexample.com, staging.example.com2Distinct hostnames
Two brand domainsbrand-a.com, brand-b.com2Separate primary URLs
Subdomain shopshop.example.com2 (if main site also tracked)Subdomain is a distinct URL
Path-based multi-siteexample.com1Same hostname for all paths
Agency with 5 clientsclient1.com ... client5.com5One per client domain

If your scenario is not listed, ask: "Does the browser address bar show a different hostname for each site?" If yes, you need separate accounts.

Practical Scenarios and Workarounds

Here are real-world examples to clarify the rule.

Scenario 1: Ecommerce with a blog subdomain. You run shop.example.com and blog.example.com. Each is a separate hostname. Create two SeaText accounts. Install the correct snippet on each site. Do not mix them.

Scenario 2: Odoo multi-website with path prefixes. You serve example.com/us and example.com/eu. Both share the same hostname. One SeaText account works. The script sees example.com for every request.

Scenario 3: Local development with a tunnel. You use ngrok to expose a local Odoo instance. The tunnel gives you a URL like abc123.ngrok.io. That is a real domain, but it changes each time. SeaText may not associate traffic reliably. Use a stable staging domain instead.

Scenario 4: Agency managing multiple clients. Each client has a unique domain. Create one account per client. Keep credentials in a secure vault. Label each account with the client name and domain.

Scenario 5: Reverse proxy with hostname rewrite. You use a proxy that changes the hostname before it reaches Odoo. SeaText sees the browser hostname, not the backend hostname. Ensure the browser hostname matches the registered primary URL.

Billing and Plan Implications

Each SeaText account has its own subscription. That means separate billing for each domain. Plan limits — such as page views, AI agents, and language support — apply per account. If you run five domains, you pay for five accounts.

This is a cost consideration. For small setups, one account may be cheaper. But mixing domains to save money breaks attribution. The data loss is usually more expensive than the extra subscription.

Check the pricing page for current plan details. Contact sales if you need a custom arrangement for many domains.

Security and Data Isolation

Separate accounts also provide security isolation. If one domain is compromised, the attacker cannot access data from other domains. This is important for agencies and multi-brand companies.

Each account has its own API keys and snippet. A leaked snippet from one domain does not expose another domain's data. This is a strong reason to keep accounts separate.

For regulated industries, data isolation may be a compliance requirement. Separate accounts help meet that requirement.

Common Mistakes to Avoid

  • Using one snippet on multiple domains — This causes mixed telemetry and broken attribution.
  • Testing on localhost — SeaText blocks localhost. Use a real domain or tunnel.
  • Forgetting to redirect www — Choose a canonical hostname and redirect the other.
  • Installing production snippet on staging — This pollutes production data.
  • Assuming subdomains share an account — They do not. Each subdomain is a separate primary URL.
  • Ignoring HTTPS — SeaText requires HTTPS. HTTP-only domains will not work.

How to Create a New Account

Creating a new SeaText account is straightforward. Visit the SeaText website and click the sign-up button. Enter your email and choose a password. After registration, you will get a unique JavaScript snippet.

Install that snippet on the domain you want to track. Follow the Odoo integration steps: go to the Website module, edit the page, drag the "Embed Code" block into place, paste the snippet, and save. Hide the block on desktop if needed.

Repeat this process for each domain. Each domain gets its own account and its own snippet.

Final Recommendation

Separate accounts are the safe default for any multi-domain Odoo setup. The cost of extra subscriptions is small compared to the cost of broken data. If you are unsure, create a separate account for each distinct hostname.

If you have a single domain with path-based websites, one account is fine. If you have any subdomains or separate domains, create separate accounts. This keeps your telemetry clean, your attribution accurate, and your ad spend optimized.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Learn more

Visit the website for more information.