Install guide
Adding a chat widget to a Carrd site
Carrd has no settings panel for scripts. The tag goes in as a page element, which sounds worse than it is, provided you set that element to the hidden style so it does not reserve a block of your layout for a script that renders nothing where it sits.
The tag
<script src="https://cdn.askably.xyz/w.js" data-key="pk_live_YOUR_KEY" defer></script>Your own key replaces the placeholder. You will find it on the install tab of the assistant.
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.
Where it goes on Carrd
The element list in the editor: add an Embed element, then set its type, style and placement in that element's settings.
Embed elements are a Pro feature. On the free tier there is no supported way to put a script tag on a Carrd page at all, so this starts with an upgrade.
Step by step
- 1Open the site in the Carrd editor and add a new element of type Embed.
- 2Set the embed type to code, so the box takes raw markup rather than a link to something else.
- 3Paste the tag into the code box and replace the placeholder with your own key.
- 4Set the embed style to hidden. Left visible, the element reserves a block in the page flow and pushes everything below it down, for no visual gain.
- 5Set it to load at the end of the body rather than in the head, which keeps it clear of anything Carrd puts in the head itself.
- 6Save and publish, then open the published address. The editor shows an embed as a placeholder, so this is the first point where you can actually see the launcher.
What goes wrong on Carrd
A visible embed rearranges your page
An Embed element occupies space like any other element by default. Since this particular embed renders nothing at its own position, leaving it visible means a gap in the middle of your layout and everything below it pushed down.
The hidden style exists for exactly this case: code that has to be on the page but has nothing to show where it was placed.
One page means one decision
A Carrd site is a single document made of sections, so the assistant is either on the whole site or on none of it. There is no per page control, because there are no other pages to control.
That is usually fine, but it does mean you cannot keep the launcher off one sensitive section the way you could on a multi page site. Plan the content instead of the placement.
The carrd.co address and your domain differ
A Carrd site is published at a carrd.co subdomain unless you attach your own domain, and the two are separate origins to a browser. If you build against the subdomain and launch on a domain, allowlist both or the launch day check comes back empty.
Origins to allowlist
These are the origins a Carrd site is typically served from. List every one you want the assistant to answer on, including the ones only you visit.
- https://your-site.carrd.co
- https://yourdomain.com
- https://www.yourdomain.com
How the tag behaves, wherever you put it
The rest of this is the same on every platform, so it is worth reading once rather than on each guide.
| One tag, nothing else | There is no second file, no stylesheet and no package to install. The tag is the whole install. |
|---|---|
| Where it goes | Immediately before the closing body tag. It works in the head too, because it defers, but the body keeps it out of the way of anything that measures render order. |
| data-key is required | Without it the loader stops and writes a warning to the browser console rather than rendering anything. |
| It finds itself | The loader reads the tag it was loaded from, and falls back to the first tag on the page carrying a data-key. Platforms that move or re-inject the tag do not break it. |
| It installs once | A second copy of the tag on the same page is ignored, so a template that renders twice does not produce two launchers. |
| Assets follow the tag | Everything else it needs is fetched from the same origin the tag was served from, so a proxy or a private domain needs no extra configuration. |
| The panel loads late | Only the small launcher is on the page at first. The conversation panel is fetched the first time a visitor opens it, in its own frame. |
| Styles cannot collide | The launcher renders inside a closed shadow root and the panel inside a frame, so nothing on the host page can restyle either, and neither can restyle the host page. |
Set up on Carrd for a particular trade
The tag is the same everywhere. What is not the same is which of your pages the assistant can read once it is running, and on Carrd that depends on what kind of site this is. These go one level further than this guide.
Taking it off again
Delete the Embed element in the editor and publish again. There is nothing else stored anywhere.
Before you remove it
- Removing the tag stops the widget on that site. It does not delete the assistant, its material, or the enquiries it has already collected.
- If you are moving the widget to a different host rather than retiring it, add the new origin to the allowlist before you remove the old tag, or there is a window where neither works.
Questions
- Can I do this on the free plan?
- No. Embed elements are the only route to a script tag on Carrd, and they are part of the Pro tier. There is no free workaround that is not fragile.
- Will it slow a one page site down?
- Very little. The tag defers, so it never blocks the page from rendering, and only a small launcher loads up front. The conversation panel is fetched the first time a visitor opens it, which on most one page sites is a minority of visits.
- What can it possibly answer from a single page?
- Less than you want, if a crawl of that one page is all you give it. This is the case where uploading documents matters more than crawling: put your pricing sheet, your terms and your longer FAQ in as files, and the assistant has something to work from beyond a landing page's worth of copy.
- Why is there no launcher in the editor?
- Because the editor renders an embed as a placeholder rather than running it. That is expected. Publish and check the live address instead.
Keep reading
- Install on WebflowProject settings, then the Custom code section, then the field for code before the closing body tag.
- Install on SquarespaceSettings, then Advanced, then Code Injection, then the Footer field.
- Install on WixSettings, then Custom Code, then a new snippet applied to all pages and placed at Body end.
- Every install guideThe same one line of HTML, and where it goes on each platform.
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.