πŸ“–

Documentation

Everything you need to get started with Beautimonial

πŸ”
Browse Documentation

1. Getting Started

1.1 What is Beautimonial?

Beautimonial is a smart testimonial widget for brands. Install it on your website and your customers can submit reviews and beautify them with one click.

The result: professional, polished testimonials that actually convert visitors into customers.

How It Works in 3 Steps

1

Install Widget

Add one line of code to your website. Takes less than 60 seconds.
2

Customer Leaves Review

A floating button appears on your site. Customers click, type their feedback, and hit "Beautify." If their answer is thin, we ask one or two quick follow-up questions so the details come from them.
3

Testimonial Goes Live

Their words come back polished β€” same facts, better flow. Your customer approves the final version, you approve it from your dashboard, and it appears on your website.

1.2 Quick Start Guide

When you sign up, Beautimonial drops you into a short guided setup β€” three steps from account to live widget. You can skip any step and finish it later from your dashboard.

1

Tell us about your business

On the free plan (no card, no time limit), enter your business name and your website domain. This creates your first space and locks the widget to your domain for security.
2

Get & install your widget code

The wizard shows your unique one-line snippet with copy-paste tabs for Shopify, WordPress, and custom HTML β€” paste it where the tab tells you (just before the closing </head> tag) and save.
<script src="https://beautimonial.com/widget.js?token=YOUR_TOKEN"></script>
3

Verify your installation

Click Verify and Beautimonial checks that your widget is live on your site. When it loads, you get a confetti celebration and land in your dashboard, ready to collect.
βœ…That's it! You're ready to collect beautiful testimonials. πŸŽ‰
πŸ’‘No website, or don't want to touch code? Skip the install step and share your hosted collect page instead β€” see Hosted Collect Page.

2. Installation Guides

2.1 Plain HTML & Static Sites (Universal)

When to use this: you write the HTML yourself β€” static sites, hand-built pages, or any platform with a custom HTML/JavaScript field.

<script src="https://beautimonial.com/widget.js?token=YOUR_TOKEN"></script>

Where to paste: once per page, just before the closing </body> tag. Replace YOUR_TOKEN with the token from Dashboard β†’ Widget Settings β†’ Embed.

πŸ’‘Add the tag once, on a shared layout or template. Two copies of the tag on the same page means two floating buttons.

2.2 React (Create React App, Vite)

When to use this: a client-rendered React app with no framework script helper β€” Create React App, Vite, or a similar single-page setup. Using Next.js? Skip to 2.3.

Inject the tag from a component that stays mounted for the whole session β€” your top-level App, not an individual page. The guard is the important part: React 18 StrictMode runs effects twice in development, and re-renders must never append a second copy of the script.

// App.jsx
import { useEffect } from "react";

const WIDGET_SRC = "https://beautimonial.com/widget.js?token=YOUR_TOKEN";

export default function App() {
  useEffect(() => {
    // Already in the DOM? Do nothing β€” prevents a duplicate widget on
    // re-render and on StrictMode's double-invoked effects.
    if (document.querySelector(`script[src="${WIDGET_SRC}"]`)) return;

    const script = document.createElement("script");
    script.src = WIDGET_SRC;
    script.async = true;
    document.body.appendChild(script);
  }, []);

  return <YourRoutes />;
}

Don't remove the script in an effect cleanup β€” the widget should live as long as the page does.

2.3 Next.js

When to use this: any Next.js app, App Router or Pages Router. Next.js ships its own script loader, so use that instead of the useEffect pattern above.

Add it once in your root layout so it covers every route:

// app/layout.tsx  (App Router)
import Script from "next/script";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script
          src="https://beautimonial.com/widget.js?token=YOUR_TOKEN"
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

On the Pages Router, put the same <Script> inside your pages/_app.tsx component.

Why not useEffect here: Next.js renders on the server first, then hydrates in the browser. The built-in <Script> component is built for that lifecycle β€” it loads the tag once, keeps it loaded across client-side navigations, and doesn't interfere with hydration. Hand-rolled useEffect injection in a Next.js app has to solve all of that itself, and the edge cases (double injection, route changes, hydration timing) are exactly what the built-in component already handles.

πŸ’‘strategy="afterInteractive" loads the widget after the page becomes interactive. That's the right choice here β€” the widget isn't needed for your first paint, so it never competes with your own content for load time.

2.4 Inline Beautify Widget β€” Plain HTML & Static Sites

When to use this: your site already has its own comment or review box, and you want the Beautify button to appear right inside it instead of a floating button that opens a popup. This is a second, separate script from 2.1 β€” different file, same token. You can run both.

⚠️One extra step before this tag does anything. Set your comment box CSS selector first: Dashboard β†’ Widget Settings β†’ Collection β†’ β€œComment box CSS selector”. Point it at your form's text field, for example #review-text or .review-form textarea. Until it's set, Widget Settings shows a reminder in place of the embed code β€” the script has nothing to attach to without it.
<script src="https://beautimonial.com/inline-widget.js?token=YOUR_TOKEN"></script>

