Saved Reply LibraryPRO

A messaging section where a hairline list of saved replies, each with what it is for and how often it is used, swaps a bordered preview card showing the message and the fields it fills in from the record.

Chat29: Saved Reply Library

A messaging section where a hairline list of saved replies, each with what it is for and how often it is used, swaps a bordered preview card showing the message and the fields it fills in from the record.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/chat29?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/chat29?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/chat29.tsx plus the badge23 and button21 components it uses for the eyebrow and the action.

Quick start

The installed file exports chat29Demo alongside the block: the exact props behind the preview above. Spread it to get a working library in one line.

tsx
import { Chat29, chat29Demo } from "@/components/beste/block/chat29";

export default function RepliesPage() {
  return <Chat29 {...chat29Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Chat29 } from "@/components/beste/block/chat29";

export default function RepliesPage() {
  return (
    <Chat29
      badge={{ label: "Saved replies" }}
      heading="The four things reception types forty times a week"
      description="Written once, kept where the conversation is, and filled in from the record."
      templates={[
        {
          name: "Confirming a move",
          purpose: "When a member asks to change an appointment and a slot is free",
          uses: "412 times this month",
          body: "Hello {first_name}, that is moved. You are now booked for {appointment_time}.",
          variables: ["first_name", "appointment_time"],
        },
        {
          name: "Nothing free this week",
          purpose: "When the member wants a slot the rota cannot offer",
          uses: "188 times this month",
          body: "Hello {first_name}, I have put you on the waiting list.",
          variables: ["first_name"],
        },
      ]}
      previewLabel="How it goes out"
      variablesLabel="Filled in from the record"
      button={{ label: "See the reply library", href: "/product/replies" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the hairline rule, rendered through Badge23
headingstringSection heading in the left column of the header
descriptionstringSupporting paragraph, right-aligned from md up
templatesTemplate[][]Saved replies, the first one starts selected
previewLabelstringSmall label above the message preview
variablesLabelstringSmall label above the variable chips
button{ label: string; href: string }Outline action under the list
classNamestringExtra classes for the outer section
ts
type ActionLink = {
  label: string;
  href: string;
};

type Template = {
  name: string;
  purpose: string;
  uses: string;
  body: string;
  variables: string[];
};

Behavior notes

More Chat blocks

View all Chat
PRO

chat31

Two Sides Of One Conversation

A messaging section splitting a hairline matrix between the staff view and the member view, each half floating its own live asset above a title and a list of what that side gets.

PRO

chat23

Messaging Overview Split

A messaging section pairing a light heading, a hairline table of response figures, and two actions with an image tile that floats a live conversation thread.

PRO

chat12

Conversational Thread with Reactions

Chat message thread with rich formatting, copy and thumbs-up/down action buttons on AI messages, and time-grouped message sections. Features hover-revealed action bars and smooth animations.

PRO

chat6

AI Response with Cited Sources

Perplexity-style AI response with inline numbered citation markers, a source panel showing referenced URLs with favicons and titles, and expandable source previews. Perfect for RAG-powered chat applications.

PRO

chat15

Chat with Image Attachments

Chat interface with image attachment previews, file upload indicators, and image gallery display within messages. Supports both user-uploaded images and AI-generated image responses.

PRO

chat25

Ask Your Data Spotlight

An assistant section where question pills swap the image tile beneath them, each floating a live answer card that cites the records it read, closing on three hairline guarantees and one action.