How to Add an AI Chatbot to a Notion Site
Yes, you can add a chatbot to a Notion site — even though Notion doesn't want you to. Here's how to make your published Notion pages interactive with an AI assistant.
Notion is great for many things. Custom code isn't one of them.
Notion Sites let you publish pages to the web with a custom domain. Clean. Minimal. Very Notion. Visitors can read your beautifully organized page — and that's pretty much it.
No custom JavaScript. No script injection. No widget embeds. Notion's philosophy is "we handle the rendering, you handle the content." Which is elegant until a visitor wants to ask a question about that content and the only option is... scrolling more?
The good news: there's a workaround. The better news: it takes about 6 minutes.
The honest truth about Notion + chatbots
Notion Sites doesn't support custom script injection natively. There's no "custom code" field in site settings. So you can't just paste a <script> tag and call it a day.
But you can embed external pages using Notion's /embed block. And you can use a Super.so, Potion.so, or Notion-to-website service that wraps your Notion content and does support custom code injection.
Here are your options:
Option A: Using Super.so or Potion.so (recommended)
If you're already using a Notion-to-website tool like Super.so, Potion.so, or Hostnotion, you're in luck — all of them support custom code injection.
Super.so
- In your Super.so dashboard, go to Site Settings → Code
- In the Custom Footer code section, paste:
<script
src="https://factfu.com/v0/widget.loader.js"
data-widget-key="pk_your_key_here"
defer>
</script>
- Save and publish
Potion.so
- Go to Site Settings → Custom Code
- Paste the same script in the Footer section
- Deploy
That's it. The chatbot appears on your Notion-powered site, floating in the corner, ready to answer questions about your lovingly structured content.
Option B: Native Notion Sites (workaround)
If you're using Notion's built-in Sites feature without a wrapper tool, you can link visitors to the chatbot rather than embedding it directly:
- Create your Factfu chatbot (factfu.com/signup)
- Add your content (crawl your Notion site URL, paste FAQs, upload docs)
- In the Factfu dashboard, go to Settings → Widget
- Copy the direct chat link (looks like
https://factfu.com/chat/pk_your_key_here) - In your Notion page, add a callout block or button that links to this URL
💬 Have a question? Ask our AI assistant →
It opens the chat in a new tab. Not as seamless as an embedded widget, but it works — and it's better than a contact form that nobody checks on weekends.
Option C: Embedded iframe (creative workaround)
If you want something more integrated on native Notion Sites:
- Create a simple HTML page that loads the Factfu widget:
<!DOCTYPE html>
<html>
<body style="margin:0; background:transparent;">
<script
src="https://factfu.com/v0/widget.loader.js"
data-widget-key="pk_your_key_here">
</script>
</body>
</html>
- Host that HTML file somewhere (GitHub Pages, Netlify, Vercel — all free)
- In Notion, type
/embedand paste the URL to your hosted HTML page
The widget will render inside the embed block. It's not as polished as a native floating widget, but it gets the job done.
Setting up the chatbot (all options)
Regardless of which embedding method you choose, the bot setup is the same:
- Go to factfu.com/signup — free, 200 messages/month
- Create Bot and name it
- Add content:
- Enter your Notion site's published URL → the bot crawls your pages
- Paste any additional FAQ text
- Upload reference documents
- Go to Settings → Widget to get your widget key and embed code
Notion-specific content tips
- Notion pages with toggles/dropdowns are fully crawlable — the bot reads the content inside them
- Database views (tables, galleries, boards) might not render for the crawler. If you have important info in databases, paste it as text content instead.
- Subpages linked from your main page will be crawled if they're also published
Customization
In the Factfu dashboard under Bots → Customize:
- Match the accent color to your Notion site's theme
- Set a welcome message that fits your style
- Add quick reply buttons for common questions
- Upload a logo as the bot avatar
Troubleshooting
Widget isn't loading on Super.so/Potion.so:
- Make sure the code is in the Footer section, not Header
- Check that the site is published/deployed after adding the code
- Try visiting in incognito mode
Embed block shows blank on native Notion:
- The hosted HTML page needs to be served over HTTPS
- Notion might block certain embed sources — test with a known host like Vercel or Netlify
Bot doesn't know my Notion content:
- Make sure the pages you want indexed are published (not private)
- Check the source status in Factfu — it should show "Ready"
- If pages are behind a Notion login, the crawler can't access them
Pricing
| Free | Starter ($19/mo) | Pro ($49/mo) | |
|---|---|---|---|
| Bots | 1 | 3 | Unlimited |
| Messages/month | 200 | 2,000 | 5,000 |
| Content sources | 5 | 25 | Unlimited |
| Custom branding | ✓ | ✓ | ✓ |
| Live chat handoff | — | ✓ | ✓ |
| Zapier integration | — | ✓ | ✓ |
| Slack integration | — | — | ✓ |
| Remove "Powered by" | — | — | ✓ |
Should you even use Notion as a website?
Look, we're not here to judge your CMS choices. Notion is great for internal docs and simple public pages. If it works for you, it works. But if you're finding yourself fighting against limitations like "I can't add a script tag" — it might be time to consider a tool that's actually designed to be a website.
In the meantime, the workarounds above will get you a working chatbot on your Notion-powered site. Your visitors get answers, you get fewer repetitive emails, and Notion continues being Notion.
Create your free Factfu account and let your Notion content do more than just sit there looking organized.
Ready to add AI chat to your site?
Set up Factfu in under 5 minutes. No credit card required.
Start for free →