Seatext library

Managing Multiple Odoo Domains with SeaText: Account Structure Best Practices

Best practice is to create a separate SeaText account for each distinct Odoo domain you manage, because each account is strictly linked to a single primary URL. This ensures accurate traffic association, reliable AI...

The One-Account-Per-Domain Rule

When managing multiple Odoo domains with SeaText, the best practice is to create a unique, dedicated account for each domain. SeaText architecture requires this because every account is bound to a single primary URL. Attempting to share a single account across multiple domains will lead to tracking errors, data mixing, and potential failure of the AI agents to associate traffic correctly with your site.

Criteria Best Practice Takeaway
Account Structure One account per domain Ensures accurate data and AI performance.
Domain Linking Strict 1:1 mapping Each account is tied to one primary URL.
Development/Staging Use valid, real domains Localhost and dynamic dev URLs are restricted.
Setup Effort Repeat per domain Installation is consistent across all accounts.

How SeaText Associates Traffic to a Domain

SeaText agents rely on precise URL association to function. When you install the JavaScript snippet on your Odoo site, that snippet is tied to your specific account and its primary URL. The AI uses this binding to know exactly which domain it is optimizing.

Every time a visitor lands on your page, SeaText records the domain and matches it against the account's registered primary URL. This matching process is what powers conversion tracking, ad defense, and content optimization. If the domain does not match, the AI cannot reliably attribute the traffic to your account.

This is not a minor detail. The association is foundational to how SeaText works. Without it, the AI agents cannot learn from your visitors, cannot detect bot clicks, and cannot personalize content. The result is a broken integration that may silently fail.

Think of it like a key and a lock. Each account is a unique key. Each domain is a unique lock. A key from one account will not fit a different domain's lock. You need a separate key for every lock you want to open.

This design choice is intentional. It prevents cross-domain data contamination. It also ensures that your AI agents are always working with clean, domain-specific data. For a marketing team running multiple brands, this isolation is critical for accurate reporting.

Why Domain Isolation Matters

Whether you are running a production site, a staging environment, or separate brand websites, the AI needs to know exactly which domain it is optimizing. If you ignore this requirement and attempt to use one account for multiple sites, the AI will be unable to reliably associate traffic, which compromises the effectiveness of your conversion agents and ad defense tools.

Consider a scenario where you run two Odoo sites: one for your main brand and one for a regional campaign. If you use the same SeaText account for both, the AI will see traffic from two different domains. It cannot tell which visitor came from which site. This leads to mixed data, incorrect conversion attribution, and poor optimization decisions.

Worse, the AI may flag the setup as suspicious. Security systems are designed to detect anomalies. A single account receiving traffic from multiple domains looks like a potential abuse case. This could trigger security flags or even suspension of the account.

Domain isolation also protects your ad spend. The Bot Protection Agent and Ad Defense tools need to know exactly which site is receiving clicks. If the data is mixed, you cannot accurately claim refunds for bot clicks. Your reports will be unreliable, and you may lose money.

For agencies managing multiple clients, the isolation is even more important. Each client's data must remain separate. Mixing domains would violate client confidentiality and make reporting impossible. One account per domain is the only safe approach.

Trade-offs and Limitations of the One-Account-Per-Domain Model

The one-account-per-domain model is not without its costs. You need to understand these trade-offs before committing to the structure.

Billing complexity. Each account has its own subscription or setup. If you manage five domains, you will have five separate billing relationships. This can be harder to track than a single consolidated invoice. You may need to coordinate payments across multiple accounts.

Management overhead. More accounts mean more credentials to manage. You will need to keep track of login details for each domain. This increases the risk of lost passwords or unauthorized access. A password manager becomes essential.

Reporting fragmentation. Each account generates its own reports. You cannot see a unified view of all your domains in one dashboard. To get a complete picture, you will need to export data from each account and combine it manually. This is time-consuming and error-prone.

Subdomain handling. SeaText accounts are linked to a primary URL. If you have complex subdomain requirements, you may need to contact support to confirm whether your specific structure requires separate accounts. For example, if you run shop.example.com and blog.example.com, you may need to check whether these count as separate domains or as part of the same primary URL.

Staging restrictions. Development URLs like localhost are restricted for security reasons. If you need to test SeaText on a staging site, you must use a valid, real domain. Dynamic development domains may not function properly, as SeaText might be unable to reliably associate traffic with your account.

