Support ChatMessenger Settings

Messenger Settings

Style the messenger, choose what each audience sees, control who can start conversations, and install it on your site — with a live preview that repaints as you type.

Where to find it

Open Messenger settings

Sidebar → Settings → Modules → Messenger

Direct link: https://app.productbridge.io/dashboard/settings/messenger

In-app path: Sidebar → Settings → Modules → Messenger

Requires: a plan that includes the support feature, plus support:view to read conversations and support:manage to configure them.

The page has three tabs — Customization, Conversations, and Installation — with a live preview beside them.

Overview

Open Settings → Messenger. The page has three tabs — Customization, Conversations, and Installation — with a live preview beside them: the real messenger, repainted on every keystroke, with a Light/Dark toggle so you can check both themes before saving. Nothing ships until you press Save Changes.

Audiences: Visitors vs. Users

Most content and behavior settings exist twice — once for anonymous Visitors, once for identified Users. A segmented control at the top of each relevant card switches which audience you're editing, so you can, say, show the Roadmap tab to signed-in users only, or greet known customers by name while visitors get a generic welcome.

Customization

  • Appearance. Default theme (Light, Dark, or System), launcher position (bottom right or bottom left), launcher color, and brand colors — one for light, one for dark. Leave brand colors empty to inherit your organization's brand color.

  • Languages. Pick a default language and enable additional locales. Every text field below carries a language switcher so you can localize content per locale.

  • Content. Greeting and introduction for the Home tab — type {{name}} to insert the customer's name where it's known — plus the start-conversation button text.

  • Tabs. Enable or disable Home, Messages, News, Roadmap, and Help per audience. Messages is always on — it's the point.

  • Home cards. Compose the Home tab from cards: the ask-a-question card, quick-action chips, a news preview, and more, ordered how you like.

Conversations

  • Allow starting conversations. Turn off to stop an audience from opening new threads — existing threads keep working. New-conversation attempts are refused at the API level, not just hidden in the UI.

  • Prevent replying to resolved conversations. When on, a resolved thread is read-only for the customer; they must start a new conversation instead. Useful for keeping metrics honest.

  • Reply expectations. Show or hide the "we typically reply in…" line, and set its text. Outside office hours the messenger automatically switches to "back on Monday"-style messaging.

Installation

The messenger ships as a single script. Grab the snippet from the Installation tab — it's pre-filled with your organization id:

<script src="https://app.productbridge.io/sdk/pb-messenger.js" async></script>
<script>
  window.pbMessengerReady = function () {
    ProductBridgeMessenger.init({
      organizationId: "YOUR_ORGANIZATION_ID",
    });
  };
</script>

init accepts a few options beyond the required organizationId:

OptionWhat it does
userTokenA signed identity token — see Identity Verification.
positionbottom-right (default) or bottom-left.
buttonColorLauncher bubble color.
hideLauncherHide the bubble and open the messenger yourself via ProductBridgeMessenger.open().
hideOnMobileBelowHide the launcher below this viewport width in pixels.
zIndexStack the launcher above or below your own UI.

The SDK also exposes open(), close(), openTab("news"), identify(token), and logout() for driving the messenger from your own UI, and emits an unread event so you can badge your own controls.

Settings you pass explicitly in the snippet win over dashboard settings — handy for per-page overrides, but remember that a hardcoded value in an old snippet keeps winning until the snippet is updated on your site.

Identity Verification

Connect logged-in users of your product to the messenger so conversations are tied to real accounts.

Get your secret

Copy the identity secret from the Installation tab and store it server-side — never ship it to the browser.

Sign a token on your backend

Sign an HS256 JWT containing at minimum the user's userId and email. Add name and any custom fields — unknown claims automatically become user attributes on the contact, ready for segmentation.

import jwt from "jsonwebtoken";

const token = jwt.sign(
  { userId: user.id, email: user.email, name: user.name },
  process.env.PRODUCTBRIDGE_IDENTITY_SECRET,
  { algorithm: "HS256" }
);

Pass it to the messenger

Provide the token as userToken in init, or call ProductBridgeMessenger.identify(token) after your own login flow.

For prototyping, an unsecure mode toggle accepts a plain identity payload without a signature. Leave it off in production — with it off, unsigned identities are rejected.