docs
/
Appmint Chat

Appmint Chat

An embeddable chat widget with live agents, queueing, presence and AI answers — dropped onto any site with two script tags.

Appmint Chat is a widget you embed on your site. Visitors get answers; your team gets a queue, presence and full conversation history attached to the actual customer record.

Because it runs on the same backend as everything else, a conversation is tied to the real customer — their orders, tickets and past messages are one lookup away rather than a separate silo.

What it gives you

Live agentsReal-time conversations with presence, status and typing.
QueueingVisitors queue when agents are busy, with position and wait time.
AI answersAnswer common questions automatically, hand off to a human when needed.
Customer journeySee what the visitor did before they opened the chat.
Files and mediaAttachments up to 5 MB inside the conversation.
Voice and videoEscalate a chat to a call without leaving the widget.

Embedding it

Two tags — a stylesheet and the loader — then one init call.

<link rel="stylesheet"
      href="https://web.appmint.space/chat-client/static/css/main.css">

<div id="my-chat-container"></div>

<script>
  function initializeChat() {
    AppmintChat.init({
      containerId: 'my-chat-container',
      orgId:  'your-org-id',
      chatId: 'your-chat-id',
      appId:  'your-app-id',
      appKey: 'your-app-key',
      theme:  'light',
      language: 'en'
    });
  }
</script>

<script src="https://web.appmint.space/chat-client/appmint-chat.js"
        onload="initializeChat()"></script>

The loader appends the widget bundle, waits for it, then mounts into your container. If containerId names an element that does not exist — or you omit it — the loader creates a div and appends it to <body>, so the widget still appears.

It also waits for DOMContentLoaded when the document is still loading, so script placement does not matter.

Configuration

OptionPurpose
orgIdYour organization. Required.
chatId / configIdWhich chat configuration to load — appearance, greeting, behavior
appIdIdentifies the embedding app
appKeyThe app key issued for that app
containerIdElement to mount into. Defaults to appmint-chat-container, created if absent
themelight or dark
languageUI language
modechat for full chat, qa for question-and-answer
defaultPathThe view the widget opens on
chatUserPre-fill the visitor — see below
className, styleApplied to the widget root

Configuration is fetched at runtime from your organization, so appearance and behavior are changed centrally rather than by redeploying your site.

Two modes

chat — the full experience: conversation history, queueing, agent handoff, attachments, calling.

qa — a narrower question-and-answer surface, for when you want answers without staffing a live queue.

Skipping the registration form

By default an anonymous visitor is asked who they are before a conversation starts. If your page already knows them, pass chatUser and the widget skips the form and runs guest authentication automatically:

AppmintChat.init({
  orgId: 'acme',
  chatId: '…',
  chatUser: { email: '[email protected]', name: 'Jane', phone: '+15551234567' }
});
Anonymous visitors are fully supported

Loading the chat configuration, fetching a public profile and uploading a file inside a conversation all work without the visitor signing in. A support chat cannot require an account to start.

Attachments

Files can be attached to a conversation by either side. The maximum attachment size is 5 MB.

Languages

The widget is internationalized, ships with English and German, and accepts a language option. Browser language is detected when none is given.

How a conversation flows

1. The visitor opens the widget. It loads its configuration for that chat — appearance, greeting and behavior.

2. The chat is queued. If no agent is free, the visitor is placed in a queue and can be shown their position.

3. An agent picks it up. Agents set their own status, so the queue only routes to people actually available.

4. Everything is recorded. Messages are saved as they are sent, so history survives a refresh, a lost connection, or a handoff to another agent.

5. The transcript can be sent on. At the end it can be emailed to the customer or attached to a support ticket.

Presence

Presence is tracked on both sides, which is what makes routing and staffing decisions possible:

  • Which agents are online, and the status each has set
  • Which customers are currently online
  • Aggregate presence and queue statistics for a live dashboard

Operators can work the same queue from Appmint Mobile, so covering chat does not mean sitting at a desk.

Customer context

When a conversation opens, the agent can pull the visitor's journey — the pages and actions leading up to the chat. This is the same activity timeline the CRM records, so an anonymous visitor who later identifies themselves keeps one continuous history rather than splitting in two.

Voice and video

The widget supports real-time calling, with connection configuration served by the platform so calls work across networks and firewalls without you running signalling infrastructure.