Where to paste: just before the closing </body> tag. Put it on every page of your site, including your homepage β€” not just the pages with a comment box. It costs nothing on pages without one (the script finds no field and does nothing), and 2.7 needs it on your homepage to start a reply session. To find your selector: right-click the field on your site β†’ Inspect β†’ right-click the highlighted HTML β†’ Copy β†’ Copy selector.

The selector lives in your dashboard, not in the tag β€” so if you later restyle your form and its markup changes, the button quietly stops appearing. Update the selector in Widget Settings to match and it comes back. No code change, no redeploy.

2.5 Inline Beautify Widget β€” React

When to use this: a client-rendered React app β€” Create React App, Vite, or similar. Using Next.js? Skip to 2.6. Set your comment box CSS selector first, exactly as in 2.4 β€” that part is the same everywhere.

Inject it the same way as 2.2 β€” from a component that stays mounted, with a guard against StrictMode's double-invoked effects. Your comment box doesn't have to exist yet: the widget watches the page and attaches its button whenever your field turns up, so a form behind a route change, a tab, a modal, or a β€œload comments” click is picked up automatically.

// App.jsx
import { useEffect } from "react";

const INLINE_SRC = "https://beautimonial.com/inline-widget.js?token=YOUR_TOKEN";

export default function App() {
  useEffect(() => {
    // Already in the DOM? Do nothing β€” prevents a duplicate script on
    // re-render and on StrictMode's double-invoked effects.
    if (document.querySelector(`script[src="${INLINE_SRC}"]`)) return;

    const script = document.createElement("script");
    script.src = INLINE_SRC;
    script.async = true;
    document.body.appendChild(script);
  }, []);

  return <YourRoutes />;
}

One React-specific note worth knowing: the widget inserts its button as a plain DOM sibling immediately after your field. If React re-renders and replaces the field itself, the button is rebuilt alongside it automatically. The one case that doesn't self-heal is React removing the button while leaving your field in place β€” which takes a render that reaches between the two. Keeping the markup around your field stable (stable keys, no conditional re-mounting of the form wrapper) avoids it.

2.6 Inline Beautify Widget β€” Next.js

When to use this: any Next.js app, App Router or Pages Router, where your comment box is part of the server-rendered page. Set your comment box CSS selector first, as in 2.4.

Use next/script exactly as in 2.3. Put it in your root layout, so it loads on every route including your homepage. The widget watches for your field rather than requiring it up front, so it doesn't matter whether the form is server-rendered, hydrated in, or fetched later on the client.

⚠️The root layout matters if you want website replies. Installing this only on your comment page still gets you a working Beautify button, but breaks 2.7. Your reply session link opens your site at its root address, so the script has to be running there to start the session. If it isn't, no ✨ Reply buttons appear anywhere and nothing reports an error.
// app/layout.tsx  (App Router)
import Script from "next/script";

export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script
          src="https://beautimonial.com/inline-widget.js?token=YOUR_TOKEN"
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

On the Pages Router, put the same <Script> in pages/_app.tsx, which is the equivalent whole-app slot.

πŸ’‘Client-side navigation is covered too. The button attaches to your comment box whenever it appears, so moving between routes without a full page load still gets you a working Beautify button β€” no re-injection, no remount tricks.

2.7 Replying From Your Own Site

Nothing to install. Once inline-widget.js is on your site (2.4–2.6), website replies are already available β€” the feature sits dormant in the same script until you start a session. There is no second tag, no route to add, and nothing your site's code has to do.

⚠️One requirement: the script must run on your homepage. The session link below opens your site at its root address β€” https://yourdomain.com β€” because that is the domain you registered, and your comments live on your own site rather than in your dashboard, so we can't know which page to open. If inline-widget.js is scoped to your comment page only, there is nothing at the root to start the session with, and no ✨ Reply button will appear on any page β€” silently. Installing site-wide (2.4–2.6) avoids this.
1

Start a session from your dashboard

Dashboard β†’ Testimonials β†’ "Reply on Website β†’". Your homepage opens in a new tab through a single-use link that expires in 15 minutes. Once it has loaded, the session lives on that device β€” browse to whichever page holds the comments you want to answer.
2

Reply where the comment lives

A ✨ Reply button appears beside each comment on the page. It drafts a warm, on-brand response into your own reply box β€” you edit and post it yourself. Nothing is ever posted for you.
3

The session expires on its own

The reply session lasts 60 minutes on that device, then ends. Start another from the dashboard whenever you need one.

One thing worth checking: which elements on your page count as β€œa comment”. Out of the box we look for common comment markup β€” .comment-item, .comment, li.comment. Plenty of sites, React apps especially, use their own class names. If yours do, no Reply buttons appear and nothing reports an error. Point it at your markup with attributes on the same script tag:

<script src="https://beautimonial.com/inline-widget.js?token=YOUR_TOKEN"
  data-comment-selector=".CommentCard"
  data-author-selector=".CommentCard__author"
  data-text-selector=".CommentCard__body"
  data-reply-selector="textarea"></script>
  • data-comment-selector β€” the container for a single comment. Each match gets its own Reply button. Default: .comment-item, .comment, li.comment
  • data-author-selector β€” who wrote the comment, so the draft can greet them by name. Default: .comment-author, .author, .fn, .comment-author-name
  • data-text-selector β€” the comment text the draft responds to. Default: .comment-body, .comment-text, .comment-content, p
  • data-reply-selector β€” the box on your site the draft is written into. Default: textarea

All four are optional β€” leave one out and its default applies. They affect website replies only; the Beautify button takes its selector from Widget Settings, as described in 2.4.

πŸ’‘Comment lists that load lazily are handled β€” the Reply buttons keep up as your page adds comments. Replies draw on your plan's reply allowance, and your widget domain must be registered before a session can start.

πŸ›οΈShopify

1

Login to your Shopify admin

2

Online Store β†’ Themes β†’ Edit Code

3

Find theme.liquid file (or layout/theme.liquid)

4

Paste your Beautimonial code just before </body> tag

5

Click Save

6

Visit your store to test βœ…

πŸ’‘Changes apply to all pages in your Shopify store.

πŸ“WordPress

πŸ’‘We're building an official Beautimonial plugin (pending WordPress.org review). See the WordPress page β€” or use one of the manual methods below in the meantime.

Option A (Recommended): Plugin

  1. Install the plugin "Insert Headers and Footers"
  2. Go to Settings β†’ Insert Headers & Footers
  3. Paste code in the "Footer" section
  4. Save

Option B: Theme Editor

Appearance β†’ Theme Editor β†’ find footer.php or header.php β†’ paste before </body> β†’ Update File

Option C: Elementor users

Site Settings β†’ Custom Code β†’ Body End β†’ paste your code

🌐Webflow

1

Go to Project Settings

2

Click "Custom Code" tab

3

Paste code in "Footer Code" section

4

Click Save & Publish

5

Re-publish your site βœ…

⬜Squarespace

1

Go to Settings

2

Click "Advanced"

3

Click "Code Injection"

4

Paste code in "Footer" section

5

Click Save βœ…

πŸ”·Wix

1

Go to Settings in Wix dashboard

2

Click "Custom Code" (under "Advanced" section)

3

Click "+ Add Custom Code"

4

Paste your Beautimonial code

5

Set "Place Code in" β†’ Body - End

6

Apply to: All Pages

7

Click Apply βœ…

3. Collecting Testimonials

3.1 Hosted Collect Page (no code)

Every space comes with a hosted collect page β€” a shareable link that works without installing anything. Find it in Dashboard β†’ Widget Settings and share it anywhere: email signatures, DMs, QR codes, invoices, thank-you pages.

https://beautimonial.com/t/your-space-slug
πŸ’‘The collect page runs the same guided flow as the widget β€” Q&A, polish, and customer approval included.

3.2 Inline Widget (your own form)

Already have a review or comment box on your site? The inline widget adds a Beautify button inside your existing form instead of a floating button.

<script src="https://beautimonial.com/inline-widget.js?token=YOUR_TOKEN"></script>
1

Install the inline script

Paste the code above just before the closing </body> tag β€” same as the floating widget, different file.
2

Point it at your comment box

In Dashboard β†’ Widget Settings, set the "Comment box CSS selector" to your form's text field (for example #review-text). Right-click your field β†’ Inspect β†’ Copy β†’ Copy selector.
3

Done

A Beautify button appears next to your field. Customers polish their words without leaving your page, and the result lands in your Beautimonial dashboard.

3.3 Guided Q&A Flow

Instead of one blank box, Beautimonial walks customers through your questions one at a time β€” and turns the answers into a single polished story.

Set your questions per space in Dashboard β†’ Widget Settings. Good questions follow the story arc: what problem did you have, what was it like using the product, what changed for you?

3.4 Honest Beautification

When your customer clicks Beautify, their words are polished for grammar, structure, and flow β€” and nothing else. Beautification never invents claims, numbers, or outcomes your customer didn't state. Here's the promise, step by step:

  • Constrained polish: the rewrite may only rearrange and clean up what the customer wrote β€” same facts, same numbers, same sentiment.
  • Verification pass: every polished version is checked against the original. Any number or claim that isn't in the customer's own words fails the check.
  • Safe fallback: if the check fails, we serve the customer's original words with a mechanical tidy-up (spacing, obvious typos) instead. Beautify never errors out on your customer.
  • Customer approval: the customer can edit the polished version and must approve it before it is submitted. Their original text is preserved unchanged, permanently.
βœ…Every testimonial keeps its original alongside the polished version β€” an audit trail you can stand behind.

3.5 Adaptive Follow-up Questions

Short reviews like "great product" are nice but don't convert. When a customer's answer is thin, the widget asks one or two quick follow-up questions β€” "what did it help you do?", "what changed for you?" β€” so the specifics come from the customer, not from us.

  • At most two follow-ups, and always skippable β€” no forced friction.
  • Answers are woven into the final testimonial, then polished as usual with the same honesty checks.
  • Nothing to configure β€” it works automatically in the widget and collect page.