Despite these trade-offs, the model is the only way to ensure accurate data. The benefits of clean isolation far outweigh the management costs. For most businesses, the overhead is manageable.

Handling Staging and Development Environments

Security is a priority for SeaText. For this reason, development URLs like localhost are restricted. If you need to test SeaText on a staging site, you must use a valid, real domain. Using dynamic development domains often results in the AI failing to associate traffic with your account, rendering the integration ineffective.

This restriction exists to prevent abuse. A localhost URL is not a real website. It cannot receive traffic from the internet. SeaText cannot verify that the domain belongs to you. Therefore, the system blocks it.

For staging, you have two options. First, use a real subdomain of your production domain, such as staging.example.com. This is a valid domain that SeaText can associate with your account. Second, create a separate SeaText account for the staging domain if you need to test in isolation.

Be careful with dynamic development domains. Some hosting providers generate random URLs for each deployment. These URLs change frequently. SeaText cannot reliably associate traffic with a URL that changes. The integration will fail silently, and you may not notice until you check your reports.

Always use a stable, real domain for any environment where you want SeaText to work. This includes staging, testing, and production. The extra effort is worth it to avoid broken integrations.

Step-by-Step Setup for Multiple Domains

To deploy SeaText across your Odoo ecosystem, follow these steps for each domain:

  1. Create a unique account for each specific domain you intend to optimize.
  2. Access the Odoo Website module for the specific domain you are configuring.
  3. Navigate to the "Dynamic Content" section in your editor and drag the "Embed Code" module to your page.
  4. Paste the unique JavaScript snippet provided by your specific SeaText account into the module.
  5. Save and verify the installation on the live site.

Repeat this process for every domain. Do not reuse snippets across accounts. Each snippet is unique to its account and domain. Copying a snippet from one account to another will break the association.

After installation, verify that the code is active. Visit your site and check that the SeaText script loads. You can also check your account dashboard to confirm that traffic is being recorded. If you see no traffic, the installation may have failed.

For agencies, create a checklist for each client. Track the domain, the account credentials, and the installation status. This will help you manage multiple accounts efficiently.

Common Mistakes to Avoid

  • Sharing Snippets: Never copy the JavaScript code from one SeaText account and paste it into a different domain.
  • Ignoring Dev Restrictions: Do not attempt to use local development environments; always use a live, accessible domain.
  • Assuming Consolidation: Do not look for a "multi-site" dashboard within a single account; the architecture is designed for domain-level isolation.
  • Mixing Staging and Production: Do not use the same account for both a staging domain and a production domain. Create separate accounts for each.
  • Forgetting to Verify: Always verify that the snippet is active after installation. A silent failure can waste weeks of optimization time.

Frequently Asked Questions

Can I use one SeaText subscription for multiple Odoo domains?

No. Each domain requires its own SeaText account, which means each domain will have its own associated subscription or setup.

What happens if I use the same code on two different domains?

The AI will fail to associate traffic correctly, leading to inaccurate data, broken conversion tracking, and potential security flags.

How do I manage multiple accounts efficiently?

Keep a clear inventory of your domains and their corresponding SeaText account credentials. Since each is a 1:1 relationship, treat them as independent deployments.

Are there exceptions for subdomains?

SeaText accounts are linked to a primary URL. If you have complex subdomain requirements, contact the support team to confirm if your specific structure requires separate accounts.

Can I migrate an account to a new domain?

This depends on SeaText's current policy. Since each account is linked to a single primary URL, you may need to create a new account for the new domain. Contact support to confirm the migration process.

What happens if I need to change my primary URL?

You will likely need to update the account settings or create a new account. Changing the primary URL may break the association. Check with the vendor for the exact procedure.

How does billing work across multiple accounts?

Each account is billed separately. You will receive separate invoices for each domain. This can be managed through your billing portal, but you will need to track multiple subscriptions.

Can I use SeaText on a staging subdomain of my production domain?

Yes, if the subdomain is a valid, real domain. You can create a separate account for the staging subdomain or use the same account if the subdomain is part of the primary URL. Check with the vendor for clarification.

What if I have a multi-tenant Odoo setup with multiple databases?

Each database may correspond to a different domain. You will need a separate SeaText account for each domain. The database structure does not change the account requirement.

Is there a way to consolidate reporting across accounts?

No built-in consolidation exists. You will need to export data from each account and combine it manually. This is a known limitation of the one-account-per-domain model.

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.