Install and launch the Cossistant support widget in React.

Quick start with AI prompt

Paste your public key to prefill the prompt, then copy it and run it in ChatGPT, Claude, or Cursor.

cossistant-prompt.md

Manually

1. Install the package

pnpm add @cossistant/react

2. Add your public API key

.env
VITE_COSSISTANT_API_KEY=pk_test_xxxx

3. Add SupportProvider

tssrc/main.tsx
import React from "react";
import ReactDOM from "react-dom/client";
import { SupportProvider } from "@cossistant/react";
import App from "./App";
import "./index.css";
 
ReactDOM.createRoot(document.getElementById("root")!).render(
  <React.StrictMode>
    <SupportProvider>
      <App />
    </SupportProvider>
  </React.StrictMode>,
);

4. Import styles

csssrc/index.css
@import "tailwindcss";
 
@import "@cossistant/react/support.css";

5. Render the widget

tssrc/App.tsx
import { Support } from "@cossistant/react";
 
export default function App() {
  return (
    <main>
      <h1>You are ready to chat</h1>
      <Support />
    </main>
  );
}

6. Identify logged-in visitors (optional)

tssrc/App.tsx
import { IdentifySupportVisitor, Support } from "@cossistant/react";
 
export default function App() {
  const user = {
    id: "user_123",
    email: "jane@acme.com",
    name: "Jane Doe",
  };
 
  return (
    <>
      <IdentifySupportVisitor
        externalId={user.id}
        email={user.email}
        name={user.name}
      />
      <Support />
    </>
  );
}

7. Display custom messages with SupportConfig defaultMessages

tssrc/App.tsx
import { Support, SupportConfig } from "@cossistant/react";
import { type DefaultMessage, SenderType } from "@cossistant/types";
 
const user: { name: string | null } = {
  name: "Jane Doe",
};
 
const defaultMessages: DefaultMessage[] = [
  {
    content: `Hi ${user.name ?? "there"}, anything I can help with?`,
    senderType: SenderType.TEAM_MEMBER,
  },
];
 
const quickOptions: string[] = ["How to identify a visitor?"];
 
export default function App() {
  return (
    <>
      <SupportConfig
        defaultMessages={defaultMessages}
        quickOptions={quickOptions}
      />
      <Support />
    </>
  );
}

You can now customize behavior in the Support component guide.