3.6 Smart NPS Routing

With NPS enabled, customers first pick a 0–10 score. Customers who score you 7 or higher continue to the public testimonial flow; customers who score 0–6 are routed to a private feedback form instead.

  • Private feedback is emailed to you and never appears publicly.
  • All scores feed the NPS analytics on your dashboard.
  • Turn it on per space: Dashboard β†’ Widget Settings β†’ Smart NPS routing.
πŸ’‘Praise goes public. Problems come to you first.

3.7 Importing Testimonials

Bring the testimonials you already have β€” from Google reviews, social posts, emails, or another testimonial tool. Dashboard β†’ Import offers three modes:

  • Add one: paste a single testimonial with name, rating, and its original date.
  • Upload CSV: a file with a header row. Required columns: name and testimonial (or text/review). Optional: title, email, rating, date. You preview every row before anything is imported.
  • Import from link: paste a public post link from X, Reddit, TikTok, YouTube, or Instagram. The post's public text is pulled through the platform's official embed and shown to you for review and editing before you confirm. Instagram Reels is the one exception: Instagram doesn't allow text to be pulled automatically, so you paste the caption or quote yourself β€” the link back to the post is saved either way.

Add one and CSV imports are treated as owner-curated quotes: they go straight to Approved, exactly as written, with original dates preserved. Link imports land in Pending instead β€” automatic extraction can be imperfect, so they take one review click before going live.

Testimonials imported from a link also show a small β€œOriginally posted on [platform]” link on your Gratitude Canvas that points back to the original public post β€” a quiet proof-it's-real signal for visitors who want to verify.

3.8 Video Testimonials (Pro & Business)

On Pro and Business, your widget can collect real customer videos alongside written testimonials. Turn on Video testimonials in Dashboard β†’ Widget Settings, and the review form shows a β€œπŸŽ₯ Record a video instead” option.

How customers record. Clicking it asks for camera permission and opens a live preview β€” recording works in modern browsers, with no app and no account. Videos run up to 90 seconds, and your customer can re-record as many times as they like before submitting. An optional one-line caption is published exactly as written. If the camera is unavailable or permission is declined, the form simply continues in words β€” nobody hits a dead end.

What Beautify does here. The video ships as recorded. While the camera is on, the optional ✨ Beautify panel gives your customer capture-time adjustments they control live β€” lighting and tone always available (brightness, contrast, warmth), and skin enhancement capped at 30% β€” comparable to a video call's camera settings, not an after-the-fact edit. What they see in the preview is exactly what you receive; nothing is ever altered after recording.

Reviewing and approving. Every video lands in your queue as Pending β€” always, even if auto-approve is on for written testimonials. You watch it first; approve it and it plays on your Gratitude Canvas as a click-to-play card. Pro keeps 2 videos live at a time and Business 5, counted across your account β€” and the slots renew forever: unpublish an older video and the slot frees immediately for a new one. It's a cap on simultaneous live videos, never a lifetime total.

Downloading. Any video still in storage can be downloaded as an MP4 from the moderation queue β€” worth doing before you remove one you might want to keep.

Unpublishing, rejecting, deleting. Removing a video from display permanently deletes the file from storage β€” it cannot be re-published (your customer would need to record again), and any download link stops working too. The confirm dialog says exactly this and offers a β€œDownload a copy first” button.

Housekeeping. Videos left Pending for 30 days are removed automatically β€” we email you a reminder at day 25. And once 10 videos are waiting for review, the widget pauses offering video capture to new visitors until you catch up; anyone mid-recording always completes normally.

4. Displaying Testimonials

4.1 Gratitude Canvas

Your Gratitude Canvas is a hosted page showing every approved testimonial for a space, ready to share at a link:

https://beautimonial.com/wall/your-space-slug

It supports a light or dark theme and your accent color via URL parameters, e.g. ?theme=light&accent=%236366f1.

The cards themselves follow your Brand Kit: the background color or gradient you set in Dashboard β†’ Brand Kit carries over to the Canvas automatically. And with no accent parameter, the page uses your Brand Kit brand color β€” so a bare share link is already on-brand.

4.2 Embedding the Canvas

Drop the Canvas into your own site with an iframe that resizes itself to fit its content. Copy the ready-made snippet from Dashboard β†’ Widget Settings β†’ Display:

<iframe id="beautimonial-wall-light"
  src="https://beautimonial.com/wall/your-space-slug?theme=light&accent=%236366f1"
  style="width:100%; height:600px; border:none; display:block;" loading="lazy"></iframe>
<script>
  window.addEventListener("message", function (e) {
    if (e.data && e.data.type === "beautimonial-wall-resize") {
      document.getElementById("beautimonial-wall-light").style.height = e.data.height + "px";
    }
  });
</script>

The two halves do different jobs. The iframe shows your Canvas; the small script makes it grow. Your Canvas measures itself and posts its height out to the page, and the listener resizes the frame to match. Leave the script out and the frame stays at its starting height β€” taller walls get clipped, shorter ones sit in empty space.

