USE CASE

Adding a chatbot to Framer without a plugin

Deacon is an AI customer support agent added through Framer’s Custom Code settings. A Framer site changes pages in place, and that decides two of the settings.

Published

Framer’s own help lists chat and support widgets among the things its Custom Code settings are for. Deacon replies to your visitors from the pages of your own site and puts a link to its source under each reply. It goes in as a snippet, since there is no Deacon plugin for Framer.

The settings, in order

Framer’s custom code guide, last updated in August 2026, covers the Framer half of this.

  1. On Deacon’s Install page, add the address your Framer site is published on, and copy the snippet.
  2. In Framer, open Project Settings and choose the Custom Code tab.
  3. Click Add Script, or the + icon if the site already has one, and name it Deacon.
  4. Place it at the end of the body.
  5. Leave it on every page.
  6. Set it to run Once.
  7. Publish, and check on the live site. Framer’s custom code lesson says the canvas preview never loads custom code.

The install guide takes over from there, with what Deacon should learn from. Deacon’s free plan gives you 50 answers a month and never asks for a card.

The Conversations list in the dashboard, each question marked answered, handed over or unanswered, one of them asked in Spanish.

Counting a site that changes pages in place

We checked framer.com, which is built in Framer. Going from its home page to its pricing page changed the address without reloading the page, and anything a script had added to the page was still there afterwards.

A script that only acts when it first loads would count one page per visit on a site like that, which is what Framer’s Run on every page visit setting is for. Deacon’s loader follows page changes itself and counts each one as a page view on Analytics › Website, so Once covers the whole visit. If it were run again on a later page, the loader would detect the copy already running and do nothing.

Goals are the one part that needs a little code on Framer. A Framer button has no field for a custom attribute, so a goal such as a demo booking is sent from a code override that calls Deacon when the button is clicked. The goals document has the call.

Picking pages does not keep it off them

Framer lets you choose which pages a script goes on. A visitor who arrives on a page you left out does not load Deacon there. A visitor who arrives on any other page loads it, and it stays with them as they move on to the pages you left out, because Framer changes pages without reloading.

Deacon’s own setting is the list of domains on its Install page, and it covers every page of each domain on the list.

Try it on your own documentation

Add your help pages, ask it the question you know your docs cannot answer, and watch it say so.

The free plan covers 50 answers a month on one seat, and the paid plans are on the pricing page.

Start free

Free plan, no card.

READ NEXT