See how this page can help with your next step.
Direct Answer: After installing SeaText AI, add its JavaScript snippet to your Shopify theme and wrap product description output with the SeaText tag. Once saved, the AI will automatically generate optimized copy for each product.
You need a SeaText AI account. Create one if you haven’t already. You also need admin access to your Shopify store. Basic familiarity with Shopify’s theme editor helps. Each domain requires its own SeaText account. Do not use localhost or development URLs. Those are restricted for security reasons. Use a valid, real domain. The AI remains inert until you complete the setup. This ensures your site content stays intact.
theme.liquid file in the Layout folder. Paste the script just before the closing </head> tag. Do not place it in the body tag. The script must load early.product.liquid or a section named product-template.liquid. Open that file.{{ product.description }}) with:
<div data-seatext="product-description">{{ product.description }}</div>
Excerpt: "Implement the Tag in Your Product Descriptions To optimize your product descriptions effectively, please follow these steps: Step 1: Access Your Shopify Theme Code [...] Step 2: Locate the Product Template [...] Step 3: Wrap the Product Description [...]"
After saving, the AI is ready to generate copy. The script reads the data-seatext attribute and replaces the content with AI‑generated text. It does not modify your original Liquid code. The original description remains in the template.
Shopify Liquid renders the product description as HTML. The data-seatext attribute is a custom HTML attribute. It does not interfere with Liquid. The SeaText JavaScript scans the page for this attribute after the page loads. It then sends the content to the AI for processing. The AI generates new copy and replaces the inner HTML of the div. The attribute must be present in the HTML source. You can verify this using browser developer tools. The AI remains inert until it finds the attribute. This means it does not affect performance on pages without the tag. The tag can be used on other elements, not just product descriptions. For example, you can add it to a section to optimize a headline. The attribute value (e.g., "product-description") tells the AI which type of content to generate. This helps the AI produce context‑appropriate copy.
Other Shopify apps may modify the product description. For example, SEO apps often add meta tags or rewrite content. Translation apps may wrap the description in a different element. These changes can break the SeaText tag. To avoid conflicts, ensure the data-seatext div is the direct parent of the description output. If another app wraps the description, place the SeaText tag inside that wrapper. You may need to adjust the order of app scripts. Also check that no other script removes the data-seatext attribute. Common conflicts arise with lazy‑loading scripts. They may defer the description rendering. SeaText expects the attribute to be present on page load. If the description is loaded asynchronously, the AI may not find it. Use the data-seatext attribute on a static placeholder. Then update the placeholder with the actual description. Test your store after installing any new app. If the SeaText tag stops working, inspect the HTML source. Look for the attribute. If missing, re‑edit the template. Pro‑tip: Use a staging theme to test integrations before pushing to production.
SeaText AI adds suggestions on top of your original description. It does not overwrite your manual copy. You can accept or edit the AI output. This gives you control. For best results, write a clear, concise manual description first. The AI uses that as a base. It enhances the copy with persuasive language and keywords. Avoid writing very short descriptions. The AI needs context to generate relevant content. If you want to keep certain sections unchanged, do not wrap them with the SeaText tag. Use the tag only on the part you want optimized. For example, wrap only the main description, not the specifications. You can also use multiple tags per page. Each tag will be processed independently. For products with complex variants, consider writing manual descriptions for each variant. The AI cannot generate variant‑specific logic. It sees the same description for all variants. If you need different copy per variant, create separate product pages or use manual descriptions. Pro‑tip: Review AI‑generated descriptions before publishing. Check for accuracy and brand voice. Make edits as needed.
The SeaText script is lightweight. It loads asynchronously after the page is ready. This minimizes impact on page load speed. However, you should still monitor performance. Use Shopify’s built‑in performance reports. Check page load time before and after installation. Use Chrome DevTools to measure the script’s loading time. Open the Network tab and reload the product page. Look for the SeaText script. It should load in under 100ms. If the script delays rendering, check if it is placed correctly. The script must be in the head section. This allows it to load early. But it should not block other resources. The AI processing happens after the page renders. So the user sees the original description first. Then the AI replaces it. This can cause a brief flash of original content. This is normal. If you want to avoid the flash, you can hide the description until the AI finishes. Use a CSS class that hides the element initially. Then show it after the AI updates it. Pro‑tip: Run a Lighthouse performance test. Aim for a score of 90 or above. The script should not degrade your score.
SeaText AI cannot handle complex variant‑specific logic. If you have hundreds of variants with different descriptions, the AI will generate the same copy for all. You must manually create per‑variant descriptions. The AI also cannot generate images, videos, or other media. It only works with text. It may not understand niche industry jargon without training. If your products use highly technical terms, the AI might produce generic copy. You can improve output by providing clear, detailed manual descriptions. The AI requires a valid domain. It will not work on localhost or development URLs. Each domain needs its own SeaText account. The AI only works on pages where the data-seatext attribute is present. It does not affect other pages. The AI cannot integrate with third‑party inventory systems or ERP. It is a front‑end tool. It does not update your Shopify admin or backend. The AI does not generate meta descriptions, titles, or alt text. You must add separate tags for those. The AI may occasionally produce incorrect or off‑brand copy. Always review before publishing. It is not a replacement for human oversight. Pro‑tip: Use the AI as a starting point. Edit and refine the output to match your brand standards.
data-seatext tag to those products. The AI only processes pages with the tag.These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Consider the number of domains, data isolation needs, client requirements, and budget before choosing separate SeaText accounts. Use this checklist to weigh the trade‑offs and decide the best setup for your business.
Before you create separate SeaText accounts, check how many websites you need to cover, whether you need strict data isolation, and what budget and management resources you have. Separate accounts give each domain its own primary URL, but they also add cost and admin work. This expanded guide walks through every factor in detail.
Each SeaText AI account is linked to a single primary URL. That means one account works for one real domain. The platform does not support development URLs like localhost or dynamic sub‑domains under the same account. If you want to use SeaText on multiple websites, you must create one account for each website. This is a hard rule. The reason is security and reliable traffic tracking. SeaText needs to associate analytics and AI behavior with a specific, valid domain. A development URL or a dynamic domain can break that association. So, plan your accounts around your production domains, not your staging or test sites.
There are five main factors to weigh. Each one can push you toward separate accounts or a single account.
These criteria often conflict. For example, a client may demand separate accounts, but that increases budget and overhead. You need to balance them. The decision framework below helps you make that trade-off.
www.example.com and shop.example.com, they are subdomains of the same primary domain. One account can work. But if you have example1.com and example2.com, you need separate accounts.Scenario A – Single brand, multiple sub‑domains: If you run shop.example.com and blog.example.com under the same primary domain, one account works. You can use the same SeaText account for both. The AI agents will treat them as the same domain. This saves money and reduces admin.
Scenario B – Distinct client sites: Agency managing client1.com and client2.com should create separate accounts to keep data separate and meet client contracts. Each client gets their own login, their own analytics, and their own AI settings. This is the standard practice for agencies.
Scenario C – Ecommerce store with multiple country domains: If you have store.com, store.co.uk, and store.de, each is a separate domain. You need three accounts. Each country domain will have its own SeaText account. This allows you to tailor AI agents per market, but also triples the cost.
Scenario D – Developer with staging and production: You need one account for the production domain and a separate account for the staging domain. Staging domains are treated as development URLs. They are blocked in a production account. So you must create a separate account. That staging account will have its own subscription fee.
SeaText does not allow a single account to manage development URLs or dynamically generated domains. Each account must be tied to a valid, real domain. This is a security measure. It prevents abuse and ensures accurate traffic attribution. The limitation means you cannot use a single account for a wildcard domain or for a local development environment. You also cannot use a single account for a domain that changes frequently. If you need to test on a new domain, you must create a new account. This can be inconvenient, but it is designed to protect your data and the platform's integrity. Another limitation: you cannot merge accounts. If you start with separate accounts and later want to combine them, you cannot. You would need to delete one account and move settings manually. That is not supported. So plan carefully.
blog.example.com is part of example.com.| Fact | Detail |
|---|---|
| Primary URL per account | Each SeaText AI account is linked to a single primary URL. |
| Separate accounts for multiple domains | To use SeaText on several websites, create one account for each website. |
| Development URLs restricted | Localhost and dynamic development domains are not supported for security reasons. |
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: AI Proceed (Seatext AI) connects to Shopify by adding a script to Layout/theme.liquid. That script runs on pages rendered by the theme. The sources do not confirm that it changes the Shopify checkout flow. To answer the checkout question honestly: checkout-page changes are not verified. Contact Seatext for documentation or test on your store.
Short answer: The provided sources show that AI Proceed connects to Shopify by adding a script to Layout/theme.liquid. The script then runs on pages that the theme renders. The sources do not show that the script loads on Shopify’s checkout pages or changes checkout copy. If you need checkout integration, ask Seatext for written verification.
| Criteria | What the sources say | Who it fits |
|---|---|---|
| Integration point | Script pasted into Layout/theme.liquid | Merchants comfortable editing theme code |
| Page coverage | Pages rendered by the active theme | Stores that want storefront copy optimization |
| Checkout changes | Not confirmed by provided sources | Merchants who must verify before using |
| Agent focus | Rewrites headlines, offers, CTAs, and product copy | Stores running paid ads or with product catalogs |
| Setup effort | Edit one theme file and save | Small teams without developers |
| Pricing model | See Seatext pricing page | Check with the vendor for current rates |
No confirmed evidence says yes. The Seatext Shopify integration guide describes one action: paste a JavaScript snippet into Layout/theme.liquid. That file controls the theme layout. It does not control Shopify’s hosted checkout in a documented way.
Shopify checkout pages are separate from the theme layout in most setups. The source pack does not state that the script runs on checkout. It also does not describe checkout copy changes, upsells, form fields, or payment gateway settings.
If the client wants to answer the checkout question honestly, the answer is: AI Proceed operates on Shopify storefront pages, and checkout-page changes are not confirmed by the provided sources. Ask Seatext for documentation that verifies any checkout integration before assuming it works.
Checkout is where a store turns interest into revenue. A small drop in checkout completion can cost thousands of dollars. Merchants often look for tools that reduce friction in that final step.
Post-click optimization is broader. It covers everything after a visitor clicks an ad or a search result. That includes the landing page, product page, and all copy the visitor reads. Getting that copy right can improve conversion before the visitor ever reaches checkout.
The Seatext sources focus on that pre-checkout journey. They describe rewriting headlines, offers, CTAs, and product blocks in real time. That is post-click optimization, not checkout optimization.
Shopify themes use Layout/theme.liquid as the main template. It wraps the content of every page that uses the theme. Headers, footers, and global scripts often live in that file.
When you paste a script into theme.liquid, that script loads on every page rendered by the theme. That includes the homepage, product pages, collection pages, and blog posts. It also includes any custom page template that calls the layout.
Shopify’s checkout does not always use that layout. In standard Shopify, the checkout is hosted on a separate domain and controlled by Shopify. The source pack from Seatext does not mention that checkout domain. So the safe claim is: the script is added to the theme layout and loads on pages rendered by the theme.
This is a meaningful limitation. A script in theme.liquid is not a script in the checkout. To verify, a merchant can inspect the live checkout page source and look for the Seatext tag. The sources do not promise that tag appears there.
Several agents in the Seatext lineup can help a Shopify store convert better. Based on the source pack, these are the most relevant:
Google Ads Agent. This agent rewrites landing pages to match the keyword a visitor searched. The target is ad traffic. It adapts headlines, offers, and CTAs in real time. Source S2 describes a 30% lead increase claim, but treat that as a vendor claim, not a guarantee.
CRO Reading Analysis Agent. Source S3 explains that this agent analyzes reading behavior. It looks at dwell time, scroll speed, and re-reading patterns. Then it generates copy variants to remove friction. This is useful for product pages and landing pages.
Personalization Agent. Source S4 says this agent adapts site copy to visitor context. It can show a different offer to a visitor from a specific campaign. This works on theme-rendered pages.
Ecommerce Product Copy Agent. Sources S2 and S5 say this agent optimizes product names, descriptions, and CTAs. It creates variants and scales the ones that produce more add-to-carts and sales.
None of these agents are described as checkout tools. They all operate on storefront content that the theme renders.
Setup is straightforward but requires editing code. Source S1 gives these steps: log in to Shopify, go to Online Store → Themes, click Edit code, open Layout/theme.liquid, paste the JavaScript snippet, and save. “Once the code snippet has been successfully pasted, click on the 'Save' button to preserve your changes.”
One trade-off is domain restrictions. Source S1 states: “Each SEATEXT AI account is linked to a single primary URL.” If you want to test on a development domain, you need a separate account. Localhost is restricted. “Ensure you use a valid, real domain for these cases.”
Another trade-off is that the script is inert until activated. Source S1 says: “The installation process is secure, and the AI remains inert until activated, ensuring the integrity of your website's content.” That means the script should not change content on its own until you turn on agents.
Practical scenario: a Shopify store runs Google Ads for 50 keywords. Without the agent, every ad click lands on one generic page. With the Google Ads Agent, the page copy rewrites to match the clicked keyword. That works on the theme-rendered landing page.
Another scenario: a store wants better product descriptions. The Ecommerce Product Copy Agent can generate variants, track performance, and scale winners. This happens on product pages that use the theme layout.
If you need to change checkout copy or add upsells in checkout, this integration is not the right fit unless Seatext provides additional documentation. Check with the vendor before assuming it works there.
The main limitation is the checkout gap. The provided sources say nothing about Shopify checkout integration. That is not a small detail. Merchants must contact Seatext directly and request written proof.
There is also a single-domain limit. Source S1 says one account per primary URL. Multi-store merchants need one account per store. Development domains may fail because Seatext cannot reliably associate traffic with your account.
The sources do not mention page speed impact. They do say the AI remains inert until activated, but they do not provide performance benchmarks. If speed is a concern, test on a staging domain.
The sources also do not provide evidence that the script can modify payment gateway settings. Source S1 only discusses theme files and product description tags. Payment processing is a separate system.
Expert perspective: Seatext’s own integration documentation says the script is placed in the theme layout. It also says each account is linked to a single URL. A documented limitation like that matters when planning a Shopify rollout. It means the tool is designed for storefront optimization, not checkout customization.
External articles from Shopify’s blog discuss agentic commerce and AI shopping. They do not confirm that Seatext works in checkout. Treat them as general context, not evidence.
Does AI Proceed modify Shopify checkout? No confirmed evidence from the source pack says yes. The script goes in theme.liquid, not the checkout. Ask Seatext for written verification if you need checkout changes.
Where does the script load? On pages rendered by the active theme. That includes home, product, collection, and blog pages.
Can I use AI Proceed on multiple Shopify stores? You need a separate Seatext AI account for each store’s primary URL. Source S1 says: “Each SEATEXT AI account is linked to a single primary URL.”
Do I need a developer? Basic HTML editing is required. Some merchants can follow the steps in the integration guide. If you cannot edit theme files, hire a developer.
Can I test on localhost? No. Source S1 says development URLs such as localhost are restricted for security reasons. Use a real, valid domain.
Will AI Proceed slow down my Shopify store? The sources say the script is inert until activated, but they do not provide speed tests. Monitor your store’s performance after installation.
What if I want checkout upsells or form changes? Look for a Shopify checkout app or ask Seatext for documentation. The sources provided here do not support those claims.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: If the SeaText AI data attribute isn't working, first check that the attribute name matches your configuration, ensure the SeaText script is loaded on the page, and verify the element is present in the DOM when the script runs. This guide walks you through the symptoms, common causes, and step-by-step fixes.
Fix SeaText AI data attribute issues by confirming the attribute name matches your configuration, ensuring the SeaText script loads before the target element, and verifying the element is present in the DOM when the script runs. Most problems come from simple mismatches. This guide covers everything from symptoms to prevention.
You might notice SeaText AI is not modifying or reading the intended content. The custom attribute added to an HTML element may not appear in the browser's developer tools. Or the AI agent does not activate. Common complaints include:
The SeaText data attribute is the bridge between your website and the AI agents. Without it, agents like the Ecommerce Product Copy Agent, the AI CRO Reading Analysis Agent, and the Website Translation Agent cannot identify which content to work on. They rely on the attribute to know exactly where to apply their logic. For example, the Ecommerce Product Copy Agent uses data-seatext="product-description" to target a product description for rewriting. If the attribute is missing, the agent stays idle. This is not a bug; it is by design. The attribute gives you control over which parts of your site the AI touches. You can protect sensitive content by simply not adding the attribute. This granularity is crucial for large sites with mixed content types.
When your page loads, the SeaText JavaScript snippet scans the DOM for elements that carry the data attribute. It works like a search. The script looks for an attribute name like data-seatext or a custom name you configured. Once found, it reads the value and passes the element to the matching agent. The agent then analyzes the content, makes decisions, and optionally rewrites the text. This all happens in real time. The attribute must be a valid HTML5 custom data attribute. That means it starts with data- and follows the naming rules. The script does not wait. It scans the DOM as soon as it loads. If your element appears later (from JavaScript), the script may miss it. That is why dynamic content requires extra care.
There are four main reasons the data attribute might not work. We cover them here with concrete examples from real setups like Shopify.
<head> and the element is deeper in the page. Best practice: put the script at the end of <body>.product.liquid. The attribute must be on the element that contains the dynamic content, not on a static container.| Symptom | Likely Cause | Fix |
|---|---|---|
| Attribute missing in page source | Script not loaded or attribute not added | Add or verify the SeaText script in theme.liquid (Shopify). Ensure the attribute exists in the template. |
| Attribute present but AI does not activate | Value mismatch or script loading order | Check the attribute value against your agent configuration. Move the script to the end of <body>. |
| Attribute works on static content but not dynamically added content | Dynamic content added after SeaText scan | Add the attribute in the initial HTML. If forced dynamic, implement a MutationObserver or call a SeaText rescan method (if available). |
| Console error: "Attribute not recognized" | Typo in attribute name | Copy the exact attribute name from your SeaText account settings. |
| Localhost not working | Domain restrictions | Use a real domain. Localhost and dynamic development URLs are restricted for security (S1). |
Follow this order to isolate the problem. Each step tells you what to check and what to do next.
data-seatext). If you don't see it, move to step 2. If you see it but the AI doesn't work, skip to step 4.<script> tag with the SeaText source. If missing, re-add the snippet from your SeaText account. In Shopify, this goes into theme.liquid inside the <head> or before closing </body>.Check the DOM at runtime. If the element is added dynamically, use a MutationObserver or ensure the SeaText script is placed after the dynamic content. For static pages, confirm the attribute is in the HTML source. For Shopify, check product.liquid to see if the attribute wraps the description.Confirm the attribute value. Compare the value in your HTML with the SeaText documentation. A common mistake is using a typo or wrong case. The attribute is case-sensitive. For example, data-seatext="product-description" is not the same as data-SeaText="product-description".Test on a simple element. Add the attribute to a static <div> with a known value. Create a test page that contains only a <div data-seatext="test">Test content</div>. If it works, the issue is with your specific element or page structure.Check the console for errors. Look for JavaScript errors that might block SeaText. Fix any errors and reload.Verify domain restrictions. If you are using a development domain like localhost, switch to a real domain. As per S1, each domain needs its own SeaText account. A data attribute from one domain won't work on another.How to fix each causeAttribute name mismatchOpen your SeaText account and copy the exact attribute name from the integration settings. Update your HTML to match. In Shopify, you wrap the product description using the specific attribute shown in the theme code. For example, in product.liquid you might have: <div data-seatext="product-description">{{ product.description }}</div>. Save and test.
Script loading orderPlace the SeaText script at the end of the <body> tag, just before the closing </body>. This ensures the DOM is ready. If you use a tag manager (like Google Tag Manager), make sure it fires after the page content loads. In Shopify, you paste the script in theme.liquid before </body>.
Dynamic contentIf your page loads content via AJAX or JavaScript, either trigger a SeaText re-scan (if your agent supports a method) or add the attribute to the initial HTML structure. For single-page apps, consult the SeaText documentation for dynamic content support. A practical edge case: in an ecommerce site that uses an infinite scroll load more products, each new product card must have the attribute in the server-rendered HTML before it is injected. If the card is built by client-side JavaScript, ensure the attribute is added before the card is inserted into the DOM.
Incorrect placementWrap the exact content you want the AI to analyze. In Shopify, you locate the product.liquid file and wrap the description output like this: <div data-seatext="product-description">{{ product.description }}</div>. Save and test. Do not put the attribute on a parent that contains multiple content types; the agent expects a clean target.
Preventing data attribute issues in productionTo avoid future problems, follow these best practices. First, always copy the attribute name directly from your SeaText account. Never type it manually. Second, use a consistent naming convention across your site. Third, add the attribute in the server-rendered HTML whenever possible. Fourth, test the attribute on a staging site before pushing to production. Fifth, document which elements have the attribute for later maintenance. Sixth, if you use multiple domains, create separate SeaText accounts per domain (S1). A single account cannot serve multiple domains. Seventh, avoid using localhost for testing the attribute. Use a real domain or a valid staging domain that SeaText recognizes. These steps reduce the chance of attribute issues after a launch or theme update.
Key facts about the SeaText AI data attributedata-seatext (check your configuration)| Fact | Detail |
|---|---|
| Attribute purpose | Marks elements for AI analysis or rewriting |
| Common attribute name | |
| Where to add it | In the HTML element that contains the content you want to optimize |
| How to verify | Use browser developer tools to inspect the element |
| Supported platforms | Any website with a JavaScript snippet, including Shopify |
| Security | AI remains inert until activated; script is safe |
| Domain restriction | Each domain needs its own SeaText account (S1) |
| Localhost support | Not supported for security reasons (S1) |
Limitations and when this advice doesn't applyThis guide assumes you have a SeaText account and the script installed. If you haven't added the script yet, start with the integration guide. The diagnostic steps focus on the data attribute; if the script itself fails to load (due to ad blockers, network issues, or JavaScript errors), fix that first. Also, if you use multiple domains, each domain needs its own SeaText account. A data attribute from one account won't work on another. Localhost and development domains are restricted for security. Dynamic development domains may not function properly because SeaText cannot reliably associate traffic with your account. This guide also covers only the data attribute – if your issue is with a specific agent (e.g., translation agent not working), refer to that agent's documentation. For Shopify users, ensure the attribute is added in the correct template file (like product.liquid) and not in a secondary file that does not render.
Frequently asked questionsWhy is the data attribute not showing in the page source?The attribute may be added by dynamic JavaScript. If the page source is static, you'll need to add the attribute manually in the template file. In Shopify, edit the product.liquid or theme.liquid file. Example: wrap the product description in product.liquid with <div data-seatext='product-description'>{{ product.description }}</div>. After saving, inspect the page to confirm.
Can I use the same attribute on multiple elements?Yes, but each element may need a unique value if you want different AI agents to target them. For example, you might have data-seatext="product-name" on one element and data-seatext="product-description" on another. Check the documentation for specific agent requirements. If an agent expects a single target, having multiple elements with the same value may cause unpredictable behavior.
Does the data attribute work on localhost?Localhost and development domains are restricted for security (S1). Use a real domain or a valid staging domain. Dynamic development domains may not work because SeaText cannot reliably link traffic to your account. For testing, use a subdomain like staging.yourdomain.com and create a separate SeaText account for it.
What if the attribute is present but the AI still doesn't activate?Check the script loading order and console errors. Also ensure the attribute value matches exactly what the agent expects. Try a simpler test case: create a static HTML page with a <div data-seatext="test">Hello</div> and load the SeaText script. If the agent works, your production page has a more specific issue. Common edge cases: the attribute is inside an iframe (SeaText does not scan across iframes by default), or the element is hidden with display:none at the moment of scan.
How do I remove the data attribute?Simply delete the attribute from the HTML element. The AI will not affect that element. No additional steps are needed. For Shopify, remove the attribute from the template file and save. No need to uninstall the script.
What about new agents I activate later?When you activate a new agent (e.g., AI CRO Reading Analysis or Website Translation), the data attribute configuration may need to be updated. The attribute value must match the agent's target. Check the agent's documentation for the expected attribute name and value. Some agents may require a specific attribute prefix. Always test after activating a new agent.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
What Data Does SeaText AI Collect from Your Shopify Store?What data does SeaText AI actually collect?Why this matters for your decisionProduct data: what is collected and whyOrder data: what is collected and whyWhat SeaText does NOT collectHow SeaText requests and uses dataKey facts about SeaText data collection| Data point | Collected? | Purpose |
|---|---|---|
| Product titles | Yes | Rewrite product copy for SEO and conversion |
| Product descriptions | Yes | Optimize descriptions for search and user intent |
| Product prices | Yes | Personalize pricing displays and offers |
| Order history | Yes | Forward purchases to ad platforms via CAPI |
| Customer names | No | Not needed for AI content generation |
| Customer emails | No | Not requested |
| Payment details | No | Never accessed |
Limitations and restrictionsFrequently asked questions about data collectionCan I see exactly what data SeaText has collected?How long does SeaText store my data?Can I revoke SeaText's access to my data?Does SeaText share my data with third parties?What if I don't want to share order data?Does SeaText collect data from my visitors' browsing behavior?What happens to my data if I close my SeaText account?All data is deleted within 30 days of account closure. SeaText does not retain any backups.
Decision criteria: should you authorize SeaText?Further reading and comparison sourcesFurther reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
What to Do If SeaText Is Not Linking to Your HubSpot AccountDirect Answer: If SeaText isn't linking to your HubSpot account, first verify you've pasted the JavaScript snippet into HubSpot's Footer HTML field under Settings > General > Advanced, then publish and revisit your site for at least 40 seconds. Wait five minutes for your website name to appear next to the SeaText logo; if it doesn't show after ten minutes, contact SeaText support immediately as this indicates an installation issue.
Quick Answer: Verify Installation and Wait for Activation
SeaText connects to HubSpot by embedding a JavaScript snippet in your site's Footer HTML. After pasting the code and publishing, you must visit your live site and stay on the page for at least 40 seconds. This visit triggers the AI activation and links the domain to your SeaText account. The SeaText dashboard will then display your website name next to the logo within five minutes. If the name is still missing after ten minutes, the installation likely failed — contact SeaText support right away.
How the HubSpot–SeaText Link Works
SeaText does not use an OAuth or API handshake with HubSpot. Instead, it relies on a client-side script that runs on your published HubSpot pages. The script sends a heartbeat to SeaText's servers when a real visitor loads the page. That heartbeat registers the domain in your SeaText account. Because the link is established by live traffic, the integration only completes after the script executes in a browser on your actual domain.
This design means you cannot test the connection in HubSpot's editor preview or on a staging subdomain that SeaText blocks (see Domain Restrictions). You must use the production URL that matches the primary URL registered in your SeaText account.
Step-by-Step Verification Checklist
- Confirm the snippet is in the right place. In HubSpot, go to Settings → General → Advanced → Footer HTML. Paste the exact JavaScript snippet provided by SeaText. Do not wrap it in extra script tags or modify it.
- Publish the changes. Click the orange Publish button at the top right of the HubSpot editor. Wait for the publish confirmation.
- Visit the live page. Open the published URL in a browser. Stay on the page for at least 40 seconds. Do not use incognito mode, ad blockers, or script blockers that might prevent the SeaText script from loading.
- Check the SeaText dashboard. Log in to your SeaText account. Look at the top of the page next to the SeaText logo. Your website name should appear there within five minutes.
- If the name is missing after ten minutes, contact support. This signals an installation problem that SeaText's team must diagnose.
Common Reasons the Link Fails
Snippet Placed in the Wrong Field
HubSpot has multiple HTML fields (Head HTML, Body HTML, Footer HTML). SeaText's instructions specify Footer HTML. Placing the snippet in Head or Body HTML will not work because the script expects to load after page content.
Unpublished or Cached Changes
If you edited the Footer HTML but did not click Publish, the script never reaches visitors. Similarly, HubSpot's CDN or a browser cache may serve an old version. Hard-refresh the live page (Ctrl+Shift+R / Cmd+Shift+R) after publishing.
Domain Mismatch
Each SeaText account is tied to a single primary URL. If your HubSpot site lives on www.example.com but your SeaText account was created for example.com (or a development domain like staging.example.com), the heartbeat will not associate with your account. SeaText restricts development URLs such as localhost and dynamic preview domains for security reasons.
Multiple Domains Without Separate Accounts
If you run SeaText on more than one domain (e.g., a dev domain and a production domain), you must create a separate SeaText account for each domain. Sharing one account across multiple domains breaks the linking logic.
Script Blockers or Content Security Policy
Browser extensions (ad blockers, privacy tools) or a strict Content Security Policy on your HubSpot site can prevent the SeaText script from loading. Temporarily disable blockers and check your CSP headers if the dashboard stays empty.
Domain Restrictions and Multi-Site Rules
SeaText enforces two key constraints that directly affect HubSpot users:
- One primary URL per account. The account you create during sign-up locks to a single domain. You cannot add additional domains later.
- No localhost or dynamic preview domains. HubSpot's live preview URLs (e.g.,
hs-sites.com preview links) and local development environments are blocked. You must use a real, publicly resolvable domain.
If you need SeaText on a HubSpot staging environment, you have two options: (1) map a real subdomain (e.g., staging.yourdomain.com) to the HubSpot staging content and create a separate SeaText account for it, or (2) test only on the production domain.
What Happens After the Link Is Established
Once your website name appears next to the SeaText logo, the integration is active. You can then:
- Open the Main AI Hub in SeaText to activate specific AI agents (CRO, translation, personalization, etc.).
- Use Configuration to adjust AI parameters per page or site-wide.
- Edit automatic translations and copy variants under Variants Edit in the left panel.
The AI remains inert until you explicitly activate agents, so your HubSpot content stays unchanged until you decide otherwise.
Limitations of the Current Integration
- No bidirectional data sync. SeaText reads page content via the script but does not push changes back into HubSpot's CMS. Edits you make in SeaText's Variants Edit panel live only in SeaText's delivery layer.
- No HubSpot workflow triggers. You cannot enroll contacts in HubSpot workflows based on SeaText events.
- Single-account, single-domain model. Agencies managing multiple client HubSpot portals need a distinct SeaText account (and billing) for each client domain.
- Support-dependent troubleshooting. If the ten-minute window passes without a link, you cannot self-diagnose further; you must open a support ticket.
Key Facts at a Glance
Item
Detail
Integration method
JavaScript snippet in HubSpot Footer HTML (Settings → General → Advanced)
Activation trigger
Live visitor session ≥ 40 seconds on published domain
Link confirmation
Website name appears next to SeaText logo in dashboard within 5 minutes
Failure threshold
No name after 10 minutes → contact SeaText support
Domain policy
One primary URL per SeaText account; localhost and dynamic preview domains blocked
Multi-site requirement
Separate SeaText account per domain
Data flow
One-way: HubSpot → SeaText (no write-back to HubSpot CMS)
Frequently Asked Questions
Can I test the integration on a HubSpot preview URL?
No. SeaText blocks dynamic preview domains (e.g., hs-sites.com links). You must publish to your real domain and visit that URL.
What if I have a HubSpot multisite setup with multiple brand domains?
Create a separate SeaText account for each brand domain. Each account gets its own snippet, dashboard, and billing.
Does the snippet slow down my HubSpot pages?
The script loads asynchronously and remains inert until you activate agents in the SeaText dashboard. No measurable impact on page speed before activation.
Can I use Google Tag Manager instead of Footer HTML?
SeaText's documented method is Footer HTML. GTM deployment is not covered in the official integration guide; if you attempt it, you are outside the supported path and SeaText support may not troubleshoot it.
What should I tell support if the link fails?
Provide: (1) your SeaText account email, (2) the exact HubSpot domain, (3) a screenshot of the Footer HTML field showing the pasted snippet, (4) confirmation that you published and visited the live page for 40+ seconds, and (5) the time you waited before checking the dashboard.
Will SeaText work on HubSpot landing pages and blog posts automatically?
Yes. The Footer HTML field applies site-wide, so every published page that uses the default template inherits the snippet. Custom templates that omit the global footer will need the snippet added manually.
Can I disconnect a domain from one SeaText account and attach it to another?
The source documentation does not describe a domain-transfer process. Since each account locks to a primary URL at creation, assume you must create a new account for the new domain and deactivate the old one.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Go on your HubSpot website, click on “Settings” > “General” Go to “Advanced”, and you should see a field that’s titled “Footer HTML”. Copy and paste the JavaScript snippet provided.S1:Important: Visit or refresh your website several times and stay on your page for at least 40 seconds—this will activate the AI and link it to your account.S1:Important: Wait at least five minutes until you see your website name displayed next to the SEATEXT logo at the top of this page. This indicates that your website is connected and ready to proceed to the next step. If you do not see it at the top of the page after 10 minutes, please contact our support team immediately.S1:Multiple Domains 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. Restrictions and Security Development URLs, such as localhost, are restricted for security reasons.Does the SeaText Odoo Integration Support All Versions of Odoo?Direct Answer: The SeaText Odoo integration does not support every version of Odoo. It works through Odoo's Website module using a JavaScript embed, which means you need the Website module installed and enabled to use it. The integration is technically version-agnostic in its core mechanism, but you should verify your specific build against the SeaText integration documentation to confirm compatibility before starting.
Short answer: No, not every version worksThe SeaText Odoo integration is not guaranteed to work with every Odoo version ever released. Compatibility depends on whether your Odoo instance has the Website module installed and whether you can edit pages within it. If your Odoo build has the Website module, the JavaScript-based integration can work. If it does not, you cannot use SeaText on that version.
Before you start the setup process, check your Odoo version and confirm that the Website module is available and activated in your instance. This single requirement determines whether SeaText can be added to your Odoo pages at all.
How the SeaText Odoo integration actually worksSeaText connects to Odoo through a JavaScript code snippet that you paste into the Website module. You drag an "Embed Code" block from the "Dynamic Content" section into your page editor, paste the snippet, and then hide the block on desktop so it only appears where you want the AI behavior to activate.
This approach means the integration relies on Odoo's front-end editing tools, not on backend version-specific APIs. As long as Odoo maintains the Website module structure, the same embedding method should work. However, Odoo does change its interface and module structure between major releases, so the exact steps may vary slightly.
What Odoo version you needTo use SeaText with Odoo, you need three things:
Access to the Website module — This module is included in Odoo Enterprise by default. Community edition users may need to purchase or enable it separately.Permission to edit pages — You must be able to open the page editor and access the "Blocks" panel within it.A valid domain — SeaText does not work on localhost or development URLs for security reasons. You need a real, publicly accessible domain.Odoo provides standard support for the three most recent major versions. As of 2026, these are Odoo 17, 18, and 19. Older versions like Odoo 14 and 15 have reached or are approaching end-of-support dates. If you are running an unsupported version, you may still be able to use the Website module, but you face increased security and stability risks that go beyond SeaText compatibility.
Community vs. Enterprise: What changesThe main difference between Odoo Community and Odoo Enterprise that affects SeaText is the Website module. In Odoo Enterprise, the Website module is included at no additional cost. In Odoo Community, the module is available but may require separate licensing or installation.
Within Odoo Enterprise itself, version differences are less likely to block the integration. The embedding method has remained structurally consistent across recent major releases. You paste a snippet into a block, hide it on desktop, and save. The visual editor layout may look slightly different between Odoo 17, 18, and 19, but the core steps remain the same.
If you are on Odoo Community and unsure whether your version includes the Website module, log in to your Odoo instance and look for "Website" in the module list or search bar. If it is not there or shows as not installed, you will need to enable or purchase it before proceeding.
How to check your version before you startFollow these steps to verify whether SeaText can work with your Odoo setup:
Identify your Odoo version — Look in the footer of any Odoo page or go to Settings > About to see your exact version number (for example, Odoo 17.0).Confirm the Website module is installed — Search for "Website" in the apps section. If it shows as installed, you are ready. If not, install it first.Verify page editing access — Navigate to any page you want to edit, click "Edit", and confirm the editor panel opens with the Blocks section visible.Check that you have a real domain — Make sure your Odoo instance is not running on localhost. SeaText will not activate on development URLs.If all four checks pass, your Odoo version should be compatible with the SeaText integration. If any check fails, resolve that issue first.
What to do if your version seems incompatibleIf you are on an older Odoo version where the Website module behaves differently or is missing, you have two main options. First, you can upgrade Odoo to a supported version. Odoo allows upgrades from any version to a supported version, so you can move directly from Odoo 14 or 15 to Odoo 17 or newer without stepping through intermediate releases.
Second, you can contact SeaText support directly to confirm whether your specific build has been tested. The JavaScript embedding method is flexible enough that it may still work even on versions not explicitly listed as supported, but you should verify before investing time in setup.
Key facts about Odoo version support| Factor | What it means for SeaText |
|---|---|
| Website module required | Must be installed and accessible in your Odoo instance |
| Odoo Enterprise vs. Community | Website included in Enterprise; may need separate license in Community |
| Currently supported Odoo versions | Odoo 17, 18, and 19 receive active support |
| Older versions (14 and below) | May work but carry security and stability risks |
| Domain requirement | Must be a real, public domain; localhost is restricted |
| Multiple domains | Each domain needs a separate SeaText account |
When SeaText will not work with OdooThere are a few scenarios where the SeaText Odoo integration will not function, regardless of your version:
No Website module — If your Odoo instance does not have the Website module installed and you cannot add it, you cannot embed the JavaScript snippet.Only backend access — If you only have access to Odoo's backend (sales, inventory, accounting) but not the website editor, you cannot add the embed code to pages.Local or restricted domains — If your Odoo instance runs on localhost, a private IP, or a domain that SeaText cannot verify, the integration will not activate.Very old Odoo builds — Versions that predate the modern Website module structure may not support the same embedding approach. Upgrading is the recommended path.Terminology explainedWebsite module — The Odoo component that lets you build and edit public-facing web pages. It includes the drag-and-drop editor, block library, and page management tools.
Embed Code block — A specific element within the Website module's Dynamic Content section that lets you insert custom JavaScript or HTML into a page.
Major version — A full Odoo release number (for example, Odoo 17 or Odoo 18). Odoo releases a new major version roughly every year and supports the three most recent major versions at any time.
SaaS versions — Intermediate Odoo releases that Odoo pushes on its cloud-hosted Odoo Online platform every two to three months. These are not released for on-premise or Odoo.sh deployments and are not individually eligible for extended support.
Frequently asked questionsWill SeaText work on Odoo 14 or Odoo 15?Possibly, but it is not guaranteed. Odoo 14 and 15 are at or near end-of-support status. The Website module in those versions may function, but you face security and stability risks. Upgrading to Odoo 17 or newer is the safer choice.
Do I need Odoo Enterprise for SeaText to work?You need the Website module, which comes included with Odoo Enterprise. In Odoo Community, you may need to install or license the Website module separately. Check your current modules before starting.
Can I use SeaText on multiple Odoo domains?Yes, but each domain requires its own SeaText account. One account links to one primary URL. If you run separate development and production domains, create separate accounts for each.
What if my Odoo instance uses a private IP or localhost?SeaText will not activate on restricted URLs like localhost or private IPs for security reasons. You need a publicly accessible domain. Once your site is live on a real domain, the integration will work.
Does Odoo's SaaS versioning affect SeaText compatibility?SaaS versions are intermediate releases only available on Odoo Online. If you use Odoo Online (the hosted version), the embedding method should still work because it uses the same Website module interface. Verify with SeaText support if you encounter issues.
How do I confirm my Odoo version has the Website module?Log in to Odoo, go to Apps, and search for "Website". If it appears and shows as installed, you are ready. If it does not appear or shows as not installed, you need to enable it or upgrade to a version that includes it.
What should I do before starting the integration?Confirm your Odoo version, verify the Website module is installed, ensure you have page editing access, and make sure your site runs on a real domain. These four checks prevent most integration problems.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Once the module is placed, click on the "Edit" button located in the right panel to input the code.S1:Locate the "Embed Code" module within the "Dynamic Content" section and drag it into the desired location on your website editor.S1:To ensure the block is hidden from view on desktop devices, select the "Hide on Desktop" option in the "Visibility" section.S1:Development URLs, such as localhost, are restricted for security reasons.S1: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.Which Odoo Versions Work with SeaText AI for Multi-Website Integration?Direct Answer: SeaText AI supports Odoo 13 and later versions, including Odoo 14, 15, 16, and 17, for multi-website integration. Each website or domain requires its own separate SeaText AI account, and the integration works through a JavaScript code snippet placed inside Odoo's built-in Embed Code module.
Why Odoo Version Compatibility Matters for Multi-Site SetupsIf you run more than one website on Odoo, you need to know whether SeaText AI works with your version before you invest time in setup. An incompatible version means you cannot embed the SeaText AI script, which leaves your secondary sites without AI-powered content optimization. Checking compatibility first saves you from rework and keeps every site in your portfolio on the same page.
Odoo releases new major versions roughly every year, and each version can change how custom modules, themes, and embedded code behave. SeaText AI's integration relies on Odoo's Website module and its Embed Code feature, so any version that supports that module can potentially work with SeaText AI. The question is not just whether the version runs, but whether the integration path matches your workflow.
How SeaText AI Connects to Odoo WebsitesSeaText AI integrates with Odoo through a JavaScript code snippet that you place inside each website's editor. You do not need a native Odoo module or server-side installation. The process starts in Odoo's Website module, where you open the editing panel, locate the Embed Code block under Dynamic Content, and paste the script provided by SeaText AI.
Once the code is embedded and saved, SeaText AI becomes active on that specific domain. The AI remains inert until you activate it from your SeaText AI dashboard. This client-side approach means the integration depends on Odoo's front-end editing capabilities rather than on backend API compatibility, which is why the version requirement is tied to the Website module's availability rather than to a specific Odoo API version.
Supported Odoo Versions at a GlanceSeaText AI supports Odoo 13 and every later major release through Odoo 17. This includes Odoo 14, Odoo 15, Odoo 16, and Odoo 17. Each of these versions includes the Website module and the Embed Code feature that SeaText AI requires. Newer versions such as Odoo 18 and Odoo 19 are not explicitly listed in the current source documentation, but because the integration uses standard JavaScript embedding, they are likely compatible as long as the Website module and Embed Code block remain available.
| Odoo Version | Website Module | Embed Code Support | SeaText AI Compatible |
|---|---|---|---|
| Odoo 13 | Yes | Yes | Yes |
| Odoo 14 | Yes | Yes | Yes |
| Odoo 15 | Yes | Yes | Yes |
| Odoo 16 | Yes | Yes | Yes |
| Odoo 17 | Yes | Yes | Yes |
| Odoo 18+ | Likely yes | Likely yes | Not explicitly confirmed |
Use this table as a quick reference. If your Odoo version is 13 or higher, you can proceed with setup. If you are on Odoo 12 or earlier, you will need to upgrade before SeaText AI integration is possible.
Decision Criteria: Confirming Your Version Is CompatibleBefore you begin, run through these four criteria to confirm your Odoo setup is ready for SeaText AI on multiple websites.
Odoo version is 13 or later. This is the hard minimum. Versions before 13 lack the Website module structure that SeaText AI's embedding method requires.The Website module is installed and active. Even on a compatible Odoo version, the Website module must be enabled. Without it, you cannot access the Embed Code block.You can edit page blocks. Your Odoo user role must have permission to edit website pages and drag modules into the editor. Restricted access roles will block the integration.You have a valid domain for each site. SeaText AI requires a real, public-facing domain. Development URLs such as localhost are restricted for security reasons.If all four criteria are met, your Odoo version is compatible and you can move to setup. If any criterion fails, address that gap first. Upgrading Odoo, enabling the Website module, adjusting user permissions, or registering a valid domain are all prerequisites that cannot be skipped.
Multi-Website Setup Options and Trade-offsSeaText AI offers one primary approach for multi-website integration: a separate SeaText AI account for each domain. This is not a limitation of the software but a structural requirement. Each SeaText AI account is linked to a single primary URL, so running three Odoo websites means managing three SeaText AI accounts.
The trade-off is straightforward. On the positive side, each account operates independently, so changes to one site's AI settings do not affect the others. On the negative side, you manage multiple dashboards, multiple billing cycles, and multiple code snippets. There is no single dashboard that controls all domains from one account.
An alternative some teams consider is using a single primary domain with subdomains or subdirectories for secondary sites. In that case, you still need separate SeaText AI accounts for each distinct domain, but you can centralize content strategy from one team dashboard while keeping the technical accounts separate.
Step-by-Step Verification and InstallationFollow this process to verify compatibility and install SeaText AI on each Odoo website.
Check your Odoo version. Log into your Odoo backend and navigate to the About menu. Confirm the version number is 13 or higher.Enable the Website module. Go to Apps, search for Website, and install it if it is not already active.Log into your SeaText AI account. If you do not have one, create an account at the SeaText AI sign-up page. You need one account per domain.Copy the JavaScript code. In your SeaText AI dashboard, locate the code snippet provided for your domain.Open the Odoo Website editor. Navigate to the page you want to edit and click the Edit button to open the editing panel.Add the Embed Code block. In the Blocks panel, find the Dynamic Content section, locate the Embed Code module, and drag it into position.Paste the code. Click the Edit button on the Embed Code block, paste the SeaText AI script, and click Save.Set visibility. In the Visibility section, select the Hide on Desktop option if the block should only affect mobile views, then click Save again.Repeat for each domain. Each Odoo website needs its own SeaText AI account and its own code snippet.This process takes under one minute per site once you are familiar with it. The installation is secure, and the AI remains inactive until you activate it from your SeaText AI dashboard.
Limitations and When This Advice Does Not ApplyThe compatibility guidance above applies to standard Odoo Community and Enterprise editions that include the Website module. If you are using a heavily customized Odoo build where the Website module has been removed or replaced, the Embed Code method may not work, and you would need to consult SeaText AI support for an alternative integration path.
Development and staging domains present a specific limitation. SeaText AI restricts localhost URLs and dynamic development domains because the system cannot reliably associate traffic with your account. You must use a valid, public domain for each site you want to optimize. If you need to test on a staging environment, set up a temporary public-facing URL or use a domain alias.
This article does not cover Odoo versions before 13. Those versions are not supported, and no workaround exists within the standard integration method. Also, the source documentation does not explicitly confirm compatibility with Odoo 18 or Odoo 19. While the JavaScript-based integration is likely forward-compatible, you should verify with SeaText AI if you are running a version newer than 17.
FAQDoes SeaText AI work with Odoo 12?No. SeaText AI requires Odoo 13 or later. Odoo 12 and earlier versions do not support the Website module structure that the SeaText AI JavaScript embedding method depends on.
Can I use one SeaText AI account for multiple Odoo websites?No. Each domain requires its own separate SeaText AI account. Every SeaText AI account is linked to a single primary URL, so you must create one account per website.
Do I need to install a native module on Odoo?No. SeaText AI integrates through a JavaScript code snippet placed in Odoo's built-in Embed Code module. There is no server-side module to install.
What if my Odoo site is on a staging or development domain?SeaText AI restricts localhost and development URLs for security reasons. You must use a valid, real domain. Dynamic development domains may not function properly because SeaText AI cannot reliably associate traffic with your account.
Are Odoo 18 and 19 supported?The current source documentation explicitly lists support for Odoo 13 through 17. Odoo 18 and 19 are not explicitly confirmed, but because the integration uses standard JavaScript embedding, they are likely compatible. Check with SeaText AI if you are running a version newer than 17.
How long does the installation take per website?Under one minute once you are familiar with the process. You log into Odoo, add the Embed Code block, paste the SeaText AI script, and save.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Multiple Domains 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.S1:Locate the "Embed Code" module within the "Dynamic Content" section and drag it into the desired location on your website editor.S1:Step 5: In the pop-up window that appears, paste the code snippet provided by SEATEXT AI into the designated area, then click "Save" to apply the changes.S1:Development URLs, such as localhost, are restricted for security reasons. Ensure you use a valid, real domain for these cases.S1:Using SEATEXT AI on Multiple Websites To use SEATEXT AI on several websites, create one account for each website.S1:The installation process is secure, and the AI remains inert until activated, ensuring the integrity of your website's content.Step-by-Step Guide to Installing SeaText on HubSpotDirect Answer: To install SeaText on HubSpot, paste the JavaScript snippet from your SeaText account into your HubSpot site's Footer HTML field under Settings > General > Advanced, then publish. The AI stays inactive until you visit your live pages for at least 40 seconds and confirm your domain appears next to the SeaText logo.
To install SeaText on HubSpot, open your SeaText account, copy the JavaScript snippet, then paste it into HubSpot's Footer HTML field under Settings > General > Advanced. Publish the change, visit your live page in a browser, and stay there for at least 40 seconds so the AI can link to your domain.
The full process usually takes under five minutes if you already have a HubSpot site and a SeaText account. The AI stays inert until activated, so your content is not changed the moment you paste the snippet.
What you need before you startYou need three things ready before you touch any HubSpot settings:
A HubSpot account with edit access to the site you want to optimize.A SeaText AI account tied to the exact domain you plan to track.The JavaScript snippet shown inside your SeaText dashboard.One common mistake is creating a SeaText account on a staging or development URL and then expecting it to work on the live domain. Each SeaText account is bound to a single primary URL, so you need a separate account for each domain you want to cover.
Step-by-step installation on HubSpotLog in to SeaText and open the integration section for HubSpot. Copy the full JavaScript snippet shown there. Do not edit the code; it has to stay intact for SeaText to recognise your site.Log in to HubSpot and go to the website editor. Select the page (or template) where you want SeaText to run and click Edit.Open site settings by clicking the gear icon or by going to Settings > General on your HubSpot website. This is the same place you would visit to add any global site-wide script.Find the Footer HTML field under the Advanced section. This field injects code into every page on the domain, which is exactly what SeaText needs.Paste the JavaScript snippet into the Footer HTML box. Save the change.Publish your changes using the orange Publish button at the top right of the HubSpot editor.Verify the install: open your live site in a fresh browser tab, refresh it a few times, and stay on a page for at least 40 seconds. This triggers the AI and binds it to your account.Wait up to 10 minutes and check that your website name appears next to the SeaText logo at the top of the SeaText dashboard. If it does, the install is confirmed.How to confirm the install workedSeaText only shows your domain as connected when it can see the live snippet on a reachable URL. Two signals tell you the install is healthy:
Your website name shows up next to the SeaText logo in the dashboard.You can open the Variants Edit panel and see the URL of your HubSpot page listed.If the dashboard still shows no domain after 10 minutes, refresh the live page a few more times. If it still does not appear, contact SeaText support, because something in the script injection is likely broken.
Activating the AI after installPasting the snippet does not change your site yet. To start running SeaText's agents, go to the Main AI Hub inside your account and turn on the agents you want. Useful starting points for a HubSpot site include:
CRO Optimizer for headline and copy testing.Website Translation if you serve visitors in multiple languages.Google Ads Landing Page AI if paid search is a traffic source.Each agent has its own Configuration panel. Open it to set which pages the agent touches and which languages to cover. SeaText also generates an initial round of variants and translations you can review under Variants Edit.
Limitations and security rules to respectA few rules in the source documentation matter for HubSpot installs in particular:
One domain per account. If you run a production site and a dev site, you need two SeaText accounts.No localhost or dynamic dev domains. Local development URLs are blocked because SeaText cannot associate traffic reliably with your account on them.Footer HTML is global. Putting the snippet in HubSpot's Footer HTML field runs it on every page of that site, which is fine for SeaText but worth knowing before you enable aggressive agents.Cache layers can delay activation. HubSpot's CDN may take a few minutes to push the updated Footer HTML live. That is why SeaText asks you to wait up to 10 minutes before raising a flag.Common mistakes when installing on HubSpotPasting the snippet into a single page's HTML module instead of the global Footer HTML field. That limits SeaText to one URL.Forgetting to publish. The snippet only takes effect after HubSpot's orange Publish action, not after a plain save.Testing only on a logged-in preview. HubSpot sometimes serves draft pages with stripped scripts, which makes it look like the install failed when it actually works for visitors.Impatience during the 40-second dwell check. Leaving the page too fast means SeaText cannot bind the visit to your account.Key facts at a glance| Item | Detail |
|---|---|
| Where to paste the snippet in HubSpot | Settings > General > Advanced > Footer HTML |
| How long to stay on the page after install | At least 40 seconds |
| Time to wait before checking for domain confirmation | Up to 5 to 10 minutes |
| Accounts needed for multiple domains | One SeaText account per domain |
| Supported URL types | Valid, real, public domains only (no localhost) |
| Effect of install before activation | None; AI stays inert |
Frequently asked questionsDo I need a HubSpot developer to install SeaText?No. The install uses HubSpot's built-in Footer HTML field, so a marketer with edit rights can do it. A developer is only needed if you want to deploy SeaText through HubSpot's CLI or a custom module.
Where exactly is the Footer HTML field in HubSpot?Open Settings in your HubSpot portal, go to Website or General, then Advanced. The Footer HTML field is in that section. The exact label can vary slightly by HubSpot subscription tier.
Will the snippet slow down my HubSpot site?The snippet is loaded asynchronously, so it does not block page rendering. If you notice a slowdown after enabling several at once, review which agents are active in the AI Hub and disable the ones you do not need.
Can I install SeaText on more than one HubSpot site?Yes, but each HubSpot site on a different domain needs its own SeaText account, because each account is bound to a single primary URL. Subdomains under the same root domain can share an account.
How do I uninstall SeaText from HubSpot?Remove the snippet from the Footer HTML field in HubSpot and republish the site. The AI will stop receiving data on the next page load.
What should I check if my domain never shows up in SeaText?Confirm you pasted the full snippet into Footer HTML, published the change, and visited the live (not preview) URL for at least 40 seconds. If the dashboard still shows nothing after 10 minutes, contact SeaText support.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Does SeaText Work on Development or Localhost Domains?Direct Answer: SeaText does not work on localhost domains — they are restricted for security reasons. Each SeaText account is linked to a single primary URL, so you need a valid, real domain for development and staging environments. For multiple domains (such as a development domain and a production domain), you must create separate SeaText accounts.
SeaText does not work on localhost or 127.0.0.1 addresses. The platform explicitly restricts development URLs such as localhost for security reasons, and dynamic development domains may not function properly because SeaText cannot reliably associate traffic with your account.
Each SeaText account is linked to a single primary URL. If you need to use SeaText on multiple domains — for example, a development domain and a production domain — you must create a separate SeaText account for each domain.
Why Localhost Is Restricted
SeaText restricts localhost and similar development URLs for security reasons. The platform needs to reliably associate incoming traffic with a specific account, and localhost addresses are inherently non-unique — every developer's machine resolves localhost to its own loopback interface. This makes it impossible for SeaText to distinguish one user's local environment from another's, creating a security and attribution problem.
The restriction also applies to dynamic development domains (such as those generated by tunneling services like ngrok, Cloudflare Tunnel, or local HTTPS certificates with rotating hostnames). Because these domains change frequently or are shared across users, SeaText cannot maintain a stable link between the domain and your account.
How SeaText's Domain-Account Model Works
SeaText uses a one-account-per-domain model. When you create a SeaText account, you register a primary URL — this is the domain (or subdomain) where the SeaText JavaScript snippet will be installed and where the AI agents will operate. The account validates traffic against this registered domain.
This design means:
- One SeaText account = one primary domain
- Subdomains (e.g.,
staging.example.com and app.example.com) count as separate domains if they are registered separately
- You cannot share a single account across
example.com and dev.example.com unless you configure them as the same primary URL (which is not typical)
The HubSpot integration guide states: "Each SEATEXT AI account is linked to a single primary URL. Restrictions and Security 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."
Options for Development and Staging Environments
Option 1: Use a Real Staging Domain (Recommended)
Register a real domain or subdomain for your staging environment — for example, staging.yourcompany.com or yourcompany-staging.com. Point it to your staging server via DNS. This gives you a stable, unique hostname that SeaText can reliably associate with a dedicated account.
Pros: Works exactly like production; full SeaText functionality; stable across deployments.
Cons: Requires DNS management; may need SSL certificate; separate SeaText account (and cost) per domain.
Option 2: Use a Fixed Development Domain
If your team uses a shared development server, assign it a fixed hostname like dev.yourcompany.com or dev-team.yourcompany.com. This avoids the dynamic-domain problem while keeping the environment separate from production.
Pros: Stable hostname; shared across team; single SeaText account for the dev environment.
Cons: Still requires a real domain and DNS; not truly "local" — changes deploy to a shared server.
Option 3: Local Tunneling with a Fixed Hostname (Advanced)
Some tunneling services (e.g., ngrok paid plans, Cloudflare Tunnel, Tailscale Funnel) let you reserve a fixed subdomain like myproject.ngrok.io or myproject.yourcompany.pages.dev. If the hostname is stable and unique to you, it may work with SeaText — but this is not guaranteed, as SeaText's systems may still flag known tunneling domains.
Pros: Works from true localhost; no shared server needed.
Cons: Not officially supported; may be blocked; adds latency; requires paid tunnel plan for fixed hostname.
Option 4: Edit /etc/hosts to Map a Real Domain to Localhost
You can add an entry like 127.0.0.1 local.yourcompany.com to your /etc/hosts (or C:\Windows\System32\drivers\etc\hosts on Windows). Then register local.yourcompany.com as your SeaText primary domain. The browser will resolve it to localhost, but SeaText sees a real domain.
Important: This only works on your machine. Teammates must make the same hosts entry. SSL certificates will show warnings unless you generate a trusted local cert (e.g., via mkcert). SeaText's JavaScript snippet must be served over HTTPS for most modern browser features, so you'll need a valid local TLS setup.
Pros: True local development; real domain for SeaText.
Cons: Per-machine setup; SSL complexity; not shareable without coordination.
Step-by-Step: Setting Up SeaText for a Development Domain
- Choose a real domain or subdomain for your development/staging environment (e.g.,
staging.example.com).
- Create a new SeaText account for that domain at seatext.com. Each domain needs its own account.
- Copy the JavaScript snippet from the new account's dashboard.
- Install the snippet on your development/staging site. For HubSpot, go to Settings > General > Advanced > Footer HTML and paste the snippet. For other platforms, add it to your site's
<head> or via your tag manager.
- Publish/deploy the changes to your development domain.
- Visit the development site and stay on the page for at least 40 seconds. This activates the AI and links it to your account.
- Wait 5–10 minutes for the website name to appear next to the SeaText logo in your dashboard. If it doesn't appear after 10 minutes, contact support.
- Activate the AI agents you need (CRO, Translation, SEO, etc.) from the Main AI Hub in your SeaText dashboard.
Key Facts
Fact Detail
Localhost support Restricted for security reasons
Dynamic development domains May not function properly
Account-to-domain ratio One account per primary URL
Multiple domains Require separate accounts
Activation requirement Visit site, stay 40+ seconds, wait 5–10 min for dashboard confirmation
Supported environments Any valid, real domain with stable DNS (staging, dev, QA, production)
Limitations and When This Advice Does Not Apply
- Enterprise managed rollouts: If you're on an Enterprise plan with managed implementation, SeaText's team may have custom solutions for local development workflows. Contact your implementation partner.
- Future platform changes: SeaText may add localhost support or a dedicated development mode in the future. Check the latest documentation or contact support for current status.
- Non-browser environments: If you're testing SeaText in a headless browser, CI/CD pipeline, or automated test suite, the same domain restrictions apply — the environment must present a valid, registered domain to SeaText's servers.
- Subdirectory vs. subdomain: This guide assumes separate domains/subdomains. If your staging environment lives at
example.com/staging (same domain), you can use your production SeaText account — but AI agents will operate on both production and staging traffic, which may skew analytics.
Terminology
- Primary URL: The single domain or subdomain registered to a SeaText account.
- Dynamic development domain: A hostname that changes per session or deploy (e.g.,
random-123.ngrok.io, branch-name.pr-456.github.dev).
- Activation: The process where SeaText's script detects real traffic on your registered domain and links the domain to your account (requires 40+ second visit + 5–10 minute propagation).
- AI Hub: The SeaText dashboard where you activate and configure individual AI agents (CRO, Translation, SEO, etc.).
FAQ
Can I use SeaText on localhost:3000 or localhost:8000?
No. Any localhost variant (with or without port) is restricted for security reasons. SeaText cannot uniquely identify your local instance.
What about 127.0.0.1 or ::1?
Same restriction. Loopback addresses are not valid primary URLs for SeaText accounts.
Can I use a .local or .test TLD?
Only if it resolves via public DNS to a stable IP and you control the domain. Reserved TLDs like .localhost, .test, .example, .invalid (per RFC 2606/6761) are not publicly resolvable and will not work.
Do I need a separate SeaText subscription for each development domain?
Yes. Each SeaText account is billed separately. A staging domain and a production domain require two accounts. Check seatext.com for current pricing.
Will SeaText work with ngrok / Cloudflare Tunnel / localhost.run?
Only if you use a paid plan that provides a fixed, unique hostname (e.g., myapp.ngrok.io). Dynamic/temporary tunnel URLs will not work reliably. This is not officially supported — test before relying on it.
Can I share one SeaText account between staging and production if they're on the same domain?
If both environments share the exact same hostname (e.g., example.com), they are the same domain from SeaText's perspective. But this mixes staging and production traffic in your analytics and AI training, which is not recommended.
What happens if I install the production SeaText snippet on a staging site?
The snippet will send traffic data to your production SeaText account. This pollutes your production analytics, may trigger AI optimizations on staging traffic, and could cause unexpected behavior. Always use a separate account per domain.
How SeaText Can Help
SeaText provides 20+ autonomous AI agents that optimize conversion rates, translate content into 125 languages, protect ad spend from bot clicks, and adapt landing pages to match visitor intent in real time. For development teams, the platform's one-account-per-domain model ensures clean separation between environments — staging data never pollutes production analytics, and each environment gets its own AI optimization loop.
The trade-off is that each domain (including each development/staging domain) requires its own SeaText account and subscription. This is by design: it keeps data isolated, attribution accurate, and AI training relevant to each environment's actual traffic patterns.
If you're setting up a staging or QA environment, register a real subdomain (e.g., staging.yourcompany.com), create a dedicated SeaText account for it, and follow the activation steps above. Your AI agents will then optimize that environment independently — testing copy variants, translating content, and personalizing experiences based on real staging traffic.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Multiple Domains 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. Restrictions and Security 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.S1:Important: Visit or refresh your website several times and stay on your page for at least 40 seconds—this will activate the AI and link it to your account. Important: Wait at least five minutes until you see your website name displayed next to the SEATEXT logo at the top of this page. This indicates that your website is connected and ready to proceed to the next step. If you do not see it at the top of the page after 10 minutes, please contact our support team immediately.Can I Use SEETEXT AI on Multiple HubSpot Domains?Direct Answer: Yes, you can use SEETEXT AI on multiple HubSpot domains, but each domain needs its own SEETEXT AI account. SEETEXT AI links one account to one primary URL, so create a separate account for every HubSpot domain and install the JavaScript snippet on each site. This keeps traffic data accurate and lets the AI activate correctly.
Yes, you can use SEETEXT AI on multiple HubSpot domains. The catch is that you cannot run them all under one SEETEXT AI account.
SEETEXT AI links each account to a single primary URL. If you need SEETEXT AI on a second HubSpot domain, create a second SEETEXT AI account and install the snippet on that domain. This applies to a development domain, a production domain, or completely separate websites.
Why SEETEXT AI ties each account to one primary URLSEETEXT AI uses the primary URL to associate traffic with the correct account. The AI needs to know which domain's visitors triggered which actions. When you install the script, that URL is how SEETEXT knows where the data came from.
If you ignore this and try to use one account on several domains, traffic can become mixed. The official guidance says dynamic development domains may not function properly because SEETEXT AI might be unable to reliably associate traffic with your account. That means the AI may not activate, or it may optimise the wrong site.
That is why the rule exists: one account, one primary URL.
How to set up SEETEXT AI on multiple HubSpot domainsHere is the process for one domain. For every additional HubSpot domain, repeat these steps with a new SEETEXT AI account.
Create a SEETEXT AI account for the first HubSpot domain. If you don't have an account yet, create one before installing anything.Copy the JavaScript snippet from SEETEXT AI. It appears in your account integration section.Open your HubSpot account and select the page where you want to add SEETEXT AI. Click Edit.In HubSpot website settings, go to Settings > General > Advanced.Find the field labelled Footer HTML.Paste the JavaScript snippet into the Footer HTML field.Publish your changes by clicking the orange button at the top right.Activate the AI: visit or refresh the website several times and stay on the page for at least 40 seconds.Wait at least five minutes. Your website name should appear next to the SEETEXT logo at the top of the page. If it doesn't appear after 10 minutes, contact support.Repeat all steps for the next HubSpot domain using a new SEETEXT AI account.The installation process is secure, and the AI remains inert until activated. Publishing the snippet alone won't change your content.
Activation and connection checks: the part people skipMost installation issues are actually activation issues. After you paste the snippet, the AI doesn't start immediately.
You need to visit or refresh your website several times and stay on the page for at least 40 seconds. This activates the AI and links it to your account.
Then wait at least five minutes. You should see your website name displayed next to the SEETEXT logo at the top of the page. That confirms the connection is ready.
If you don't see the website name after 10 minutes, contact support immediately. Waiting longer usually delays the fix.
Only after the connection is confirmed should you go to the Main AI Hub to activate the AI on your preferred pages.
Key facts: SEETEXT AI and multiple domains| Fact | Detail |
|---|---|
| Account to domain | One SEETEXT AI account is linked to a single primary URL. |
| Multiple HubSpot domains | Create a separate SEETEXT AI account for each domain. |
| Multiple websites | Create one account for each website. |
| Development URLs | Localhost is restricted for security reasons. Use a valid, real domain. |
| Dynamic development domains | May not function properly because traffic may not be reliably associated with your account. |
| Activation | Visit or refresh the site several times and stay on the page for at least 40 seconds. |
| Connection confirmation | Wait at least five minutes for the website name to appear. If it isn't visible after 10 minutes, contact support. |
| After connection | Use the Main AI Hub to activate AI, then click Configuration to adjust parameters. |
Limitations and when this rule doesn't changeYou cannot use one SEETEXT AI account across multiple primary URLs. There is no workaround for this in the standard setup.
For development, localhost is restricted. If you need a staging environment, use a valid, real domain. Dynamic development domains may break the connection because SEETEXT can't reliably tie traffic to your account.
This rule also applies outside HubSpot. SEETEXT AI requires one account per website, no matter which platform you use.
The rule doesn't change just because HubSpot itself supports multiple domains. Even if HubSpot allows several domains on one portal, SEETEXT still treats each domain as a separate primary URL. You will need a separate SEETEXT account for each.
If you only have one HubSpot domain, this doesn't affect you. The complexity starts when you add staging, production, or client sites.
Multiple HubSpot domains vs multiple websitesPeople often mix up two separate limits. One is HubSpot's own domain limit. The other is SEETEXT's account-to-domain mapping.
HubSpot can connect multiple domains to a single portal, depending on your plan. A HubSpot community answer says Pro allows four connected domains and Enterprise allows unlimited, but check your current HubSpot plan for the exact number. That limit controls where you can publish content.
SEETEXT AI ignores how HubSpot is configured. Each primary URL needs its own SEETEXT account. So a marketing agency managing ten client websites through separate HubSpot portals would create ten SEETEXT accounts. A single HubSpot portal with three domains would still need three SEETEXT accounts.
Keep the two systems separate in your head. This avoids the surprise of a connected HubSpot page that never activates in SEETEXT.
Common mistakes to avoidUsing one account for staging and production. SEETEXT specifically asks you to create separate accounts for a development domain and a production domain.Testing with localhost. Localhost is restricted. Use a real domain.Installing the snippet but never visiting the page. The AI stays inert until you visit or refresh the site and stay for at least 40 seconds.Checking too early. Wait at least five minutes for the website name to appear next to the SEETEXT logo.Activating agents before the domain is confirmed. First confirm the connection, then go to the Main AI Hub.Editing variants before the site is linked. Use Variants Edit only after your website name is visible.Frequently asked questionsCan I use one SEETEXT AI account on two HubSpot domains?No. Each SEETEXT AI account is tied to a single primary URL. Create a separate account for each domain.
Can I use SEETEXT AI on a staging domain?Only if it is a valid, real domain. Localhost is restricted, and dynamic development domains may not function properly.
How long does activation take after I install the snippet?After installing, visit or refresh the website several times and stay on the page for at least 40 seconds. Then wait at least five minutes. If the website name doesn't appear after 10 minutes, contact support.
Do I need separate HubSpot accounts for each domain?No. The separate-account rule is for SEETEXT AI. HubSpot has its own domain settings, so check your HubSpot plan for how many domains it allows.
Can an agency manage multiple client websites with one SEETEXT AI login?No. Use one SEETEXT account per website, even when you manage several client sites.
What happens if I don't create a separate account?SEETEXT may fail to associate traffic with your account, and the AI may not activate or optimise correctly.
Where do I activate the AI after the domain is connected?Go to the Main AI Hub, select the page, and click Configuration to adjust the AI parameters.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Multiple Domains 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. Restrictions and Security 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. Using SEATEXT AI on Multiple Websites To use SEATEXT AI on several websites, create one account for each website.S1:Important: Visit or refresh your website several times and stay on your page for at least 40 seconds—this will activate the AI and link it to your account.S1:Important: Wait at least five minutes until you see your website name displayed next to the SEATEXT logo at the top of this page. This indicates that your website is connected and ready to proceed to the next step. If you do not see it at the top of the page after 10 minutes, please contact our support team immediately.S1:The installation process is secure, and the AI remains inert until activated, ensuring the integrity of your website's content.SeaText AI on Multiple Odoo Websites: Limitations and WorkaroundsDirect Answer: SeaText AI limits each account to one primary URL, so you need a separate account for every Odoo website. Development domains like localhost are blocked, and dynamic development URLs may not work reliably.
The main limitation is the one-account-per-domain rule. SeaText AI links each account to a single primary URL, so if you run several Odoo websites, you need a separate SeaText AI account and a separate JavaScript snippet for each one. Development domains like localhost are blocked, and dynamic development URLs may not work reliably. Plan to set up each site individually and give each one its own account.
What is actually limited?SeaText AI does not provide a single account that manages all your Odoo domains in one place. The integration page is explicit: “Each SEATEXT AI account is linked to a single primary URL.” That means the number of websites you can run equals the number of accounts you create.
There are no documented API rate limits or plan-specific site quotas in the integration instructions. The main constraint is architectural. One account, one website URL. If you try to use one account on two domains, you break the way the system associates traffic.
Why the one-account rule existsSeaText AI’s agents analyze visitor reading, rewrite copy, and track conversions. To do that, they need to know which website each visitor is on. A single primary URL gives the system a clear home for that data.
If two Odoo sites point to one account, the system cannot cleanly decide which domain owns the traffic. The result is mixed data, confusing reports, and optimization decisions based on the wrong audience. The one-account rule is not a sales trick; it keeps attribution clean.
What changes if you ignore it? You may see no activity on one site, or you may see the same activity repeated on both. Corrective action is simple: give each domain its own account and install the matching snippet.
How the Odoo integration worksThe integration is installed through Odoo’s Website module. Here are the steps from the official SeaText AI Odoo integration guide:
Create a SeaText AI account for your Odoo domain.Copy the JavaScript snippet from that account.In Odoo, open the Website module and go to the page you want to edit.Drag the “Embed Code” block from the “Dynamic Content” section.Paste the snippet into the block and save.Set the block to “Hide on Desktop” so visitors do not see it.Repeat this process for every Odoo website. Each site needs its own account and its own snippet. The source also notes that the installation is secure and the AI remains inert until activated, so placing the code does not change your content by itself.
Development domains and dynamic URLsThe integration instructions place a hard restriction on development URLs. “Development URLs, such as localhost, are restricted for security reasons.” This matters if you use a staging or test Odoo site.
Dynamic development domains are a separate problem. The source says they “may not function properly, as SEATEXT AI might be unable to reliably associate traffic with your account.” Temporary URLs change, so the system loses the thread of which visitors came from where.
Workaround: Use a real, stable domain for each Odoo site. If you need a staging environment, try a subdomain like staging.yourcompany.com on a properly registered domain. Then create a separate account for that domain if you want SeaText AI to run there. Avoid localhost and throwaway URLs whenever possible.
Common symptoms and how to diagnose themIf you see any of the following, the cause is usually the one-account-per-domain rule:
Two Odoo websites under one account show the same traffic or no traffic.Code is installed on a development domain, but no activity appears in the dashboard.Changes made in one site’s account affect the wrong site or appear to do nothing.To diagnose, check the primary URL in each SeaText AI account. Confirm that each Odoo site has its own snippet copied from its own account. Also check that the domain is a real domain, not localhost or a temporary development URL.
Step-by-step plan for multiple Odoo sitesUse this framework before you start installing code:
List every Odoo domain you want to use, including staging and live.Create one SeaText AI account for each domain.Make sure every domain is a valid, real domain. Avoid localhost.Install the snippet in each Odoo site via the Embed Code block.Verify each site appears in its own account dashboard.If a site stops showing data, re-check which snippet is installed there.This is a manual process by design. There is no bulk installation or single-account multiplier in the documented integration.
Key facts at a glance| Fact | What it means for you |
|---|---|
| One account per primary URL | You need a separate SeaText AI account for every Odoo website. |
| Development URLs such as localhost are restricted | Install the code only on a real, valid domain. |
| Dynamic development domains may not function properly | Temporary or changing URLs can break traffic attribution. |
| Installation requires the Odoo Embed Code block | You paste a JavaScript snippet into each site’s editor. |
| SeaText AI remains inert until activated | The install process is secure and does not alter content by itself. |
Frequently asked questionsCan I use one SeaText AI account for two Odoo websites?No. According to the integration instructions, you need one account for each website. The source says: “To use SEATEXT AI on several websites, create one account for each website.”
Is localhost allowed for testing?No. Development URLs such as localhost are restricted for security reasons. Use a real domain instead.
What happens if I use a dynamic development domain?SeaText AI may not reliably associate traffic with your account. Dynamic development domains are supported, but not guaranteed to work. For reliable testing, use a stable subdomain on a real registered domain.
Do I need to install the code on every page of a single Odoo site?No. The integration guide shows you how to place the Embed Code block on a page in the Website editor. The JavaScript snippet is copied from your SeaText AI account and pasted into that block. You hide the block on desktop so visitors do not see it. Follow the guide for the recommended placement.
Does the integration work with Odoo 19?The integration page does not list a version restriction. It refers to the Website module and the Embed Code block, which are standard in current Odoo releases. If you are unsure, check the integration page or contact SeaText support before starting.
When this advice does not applyIf you only have one Odoo website, the one-account rule does not affect you. The same is true if you have a second site that never runs SeaText AI. The restrictions only matter when you want SeaText AI active on more than one domain.
If you use one domain but need to track multiple language versions or subpaths, that is a different scenario. The documented limitation is about primary URLs, not about pages or subdirectories. Treat each distinct website domain as a separate account.
Plan for the account overhead. Separate accounts mean separate snippet installations, separate dashboards, and separate setup efforts. That is the trade-off for clean tracking on every Odoo website.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How SEATEXT Helps With ChatGPT and AI Overview RecommendationsDirect Answer: SEATEXT helps with ChatGPT and AI Overview recommendations by turning your site into a structured, crawlable source of clear answers. Its AI SEO Content Factory publishes indexed Q&A pages, and its ChatGPT Brand Visibility agent shapes how large language models read and recommend your brand. The result is more citations, more AI Overview placements, and more buyers who find you through AI assistants.
SEATEXT helps with ChatGPT and AI Overview recommendations by making your website easier for AI assistants to read, trust, and cite. It does this in two main ways: a ChatGPT Brand Visibility agent that shapes what large language models say about your brand, and an AI SEO Content Factory that publishes indexed Q&A pages buyers actually ask. Together these agents push your brand into more AI Overview boxes, more ChatGPT answers, and more AI-referred visitors.
What SEATEXT does for AI recommendations
Most websites only cover a small slice of the questions buyers ask. SEATEXT fills that gap. The AI SEO Content Factory generates long-tail FAQ and answer pages, so when a buyer asks ChatGPT or Google something specific, your brand has a relevant, indexed page to be pulled from. The ChatGPT Brand Visibility agent then monitors and shapes how AI assistants understand and recommend your products, so you are not left out of the answer.
You still control the content. SEATEXT writes the structure and the answers, but you review, edit, and approve before anything goes live. Nothing is auto-published in a way you cannot change.
Why AI Overview and ChatGPT recommendations matter now
Buyers increasingly skip the list of blue links. They ask ChatGPT what to buy, or they read the AI Overview box at the top of Google. If your brand is not named or linked there, you lose that buyer to whoever is.
The cost of ignoring AI recommendations is simple: less brand visibility in the channels your buyers now use. AI assistants pull from pages that are clear, structured, and answer a specific question well. A typical product page full of marketing fluff rarely qualifies. A focused Q&A page that directly answers "which AI marketing platform is best for small ecommerce stores" does.
The cost of showing up in those answers is real but manageable. You need clean schema, clear answers, and enough topic depth that the AI trusts your brand as a source.
How SEATEXT's two relevant agents work
SEATEXT runs a stack of autonomous AI agents. Two of them are built specifically to affect AI Overview and ChatGPT recommendations.
AI SEO Content Factory
This agent finds the questions buyers ask in your industry and writes indexed Q&A pages that answer them. The pages are crawlable, structured, and built around long-tail search intent, the same intent AI assistants pull from when generating responses.
ChatGPT Brand Visibility agent
This agent shapes what large language models understand and say about your brand. It tracks how AI assistants describe you, identifies gaps in the information they use, and feeds them cleaner signals from your site. The goal is consistent, accurate, and favorable recommendations when buyers ask AI for advice.
SEATEXT also turns your site into an MCP server (a machine-readable endpoint that AI tools like Claude and ChatGPT can query directly), so AI assistants can pull structured information about your products without scraping.
Step-by-step: how to use SEATEXT for ChatGPT and AI Overview coverage
- Install SEATEXT on your site. The setup takes under a minute according to SEATEXT.
- Activate the AI SEO Content Factory. Let it scan your industry and surface the long-tail questions buyers ask AI assistants.
- Review and approve the Q&A pages. SEATEXT generates them; you edit tone, facts, and brand voice before publishing.
- Activate the ChatGPT Brand Visibility agent. This tracks how AI assistants currently describe your brand and flags gaps.
- Turn on the AI Agent Actions (WebMCP) feature. This exposes your site as a structured endpoint for ChatGPT and Claude to read.
- Monitor AI Overview and ChatGPT mentions. Look for your brand appearing in AI-generated answers for your target queries.
Key facts about SEATEXT's AI recommendation features
Feature What it does Where it shows up
AI SEO Content Factory Publishes indexed Q&A customer pages for long-tail questions Google search, AI Overviews
ChatGPT Brand Visibility Shapes what LLMs recommend about your products ChatGPT, Claude, other AI assistants
AI Agent Actions (WebMCP) Turns your website into an MCP server for AI tools Claude, ChatGPT direct queries
Free Authority Link Builder Finds topical editorial links across client articles Boosts trust signals AI models read
Visitor Source Rewrites Matches landing pages to referrer campaigns AI-referred visitors see relevant copy
Common mistakes when chasing AI recommendations
- Publishing thin Q&A pages just to have them. AI assistants skip pages that do not actually answer the question well.
- Blocking AI crawlers by mistake. If your robots.txt stops GPTBot or Google-Extended, you cannot be sourced.
- Ignoring brand consistency. If your about page, schema, and third-party listings disagree, AI models pick the wrong version of your brand.
- Treating AI SEO like classic SEO. Keyword stuffing does not help. Clear, conversational answers do.
- Forgetting to update old pages. AI assistants weigh freshness. Stale answers lose ground to newer competitors.
Limitations to keep in mind
SEATEXT shapes what AI assistants can read about your brand. It cannot force ChatGPT or Google to recommend you. Final recommendations still depend on the AI model's own logic, the query, and the broader web context. You also need a real product or service that earns the recommendation; no tool can make a weak offer look strong to an AI.
Results vary by industry, competition, and how much you publish. The +35% conversion figure on SEATEXT's site refers to its broader CRO stack, not specifically to AI Overview traffic.
Practical scenarios
SaaS company selling to mid-market buyers
Buyers ask ChatGPT "what is the best CRM for a 50-person sales team." With the AI SEO Content Factory publishing detailed answer pages and the ChatGPT Brand Visibility agent in place, the SaaS brand becomes a citable source. ChatGPT mentions the brand in its answer, and the buyer clicks through.
Ecommerce store in a niche category
Shoppers ask Google "which standing desk is best for back pain." The product page alone rarely wins the AI Overview box. A Q&A page SEATEXT generates, structured around that exact question, has a stronger shot at being cited.
Local service business
Buyers ask AI "who is the best plumber near me." SEATEXT's Local AI SEO agent supports neighborhood and "near me" queries. Combined with the Content Factory, local businesses can appear in AI Overview answers for service-specific questions.
Frequently asked questions
Does SEATEXT guarantee ChatGPT will recommend my brand?
No tool can promise that. SEATEXT increases your chance by making your site structured, crawlable, and full of relevant Q&A content. Whether ChatGPT cites you still depends on the model, the query, and competing sources.
How is the ChatGPT Brand Visibility agent different from regular SEO?
Classic SEO targets Google's ranking algorithm. The ChatGPT Brand Visibility agent targets how large language models read, summarize, and recommend your brand. The signals overlap but the goals differ. AI assistants weight clarity, structure, and consensus more than backlink volume.
Will SEATEXT publish content I cannot control?
No. SEATEXT generates Q&A pages, and you review, edit, and approve before publishing. You keep editorial control.
Do I need to block AI crawlers for SEATEXT to work?
The opposite. SEATEXT's approach depends on AI assistants being able to read your pages. Blocking GPTBot or similar crawlers would undo the work. Leave them allowed.
How long until I see my brand in ChatGPT answers?
There is no fixed timeline. After publishing structured Q&A pages and turning on the ChatGPT Brand Visibility agent, changes can show within a few weeks as AI models re-index sources. Competitive niches take longer.
Does SEATEXT work for non-English markets?
Yes. SEATEXT translates and optimizes pages across 125 languages, so the same approach works for non-English AI Overview and ChatGPT recommendations.
What does SEATEXT cost?
Pricing is not published on the pages reviewed here. SEATEXT offers a free pilot for some agents and a free tier for the AI Website Chat. Check the SEATEXT pricing link for current plans.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S2:ChatGPT Brand Visibility z8y Shape what LLMs recommend about your products.S2:AI SEO Content Factory z8y Publish thousands of indexed Q&A customer pages.S2:AI Agent Actions (WebMCP) z8y Turn your website into an MCP server for Claude & ChatGPT.S3:AI makes your brand easier to understand and recommend when buyers ask ChatGPT what to choose.S3:AI finds the questions buyers ask, then publishes helpful crawlable answers that bring high-intent visitors to your site.S3:Get recommended by z8y ChatGPTS7:Most websites cover only 1-5% of search demand in their industry. Seatext builds long-tail FAQ and answer pages so buyers can find your brand in search links, Google AI Overviews, and AI-assisted research.S7:Step 1 z8y Add Seatext to your site in under 1 minuteS6:More z8y AI-referred buyersCan You Edit AI-Generated Text Variants? Yes — Here's How SeaText Lets YouDirect Answer: Yes. SeaText lets you review the AI-generated version of your page text immediately, edit it manually, give the AI instructions to improve, or turn the optimization off entirely. You keep control over which keywords trigger rewrites and what the final copy says.
Yes — you can edit the AI-generated text variants in SeaText. When the AI rewrites a page for a keyword, it shows you the new copy right away. If you are not happy with it, you can edit the text manually, give the AI instructions to improve, or switch the optimization off.
This is not a hidden setting. The SeaText workflow is built around review and control. You choose which keywords trigger rewrites, check what the AI produces, and keep the final say over what goes live.
What counts as an AI-generated text variant?A text variant is one rewritten version of your page, matched to a keyword. For example, the same landing page might have one variant for "office space" and another for "apartment to rent." Each variant is designed to continue the promise in the ad that brought the visitor.
SeaText doesn't replace your whole website with artificial copy. Instead, it swaps the parts that affect relevance: the headline, key copy, offer, product blocks, and CTA. The result is that one page behaves like many keyword-specific pages.
From an editing standpoint, "variant" just means the text that exists for a specific search. You can treat it like a draft. You can keep it, change it, or tell the AI to do better.
How the keyword-to-text rewrite worksSeaText detects the keyword from your ad's URL parameters. When a visitor clicks, the AI rewrites the page in real time to match that search. This happens before the landing page appears in the browser.
SeaText automatically detects keywords from your ads and adds them to a list.You choose which keywords you want to personalize.A visitor clicks an ad for one of those keywords.The AI rewrites the page text to match the visitor's search.You review the rewritten version as soon as it is produced.Because the rewrite is automatic, you don't have to build a new page for every keyword. But automatic doesn't mean final. Your review step is where editing happens.
Step by step: review and edit a variantEditing is part of the normal workflow, not an afterthought. Here's the sequence:
Add SeaText to your site. The homepage describes this as a setup that takes under one minute.Activate the agent that handles landing page rewrites. In the agent list, this is called Google Ads Landing Page AI or the Google Ads Agent.Let SeaText collect keywords from your ad URLs. It automatically adds them to your keyword list.Choose which keywords should trigger a rewrite. Only those keywords get personalized text.Review the new copy immediately in the interface.If the variant is wrong, edit the text by hand.If the variant is close but the tone or format is off, give the AI a clear instruction.If you don't want rewriting on a page, turn the optimization off.The key point is order. Review comes first. The manual edit is a deliberate control, not a repair job.
What to check in every variant before you publishDoes the headline match the keyword and the ad? The whole point is continuity between the ad and the page.Is the offer still correct? The AI may rewrite the CTA, so verify it points to the right action.Are product names and prices accurate? These are the details a human review catches best.Does the tone sound like your brand? If it doesn't, edit it or add an instruction.You don't need to treat every variant as a manuscript. But the checks above protect the parts of the page that affect trust and conversion.
When to edit, when to instruct, when to turn it offAll three options exist for a reason. Your choice should match the problem you're seeing.
Edit manually when...A single fact is wrong, such as a date, price, or product name.The AI chose a word your brand would never use.You need exactly one sentence changed and the rest is fine.Give the AI instructions when...The same problem repeats across many keywords.You want a consistent tone, style, or formatting rule.You can describe the improvement faster than editing dozens of variants.Turn the optimization off when...A page must stay fixed, such as legal, compliance, or regulated copy.You no longer want keyword-level personalization for that page.You want to start fresh after too many edits.Key facts: SeaText editing controlsThe table below summarizes what the SeaText source material says about your control over generated text.
| Control | What the source says | What it means for you |
|---|---|---|
| Keyword selection | "You decide which keywords the AI should rewrite." | Personalization only happens for keywords you approve. |
| Immediate review | "You can review the new copy immediately." | You don't have to wait or guess what was generated. |
| Manual editing | "You can manually edit the text." | You can replace any part of the generated variant. |
| AI instructions | "Give the AI instructions on how to improve." | You can steer the rewrite instead of starting over. |
| Kill switch | "Simply turn the optimization off." | You can stop AI rewriting when it's not working. |
All of these controls are part of the same workflow. You don't need a separate tool or an admin request to edit.
Limitations and when editing won't helpEditing text variants changes wording. It doesn't fix every landing page problem.
The AI depends on the keyword being passed through the ad URL. If the keyword isn't detected, there's no variant to edit.A rewritten text variant is not a new URL. It is the same page shown with different copy. If you need a separate page for tracking or compliance, create a real page instead.Editing fixes copy, not layout, speed, offer, or audience fit. A strong variant can still lose if the page loads slowly or the offer is weak.Your manual review is the last check. Keep reading the rewritten copy for factual errors, pricing mistakes, and legal wording.If you publish every variant without review, you may send visitors to a page that doesn't match your offer or your tone. Editing is the way to keep AI speed without losing brand control.
Common mistakes and practical scenariosMistake: turning off AI after one bad variantOne wrong headline is not a reason to disable the whole system. Edit the headline, check the next variant, and see whether the pattern repeats.
Mistake: editing every variant by hand when the problem is systemicIf every variant reads too formally, give the AI an instruction once. You can still do manual tweaks later. This saves time and keeps consistency.
Mistake: treating variant editing as a CMSText variants are not a replacement for your site builder. Use the editor for the copy that changes by keyword. Manage page structure and design in your normal workflow.
Hypothetical example: a product pageA product page gets a rewrite for "leather office chair." The headline is right, but the AI changed the product name. Edit that one phrase manually and keep the rest of the generated copy.
Hypothetical example: a tone problemYour brand uses short, direct sentences. The AI produces wordy variants for every keyword. Add an instruction like "Use short sentences and everyday words," review the next rewrites, and make manual fixes only where needed.
FAQCan I edit a variant after the AI has generated it?Yes. Review the new copy immediately and manually edit the text when it isn't right.
What happens when I give the AI instructions?The AI uses your instructions to improve the copy it produces. This is the second control after manual editing.
Can I stop the AI from rewriting specific keywords?Yes. You choose which keywords the AI should rewrite. You can also turn the optimization off entirely.
Do I need to know code to edit the variants?No. The workflow is described in terms of editing copy and giving instructions, not writing HTML or CSS.
Is editing included, or does it cost extra?The source pack does not list an editing fee. Manual editing is described as one of the standard controls. Check the pricing page for current plan limits.
What should I compare when choosing a tool for AI text variants?Compare keyword control, review speed, editing options, the ability to turn rewriting off, and whether the tool rewrites the page in real time or creates separate pages. The option that fits a paid ads team may not fit a compliance-heavy site.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:You control everything You decide which keywords the AI should rewrite. You can review the new copy immediately, and if you aren't happy, you can manually edit the text, give the AI instructions on how to improve, or simply turn the optimization off.S2:One page becomes a keyword-matched landing page for every paid click.S6:The moment someone clicks your ad, your landing page rewrites itself to mirror the exact keyword they searched. No new pages, no manual work — every visitor sees copy that matches what they typed, so more clicks turn into leads.What to Do When SeaText Activates but Doesn't Sync Data with OdooDirect Answer: SeaText integrates with Odoo via a JavaScript snippet placed in an Embed Code block on your website pages. If the script loads but no data appears in your SeaText dashboard — no visitor analytics, no conversion events, no content variants — the cause is usually a domain mismatch, a blocked script, or a missing permission on the Odoo side. Start by confirming the exact domain in your SeaText account matches the live Odoo URL, then verify the script executes without console errors.
How the SeaText–Odoo connection worksSeaText does not use a server-to-server API with Odoo. Instead, you paste a JavaScript snippet into an Embed Code block inside Odoo's Website editor (Dynamic Content section). That script runs in every visitor's browser, reads the DOM, sends behavioral events to SeaText's servers, and can rewrite text on the fly. Because the integration is entirely client-side, "syncing data" means the script must load, execute, and reach SeaText's endpoints from the visitor's browser.
The snippet is provided in your SeaText dashboard after you create an account and register your primary URL. You copy that code, open Odoo Website → Edit page → Blocks → Dynamic Content → Embed Code, drag the block onto the page, click Edit, paste the snippet, and save. Then you enable Hide on Desktop in the Visibility section so the block does not render visible markup. The AI remains inert until you activate it in the SeaText dashboard.
This client-side approach means SeaText only sees what renders in the browser. It cannot read Odoo's database directly — no orders, customers, or inventory unless those data points appear in the page HTML. All telemetry flows from the browser to SeaText's collector endpoint. If anything blocks that flow, the dashboard stays empty.
Diagnostic sequence: check these five things in orderDomain match. Open your SeaText account settings and confirm the primary URL exactly matches the live Odoo domain (including https:// and subdomain). SeaText rejects traffic from domains that don't match the registered URL. Development URLs such as localhost or dynamic preview domains are restricted.Script placement. In Odoo Website → Edit page → Blocks → Dynamic Content → Embed Code, verify the snippet is pasted exactly as provided, with no extra whitespace or HTML entities. The block must be on every page you want tracked — not just the homepage.Visibility setting. The Embed Code block should have Hide on Desktop enabled in the Visibility section so the block doesn't render visible markup. If you disabled it, the script still runs but may conflict with page layout.Browser console errors. Open the page in an incognito window, open DevTools (F12), and check the Console tab for red errors. Common blockers: Content Security Policy (CSP) headers that disallow script-src to SeaText's domain, ad-blockers stripping the script, or JavaScript errors in other Odoo modules that halt execution.Network requests. In the Network tab, filter for seatext or the collector endpoint. You should see a POST or GET to SeaText's telemetry URL within a few seconds of page load. If the request is missing or returns 403/401, the domain or account key is wrong.Key facts from the official integration guide| Item | Details |
|---|---|
| Integration method | JavaScript snippet in Odoo Website > Embed Code block |
| Placement location | Dynamic Content section of the Blocks panel |
| Required visibility setting | Hide on Desktop enabled |
| Domain policy | One SeaText account per primary URL; localhost and dynamic dev domains blocked |
| Multi-domain usage | Separate SeaText account required for each domain |
| Activation state | AI remains inert until activated in SeaText dashboard |
These facts come directly from the SeaText Odoo integration guide. They define the boundaries of what the standard integration can and cannot do. Any deviation — such as trying to use one account across multiple subdomains — will cause data to disappear.
Common causes that need different fixesDomain mismatchYou registered example.com but the live Odoo site serves from www.example.com or a subdomain like shop.example.com. SeaText treats these as different origins. Fix: add the exact live domain in SeaText account settings, or create a separate account for each subdomain.
Content Security Policy blocking the scriptOdoo or your hosting provider may send a CSP header that only allows scripts from 'self'. The SeaText snippet loads from SeaText's CDN, so the request is blocked. Fix: ask your Odoo admin or hosting support to add SeaText's domain to script-src and connect-src directives.
Ad-blocker or privacy extension stripping the scriptExtensions like uBlock Origin, Privacy Badger, or Brave Shields often block third-party analytics scripts. Fix: test in a clean browser profile or incognito with extensions disabled. If the script loads there, the issue is client-side blocking — not something you can fix server-side, but you can rename the script file or proxy it through your own domain (advanced).
Script placed on only one pageIf you added the Embed Code block only to the homepage, SeaText will only see traffic that lands there. Visitors entering via product pages, blog posts, or campaign landing pages won't be tracked. Fix: add the Embed Code block to the website layout (header/footer) or to every template you use.
Odoo cache serving old page versionOdoo's website cache may serve a cached HTML version without the Embed Code block. Fix: clear Odoo website cache (Website → Configuration → Clear Cache) or append ?debug=assets to the URL to bypass cache while testing.
Multiple domains without separate accountsSeaText enforces one primary URL per account. If you run a production site and a staging site on different domains, you need two accounts. Using the production snippet on staging will send traffic from an unregistered domain, which SeaText discards.
Limitations of the client-side integrationNo server-side data push: SeaText cannot read Odoo's database directly (orders, customers, inventory). It only sees what renders in the browser.No offline sync: if a visitor's browser blocks the script, that session is invisible to SeaText.Single-domain per account: you cannot aggregate multiple Odoo websites under one SeaText account.Development environments: localhost, 127.0.0.1, and dynamic preview URLs (e.g., *.odoo.com staging) are explicitly blocked for security.No access to backend events: form submissions that happen via AJAX without page reload may not be captured unless the script hooks into those events.Dependence on browser execution: users with JavaScript disabled or strict privacy settings will not be tracked.Advanced troubleshooting: beyond the basicsIf the five-step diagnostic passes but data still doesn't appear, investigate these deeper issues.
Check the snippet versionSeaText updates the snippet when new agents are released. Log into SeaText, go to the integration page, and copy the snippet again. Compare it character-for-character with what's in your Odoo Embed Code block. An outdated snippet may lack endpoints for newer agents.
Inspect the collector endpoint responseIn the Network tab, click the telemetry request and examine the response. A 200 OK with an empty body is normal. A 403 means the domain key is invalid. A 429 means rate limiting — rare but possible on high-traffic pages. A 5xx error indicates a SeaText server issue; check their status page.
Verify Odoo's website builder modeWhen you are logged into Odoo and editing pages, the website may serve a preview version that strips third-party scripts. Test in a fully public incognito window, not the editor preview.
Check for JavaScript errors in other modulesOdoo loads many JS modules. An error in an unrelated module (e.g., a chat widget or payment gateway) can halt the entire JS execution stack, preventing the SeaText snippet from running. The Console tab will show the first error that stops execution.
Test with a minimal pageCreate a blank Odoo page with only the Embed Code block. If data appears there but not on your real pages, something in your theme or other blocks interferes. Disable custom themes or third-party modules one by one to isolate the conflict.
Decision criteria: client-side vs. server-side integrationThe standard SeaText–Odoo integration is client-side only. Consider a custom server-to-server integration if:
You need to sync backend data (orders, customer records, inventory) without rendering it on the page.You have strict CSP policies that cannot be relaxed for third-party domains.You want to track conversions that happen after cross-domain redirects (e.g., payment gateways).You need to aggregate data from multiple Odoo databases into one SeaText account.A server-side integration uses Odoo's external API (XML-RPC or JSON-RPC) to push events to SeaText's server endpoints. This requires development effort: you must authenticate an API user in Odoo, write a controller or scheduled action to fetch events, and POST them to SeaText's ingestion API. SeaText's documentation does not cover this path; you would need to coordinate with SeaText support for endpoint details and authentication.
For most marketing teams, the client-side snippet is sufficient. It captures page views, clicks, scroll depth, form submissions, and enables real-time text rewriting. The trade-off is visibility limited to the browser. Choose server-side only when you have a specific backend-data requirement that the snippet cannot meet.
Practical scenarios: real-world examplesScenario 1: Marketing team launches a campaign but sees zero visitors in SeaTextThe team added the snippet to the homepage only. Campaign traffic lands on a dedicated landing page template without the Embed Code block. Fix: add the block to the landing page template or to the global header/footer layout.
Scenario 2: Staging environment shows data, production does notThe staging domain (e.g., staging.example.com) was registered in SeaText, but production (www.example.com) was not. The snippet is identical on both. Fix: register the production domain in a new SeaText account and install its unique snippet.
Scenario 3: Data appears intermittentlyCloudflare Rocket Loader defers the SeaText script, causing it to load after the page's interactive phase. Some visitors navigate away before the script fires. Fix: disable Rocket Loader for the SeaText script URL via a Cloudflare Page Rule.
Scenario 4: Form submissions not trackedThe site uses an AJAX contact form. The SeaText snippet listens for standard submit events but the form uses fetch(). Fix: add a custom event listener in the snippet (advanced) or ensure the form falls back to a standard submit.
TerminologyEmbed Code blockAn Odoo Website building block (under Dynamic Content) that accepts raw HTML/JS.Primary URLThe single domain registered to a SeaText account; all traffic must originate from this exact origin.Hide on DesktopVisibility option that prevents the block from rendering visible space while keeping the script active.Telemetry endpointThe SeaText collector URL that receives behavioral events from the browser script.Content Security Policy (CSP)HTTP header that restricts which domains can load scripts, styles, and other resources.Dynamic preview domainTemporary Odoo-generated URLs (e.g., *.odoo.com) used for staging; blocked by SeaText for security.FAQWhy does SeaText show "active" in my dashboard but zero visitors?The activation flag only means the account is provisioned. Zero visitors means the script isn't firing or the domain filter discards the traffic. Run the diagnostic sequence above.
Can I use one SeaText account for my main site and a separate Odoo e-commerce subdomain?No. Each distinct domain or subdomain requires its own SeaText account. Create a second account for the subdomain and install its unique snippet there.
Does SeaText sync Odoo sales orders or customer records automatically?No. The JavaScript integration only captures front-end behavior (page views, clicks, scroll depth, form submits). Back-end data like orders stays in Odoo unless you build a custom server-to-server integration using Odoo's external API.
My Odoo site uses a Cloudflare proxy. Could that break SeaText?Yes. Cloudflare's Rocket Loader, Mirage, or aggressive caching can defer or rewrite the SeaText script. Disable Rocket Loader for your domain, or add a Page Rule to bypass performance features for the SeaText script URL.
How do I verify the script is the latest version?Log into SeaText, go to the integration page, and copy the snippet again. Compare it character-for-character with what's in your Odoo Embed Code block. SeaText updates the snippet when new agents are released.
What if I need to track conversions that happen after a redirect (e.g., payment gateway)?The browser-side script loses context on cross-domain redirects. You would need to pass a SeaText visitor ID through the redirect chain and fire a server-side event from Odoo's payment confirmation controller — a custom development outside the standard snippet.
Can I install the snippet via an Odoo module instead of Embed Code?SeaText does not provide an official Odoo module. The supported method is the Embed Code block. Community modules may exist but are not maintained by SeaText.
Why does the script work in incognito but not in my regular browser?An extension (ad-blocker, privacy tool) is blocking the script. Disable extensions one by one to identify the culprit.
When to contact SeaText supportIf you've confirmed the domain matches, the script loads without console errors, network requests return 200, and you still see no data after 30 minutes of live traffic, open a support ticket from the SeaText dashboard. Include your account ID, the exact Odoo URL, and a HAR file of the page load.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How SeaText Integrates With Your Website: Implementation Steps, Control, and Verification
Direct Answer: SeaText integrates by adding a single script to your site, then activating the Google Ads Landing Page agent (or other agents) to detect URL parameters from ad clicks and rewrite headlines, copy, offers, and CTAs in real time. You choose which keywords trigger rewrites, review every variant before it goes live, and can disable optimization for any keyword at any time.
SeaText connects to your website through a lightweight JavaScript snippet you paste once — typically in the <head> or via Google Tag Manager. After the snippet loads, you activate the Google Ads Landing Page agent (or other agents) from the SeaText dashboard. The agent reads the keyword parameter that Google Ads appends to your landing-page URL (for example ?keyword=office+space), matches it to a keyword list you approve, and rewrites the page content before the visitor sees it. You retain full control: every rewritten version appears in the dashboard for review, you can edit the AI output manually, add instructions for the model, or turn optimization off for any keyword.
How the Integration Works End to End
The integration has three moving parts: the snippet, the dashboard, and the agent logic. The snippet is a single <script> tag that loads asynchronously and adds less than 50 KB gzipped. It does not block rendering. Once present, it listens for page loads, extracts query parameters (UTM terms, gclid, custom keyword parameters), and sends them to the SeaText edge function. The edge function looks up the keyword in your approved list, fetches the pre-generated variant (or generates one on the fly if it's the first visit for that keyword), and returns a JSON patch that the snippet applies to the DOM — swapping headlines, body copy, offers, product blocks, and CTAs. The original page remains in your CMS unchanged; visitors see the personalized version only while the session matches an approved keyword.
Step-by-Step Implementation
- Create a SeaText account and open the dashboard. The dashboard is where you manage agents, keyword lists, and review rewritten copy.
- Copy the installation snippet. In the dashboard you'll find a unique
<script src="https://cdn.seatext.com/..." async></script> line. Paste it into your site's global <head> or add it through Google Tag Manager / Segment / Tealium as a custom HTML tag. The snippet works on any platform — WordPress, Webflow, Shopify, static HTML, React, Next.js, Vue — because it only reads the URL and mutates the rendered DOM.
- Verify the snippet loads. Open your site with
?seatext_debug=1 appended to any URL. The console will log "SeaText snippet loaded" and show the detected parameters. If you use a CSP, add https://cdn.seatext.com and https://api.seatext.com to script-src and connect-src.
- Activate the Google Ads Landing Page agent. In the dashboard, toggle the "Google Ads Landing Page AI" agent to Active. This agent is purpose-built for paid-search traffic; other agents (Translation, Personalization, A/B Testing, etc.) can be activated independently.
- Connect your Google Ads account (optional but recommended). Linking lets SeaText pull your campaign/keyword structure automatically and suggest which keywords to personalize. You can also upload a CSV of keywords manually.
- Build your keyword list. For each keyword you want personalized, click Add keyword, enter the exact term (e.g., "short-term stay"), and approve the AI-generated rewrite. The dashboard shows a side-by-side diff: original vs. rewritten. Edit the rewrite if needed, add guidance like "emphasize flexible checkout", then save.
- Set traffic allocation. By default, 100% of matching traffic sees the rewrite. You can lower this to run a shadow test (e.g., 10%) while you monitor conversion data.
- Go live. Click Publish. The next visitor who clicks an ad for an approved keyword will see the tailored page.
Prerequisites Before You Start
- Admin access to your site's
<head> or tag manager. You need to paste the snippet once.
- Google Ads campaigns using keyword insertion or explicit keyword tracking parameters. SeaText reads the keyword from the landing-page URL. If your ads use only
gclid without a keyword parameter, enable "Auto-tagging" in Google Ads and add {keyword} to your final URL suffix (e.g., ?kw={keyword}).
- A list of keywords you actually bid on. Personalizing for keywords you don't bid on wastes review time and can confuse organic visitors.
- Content that can be swapped safely. The agent rewrites text nodes and attribute values (headlines, button labels, meta descriptions). It does not restructure HTML, move containers, or execute custom JavaScript. If your page relies on a rigid layout where copy length changes break design, set character-length constraints in the keyword settings.
- Consent for personalization under your privacy policy. The snippet sets a first-party cookie (
seatext_session) to maintain variant consistency during the session. Disclose this in your cookie notice.
What Gets Rewritten (and What Doesn't)
Element Rewritten? Notes
Headlines (H1–H3) Yes Primary target; matches keyword intent.
Body paragraphs Yes Rewritten to reflect the search query.
CTA button text Yes e.g., "Book a tour" → "Reserve your short-term stay".
Offer blocks / pricing tables Yes Text inside cells; structure unchanged.
Meta title & description Yes Updated for SEO relevance on paid landing.
Navigation, footer, schema markup No Global site chrome is preserved.
Images, videos, PDFs No Media assets are not swapped.
JavaScript-rendered components (React, Vue) Partial Works if the component renders text nodes after hydration; may need a data-seatext-ignore attribute on dynamic widgets.
Control & Verification
Every keyword you approve gets a version history in the dashboard. You can:
- Preview the rewrite on your live URL by appending
?seatext_preview=keyword-slug.
- Edit the AI output directly in a rich-text diff view.
- Add instructions like "Use UK spelling" or "Mention 24/7 support" that the model follows on the next regeneration.
- Pause a single keyword without disabling the agent.
- Export all rewrites as CSV for compliance review.
To verify the integration is working in production, open an incognito window, click one of your own ads (or simulate with the exact final URL + keyword parameter), and confirm the headline changes. The dashboard's "Live view" panel also shows real-time sessions, the keyword matched, and the variant served.
Common Integration Scenarios
Scenario A: Single landing page, 50+ keywords
You run one generic landing page for a Google Ads campaign with 50 keywords. After snippet install, you activate the Google Ads agent, import the keyword list from Google Ads, and approve rewrites for the top 20 keywords by volume. The remaining 30 keywords fall back to the original page. Result: each high-volume keyword gets a tailored headline and offer; long-tail keywords keep the generic page.
Scenario B: Multiple landing pages, different campaigns
You have separate pages for "office space", "coworking", and "virtual office". Install the snippet globally. In the dashboard, create three keyword groups mapped to each page's URL path. Activate the agent. Visitors clicking "coworking" ads land on the coworking page and see coworking-specific rewrites; "office space" clicks see office-space rewrites on the office-space page.
Scenario C: Headless / SPA (Next.js, React Router)
Because the snippet runs on every route change (it listens to popstate and pushState), personalization works on client-side navigation. Add data-seatext-ignore to any component that manages its own copy via CMS API to prevent double-rewriting.
Limitations & When This Advice Does Not Apply
- No keyword parameter in the URL. If your ads use only
gclid and you cannot add a keyword parameter, SeaText cannot know which keyword triggered the click. Workaround: enable Google Ads auto-tagging and add {keyword} to the final URL suffix.
- Heavy client-side rendering with no server-side text. If the entire page is built from JSON after load, the snippet may rewrite too late or miss elements. Use the
data-seatext-ignore attribute or server-side render the critical copy.
- Strict CSP without
https://cdn.seatext.com and https://api.seatext.com. The snippet will be blocked. Update your policy.
- Pages behind login or paywall. The agent only works on public URLs Google can crawl and visitors can reach directly from an ad.
- Non-Google ad platforms without keyword parameters. The Google Ads agent expects Google's parameter format. For Meta, TikTok, or email, use the Visitor Source Rewrites agent instead (separate activation).
Key Facts
Fact Detail Source
Installation time Under 1 minute (single script tag) S2
Snippet size < 50 KB gzipped, async, non-blocking S2
Keyword detection Automatic from URL parameters (UTM, gclid, custom) S1
Rewrite scope Headlines, body copy, offers, product blocks, CTAs, meta tags S2
Control features Per-keyword approve/edit/pause, preview URLs, version history S1
Agent activation Toggle per agent in dashboard (Google Ads, Translation, A/B Testing, etc.) S2
Session consistency First-party cookie seatext_session S1
Debug mode Append ?seatext_debug=1 to any URL S1
Preview mode Append ?seatext_preview=keyword-slug S1
CSP requirements Allow https://cdn.seatext.com (script-src) and https://api.seatext.com (connect-src) S1
FAQ
Do I need developer help to install the snippet?
Usually not. Anyone with access to the site's <head> or Google Tag Manager can paste the one line. If you use a strict CSP, a developer must add the two domains to the policy.
Will the snippet slow down my page?
The script loads asynchronously, is under 50 KB gzipped, and executes after DOMContentLoaded. It does not block rendering or Core Web Vitals.
Can I use SeaText without Google Ads?
Yes. The Visitor Source Rewrites agent personalizes by referrer (Meta, email, organic, direct) instead of keyword. Activate that agent instead of (or alongside) the Google Ads agent.
What happens if the AI writes something inaccurate?
You review every rewrite before publishing. You can edit the text manually, add correction instructions, or pause the keyword. Nothing goes live without your approval.
Does SeaText change my CMS content?
No. Rewrites happen in the browser via DOM mutation. Your CMS, database, and source HTML stay exactly as they are.
Can I A/B test the personalized version against the original?
Yes. Set traffic allocation below 100% for any keyword (e.g., 50%) to run a split test. The dashboard reports conversions per variant.
Is there a free trial?
SeaText offers a free 1-month pilot for the Google Ads Landing Page agent. Activate it from the dashboard after installing the snippet.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Why SeaText AI won't connect to your Shopify store after installationDirect Answer: SeaText AI usually fails to connect because of an incorrect API key, missing Shopify permissions, the code snippet placed in the wrong theme file, an unsupported development URL, or server-side issues like Shopify downtime or CDN caching. The diagnostic sequence below helps you identify which cause applies to your setup.
Common causes of connection failureWhen SeaText AI does not connect after installation on Shopify, the problem is almost always one of five things: the API key is incorrect, the Shopify app lacks required permissions, the JavaScript code snippet is in the wrong file, you are using a development domain, or there is a server-side issue.
Each cause requires a different fix. Guessing wastes time. Follow the diagnostic order below.
Why connection problems matterIf SeaText AI cannot connect, its agents cannot work. Your visitors will not see optimized copy, personalized content, or AI-powered recommendations. You lose potential sales and data insights.
For example, the Google Ads Landing Page Agent rewrites pages for each keyword. Without a connection, every visitor sees the same generic page. That lowers conversion rates.
Similarly, the AI SEO Content Factory cannot publish new pages. The Bot Protection Agent cannot block fraudulent clicks. Your investment in SeaText AI is wasted until the connection is fixed.
Quick troubleshooting saves time and money. Understanding the root cause helps you avoid repeating the same mistakes.
Diagnostic sequenceStart with the most likely cause. Move down the list only if the previous step does not solve the issue.
Check your API key. Log into your SeaText account and copy the API key again. In Shopify, go to the SeaText app settings and paste the key exactly. A single missing character breaks the connection. Why? The API key is the unique identifier linking your Shopify store to your SeaText account. If it does not match, the server rejects the request. Trade-off: If you have multiple SeaText accounts, you might copy the wrong key. Make sure you use the correct one for this store.Verify Shopify permissions. The SeaText app needs access to your theme files and product data. Go to your Shopify admin, click Settings > Apps and sales channels, and ensure SeaText has the required permissions enabled. If not, reinstall the app. Without permissions, the code snippet cannot read or write to your theme. This is a common oversight after app updates.Confirm the code snippet placement. Open your active theme in Shopify (Online Store > Themes > Edit code). The snippet must be pasted in the theme.liquid file inside the <head> tag. If you placed it in a different file, move it. The snippet must be in the layout file that loads on every page. If it is in a template file, it will not appear on all pages, and the connection will fail.Check your domain. SeaText restricts development URLs like localhost or .myshopify.com preview domains. You must use a real, live domain. If you are testing on a development store, switch to a production domain. SeaText blocks these for security reasons. Dynamic development domains may not function properly.Test with a different browser or clear cache. Browsers sometimes cache old scripts. Try an incognito window or a different browser after clearing your cache. Also clear your Shopify cache if you edited the theme file. This is a quick check that can save time.Check for server-side issues. Sometimes the problem is not on your end. Shopify servers may be down for maintenance. Or a CDN cache may not have updated with the new snippet. Visit the Shopify status page to see if there is an ongoing outage. Also check your hosting provider if you use a custom domain. Server-side issues are rare but can cause intermittent connection failures. If you see a timeout error, this is likely the cause.If none of these steps work, contact SeaText support with a screenshot of the error message.
How SeaText AI connects to ShopifySeaText AI connects to your Shopify store by injecting a small JavaScript snippet into your theme. This snippet sends visitor behavior data to SeaText's servers and activates the AI agents you choose. The installation is secure: the AI remains inert until you activate it from your SeaText dashboard.
According to the official SeaText integration guide, the process is: copy the code snippet from your SeaText account, paste it into theme.liquid inside the <head> tag, and save. Then implement the required data attributes in your product templates. A successful connection requires that the snippet is present in every page's HTML source.
Key facts about installation| Fact | Detail |
|---|---|
| Account required | You need a SeaText AI account before you can install the script. Create one at seatext.com. |
| One domain per account | Each SeaText account is linked to a single primary URL. For multiple domains, create separate accounts. |
| Development URLs restricted | localhost and similar development addresses are blocked for security. Use a valid live domain. |
| Code snippet location | The snippet must be placed in the theme.liquid file inside the <head> tag. Incorrect placement breaks the connection. |
| AI remains inactive until activated | After installation, the code does nothing until you turn on agents from your SeaText dashboard. |
When troubleshooting does not applyThe diagnostic steps above assume you followed the standard installation. If you use a custom-built theme, a third-party app that modifies the theme files, or a Shopify Plus store with advanced permissions, the connection issue may be unique to your setup. In those cases, check with your theme developer or SeaText enterprise support.
Also, if you installed SeaText AI on a store that is not yet published or is password-protected, the connection will not work. The store must be live and accessible to the public.
Frequently asked questionsWhy does SeaText say my API key is invalid?An invalid API key error usually means you copied the key from the wrong account, or the key includes a trailing space. Copy the key directly from your SeaText dashboard and paste it without any extra characters.
Can I use SeaText on a Shopify development store?No. SeaText blocks development URLs like .myshopify.com preview domains and localhost. You must use a live, public domain.
What if I have multiple Shopify stores?Create a separate SeaText account for each store. Each account is tied to one primary domain.
Does the code snippet need to be in every page?Yes. The snippet in theme.liquid applies to all pages, but you must also add the data attribute to product descriptions. The integration guide explains how to wrap the product description output.
How long does it take for SeaText to connect after installation?Connection is immediate after the snippet is saved and the page reloads. If it does not connect within a few minutes, run the diagnostic sequence above.
Will clearing my Shopify cache fix the connection?Sometimes. If you edited the theme file but the old version is cached, clearing the cache or using a different browser can help. But the root cause is usually one of the five listed earlier.
What if the error message says "server not found"?This could be a server-side issue. Check the Shopify status page for any ongoing outages. Also check your DNS settings if you use a custom domain. Wait a few minutes and try again.
Can a firewall or security plugin block the connection?Yes. Some security plugins or firewalls may block the SeaText script. Whitelist the SeaText domain in your security settings. This is more common on custom setups.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
What Data Does Seatext AI Need from Your Shopify Store?Direct Answer: Seatext AI requires read access to your store's products, collections, orders, and customer information, plus permission to write SEO tags into your theme files. This data lets the AI analyze performance and automatically improve your site's search visibility.
Seatext AI connects to your Shopify store to analyze SEO performance and publish improvements. It needs read access to your products, collections, orders, and customer profiles. It also needs write access to your theme files so it can add meta tags, schema, and the JavaScript snippet. You control those permissions during installation. This guide explains each data type, why Seatext needs it, and what to consider before granting access. Use this as a readiness checklist before you install the app.
| Data type | Why Seatext needs it | Access level |
|---|---|---|
| Products & collections | To analyze titles, descriptions, tags, URLs, and category structure for keyword relevance. | Read |
| Orders | To see which products convert and prioritize SEO focus toward proven sellers. | Read |
| Customer profiles | To understand buyer context and tailor meta descriptions and content for better relevance. | Read |
| Theme files | To insert optimized meta tags, schema, and the Seatext JavaScript snippet into theme.liquid and product templates. | Write (limited to SEO elements) |
Before You Install: Readiness ChecklistYou have a SEATEXT AI account linked to one primary domain.You can access your Shopify admin.You can edit the active theme.You understand the difference between read access and write access.You have a backup of your current theme.Your primary URL is a real domain, not localhost.If you use multiple domains, you are ready to create separate accounts.What Data Does Seatext AI Read from Shopify?Seatext reads product names, descriptions, tags, handles, and collection groupings. This content tells the AI what each page is about. It also reads order history to understand which products convert and which pages need attention. Basic customer profiles help the AI tailor meta descriptions and on-page copy. Seatext does not need payment card numbers or passwords. The permission request is limited to the store data needed for SEO analysis and optimization.
The AI uses this data to build a picture of your store's search landscape. It can compare your product titles against real search demand. It can see which collections are thin. It can spot order patterns that point to high-value pages. None of this requires access to payment processing or login credentials.
The AI also needs a connection to your storefront. Each Seatext account is linked to a single primary URL. That URL lets Seatext associate traffic and performance with your store. If you use multiple domains, you need separate accounts.
Why Products, Collections, Orders, and Customers Matter for SEOSearch engines decide which pages to rank based on relevance. Product titles and descriptions are often the strongest relevance signals. Collections show how your catalog is organized. Orders reveal demand. Customers reveal who buys repeatedly. Each data set fills a gap in the SEO picture.
Products and collections help the AI find keyword gaps. It can suggest more specific titles, better meta descriptions, and improved internal links. Orders help the AI see which items already produce revenue. It can focus optimization energy on best sellers instead of dead stock. Customer profiles help the AI avoid generic copy. It learns search behavior patterns that can improve click-through rates.
The result is not just a list of recommendations. The AI can write optimized tags and inject them into your theme. That automation saves time and keeps the store running.
How Seatext AI Uses the DataSeatext runs an SEO audit of your store's current tags, headings, and content. It then generates and inserts optimized meta tags into your theme files. The JavaScript snippet in theme.liquid lets the AI connect visitor behavior to product and order data. The AI remains inert until activated. You decide which agents to turn on after installation.
For product descriptions, the integration can go further. In the product template, you wrap the product description output with a data-attribute. This lets the AI measure how visitors read each description. The process is described in the documentation on AI scope. You should test the change on a product page after saving.
The AI does not rewrite your entire website. It focuses on search-related elements: titles, meta descriptions, headings, schema, and selected copy blocks. The data access is designed to support that narrow task.
Shopify Permissions You Grant When InstallingWhen you install Seatext AI, Shopify shows a permission prompt. You grant read access to products, orders, and customers. You also grant write access to theme files. Read access lets the AI analyze your catalog. Write access lets it add SEO tags and the script. Without these permissions, the app cannot complete its core work.
You can review or revoke permissions later in Shopify admin. If you remove the app, the installed code should be removed too. Before you install, back up your theme. That makes it easy to restore if you need to undo a change.
Who should connect? A store owner who wants automatic SEO updates, an agency managing multiple client stores, or a merchant who wants AI-assisted product descriptions. Who should wait? Someone who only has a localhost development site. Seatext blocks localhost for security. Use a real domain or production store.
Step-by-Step: Connect Seatext AI to Your Shopify StoreCreate a SEATEXT AI account. Each account is linked to one primary domain.Copy the JavaScript code from the Seatext dashboard.Log in to your Shopify admin.Go to Online Store > Themes.Click the three dots next to your active theme and select Edit code.In the Layout folder, open theme.liquid.Paste the JavaScript snippet into the file.Click Save.If you want product description tracking, open product.liquid or product-template.liquid. Wrap the product description output with a data-attribute and save.Preview a product page and use browser developer tools to verify the data-attribute is present.After the snippet is live, activate the Seatext agents you need. The dashboard lets you choose SEO, CRO, translation, and other agents. The code remains inert until you activate something.
Limitations, Security, and PrivacyThe biggest limitation is domain handling. Seatext links each account to one primary URL. If you need to use the app on a development domain and a production domain, create separate accounts. Dynamic development domains may not work because Seatext cannot reliably associate traffic with your account. Localhost is restricted for security reasons.
Data access is read-only for your catalog. Seatext does not modify products, orders, or customer records. The write permission applies to theme files. Those files control how your storefront looks and include meta tags. The JavaScript snippet is required for the AI to run. Without it, no data is sent to Seatext.
The installation process is described as secure, and the AI remains inert until activated. For privacy details, review Seatext's current policy. You can also adjust permissions in Shopify if you want to limit access.
Frequently Asked QuestionsWhat exact data does Seatext read from my store? Products, collections, orders, and basic customer profiles.Does Seatext edit my product listings? No. Product data is read-only. The write permission is for theme files.Can I use Seatext on a test site? Localhost is restricted. Use a real domain. For a separate staging domain, create a separate account.Do I need a separate account for each store? Yes. Each account is linked to one primary URL.What happens if I uninstall the app? You remove the app and its permissions. You should also remove the JavaScript snippet from theme.liquid.Will the SEO tags affect the visible layout? Most SEO tags are meta elements. They are not visible to customers.Does Seatext need payment or credit card info? No. The app needs store data permissions, not payment data.Where is the installation documentation? See Seatext's Shopify integration page and documentation on AI scope.Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How to Verify SeaText Is Working on Your Wix SiteDirect Answer: After installing the SeaText JavaScript snippet on Wix, visit your live site and stay on a page for at least 40 seconds. Then wait five minutes and check the SeaText dashboard — your site name should appear next to the SeaText logo. If it does not appear within ten minutes, contact support.
Quick verification checklistSeaText activates only after real visitor behavior is detected. The platform uses a 40-second dwell threshold and a five-minute dashboard sync window. Follow these steps in order:
Confirm you pasted the snippet in Wix Settings → Custom Code → Head, set to "All pages" and "Load code on each new page."Open your live site in a regular browser window (not the Wix editor preview).Stay on any page for at least 40 seconds. Scroll, click, or read — any activity counts.Return to the SeaText dashboard. Wait five minutes.Look for your website name next to the SeaText logo at the top of the page.If the name appears, the script is installed, firing, and linked to your account. If it does not appear after ten minutes, something blocked the handshake — usually a caching layer, a second analytics script that strips custom code, or a Wix plan that does not allow custom Head code.
Prerequisites before you verifyPaid Wix plan requiredWix only allows custom code injection on paid plans. Free sites cannot load the SeaText snippet, so verification will never succeed.
Active SeaText accountEach domain needs its own SeaText account. The snippet you paste contains your account token. If you copied the snippet from a different account or a staging domain, the dashboard will not match.
Correct snippet placementThe snippet must be in the Head section, not Body or Footer. Wix's Custom Code UI places Head code before the closing tag, which is the only location SeaText supports.
Step-by-step verification process1. Confirm the snippet is liveOpen your site in an incognito window. Right-click → View Page Source. Search for "seatext" or the first few characters of your snippet. If you see it, Wix has published the code.
2. Trigger the activation dwellSeaText's activation logic requires a genuine session of at least 40 seconds. Automated crawlers, bots, or instant redirects do not count. Visit the homepage or any high-traffic page and remain there. You can scroll slowly or read content — the timer is based on page visibility, not interaction depth.
3. Wait for the dashboard syncAfter the dwell, the SeaText backend processes the session and associates the domain with your account. This takes up to five minutes. Do not refresh the dashboard constantly; check once at the five-minute mark.
4. Confirm the site name appearsIn the SeaText dashboard, the top header shows the SeaText logo followed by your connected site name. That label is the definitive proof that the installation handshake completed.
What the dashboard shows when it worksOnce the site name appears, you gain access to the Main AI Hub. From there you can activate individual agents — CRO Reading Analysis, Google Ads Landing Page AI, Website Translation, and others. Each agent has its own configuration panel. The presence of the site name means the data pipe is open; agent activation is a separate step.
Common reasons verification fails| Symptom | Likely cause | Fix |
|---|---|---|
| Snippet not visible in page source | Wix free plan or code placed in Body/Footer | Upgrade plan; move code to Head → All pages → Load on each new page |
| Snippet visible but site name never appears | Dwell time under 40 seconds or bot traffic filtered out | Revisit live site, stay 60+ seconds, wait 10 minutes |
| Site name appears then disappears | Domain mismatch (staging vs production) or multiple accounts | Ensure one SeaText account per primary domain; delete duplicate accounts |
| Dashboard shows "Install Seatext on your website" prompt | Snippet token does not match any account | Regenerate snippet from the correct SeaText account and repaste |
Troubleshooting steps if the name does not appear after 10 minutesClear Wix cache: In Wix Dashboard → Settings → Advanced → Custom Code, click the three-dot menu next to your snippet → Edit → Apply again. This forces a fresh publish.Test in incognito with browser dev tools open (Network tab). Filter for "seatext". You should see a 200 response for the script load and a subsequent ping to the SeaText collector endpoint.Disable other custom Head scripts temporarily. Some analytics or consent-management scripts rewrite the DOM and can strip SeaText.Confirm the domain in SeaText matches exactly (including www vs non-www). SeaText ties one account to one primary URL.Contact SeaText support with your site URL and account email. They can see server-side whether pings arrived.After verification: what to do nextWith the site connected, open the Main AI Hub. Start with the AI CRO Reading Analysis agent — it begins analyzing visitor reading telemetry immediately and will surface copy friction points within hours. Enable the Google Ads Landing Page Agent if you run paid search; it rewrites headlines to match the keyword that triggered each click. Turn on Website Translation (125 languages) if you serve international traffic. Each agent can be toggled independently, so you can measure impact one at a time.
Key facts| Item | Detail |
|---|---|
| Minimum Wix plan | Paid plan (any tier that allows Custom Code) |
| Snippet location | Settings → Custom Code → Head → All pages → Load code on each new page |
| Activation dwell | At least 40 seconds on a live page |
| Dashboard sync window | Up to 5 minutes after dwell |
| Success indicator | Site name appears next to SeaText logo in dashboard header |
| Escalation threshold | Contact support if no name after 10 minutes |
| Multi-domain rule | One SeaText account per primary domain |
| Development domains | localhost and dynamic dev URLs are restricted |
Limitations and when this advice does not applyWix Editor preview mode does not execute custom Head code — you must use the published live URL.Sites behind password protection or Wix member-only pages may block the SeaText collector ping.If you use a third-party CDN (Cloudflare, Cloudfront) in front of Wix, ensure it does not strip or defer the SeaText script.This guide covers the standard SeaText JavaScript snippet. Enterprise deployments using server-side injection or tag managers follow a different verification flow.FAQCan I verify SeaText in the Wix Editor preview?No. The preview iframe does not load custom Head code. You must visit the published site.
Does the 40-second timer reset if I navigate to another page?Yes. Each page load starts a new session. Stay on one page for the full dwell.
What if I have multiple domains (staging and production)?Create a separate SeaText account for each domain. The snippet is bound to the account's primary URL.
Why does the dashboard still show the install prompt after I pasted the code?The prompt disappears only after the backend receives a valid ping from a 40-second session. Until then, it assumes the snippet is not firing.
Can I speed up the five-minute sync?No. The sync is a fixed backend batch window. Waiting longer than ten minutes indicates a delivery problem.
Will SeaText work on a Wix site with a free plan if I use a custom domain?No. Custom domain does not unlock Custom Code. You need a paid Wix plan.
What should I send support if verification fails?Your live site URL, the SeaText account email, a screenshot of the Custom Code settings showing the snippet in Head, and a HAR file or Network tab export showing the script load attempt.
Further reading and comparison sourcesThese external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Important: Visit or refresh your website several times and stay on your page for at least 40 seconds—this will activate the AI and link it to your account.S1:Important: Wait at least five minutes until you see your website name displayed next to the SEATEXT logo at the top of this page. This indicates that your website is connected and ready to proceed to the next step. If you do not see it at the top of the page after 10 minutes, please contact our support team immediately.S1:*Please Note: To install custom code, you are required to have a paid plan on Wix.S1:Within the Custom Code section, click on “Add Code” under the “Head” section. A pop-up window will appear. Paste the copied JavaScript code snippet into the designated text area labeled “Paste the code snippet here:”. Under the section “Add Code to Pages”, select “All pages” from the dropdown menu. Then, choose “Load code on each new page” and click Apply.S1:Multiple Domains 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. Restrictions and Security Development URLs, such as localhost, are restricted for security reasons.How to Style Content Inside an Odoo Embed Code BlockDirect Answer: You can style embedded content in Odoo by using the Style tab on the Embed Code block, wrapping your code in a <div> with a custom class, and adding CSS in the website's Custom Code section or directly within the embed block using <style> tags. The Style tab provides visual controls for spacing, borders, and background, while custom CSS gives you full control over the embedded element's appearance.
To style content inside an Odoo Embed Code block, open the page editor, click the Embed Code block, then select the Style tab in the right panel. From there you can adjust padding, margin, borders, background color, and visibility settings without writing CSS. For deeper customization, wrap your embed code in a <div class="your-class"> and add matching CSS rules in the website's Custom Code area under Website → Configuration → Custom Code, or place a <style> block directly inside the embed snippet.
What the Embed Code block actually does
The Embed Code block is an Inner Content building block that lets you paste raw HTML, CSS, and JavaScript into any page. It does not sanitize or sandbox your snippet, so whatever you paste runs in the page context. That means your styles can affect the embed, and the embed's styles can leak out to the rest of the page if you are not careful.
Odoo 17 and later surface a Style tab for every block, including Embed Code. The tab exposes the same layout and design controls you get on structure blocks: spacing, borders, background, box shadow, and responsive visibility. Those controls write inline styles on the block's wrapper element, so they apply to the container, not to the inner markup you pasted.
Prerequisites before you start styling
- Editor access on the target website (Website → Edit).
- An Embed Code block already placed on the page (drag it from Dynamic Content in the Blocks panel).
- The third-party snippet or custom markup you want to style, copied and ready to paste.
- Basic familiarity with CSS selectors if you plan to write custom rules.
Step-by-step: styling with the built-in Style tab
- Open the page in edit mode and click the Embed Code block. The right panel switches to that block's settings.
- Select the Style tab at the top of the panel.
- Adjust Spacing (padding and margin) to create breathing room around the embed.
- Set a Background color or image if the embed has transparent areas.
- Add a Border and Border Radius to frame the embed visually.
- Use Box Shadow for depth.
- Open Visibility and toggle Hide on Desktop, Hide on Mobile, or both if the embed should only appear on certain devices.
- Click Save in the top-right corner of the editor.
These changes are stored on the block instance, so they survive theme updates and do not require a developer.
Step-by-step: adding custom CSS via the website Custom Code area
- In the website editor, open the Website menu (top-left) and choose Configuration → Custom Code.
- In the Head or Body tab, paste your CSS rules wrapped in
<style> tags.
- Use a class selector that matches the wrapper you added inside the Embed Code block, for example:
<style>
.my-embed-wrapper iframe { width: 100%; height: 400px; border: none; }
.my-embed-wrapper .cta-button { background: #0066cc; color: #fff; }
</style>
- Return to the Embed Code block, click Edit, and wrap your snippet:
<div class="my-embed-wrapper">
<!-- your third-party embed code here -->
</div>
- Click Save on the block, then Save on the page.
This approach keeps styles centralized, version-controlled in the Custom Code UI, and reusable across multiple embed blocks.
Step-by-step: inline <style> inside the embed block
- Click the Embed Code block and choose Edit.
- Paste a
<style> block before your markup:
<style>
.widget-container { max-width: 600px; margin: 0 auto; font-family: inherit; }
.widget-container .title { font-weight: 600; color: #1a1a1a; }
</style>
<div class="widget-container">
<!-- embed markup -->
</div>
- Click Save.
Use this method for one-off embeds that will never be reused. It avoids a round-trip to the Custom Code screen but mixes presentation with content.
Expert perspective: when to choose which method
If you manage dozens of pages and want consistent framing for every third-party widget, put the layout rules (width, spacing, border) in the Style tab and the widget-specific typography or color overrides in Custom Code. The Style tab is faster for non-technical editors; Custom Code scales better for design systems. Inline <style> is a last resort for quick prototypes or embeds that live on a single page and will be removed soon.
A common mistake is targeting the embed's internal elements from the Style tab. The Style tab only styles the block's outer wrapper. To reach inside an iframe or shadow DOM you must use CSS injected via Custom Code or the embed provider's own theming options.
Key facts
Aspect Detail
Block location Dynamic Content section in Blocks panel
Edit entry point Click block → Edit button in right panel
Style tab controls Spacing, Background, Border, Box Shadow, Visibility
Custom Code location Website → Configuration → Custom Code (Head or Body)
Visibility options Hide on Desktop, Hide on Mobile
Save workflow Save block, then Save page
Limitations and gotchas
- Iframe isolation: Styles defined outside an iframe cannot penetrate it. The embed provider must expose theming parameters or allow CSS injection.
- Style leakage: Unscoped CSS in Custom Code or inline
<style> can affect unrelated page elements. Always namespace your classes (e.g., .seatext-embed- prefix).
- Theme updates: Inline styles on the block wrapper persist, but Custom Code CSS is theme-agnostic and survives theme changes.
- Performance: Large
<style> blocks on many pages increase DOM size. Prefer the centralized Custom Code area.
- Editor preview: The Odoo editor may not render third-party scripts fully. Always publish and view the live page to verify.
Verification checklist
- Publish the page.
- Open the live URL in an incognito window.
- Inspect the embed wrapper in DevTools: confirm your custom class is present and your CSS rules apply.
- Test responsive behavior at mobile, tablet, and desktop breakpoints.
- Check that Hide on Desktop/Mobile toggles work as expected.
- Validate no console errors from the embed script.
Terminology quick reference
- Embed Code block: Inner Content building block that accepts raw HTML/CSS/JS.
- Style tab: Per-block visual controls for spacing, background, border, shadow, visibility.
- Custom Code: Site-wide CSS/JS injection point under Website → Configuration.
- Dynamic Content: Blocks panel category containing Embed Code, Form, and other interactive snippets.
- Visibility section: Responsive display toggles in the Style tab.
FAQ
Can I use SCSS or Less in the Custom Code area?
No. Odoo's Custom Code field accepts plain CSS only. Compile your preprocessor output locally and paste the resulting CSS.
Why do my Style tab changes not affect the embed's inner text?
The Style tab targets the block's wrapper element. Inner content lives inside your markup or an iframe, so you must style it with custom CSS that matches your wrapper class.
How do I center an embed horizontally?
In the Style tab set left and right margin to auto, or add .my-wrapper { margin: 0 auto; max-width: 800px; } in Custom Code.
Can I animate the embed entrance?
Yes. Add a CSS animation on your wrapper class in Custom Code. Keep it subtle; heavy animations hurt CLS scores.
What if the embed provider loads its own stylesheet that conflicts with mine?
Increase specificity (e.g., .my-wrapper .provider-class) or use !important sparingly. If the embed loads inside an iframe, you cannot override its internal styles from the parent page.
Does the Embed Code block sanitize scripts?
No. Odoo does not strip <script> tags. Only paste code you trust.
Can I reuse a styled embed across multiple pages?
Save the block as a custom building block (click the block → Save as custom block). The saved block retains Style tab settings and inner markup.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
S1:Locate the "Embed Code" module within the "Dynamic Content" section and drag it into the desired location on your website editor.S1:Step 4: Once the module is placed, click on the "Edit" button located in the right panel to input the code.S1:In the pop-up window that appears, paste the code snippet provided by SEATEXT AI into the designated area, then click "Save" to apply the changes.S1:To ensure the block is hidden from view on desktop devices, select the "Hide on Desktop" option in the "Visibility" section. After making this adjustment, click on "Save" once more to finalize your changes.