On Pro and above, add &mode=carousel to the src for a compact auto-rotating carousel strip instead of the full grid β€” ideal for a homepage or footer. The ready-made snippet (400px starting height, its own frame id) is in Dashboard β†’ Widget Settings β†’ Display.

React and Next.js: one thing to change. The iframe itself is a plain HTML element and behaves identically in every framework β€” no useEffect needed, no <Script> component, nothing special for server rendering or hydration. The resize listener is the exception, and it's worth knowing why.

⚠️React does not run <script> tags written in JSX. Paste the snippet above straight into a component and it renders without complaint, but the listener never runs β€” you get a frame frozen at 600px with content cut off and no error anywhere to explain it. Move the listener into an effect instead.

This version works in both React and Next.js. Three small conversions: the listener moves into useEffect, the id and getElementById become a ref, and the style string becomes an object.

"use client"; // Next.js only β€” omit this line in CRA or Vite

import { useEffect, useRef } from "react";

export default function TestimonialWall() {
  const frame = useRef(null);

  useEffect(() => {
    function onMessage(e) {
      if (e.data && e.data.type === "beautimonial-wall-resize" && frame.current) {
        frame.current.style.height = `${e.data.height}px`;
      }
    }
    window.addEventListener("message", onMessage);
    return () => window.removeEventListener("message", onMessage);
  }, []);

  return (
    <iframe
      ref={frame}
      src="https://beautimonial.com/wall/your-space-slug?theme=light"
      title="Customer testimonials"
      loading="lazy"
      style={{ width: "100%", height: 600, border: "none", display: "block" }}
    />
  );
}
πŸ’‘In Next.js you don't need next/script here. That component exists to load third-party scripts from a URL; this listener is a few lines of your own code, so a "use client" component with an effect is all it takes β€” and it's the same code in both frameworks.

4.3 Pulse Widget (conversion toasts)

Pulse shows small rotating toast pop-ups of real, recent testimonials to visitors as they browse your site β€” social proof at the moment it matters. It rides on the same widget script you already installed, so there's no second embed to add.

  • Turn it on and set the position, interval, and minimum rating in Dashboard β†’ Widget Settings β†’ Pulse.
  • Only approved testimonials appear, and timestamps are shown honestly (no fake "just now").
  • It sits below your collection button and respects your domain lock.
πŸ’‘Pulse is available on Pro and above.

4.4 SEO Schema & AEO / llms.txt

On Pro and above, your widget automatically adds review structured data (JSON-LD) to the pages it runs on, so search engines can read your testimonials β€” no copy-paste needed. Turn it on in Dashboard β†’ Widget Settings β†’ SEO Schema & AEO.

  • AEO / llms.txt: Beautimonial also publishes an opt-in llms.txt feed of your approved testimonials at a public URL β€” an additional signal some AI answer engines check when they summarize what people say about you. It's an extra signal, not a guarantee of visibility.
  • Business generator: prefer to paste schema in yourself? The Business plan adds a copy-paste generator at Dashboard β†’ SEO.
⚠️Star rich-results are never guaranteed by Google regardless of schema type β€” stars show only where a placement qualifies (e.g. Product markup on product pages). We implement the markup correctly for those placements and never oversell it.

4.5 Hiding the "Powered by" Badge

On any paid plan you can hide the "Powered by Beautimonial" badge on your widget and Canvas: Dashboard β†’ Widget Settings β†’ branding toggle. Free spaces always show the badge.

5. Dashboard Guide

5.1 Dashboard Overview

Your dashboard has these sections:

  • Home: usage stats (beautifications used), recent testimonials, quick actions, and your widget embed code
  • Testimonials: all testimonials in one place, filter by All / Pending / Approved / Waiting / Rejected β€” approve, reject, unpublish, or delete, and toggle between each testimonial's original and polished version
  • Import: bring in testimonials you already have β€” paste one at a time or upload a CSV
  • Widget Settings: register your domain, customize the widget, set your questions, toggle NPS and branding, and copy your embed codes
  • Analytics: views and conversion, testimonials over time, rating breakdown, beautification usage, and your NPS score, distribution, and trend
  • SEO: copy-paste review schema markup for your site (Business plan)
  • Billing: current plan, usage limits, upgrade options, cancel subscription

5.2 Managing Testimonials

Approving a testimonial

  1. Go to Dashboard β†’ Testimonials
  2. Find testimonials marked "Pending"
  3. Read the testimonial
  4. Click "Approve" βœ… β€” it immediately appears on your website

Rejecting a testimonial

  1. Find the testimonial
  2. Click "Reject" ❌ β€” it will not appear on your website

Unpublishing or deleting

Approved by mistake, or want something off your wall? Unpublish takes a live testimonial off your site without losing it; delete removes it entirely.

Why can't I edit testimonials?

By design. Testimonials stay exactly as your customer approved them β€” that's what makes them trustworthy. Your customer edits and approves the polished version before submitting; from your side you approve, reject, unpublish, or delete. You can view each testimonial's original and polished versions side by side at any time.

