Put your Riku app on your website.
The same chat you share by link can sit on your own site as a chat widget. It’s one line of code. Here’s where that line goes on the platforms people use most.

One line, before </body>.
Every app gets a tag like this one. Paste it once and it loads on every page.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>
Copy your exact code from the dashboard. This is the short form, with a placeholder where your app’s ID goes. In Riku, open Integrations and pick your app: the tag there is filled in and ready to paste, and it lists the sites allowed to show it.
Where the line goes.
Pick your platform for the steps. Menus move from time to time; if a step doesn’t match what you see, look for the setting it names.
Add it to WordPress
A header-and-footer plugin, a Custom HTML block in the footer, or footer.php.
Pick one place that loads on every page. The easiest is a plugin that adds code to your site’s header and footer: in Plugins → Add New, search for “header and footer”.
Paste the code into the plugin’s footer box (it may be called “Scripts in footer” or “Before </body>”) and save.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>No plugin? On a classic theme, go to Appearance → Widgets, add a Custom HTML block to a footer area and paste the code there.
Comfortable with theme files? Paste it just before </body> in footer.php, in a child theme so a theme update doesn’t remove it.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Block themes have no Widgets screen, so use a plugin there. On WordPress.com, adding plugins or scripts can depend on your plan.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Webflow
Site settings → Custom code → Footer code.
Open your site’s settings and go to Custom code.
Paste the code into Footer code (the box that goes before </body>) and save.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Publish the site. Custom code only runs on the published site, not in the Designer.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Webflow may ask for a paid site plan before it saves custom code.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Squarespace
Settings → Advanced → Code injection → Footer.
Go to Settings, then Advanced, then Code injection.
Paste the code into the Footer box and save.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Open your live site (not the editor preview) to check it.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Code injection is only on some Squarespace plans. A Code block on one page works too, but only on that page.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Wix
Settings → Custom code → Body end, on all pages.
In your site’s dashboard, open Settings and find Custom code (usually under Advanced).
Add custom code and paste it in.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Choose All pages, load the code once, and place it in Body – end. Apply.
Publish, then open the live site.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Wix only runs custom code on a published site with a connected domain, which can need a paid plan.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Shopify
theme.liquid, just before </body>.
Go to Online Store → Themes. On your current theme, open the menu and choose Edit code.
Open layout/theme.liquid.
Paste the code on its own line just before </body>, then Save.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
The code lives in that theme. If you switch or update themes, check it’s still there.
Common problems
- Checkout pagesShopify’s checkout doesn’t use theme.liquid, so the widget won’t show there. Every other store page will have it.
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Bubble
Settings → SEO / metatags → the script box for the body, or an HTML element.
Open Settings, then the SEO / metatags tab.
Paste the code into the box for scripts in the body, so it loads on every page.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Or, for one page only: drop an HTML element on the page and paste the code into it.
Deploy to Live, then open the live app.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Framer
Site settings → General → Custom code → End of <body>.
Open Site settings. Custom code is under General.
Paste the code into the box for the end of the <body> tag.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Publish, then open the published site. Custom code doesn’t run in the editor preview.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Carrd
An Embed element, type Code.
Add an Embed element to your site.
Set its type to Code and paste the code in.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>If it asks where to put the code, choose the end of the body (it can be hidden; the launcher draws itself). Publish.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Embeds are on Carrd’s paid plans.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Google Tag Manager
A Custom HTML tag that fires on All Pages.
In your container, add a new tag and choose Custom HTML.
Paste the code.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>For triggering, pick All Pages. Save the tag.
Submit and publish the container. Until you publish, only Preview mode loads it.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Common problems
- Tag didn’t fireUse Preview mode to check the tag fires on the page. If your consent settings hold tags back, it fires after the visitor accepts.
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Next.js / React
next/script in your root layout, or a small component that adds the tag.
Next.js: add next/script to your root layout with strategy="afterInteractive".
// app/layout.tsx: inside <body>, after {children} import Script from 'next/script'; <Script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" strategy="afterInteractive" />Other React apps: paste the plain tag before </body> in index.html, or add it once from a component like this one, rendered in your top-level App.
import { useEffect } from 'react'; export function RikuWidget() { useEffect(() => { if (document.querySelector('script[data-app="YOUR_APP_ID"]')) return; const s = document.createElement('script'); s.src = 'https://riku.ai/widget.js'; s.defer = true; s.dataset.app = 'YOUR_APP_ID'; document.body.appendChild(s); }, []); return null; }Deploy, then open the deployed site.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
The widget draws itself inside a Shadow DOM, so your CSS can’t change it and its styles can’t leak into your app. Route changes don’t reload it; it stays put.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Add it to Plain HTML
Just before </body>, on every page.
Open each page’s HTML (or the shared footer include, if your site has one).
Paste the code on its own line just before </body>.
<script src="https://riku.ai/widget.js" data-app="YOUR_APP_ID" defer></script>Upload the changed files.
Then test it
Open your site in a private window. The launcher appears in the bottom-right corner (or the left, if you moved it). Send it a message: it shows up in the Inbox like any other chat.
Nothing there? Check your site is on the allowed list first. Your browser’s console says why the widget stayed hidden, on a line starting “[Riku widget]”. Testing on a staging site? Add that address too, and clear its cache.
Common problems
- Your site isn’t on the allowed listThe widget only shows on the sites you list. Add the exact address you’re testing, with https:// — www.yoursite.com and yoursite.com count as two sites. Staging and preview addresses need adding too.
- The widget is off, or the app isn’t liveTurn the widget on and publish the app. Until both are true the code loads but shows nothing.
- Content-Security-Policy headersIf your site sends a CSP header, allow
riku.aiin script-src and connect-src. - CachingA cache or CDN can keep serving the page from before you pasted the code. Clear it, or wait for it to expire, then reload.
- The page builder strips script tagsSome text and HTML blocks remove <script> tags when you save. Use the site-wide custom code setting instead.
- A cookie banner holds scripts backConsent tools can block scripts until the visitor accepts. Accept the banner and reload, or mark the widget as a functional script in your consent tool.
Notion
Not possible: Notion pages don’t run your own code.
Notion doesn’t let pages run scripts, so the widget can’t sit on a Notion site.
Share the app’s link instead: make one in the app’s Links tab and paste it into your page as a link or a button.