Guides
Add your mate to a Squarespace site
Wire the embed through a Code Block/Embed Block (or Code Injection on Business+), let it learn your pages, register a member as your identified visitor, and add page actions with WebMCP.
On this page
Squarespace has no plugin runtime, so AI Assistant reaches a Squarespace site through the universal embed — one script tag placed via a Code Block or Embed Block inside a page. Squarespace's own Code Injection (a site-wide header/footer script, the simplest path on WordPress/Ghost/BigCommerce) is a paid-plan feature on Squarespace — it is greyed out behind an upgrade prompt on the free trial and on the entry Personal plan, so start with the block-based path below if you're not sure which plan you're on.
Before you start
- A Squarespace site with editor access.
- Know your plan: Business plan or higher unlocks Code Injection (Settings → Advanced → Code Injection). Below that, a Code Block or Embed Block on each page is the free-tier path.
- Your site's Site Availability (Settings → Advanced → Developer Tools → Website Protection, or Settings → Website → Site Availability) must be Public for the embed to render for visitors — Password Protected or Private sites keep the whole page (and the embed with it) behind a gate. On a 14-day trial, "Public" is itself paid-plan-gated ("Upgrade to publish") — only Password Protected, Private, or (Enterprise) SSO Protected are selectable until the site is on a paid plan, independent of whether Code Injection is unlocked. Building the demo/knowledge/connector pieces below does not require publishing; a real visitor reaching the widget does.
- Your workspace open in the Console.
1. Add the embed
If your plan has Code Injection (Business or higher):
-
Open Settings → Advanced → Code Injection.
-
Paste the one script tag from your Console connection settings into Header:
html<script src="https://busymate.ai/embed/v1.js" data-assistant="<your-workspace-slug>" data-label="Ask us" async></script> -
Save. The floating widget now appears on every page — nothing else to configure for that part.
On a plan without Code Injection:
- Open the page you want the widget on (or repeat this on every page) in the Squarespace editor.
- Add a Code Block (or an Embed Block, which wraps the same idea) and paste the same script tag.
- Save and publish the page — a block's script only runs on the published site, not in the editor preview.
Either way, the widget needs your site to be Public to render for a real visitor — see "Before you start" above.
2. Register the page's own actions (WebMCP)
Alongside the embed script, a second small script can register the page's own actions — "view the class schedule," "book a session" — through the standard document.modelContext WebMCP surface, so the assistant can act instead of only answering. Drop it in that same block (or Code Injection panel), right after the embed script tag. See Add page actions with WebMCP for the shape.
3. Teach it your content
Point a website source at your own Squarespace site URL — the same crawler every connection uses, reading your published pages and citing back to the page an answer came from.
4. Recognize signed-in customers
Squarespace's native Member Areas feature (on Business/Commerce plans) is the identified-visitor layer: register your own site (or a small backend you control) as an identity provider — see Recognize signed-in customers for the exact fields (issuer, JWKS URL, the launch endpoint) — then define window.BusymateAI.getIdentity before the embed <script> tag (the embed captures it once at load) so a signed-in customer is recognized without asking twice. Without Member Areas, register a small backend of your own as the identity provider for a fixed set of accounts instead.
5. Connect Commerce data (products, orders, inventory)
For a store or class-booking site, AI Assistant can answer from your real Commerce data — not just crawled page text — through a Squarespace Developer API key. Unlike Code Injection and Site Availability, minting this key is not plan-gated: it works on the 14-day trial.
- Open Settings → Advanced → Developer Tools → Developer API Keys.
- Generate Key, name it, and check the read scopes you need — typically Products, Inventory, Orders, Transactions, and Profiles (each shows a "Premium Feature" banner when checked, but generation still succeeds on a trial). Read Only is enough for the assistant to answer from your data; it never needs Read and Write.
- Copy the key immediately — Squarespace shows it exactly once — and store it via Console → Connections or the
create_app_secretMCP tool so it lands encrypted in the Vault, never in a chat log or file. - Two endpoint quirks worth knowing before you wire a connector: the classic
GET /1.0/commerce/productsonly covers Physical/Digital/Gift Card products — a class/appointment Service product (Squarespace Scheduling) returns an empty list there even when real services exist.GET /1.0/commerce/inventoryDOES list Service products (by SKU/descriptor/stock), so it is the practical read path for a services/classes business today.GET /1.0/commerce/ordersandGET /1.0/profilesread real transactions/customers once your site has any — both are correctly empty on a fresh site.
Manage from any MCP client
Every step above is available from any MCP client on your own account:
claude mcp add --transport http busymate-ai https://busymate.ai/mcpTroubleshooting
- The widget never appears — check Site Availability first (Password Protected/Private sites gate the whole page); then check the browser console for a blocked or 404'd request to
/embed/v1.js. - The Code Injection panel is greyed out — that's a plan ceiling, not a bug: fall back to the block-based placement from step 1 on each page instead, or upgrade the plan.
- A signed-in visitor is still treated as a guest —
getIdentitymust be defined before the embed script tag runs; check it withwindow.BusymateAI.getIdentity()in the browser console. - Knowledge answers feel stale — a website source re-crawls on its own schedule; re-index it manually from the Knowledge base page after publishing a change.
Verify
- Open your published, Public site in a private window: the floating widget appears and answers from your own pages, with citations.
- If you wired identity, sign in and ask the assistant something only a signed-in visitor should see — the reply recognizes that visitor.
- Ask it to hand off to a person — the conversation reaches your Inbox.
Next
- Teach your assistant your own content — pages beside whatever else you connect.
- Add page actions with WebMCP — let the assistant act on the page, not just answer.
- Recognize signed-in customers — the proof your
getIdentitybridge hands off, registered as an identity provider. - Set up human handoff — staff the Inbox before visitors start asking to talk to someone.
Questions
Why is Code Injection greyed out on my Squarespace plan?
Squarespace reserves site-wide Code Injection for the Business plan and above. Below that, a Code Block or Embed Block placed inside each page's own content still runs its script once the page is published — no upgrade required.
Does the embed work on a Password Protected or Private Squarespace site?
No — Site Availability gates the whole page, embed included. The widget only renders once real visitors can reach the page, i.e. once Site Availability is Public.
Is there a native Squarespace app, or only the script tag?
Only the universal embed today. A registered Squarespace Extension (OAuth app via Squarespace's developer portal) is on the roadmap for a deeper, native integration.
Can I make my Squarespace trial site Public so real visitors reach the widget?
Not without a paid plan. Site Availability on a 14-day trial only offers Password Protected, Private, or (Enterprise) SSO Protected — "Public" shows an "Upgrade to publish" prompt instead of a selectable option. Everything else in this guide (embed placement, knowledge, WebMCP actions, a Developer API key for Commerce data) works on the trial; only real anonymous reachability needs the upgrade.
Do I need a paid plan to read my Commerce data (products, orders, inventory)?
No — generating a Developer API key (Settings → Advanced → Developer Tools → Developer API Keys) works on the trial even though the generator shows a "Premium Feature" banner for Commerce scopes. That banner did not block key generation when tested. Publishing the site (Site Availability → Public) is the separate, genuinely plan-gated step.