πŸ’‘Imported testimonials are the exception β€” you write those as owner-curated quotes during import.

5.3 Draft Reply

Replying to a review builds trust with everyone who reads it. From Dashboard β†’ Testimonials, Draft Reply suggests a warm, on-brand reply to any testimonial that you can edit before you use it.

  • You approve every word β€” nothing is ever posted for you.
  • Every plan includes a reply allowance: Free covers 10 replies total, Starter 500/month, Pro 1,000/month, and Business 2,500/month (counted across your whole account). A replies-left badge shows what's remaining.
  • Replying on a comment that lives on your own live site? The dashboard can open an Admin Overlay so you can draft a reply right where the comment appears.

5.4 Widget Settings

Everything about how you collect lives here:

  • Domain registration: enter your website URL to activate and lock the widget. Example: mywebsite.com (without the https:// prefix).
  • Launcher Button: where the floating review button sits β€” corner (bottom-left or bottom-right) and how far above the bottom edge, on every plan. If your site already has a chat bubble (Intercom, Crisp, Drift, Tawk) in that corner, raise the button above it; around 85px clears most of them. Button color and button text are Pro+.
  • Questions: the guided Q&A your customers answer, one at a time.
  • Smart NPS routing: the 0–10 pre-screen that sends detractors to private feedback.
  • Inline widget selector: the CSS selector of your own comment box, for the inline Beautify button.
  • Pulse widget (Pro+): turn on conversion-toast pop-ups and set their position, interval, and minimum rating.
  • SEO Schema & AEO (Pro+): auto-inject review structured data and expose your llms.txt feed.
  • Branding: hide the "Powered by Beautimonial" badge (paid plans).

5.5 Analytics

Dashboard β†’ Analytics answers "is this working?" with real numbers:

  • Views & conversion: how many people saw your Canvas, collect page, and widget in the last 30 days β€” and what share of them became testimonials.
  • Testimonials & ratings: submissions over time and your rating distribution.
  • Net Promoter Score: your NPS with promoter/passive/detractor breakdown, 0–10 distribution, and a monthly trend β€” private detractor feedback counted honestly.
  • Usage: beautifications used against your monthly plan limit.

5.6 Pro & Business Tools

Every plan can create Social Media Cards and Animated Videos; higher plans add more tools:

  • Social Media Cards & Animated Videos (all plans): turn any approved testimonial into a branded Social Media Card (static image) or a short Animated Video (12-second, autoplay-ready .webm) in Dashboard β†’ Brand Kit β€” or start one with β€œCreate Social Card” on the Testimonials page. Style the logo, background, colors, fonts and per-element motion once. All five formats (square, portrait, story, landscape, link card) on Starter and up; square on Free. A single monthly allowance covers cards and videos together (5 / 50 / 100 / 500 by plan).
  • Industry-specific beautification (Pro+): set your industry in Dashboard β†’ Widget Settings and polishing emphasizes what buyers in your space care about β€” still only using your customer's own facts.
  • Objection category tagging (Pro+): each testimonial is tagged by the buying objection it answers (price, trust, ease of use, results…), so you can pick the right proof for the right page.
  • Carousel widget (Pro+): embed your Gratitude Canvas as a compact auto-rotating strip β€” arrows, dots, pauses on hover β€” instead of the full grid. Copy the snippet from Dashboard β†’ Widget Settings.
  • Pulse widget (Pro+): rotating conversion-toast pop-ups of recent testimonials, on the same widget script. Configure it in Dashboard β†’ Widget Settings β†’ Pulse. See Pulse Widget.
  • SEO schema auto-inject + AEO/llms.txt (Pro+): your widget adds review structured data automatically and Beautimonial publishes an llms.txt feed some AI answer engines check. See SEO Schema & AEO.
  • Objection-busting dashboard (Business): see which objections your testimonials cover β€” and which have no proof yet β€” so you know what to ask customers about next.
  • SEO schema generator (Business): Dashboard β†’ SEO generates copy-paste review structured data for your site β€” a manual alternative to the Pro+ auto-inject above.
  • Export (Business): download all testimonials as CSV or JSON β€” including each one's original and polished versions. Your data stays portable.
  • Auto-approve (Pro+): skip the manual approval step so customer-approved testimonials go live immediately. The dashboard toggle is rolling out β€” email support to switch it on for your space today.

6. Plans & Billing

6.1 Plan Comparison

PlanPriceIncludes
FreeFree
  • 10 live testimonials
  • 1 domain
  • Full widget & collect page
  • Gratitude Canvas wall + embed
  • Draft Reply (10 total)
  • 5 Social Media Cards + Animated Videos/mo (square)
  • Basic dashboard
  • Beautimonial badge shown
  • No card required
Starter$9.99/month
  • 1,000 beautifications/month
  • 1 domain
  • Gratitude Canvas wall + embed
  • Draft Reply (500/month)
  • 50 Social Media Cards + Animated Videos/mo (all formats)
  • Remove branding
  • Email notifications
  • Basic analytics
Pro$19.99/month
  • 2,000 beautifications/month
  • 2 domains
  • Video testimonials (2 live at a time)
  • Draft Reply (1,000/month)
  • 100 Social Media Cards + Animated Videos/mo (all formats)
  • Industry-specific beautification
  • Objection category tagging
  • Gratitude Canvas carousel widget
  • Pulse conversion widget
  • SEO schema auto-inject + AEO/llms.txt
  • Auto-approve option
  • Advanced analytics
  • Priority support
Business$39.99/month
  • Everything in Pro
  • 5,000 beautifications/month
  • 5 domains
  • Video testimonials (5 live at a time)
  • Draft Reply (2,500/month)
  • 500 Social Media Cards + Animated Videos/mo (all formats)
  • SEO schema generator (copy-paste)
  • Objection-busting dashboard
  • Export testimonials (CSV/JSON)
  • Dedicated support
AgencyCustom
  • Custom beautification limits
  • Unlimited* domains
  • API access
  • White-label option
  • Contact agency@beautimonial.com

*Custom limits negotiated per account. Contact support@beautimonial.com to discuss what's right for your use case.

6.2 Free Plan & Your Wall

The Free plan caps how many testimonials are live on your site at once β€” 10 β€” not how many you can collect. Collection never stops:

  • Waiting status: once 10 are live, newly approved testimonials are held as "Waiting". They go live automatically when a slot opens β€” or all at once when you upgrade.
  • Wall-full email: we email you when your wall fills up, so you know social proof is piling up.
  • Downgrades are safe: if you move from a paid plan to Free with more than 10 live, nothing is unpublished β€” everything stays live; only new publishes wait for a slot.
  • Badge: Free spaces show the "Powered by Beautimonial" badge; any paid plan can hide it.
πŸ’‘Your customers are never affected by plan limits β€” the review flow always completes normally, whatever plan you're on.

6.3 How to Upgrade

Dashboard β†’ Billing β†’ Upgrade Plan β†’ select new plan β†’ complete payment β†’ new limits active immediately βœ…

6.4 How to Cancel

Dashboard β†’ Billing β†’ Cancel Plan β†’ confirm cancellation β†’ access continues until billing period ends β†’ no further charges β†’ you move to the free plan and keep all your testimonials

6.5 Billing FAQs

Q: When am I charged?
A: Monthly, on the same date you subscribed. You receive an email reminder before each charge.

Q: Can I change plans anytime?
A: Yes! Upgrade or downgrade anytime from billing.

Q: What payment methods are accepted?
A: Credit cards, debit cards, UPI, net banking, and wallets via Razorpay.

Q: Do beautifications carry over?
A: No. Limits reset on the 1st of each month. Unused beautifications don't carry over.

7. Troubleshooting

7.1 Widget Not Showing

Issue: the "Leave a Review" button doesn't appear on my website.

Check 1: Is your embed code correct?

Go to Dashboard β†’ Widget Settings, copy your embed code again, and make sure YOUR token is in the URL (not a sample token).

Check 2: Is your domain registered?

Dashboard β†’ Widget Settings β†’ Domain. Make sure your domain is saved, e.g. mywebsite.com (no https://).

Check 3: Is your subscription active?

Dashboard β†’ Billing. Check your subscription is active and your domain is registered in Widget Settings.

Check 4: Is the code installed correctly?

The code must be in the HTML of your page, just before the closing </body> tag. Check for typos.

Check 5: Cache issue?

Clear your browser cache, try an incognito/private window, or try a different browser.

πŸ’‘Still not working? Email support@beautimonial.com and include your website URL plus a screenshot.

7.2 Common Errors

Beautify button not working

Customer clicks Beautify but nothing happens. Possible causes:

  • Internet connection issue β€” refresh the page and try again
  • Browser blocking scripts β€” disable ad blocker temporarily
  • Widget code conflict with other scripts β€” contact support@beautimonial.com

Note: plan limits are never the cause β€” even at your limit, the customer flow completes normally.

Not receiving email notifications

  • Check your spam/junk folder and mark our emails as "Not Spam"
  • Verify your account email address is correct

Still not receiving? Email support@beautimonial.com

8. FAQ

Does my customer need to create an account?

No! Customers just visit your website, click the widget button, leave their review, and click Beautify. Zero signup required.

Can I edit beautified testimonials?

No β€” testimonials stay exactly as your customer approved them; that's what keeps them authentic. Your customer can edit the polished version before approving it. From your dashboard you approve, reject, unpublish, or delete.

What happens if I hit my monthly limit?

Your customers never notice. The review flow always completes normally β€” if a beautification limit is reached, we save the customer's words with a light tidy-up (spacing and typos only) and the testimonial still lands in your dashboard as usual. Upgrade anytime for a higher monthly allowance.

Does Beautify change what my customer actually said?

No. Beautification polishes grammar, structure, and flow β€” it never adds claims, numbers, or outcomes your customer didn't state. Every polished version is checked against the original, and if the check fails we fall back to your customer's own words, cleaned up mechanically. Your customer reviews and approves the final text before it ever reaches you.

What happens when my free wall is full?

Nothing breaks. With 10 testimonials live, newly approved ones are held as 'Waiting' β€” safely stored and ready to go live the moment a slot opens or you upgrade. We'll email you when your wall fills up. Customers can always keep submitting.

Can someone steal my widget code?

No. Your widget is domain-locked. It only works on your registered domain. If someone copies your code, it won't work on their website.

What happens to testimonials if I cancel?

Nothing is deleted. Cancelling moves you to the free plan at the end of your billing period β€” every live testimonial stays live (we never auto-unpublish), and if you have more than 10 live, new publishes simply wait for a slot.

Can I have the widget on multiple websites?

Yes! Pro plan supports 2 domains, Business plan supports 5 domains. Each domain gets its own widget settings.

Do you offer a free plan?

Beautimonial is free on the Free plan: collect testimonials and keep up to 10 live on your site at any time, no card required. Upgrade when your wall fills up.

How do I change my widget language?

Currently, Beautimonial supports English. Multi-language support is coming soon.

Can I collect testimonials without installing anything?

Yes! Every space has a hosted collect page at beautimonial.com/t/your-space-slug. Share the link in emails, DMs, QR codes, or invoices β€” no code needed.

Can I bring in testimonials I already have?

Yes. Dashboard β†’ Import lets you paste testimonials one at a time, upload a CSV from Google reviews or another testimonial tool, or import straight from a public post link on X, Reddit, TikTok, YouTube, or Instagram. Link imports show you the text for review first and land in Pending for one approval click. Original dates are preserved.

What happens when an unhappy customer leaves feedback?

With Smart NPS routing enabled, customers who score you 0–6 are routed to a private feedback form instead of the public flow. Their feedback is emailed to you and never appears publicly.

Is there an API available?

API access is available on our Agency plan. Contact support@beautimonial.com for details.

9. Glossary

Plain-English definitions of the key terms you'll see across your dashboard and the pricing page. Each links from its info icon on the pricing comparison table.

Live Testimonial

A testimonial that's been approved and is publicly displayed β€” on your Gratitude Canvas, embedded widget, or anywhere else your testimonials show up on your site. Not yet approved ("Pending"), or approved but queued past your plan's display limit ("Waiting"), don't count as Live. Free plan: up to 10 Live testimonials at once. Paid plans: unlimited.

Beautifications

Each time a raw customer comment gets polished into a clean, professional testimonial β€” whether from your floating widget, inline comment box, or Guided Q&A flow. Counted once per finished result, not per question answered or per preview. Resets monthly, shared across all your spaces on one account.

Spaces

One Space = one complete testimonial setup for one website or domain β€” its own widget, its own collected testimonials, its own settings. Most customers only need one Space. Agencies or multi-brand businesses managing several websites can use multiple Spaces (2 on Pro, 5 on Business) to keep each site's testimonials separate.

Gratitude Canvas Wall

A hosted page showing all your approved (Live) testimonials in one place β€” shareable as its own link, or embedded directly into your website. Updates automatically as you approve new testimonials.

Embeddable Widget

The floating "Leave a Review" button and form that appears on your website, letting customers submit feedback. One line of code adds it to any page.

Animated Videos

A short, animated version of an approved testimonial β€” text and stars animate into place β€” that you can download and share on social media. Not a customer-recorded video; a designed, branded motion graphic built from the testimonial's text.

Social Media Cards

A static, downloadable image version of a testimonial, styled with your Brand Kit, ready to post on Instagram, LinkedIn, or X.

Video Testimonials

A real video your customer records inside the review widget β€” up to 90 seconds, shipped exactly as recorded, and approved by you before it goes live on your Gratitude Canvas. Pro shows 2 videos live at a time and Business 5, counted across your account. These are permanently renewable slots, not a lifetime allowance: unpublish an older video and the slot frees immediately for a new one, as many times as you like. Some testimonial tools cap the total number of videos you can ever collect and make you upgrade for more β€” Beautimonial's cap is only on how many are live at once. Not the same as Animated Videos, which are designed motion graphics built from a testimonial's text.

Objection Insights (Category Tagging)

Automatic tagging of private feedback (from unhappy customers routed away from public display) into categories β€” so you can see recurring reasons behind low scores without reading every response individually.

Objection-Busting Dashboard

A dashboard view built on top of Objection Insights tagging, surfacing trends across your private feedback so you can identify and address recurring issues at a glance, rather than reading each response individually.

Pulse Conversion Toasts

Small pop-up notifications that surface a recent 5-star testimonial to website visitors in real time, as social proof while they're deciding.

Smart NPS Routing

Before leaving a review, customers rate 0-10. High scorers continue to the public review flow; low scorers are routed to a private feedback form only you see β€” keeping public testimonials genuine while still capturing honest criticism privately.

πŸ’¬

Can't find what you're looking for?

Our support team is here to help.

Email: support@beautimonial.com
Response: Within 24 hours

Contact Support β†’