Skip to main content

Make support feel at home in your app.

Your customers should feel like they're talking to you. Add our widget, build your own chat, or connect cStar to the tools your team already uses.

Pick your starting point.

Add the widget

Put chat on your site. Your team answers from the cStar inbox.

Widget setup

Build your own chat

Keep your design and customer login. Connect the conversation with our chat SDK.

Customer chat guide

Use the API

Connect tickets, customers and articles to your own server and workflows.

REST API reference

Add the widget with one tag.

Paste this before the closing </body> tag on every page that should show chat. Swap in your team slug. Settings > Install in your cStar dashboard shows the same tag with your slug filled in.

Any page on your site
<script src="https://www.cstar.help/cstar.js?team=YOUR_TEAM_SLUG"></script>

No chat button? Open your browser console. cStar says there when the team value is missing or doesn't match a team.

One conversation. Both sides connected.

Once your customer is authenticated, create a conversation and receive replies from your team. The customer sees your interface. Agents answer in cStar.

Customer chat, after authentication
// chat is an authenticated ChatClient from @cstar.help/js/chat.
const ticket = await chat.tickets.create({
  subject: 'Help with my order',
  message: 'Can I change my delivery address?'
});

// Subscribe while the conversation is open.
const stop = chat.onMessage(ticket.id, (message) => {
  console.log(message.sender_name, message.content);
});

// Call stop() when leaving the conversation.
// Call chat.disconnect() when the customer signs out.

Follow the complete customer chat guide for authentication, history, sending, errors and cleanup. Customer calls use a customer session. Keep secret API keys on your server.

Bring your favorite framework.

Same conversations, whichever stack feels like home.

Install the JavaScript SDK
npm install @cstar.help/js

Need the whole toolbox?

Use the server SDK for team data and automations. Create a secret key in your team's API settings and copy the team ID from the same screen.

server.mjs (server only)
import { CStarClient } from '@cstar.help/js';

const cstar = new CStarClient({
  apiKey: process.env.CSTAR_SECRET_KEY,
  teamId: process.env.CSTAR_TEAM_ID
});

const { data: tickets } = await cstar.tickets.list({
  status: 'open'
});

console.log(tickets.length);

Set both environment variables before running the example. Use a test key for sandbox records, and keep it out of browser bundles.

  • API referenceRequests, responses and permissions.
  • WebhooksSigned events when your support data changes.
  • CLI and MCPLocal tools for your terminal and coding assistant.
  • ErrorsUnderstand a failed request and what to do next.

Stuck? Talk to the person building it.

Send Josh the step you're on and the error you see. Leave out keys, tokens and customer details. We'll work through it together.

Get help