Skip to main content

How it works

The widget provides a built-in messaging interface. Users can start conversations, send messages, and receive replies from your team — all within the widget panel.

Widget views

The widget has two main views:

Home view

The home screen shows:
  • A welcome message (configured in dashboard settings)
  • A list of the user’s existing conversations
  • A “New conversation” button

Conversation view

When a user opens a conversation or starts a new one:
  • Messages are displayed in a threaded view
  • New messages appear in real time via WebSocket
  • Users can send text messages (and files, if enabled)

Real-time updates

Conversations update in real time using WebSocket subscriptions. When your team replies from the dashboard inbox, the message appears instantly in the widget. The SDK uses the useSubscribeObject pattern internally to subscribe to conversation updates.

User context

Every conversation is linked to the current user’s session:
  • Anonymous users — conversations are tied to the anonymousId. If the user returns later with the same browser, their conversations persist.
  • Identified users — conversations are tied to the userId. They persist across devices after identification.
  • Account switch — if the user switches accounts (via identify with a new account.id), the session rotates and previous conversations are not carried over.

Dashboard inbox

Your team views and responds to conversations from the Inbox in the Hacktionbase dashboard. The inbox supports:
  • Real-time message updates
  • User profile details in a side drawer
  • Session history and event timeline
  • Conversation status (open/closed)