@tidysupport/node
v1.0.3
Published
TidySupport server SDK for support inbox and widget APIs.
Maintainers
Readme
@tidysupport/node
- 📥 Inbox API — List customers, threads, and messages from your support inbox
- 💬 Widget API — Bootstrap, send messages, and manage widget sessions server-side
- 🔐 Identity verification — Generate HMAC signatures for signed widget users
- 👥 Live visitors — Query real-time visitor presence
- 📊 Agent performance — Pull agent reply stats and response times
Installation
npm install @tidysupport/node
# or
yarn add @tidysupport/node
# or
pnpm add @tidysupport/nodeQuick Start
import TidySupport from "@tidysupport/node";
const tidysupport = new TidySupport(process.env.TIDYSUPPORT_API_KEY);
const setup = await tidysupport.support.getInboxSetup("wsp_123");
const customers = await tidysupport.support.listCustomers("wsp_123", { limit: 25 });Support inbox
// Inbox setup (email forwarding address, widget keys, settings)
const setup = await tidysupport.support.getInboxSetup("wsp_123");
// List customers (contacts who have sent at least one message)
const { items, hasMore } = await tidysupport.support.listCustomers("wsp_123", {
limit: 25,
cursor: undefined,
});
// Threads for a specific contact
const { threads } = await tidysupport.support.getThreadsByContact("wsp_123", "contact_abc");
// Full thread detail with messages
const detail = await tidysupport.support.getThreadDetail("wsp_123", "conv_xyz");
// Send a reply from your backend
await tidysupport.support.sendThreadMessage("wsp_123", "conv_xyz", {
contentText: "Thanks for reaching out!",
});Widget API
// Bootstrap a widget session (returns threads, messages, settings)
const session = await tidysupport.support.bootstrapWidget({
publishableKey: "pk_xxx",
visitorId: "vis_abc",
email: "[email protected]",
signature: "hmac_from_backend",
});
// Send a message on behalf of a visitor
await tidysupport.support.sendWidgetMessage({
publishableKey: "pk_xxx",
visitorId: "vis_abc",
contentText: "I need help with my order",
});Identity verification
Generate an HMAC signature on your backend so the widget can trust the user's identity:
import TidySupport from "@tidysupport/node";
const { signature } = TidySupport.createSupportWidgetSignature(
{ visitorId: "vis_abc", email: "[email protected]" },
process.env.SUPPORT_WIDGET_SECRET_KEY!
);
// Pass signature to the frontend widgetDocumentation
Full API reference and guides at tidysupport.com/docs
Building the frontend widget?
Use @tidysupport/ui — the companion browser SDK with React integration, session replay, and the chat widget embed.
