HubSpot and marketing agency
Installing on your own domain when the portal also holds your clients
An agency portal is not a website, it is several. Your own site sits beside the client sites you build and host, the footer HTML field is stored against whichever domain is selected at the top of that screen, and the screen does not make much of the distinction. The other half of this pair is that the material which sells agency work is the material you deliberately gate.
Why this pairing is its own job
The HubSpot install guide covers the tag, and the marketing agency guide covers what the assistant has to know. What follows is the part that belongs to neither.
- The footer field is stored per domain, and an agency portal holds more domains than any other kind of customer. A selector most people scroll past decides whether you installed on your own site or on a client's home page with your key on it.
- Your strongest material is behind forms. Case studies, frameworks and the pricing guide are gated because gating them is the point, so a crawl collects the landing page copy rather than the document that would have answered the question.
- Everything you publish about price is deliberately indicative. An agency site is the one place where the wording has been written to avoid committing to a number, and that discipline has to survive being retrieved, summarised and quoted back in a panel.
- The consent banner you configure for a living decides whether your own launcher runs. In an opt in configuration a first time visitor sees nothing until they accept, which on a site whose entire job is a first impression is a decision rather than a detail.
What changes about the install here
<script src="https://cdn.askably.xyz/w.js" data-key="pk_live_YOUR_KEY" defer></script>The tag is the same one on the HubSpot guide. Everything below is about where it goes on a marketing agency site specifically.
Read the domain selector out loud before you paste anything
The templates screen carries a domain selector above the footer HTML field, and the field is stored against whatever is selected. On a portal holding three client sites and your own, that selector is the only thing between an install on your marketing site and an install on somebody else's.
Paste, save, then open a page on that domain and view source to confirm the tag is where you expected. Then open a client domain and confirm the absence, which takes ten seconds and is the only check that actually proves anything.
If a client does want one, it gets its own key, its own material and its own allowlist entry naming their domain. An assistant that read your agency site and answers on a client's site is worse than no assistant at all, because it will describe your services to their customers.
Gated material has to be uploaded rather than crawled
A crawl reads what an anonymous visitor reads, and a gated asset is not that. What lands in the material is the landing page: a headline, three bullets and a form. The assistant will answer from those bullets, which is how you get confident, thin answers about work you described properly somewhere it could not reach.
Decide per asset. Upload the ones you are willing to have quoted in a chat panel, which is a different question from whether you are willing to email them in exchange for a name. Leave the ones whose whole value is the exchange gated and out of the material, and let the assistant offer the form instead of paraphrasing a cover page.
Preview addresses and domains that are not connected yet
Work in progress is served on the portal's own preview address until a domain is attached, and that address is a separate origin. A page you are reviewing before launch shows nothing at all, with the refused address named in the console.
Add it while you are building and take it off when you are finished. It is not an address a client visits, so leaving it on is untidy rather than risky, but an allowlist that lists everything anybody ever used is one nobody reads before adding the next entry.
Where the answerable material lives
| Service pages written as deliverables | Ungated, crawlable, and the reason a prospect is still on the site. If these read as adjectives rather than artefacts, the assistant inherits that and answers every scoping question with atmosphere. |
|---|---|
| Engagement terms and minimums | Project against retainer, minimum term, notice, how scope changes are handled. Usually published, usually thin, and the material that stops an unqualified enquiry becoming a booked call. |
| The indicative starting points | Published as starting points, in wording you would defend. The assistant quotes what it reads, so a number written to be read alongside a caveat has to carry the caveat in the same sentence rather than in the paragraph above it. |
| Case studies | Only the ones with permission on file, in the approved wording. Confidentiality in agency contracts commonly outlasts the engagement and sometimes covers the existence of it, and the assistant repeats what it is given without knowing what was under contract. |
The first thing to get right
Index the service pages and the engagement terms, and leave every case study out of the material until somebody has checked what each client agreed to.
Those two document sets answer the questions a prospect is actually stuck on, which are whether you do their thing and whether the next step is safe to take. Case studies add persuasion and carry all of the contractual risk on this axis, so they belong second, added deliberately, rather than arriving with a crawl nobody scoped.
The failure that belongs to this combination
The wrong domain was selected and the tag went live on a client site
This is the failure that belongs to agencies alone. Everyone else has one domain in the portal and cannot make this mistake. You have several, the field looks identical for each, and the confirmation after saving is the same either way.
What follows is not dramatic and is genuinely awkward. Your key is on a client's pages, so their visitors meet an assistant that read your site, in a panel their brand never approved, on a domain that is not on your allowlist and may therefore render nothing while still sitting in their page source for anyone who looks.
Check by viewing source on both domains after any change to that field, and keep a note of which domains in the portal are supposed to carry a tag. It is a two line note and it is the only record of that decision anywhere.
Before you go live
- The origin the page is served from has to be on the allowlist for that assistant, or nothing renders and the browser console says which origin was refused. An apex domain and its www are two different origins to a browser, so list both, along with any staging or preview host you want it to work on.
- Open the site as a visitor would, on the pages a marketing agency visitor actually lands on, and ask it something only your own material could answer. A widget that renders is not the same as a widget that has read anything.
Questions
- Should we offer this to clients as something we install for them?
- You can install a script tag on a site you manage like any other, but each client needs their own key, their own material and their own allowlist entry, and somebody has to own the refusal wording for their trade. That is a service with ongoing work in it rather than a paste, and pricing it as a paste is how it becomes unprofitable in month three.
- Will it quote our prices?
- It quotes what you published, so the question is what you published. An indicative starting point framed as one is quoted as one. A number sitting in a table with the qualification two paragraphs away is quoted without the qualification, because retrieval works on passages rather than on page layout.
- Our banner holds it back for new visitors. Is that wrong?
- It is a decision rather than a fault. If the footer script sits outside the strictly necessary category, nobody sees a launcher before they accept, which on an agency site is a large share of first visits. Decide which category it belongs in, then test in a private window before accepting, because that is the state most of your traffic is in.
Keep reading
- Installing on HubSpotAdd the tag to the site footer HTML for your domain, check which consent category holds it back, and allowlist the preview address too.
- Everything for a marketing agencyService definitions and engagement terms convert. A price quoted for work nobody has scoped is the trap on an agency site.
- HubSpot pages, an ATS job board, and the answers in betweenThe footer field covers HubSpot domains only, so the job board on your ATS subdomain is out of reach. What the assistant answers instead.
- One agency, many Webflow projects, and the key that ends up in all of themOne key pasted into a client project answers on their domain with your material, and a transferred project takes the footer code with it.
- The work page is the one prospects want and the one you cannot indexAgencies run their own project and a dozen client projects from the same code field. One key across all of them mixes clients' material.
Try it on your own material
Upload a document or point it at your site, paste one line of HTML, then ask it something only your business could answer.