---
title: "Kajabi testimonial widget — one Custom Code block"
description: "Kajabi testimonial widget in one script tag: paste it into a Custom Code block on any plan. The Pro-only code editor is for theme templates, not embeds."
url: https://testymo.com/integrations/kajabi
---

[Integrations](https://testymo.com/integrations) ★ Kajabi

# Testimonials on Kajabi, in one Custom Code block

Kajabi takes the tag in a Custom Code block, on every plan — the Pro-only code editor its pricing page lists is the theme-template editor, which this install never touches. The thing to know instead is that Kajabi has two code fields with opposite rules: the block wants the whole script tag, and the page-settings panel forbids exactly that.

- **Where the tag goes** — A Custom Code block in the page builder — open a Section, click Add block, then Custom Code, and paste the tag into the Code field.
- **Plan needed** — Every plan. No Kajabi doc puts a plan requirement on the Custom Code block — only the theme-template code editor is Pro-only, and a widget embed never needs it.

## 01 Where the tag goes in Kajabi

Kajabi calls it the **Custom Code** block, and its docs describe exactly this job: “Adding custom code in a block can be helpful for embedding content on your page, such as a calendar booking widget.” A testimonial widget is the same shape — one external script that draws itself where the block sits.

1. From the Dashboard, open **Website**, and click the title of the website page or landing page you want the testimonials on.
2. In the page builder, open the **Section** where they belong.
3. Click **Add block**, then **Custom Code**.
4. Paste the script tag into the **Code** field, and click **Save**.

![Kajabi's Add Block picker with the Custom Code block highlighted in the block list](https://testymo.com/integrations/kajabi-add-block.webp)

The Add Block picker with Custom Code highlighted. Screenshot from [Kajabi’s custom-code help](https://help.kajabi.com/articles/website/pages/add-custom-code-to-pages).

Paste the tag whole. Kajabi’s own note on the block: “In a Custom Code Block, you’ll need to use `<style>` (for CSS) and `<script>` (for JavaScript) tags in order for your custom code to work.” The embed line already is a script tag, so there is nothing to adapt.

Two other code fields exist, and both are the wrong tool for a visible widget. The page builder’s **Settings → Custom Code** panel takes bare CSS and JavaScript — Kajabi says not to include tags there — and it is not a place on the page, so a widget filed into it has no spot to render at. The site-wide **Header Page Scripts** field (under Settings → Site details) injects into every page’s `<head>`, which is where analytics belongs and testimonial sections cannot. The block, placed where the proof belongs, is the whole install.

## 02 Which Kajabi plans can run it

**No plan gate on the block.** All four plans — Starter, Basic, Growth and Pro — include the website builder and unlimited landing pages, and Kajabi’s custom-code article puts no plan requirement on the Custom Code block, the page-settings panel, or Header Page Scripts. Its Google Tag Manager walkthrough says the same thing from the other side: tag scripts can be added to a current-template page “without access to the Code Editor”.

The row that scares people off is real but about something else. Kajabi’s pricing chart marks **Custom Code Editor** as Pro-only, and the matching help page says “The code editor is only available with the Pro Plan.” That editor is the one that opens your theme’s Liquid templates. Editing theme source is a Pro feature; pasting an embed into a block is not, on any current plan.

Sources

- [Kajabi — Add custom code to pages](https://help.kajabi.com/articles/website/pages/add-custom-code-to-pages)
- [Kajabi — Access the code editor](https://help.kajabi.com/articles/website/pages/how-to-access-the-code-editor)
- [Kajabi — Code-based customizations](https://help.kajabi.com/articles/website/domains/code-based-customizations)
- [Kajabi — Pricing](https://kajabi.com/pricing)

Plan names and menu labels are the platform’s to change. If what you see differs from what is written here, the linked page is the authority — and [tell us](mailto:support@testymo.com) so this page gets fixed.

## 03 When the widget doesn’t show up

- **You pasted the tag into page Settings’ Custom Code panel and nothing shows.** — That panel has the opposite rule from the block — it takes bare CSS and JavaScript with no tags, and it is not a position on the page. Move the tag into a **Custom Code block** placed where the section belongs.
- **You used Header Page Scripts and no widget appears anywhere.** — That field is included “in the `<head>` tag of every page” — nothing visible renders in a head, and the field skips checkout and upsell pages besides. It is the right place for analytics and the wrong one for a widget that draws itself where its tag sits.
- **Your site runs the legacy Premier template and the block picker looks different.** — Premier pages take custom code through a **Custom Content** section (Add Section → Custom Content, then a Custom Code content block), per Kajabi’s legacy guide — and head-level code on Premier does need the Pro-only code editor. Current Kajabi Pages templates need neither.
- **You want the widget on a checkout or upsell page.** — Kajabi routes those pages around the normal code fields — Header Page Scripts explicitly exclude them. Put the testimonials on the sales and landing pages instead, which is where they do their persuading anyway; checkout tracking has its own separate flow in Kajabi’s docs.

## 04 What the one tag actually does

The line you paste is a plain external script. There is no plugin, no app to install, no account to connect on the Kajabi side, and nothing to configure in the editor afterwards. Testymo generates the tag when you create a widget; the address in it is your widget’s own, and this is the live demo one:

```
<script src="https://testymo.com/w/demo.js" async></script>
```

The server builds that script per request: the rendering code and your approved testimonials arrive together in one response, so the page makes **one request and no follow-up fetches**. The demo tag printed above weighs 16.7 KB of JavaScript, about 6 KB over the wire. That figure covers the demo widget's eight quotes. The testimonials ride inside the script rather than arriving in a second request, so a wall carrying thirty of them weighs thirty quotes' worth of text — measure the embed you paste in, not this one. The [page-speed guide](https://testymo.com/blog/testimonial-widget-page-speed) has the method behind that number, and the case for measuring whatever you embed rather than trusting the category.

It renders into an open shadow root at the exact spot the tag sits, which makes the styling isolation work in both directions: your Kajabi theme cannot restyle the widget by accident, and the widget’s CSS cannot leak into your page. It sets no cookies, calls no third party, and reads nothing about your visitors. When you approve a new testimonial, it appears on the next page load — you never touch the site again.

## 05 The widget, running on this page

Everything below this line was drawn by that one script tag — the same file, on the same terms, that you would paste into Kajabi. Eight approved testimonials in the wall design, rendered as a free plan renders them, footer link and all.

## 06 Where to go next

An embed script is one of three ways to put testimonials on a site, and it is not always the right one — a handful of quotes that will not change for a year are better hand-coded. [The full guide to adding testimonials to a website](https://testymo.com/blog/add-testimonials-to-website) prices all three routes: setup, upkeep, and page weight. Once you know the quotes are arriving, [the layout patterns guide](https://testymo.com/blog/how-to-display-testimonials) covers which shape to show them in, and [getting permission first](https://testymo.com/blog/permission-to-use-testimonials) covers the part most sites skip.

The same tag, in another editor

- [WordPress Custom HTML block](https://testymo.com/integrations/wordpress)
- [Webflow Code Embed element](https://testymo.com/integrations/webflow)
- [Wix Embed HTML element](https://testymo.com/integrations/wix)
- [Squarespace Code block](https://testymo.com/integrations/squarespace)
- [Shopify Custom Liquid section](https://testymo.com/integrations/shopify)
- [Framer Embed component](https://testymo.com/integrations/framer)
- [Ghost HTML card](https://testymo.com/integrations/ghost)
- [Carrd Embed element](https://testymo.com/integrations/carrd)
- [Notion Via Super, or an embed block](https://testymo.com/integrations/notion)
- [Bubble HTML element](https://testymo.com/integrations/bubble)
- [Teachable Custom HTML block](https://testymo.com/integrations/teachable)
- [Podia Site-wide code field, or its native section](https://testymo.com/integrations/podia)
- [Skool None — images and links only](https://testymo.com/integrations/skool)

The part before the tag

Pasting the script is the last step, and the easy one. Testymo is the rest: a testimonial form people actually finish, your approval on every word before it goes public, and the permission recorded alongside it. Free to start — no card, no view meters.

[Collect your first testimonial →](https://testymo.com/app?utm_source=integrations&utm_campaign=kajabi)
