<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Better Messages Blog</title>
        <link>https://www.better-messages.com/blog/</link>
        <description>Guides and tutorials for real-time messaging on WordPress.</description>
        <lastBuildDate>Thu, 15 Oct 2026 12:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Copyright © 2026 WordPlus</copyright>
        <item>
            <title><![CDATA[Better Messages 3.1: WordPlus Cloud, Notification Levels, Live Streams, Cloud Storage and an AI Assistant]]></title>
            <link>https://www.better-messages.com/blog/better-messages-3-1/</link>
            <guid>https://www.better-messages.com/blog/better-messages-3-1/</guid>
            <pubDate>Thu, 15 Oct 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[Better Messages 3.1 moves the licences and updates of the WebSocket version to WordPlus Cloud and off the Freemius SDK, lets members choose how much each conversation notifies them, brings live streams into chat rooms, keeps attachments in Cloudflare R2, Bunny.net or Amazon S3, and adds an AI assistant to your admin.]]></description>
            <content:encoded><![CDATA[<p>Better Messages 3.1 is out. Where 3.0 redrew the messenger, 3.1 changes what runs behind it: the licences and updates of the WebSocket version now come from WordPlus Cloud, the plugin no longer carries the Freemius SDK, and the cloud brings something new to your chat rooms, live streams. Members now choose how much each conversation notifies them, attachments can live in cloud storage, and an AI assistant in your admin answers questions about the plugin from its documentation and your own settings.</p>
<p>Your conversations, settings and licence carry across without anything to do. The few things worth checking are at the bottom, in <a class="" href="https://www.better-messages.com/blog/better-messages-3-1/#updating-from-30">Updating from 3.0</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-cloud-has-a-name-wordplus-cloud">The cloud has a name: WordPlus Cloud<a href="https://www.better-messages.com/blog/better-messages-3-1/#the-cloud-has-a-name-wordplus-cloud" class="hash-link" aria-label="Direct link to The cloud has a name: WordPlus Cloud" title="Direct link to The cloud has a name: WordPlus Cloud" translate="no">#</a></h2>
<p>The cloud behind the WebSocket version, which delivers messages, calls, push notifications, mobile app builds and Cloud AI, is now <strong>WordPlus Cloud</strong>, with an account of its own at <a href="https://www.wordplus.cloud/" target="_blank" rel="noopener noreferrer" class="">www.wordplus.cloud</a>. It serves every WordPlus plugin on a site, not only Better Messages.</p>
<p>On the first page load after the update, your licence moves there by itself, with the same key. In your account you find your licences and the sites that use them, your downloads, subscriptions and invoices, and a support form that takes files. In WordPress, Better Messages gets its own <strong>Licence</strong>, <strong>Upgrade</strong> and <strong>Support</strong> pages.</p>
<p>The plugin no longer loads the Freemius SDK. A licence bought through Freemius keeps renewing there at the same price, and new purchases are made at WordPlus Cloud. <a class="" href="https://www.better-messages.com/blog/wordplus-cloud/">Introducing WordPlus Cloud</a> explains the move in full, the Freemius part included.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="notifications-conversation-by-conversation">Notifications, conversation by conversation<a href="https://www.better-messages.com/blog/better-messages-3-1/#notifications-conversation-by-conversation" class="hash-link" aria-label="Direct link to Notifications, conversation by conversation" title="Direct link to Notifications, conversation by conversation" translate="no">#</a></h2>
<p>Muting used to be on or off. In 3.1 each member chooses how much a group conversation or chat room notifies them, from the menu of the conversation: <strong>All messages</strong>, <strong>Mentions and replies</strong> or <strong>Nothing</strong>. A busy room can stay quiet until someone mentions you or replies to you, and <strong>Nothing</strong> can last an hour, a day or a week and then end by itself. The level decides the sound, the pop-up, the push and the email at once, and messages still count as unread at every level, so nothing goes missing.</p>
<p>Administrators choose the default for each kind of conversation under <strong>Notifications → Conversation Notifications</strong>: group conversations, the group chats of community plugins, course chats, and each chat room in its own settings. They all start at <strong>All messages</strong>, as notifications worked before.</p>
<p>More came with it:</p>
<ul>
<li class=""><strong>Replies notify like mentions.</strong> A reply to your message in a group conversation notifies you and marks the conversation the way a mention does.</li>
<li class=""><strong>@all mentions everyone</strong> in a group conversation or chat room. Moderators can use it by default, and <strong>Notifications → Mention Everyone (@all)</strong> and each chat room decide who else may.</li>
<li class=""><strong>Group call alerts</strong>, on the WebSocket version: when a group call starts, members get a pop-up, a push and an email with who started it, how many are in the call and a <strong>Join</strong> button, with a chime of its own. A cooldown for each conversation and a limit for each member keep them from getting noisy.</li>
<li class=""><strong>A mark for new reactions</strong> to your messages, in the conversations list and in the conversation, with a button that jumps to each message reacted to.</li>
<li class=""><strong>A choice of what you are emailed about</strong>, in the messenger settings: all notifications, only one-to-one conversations, mentions and replies, or nothing. Administrators set the default under <strong>Notifications → Default Email Scope</strong>.</li>
</ul>
<p>Everything but the group call alerts is in the free version too. <a class="" href="https://www.better-messages.com/docs/features/notification-levels/">Notification levels</a> has every setting, and the hooks and REST route for developers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-streams-in-chat-rooms">Live streams in chat rooms<a href="https://www.better-messages.com/blog/better-messages-3-1/#live-streams-in-chat-rooms" class="hash-link" aria-label="Direct link to Live streams in chat rooms" title="Direct link to Live streams in chat rooms" translate="no">#</a></h2>
<p>With the <strong>Live Stream</strong> plugin, on the same cloud, a chat room can host a live stream. A host goes live right from the room with a camera or a shared screen, or from OBS through the Live Stream studio, and the stream shows in the room the way a group video call does: beside the messages, opening by itself while the stream is live, with a <strong>Live</strong> banner to bring it back. Viewers get sound, quality, reactions, picture-in-picture and full screen in the call controls, and the room is the chat of the stream, with history, moderation and everything else a chat room has.</p>
<p><img decoding="async" loading="lazy" alt="A chat room with a live stream: the host on camera with a Live badge and seven watching, and the chat of the room beside the stream" src="https://www.better-messages.com/assets/images/live-stream-7b210681ec6bbd69e161f85fa5518788.png" width="1600" height="947" class="img_ev3q"></p>
<p>Start one from the room editor: <strong>Stream in this room</strong> sits below the group call settings of the room. <a class="" href="https://www.better-messages.com/docs/websocket/live-streaming/">Live streaming in chat rooms</a> has the details.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="attachments-in-cloud-storage">Attachments in cloud storage<a href="https://www.better-messages.com/blog/better-messages-3-1/#attachments-in-cloud-storage" class="hash-link" aria-label="Direct link to Attachments in cloud storage" title="Direct link to Attachments in cloud storage" translate="no">#</a></h2>
<p>Photos, videos, voice messages and documents that members send can be kept in <strong>Cloudflare R2</strong>, <strong>Bunny.net Storage</strong>, <strong>Amazon S3</strong> or any S3-compatible storage, chosen per type of file under <strong>Attachments → File Groups</strong>. Files go straight from the browser or the mobile app to the storage, skipping your server, and members open them through links that expire. It works in the free version too. <a class="" href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/">Chat attachments in cloud storage</a> walks through the setup.</p>
<p><strong>Max File Size by Type</strong> sets a separate upload limit for images, videos, audio and other files, and <strong>Media Optimization</strong> now converts a file the moment it is picked, so its preview shows what will be sent, and says so before sending if it is still too large.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="an-assistant-in-your-admin">An assistant in your admin<a href="https://www.better-messages.com/blog/better-messages-3-1/#an-assistant-in-your-admin" class="hash-link" aria-label="Direct link to An assistant in your admin" title="Direct link to An assistant in your admin" translate="no">#</a></h2>
<p><strong>Better Messages Assistant</strong> lives on <strong>Better Messages → Support</strong>, and <strong>Ask AI</strong> in every Better Messages page header opens it. It answers from the documentation and your settings, opens the setting it talks about, prepares setting changes for you to review and save, writes code snippets with links to the hooks they use, and fills in the contact form for anything a person should look at. It sends nothing until you press <strong>Start</strong>, and it is in the free version too.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="privacy-a-key-for-each-conversation">Privacy: a key for each conversation<a href="https://www.better-messages.com/blog/better-messages-3-1/#privacy-a-key-for-each-conversation" class="hash-link" aria-label="Direct link to Privacy: a key for each conversation" title="Direct link to Privacy: a key for each conversation" translate="no">#</a></h2>
<p>What your site sends through the realtime server is now encrypted with a key for each conversation, which only its members get and which changes when someone leaves. Before, one key covered the whole site. Messages, files, conversation names and profiles cannot be read or changed on the way.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="calls">Calls<a href="https://www.better-messages.com/blog/better-messages-3-1/#calls" class="hash-link" aria-label="Direct link to Calls" title="Direct link to Calls" translate="no">#</a></h2>
<ul>
<li class=""><strong>Group calls can be encrypted end to end.</strong> With <strong>Group Calls → End-to-End Encryption</strong> on, the sound, video and screen shares of group video and audio chats are encrypted in each browser and app with a key only your site gives out, so neither the media server nor WordPlus Cloud can see or hear them. It is off by default. <a class="" href="https://www.better-messages.com/docs/websocket/group-video-chat/#end-to-end-encryption">Group video chat</a> has the details.</li>
<li class=""><strong>Sharper group video.</strong> The camera sends in a modern codec where the device encodes it in hardware, with a fallback every device can play, in three sizes up to 1080p, and each participant receives the size their screen shows.</li>
<li class=""><strong>Your own camera shows the way the others see it</strong>, not mirrored, while the call rings, in a 1:1 call and on your tile in a group call, in the browser and in the mobile app. A shared screen is never mirrored.</li>
<li class=""><strong>A Show Chat button</strong> in the call controls replaces the chevron on the edge of the call, which could cover the buttons of a participant.</li>
<li class=""><strong>Moderator buttons in group calls show a spinner</strong> until the change takes effect.</li>
<li class=""><strong>Calls work with the keyboard and screen readers:</strong> Answer, Reject and every call control can be reached with Tab and pressed with Enter or Space.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="smaller-things">Smaller things<a href="https://www.better-messages.com/blog/better-messages-3-1/#smaller-things" class="hash-link" aria-label="Direct link to Smaller things" title="Direct link to Smaller things" translate="no">#</a></h2>
<ul>
<li class=""><strong>The admin pages lose their bp- prefix</strong> (<code>admin.php?page=better-messages</code> and so on). Old addresses keep working.</li>
<li class=""><strong>Background jobs run on one scheduled worker</strong> that never runs twice at once.</li>
<li class=""><strong>The bubble launcher opens and closes in one smooth piece</strong>, with its list at full height from the start.</li>
<li class=""><strong>AI chat bots know the prices of the newest models</strong>, and the Web Search setting of OpenAI and Claude bots shows the price per search.</li>
<li class=""><strong>Mobile app builds no longer stop at a firewall:</strong> your site sends the files of the messenger with the build request.</li>
<li class=""><strong>The Voice and Video Messages add-on</strong> is offered where it is needed, in the Voice Messages and Video Messages settings and the AI bot editor.</li>
</ul>
<p>3.1 also fixes AI bot costs for several models, a freeze when starting a conversation in a messenger sized by a page builder, the online count in chat rooms that hide their participants, the Messages and Chat Room blocks on WordPress 5.9 to 6.5, and texts that stayed in English on translated sites. The <a class="" href="https://www.better-messages.com/changelog/">changelog</a> has every change.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="updating-from-30">Updating from 3.0<a href="https://www.better-messages.com/blog/better-messages-3-1/#updating-from-30" class="hash-link" aria-label="Direct link to Updating from 3.0" title="Direct link to Updating from 3.0" translate="no">#</a></h2>
<p>The update is in place, and your licence moves by itself. Four things to check:</p>
<ol>
<li class=""><strong>A Content Security Policy needs the new addresses.</strong> The WebSocket version now connects to <code>ws.wordplus.cloud</code> and <code>rest.wordplus.cloud</code>, and group calls to <code>video.rtc.wordplus.cloud</code>. If your site sends a Content Security Policy, allow the addresses the <a class="" href="https://www.better-messages.com/changelog/">changelog</a> lists in its <code>connect-src</code>. A self-hosted server keeps its own addresses.</li>
<li class=""><strong>Bookmarks to the admin pages</strong> still work, but the new addresses have no bp- prefix.</li>
<li class=""><strong>The Voice and Video Messages add-on</strong> moves its licence over by itself from version 2.1. Update it when WordPress offers 2.1.</li>
<li class=""><strong>Chat rooms with notifications off</strong> now start at <strong>Mentions and replies</strong>, so their members hear when someone mentions them or replies to them. Set a room to <strong>Nothing</strong> in its settings to keep it as quiet as before.</li>
</ol>
<p>If anything looks wrong after updating, please tell us at <a href="mailto:support@better-messages.com" target="_blank" rel="noopener noreferrer" class="">support@better-messages.com</a>, or on the <a href="https://wordpress.org/support/plugin/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">support forum</a> if you use the free version.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-to-look-next">Where to look next<a href="https://www.better-messages.com/blog/better-messages-3-1/#where-to-look-next" class="hash-link" aria-label="Direct link to Where to look next" title="Direct link to Where to look next" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordplus-cloud/">Introducing WordPlus Cloud</a>: the account, the move off the Freemius SDK, and what stays the same</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/notification-levels/">Notification levels</a></li>
<li class=""><a class="" href="https://www.better-messages.com/docs/websocket/live-streaming/">Live streaming in chat rooms</a></li>
<li class=""><a class="" href="https://www.better-messages.com/docs/websocket/licence/">Your licence</a></li>
<li class=""><a class="" href="https://www.better-messages.com/docs/cloud-storage/">Cloud storage</a></li>
</ul>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Releases</category>
            <category>WebSocket</category>
        </item>
        <item>
            <title><![CDATA[Introducing WordPlus Cloud, the New Home of the Better Messages Cloud]]></title>
            <link>https://www.better-messages.com/blog/wordplus-cloud/</link>
            <guid>https://www.better-messages.com/blog/wordplus-cloud/</guid>
            <pubDate>Thu, 15 Oct 2026 11:00:00 GMT</pubDate>
            <description><![CDATA[The cloud behind the WebSocket version of Better Messages, with realtime messaging, calls, push notifications, mobile apps, AI and now live streaming, has its own name and account at www.wordplus.cloud. What it means for your site and your licence.]]></description>
            <content:encoded><![CDATA[<p>The cloud that runs realtime messaging, voice and video calls, push notifications, mobile apps and AI for every site on the WebSocket version of Better Messages now has its own name: <strong>WordPlus Cloud</strong>, at <a href="https://www.wordplus.cloud/" target="_blank" rel="noopener noreferrer" class="">www.wordplus.cloud</a>. The servers, the team and the service are the same. What is new is that the cloud is no longer only for Better Messages, and that your licence, your sites and your downloads now live in an account of their own.</p>
<p>If you run the WebSocket version, there is nothing you need to do. This post explains what changes, what stays, and why.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1200px;aspect-ratio:1200 / 630;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/wordplus-cloud-4924bc7-1200.webp" srcset="https://www.better-messages.com/assets/img/wordplus-cloud-3248e66-640.webp 640w, https://www.better-messages.com/assets/img/wordplus-cloud-672b30f-980.webp 980w, https://www.better-messages.com/assets/img/wordplus-cloud-4924bc7-1200.webp 1200w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Layered blue signal waves spreading from a cloud to browser windows and phones" width="1200" height="630" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-the-cloud-has-a-name-of-its-own">Why the cloud has a name of its own<a href="https://www.better-messages.com/blog/wordplus-cloud/#why-the-cloud-has-a-name-of-its-own" class="hash-link" aria-label="Direct link to Why the cloud has a name of its own" title="Direct link to Why the cloud has a name of its own" translate="no">#</a></h2>
<p>For years the Better Messages cloud did one job: deliver messages and calls for Better Messages. It now does more, for more than one plugin:</p>
<ul>
<li class=""><strong>One subscription for the whole site.</strong> WordPlus Cloud switches on realtime delivery, push notifications, calls, Cloud AI and mobile app builds for every WordPlus plugin on a site, not only for Better Messages. New plugins built on it are on the way.</li>
<li class=""><strong>Live streaming.</strong> The Live Stream plugin broadcasts from the browser or OBS to an audience on your site, on the same cloud and the same subscription. With Better Messages 3.1 a chat room can host the stream: it shows the way a group video call does, beside the messages, and the room editor starts one.</li>
<li class=""><strong>Open to developers.</strong> Other plugins, themes and custom code on a subscribed site can use the same realtime connection and calls through the WordPlus realtime SDK, and apps outside WordPress, such as Next.js, Laravel or Django apps, can use the cloud with a plan of their own.</li>
<li class=""><strong>One account for everything you bought.</strong> Licences, sites, downloads, subscriptions and invoices, in one place, with support a click away.</li>
</ul>
<p>Better Messages stays what it is: our messaging plugin for WordPress, and the first and biggest user of the cloud.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changes-with-better-messages-31">What changes with Better Messages 3.1<a href="https://www.better-messages.com/blog/wordplus-cloud/#what-changes-with-better-messages-31" class="hash-link" aria-label="Direct link to What changes with Better Messages 3.1" title="Direct link to What changes with Better Messages 3.1" translate="no">#</a></h2>
<p><strong>Your licence moves over by itself.</strong> On the first page load after updating to 3.1, the licence of the WebSocket version moves to WordPlus Cloud with the same key. Realtime messaging, calls, push notifications and your mobile apps keep working without any action.</p>
<p><strong>Your account is at WordPlus Cloud.</strong> <a href="https://www.wordplus.cloud/login" target="_blank" rel="noopener noreferrer" class="">Log in, or create an account</a>, with the email address you bought with. Your licences show up on their own. From there you can:</p>
<ul>
<li class="">see each licence with the sites that use it, and take a site off a licence when you move to a new domain</li>
<li class="">download the WebSocket version and its add-on, the newest release and the earlier ones</li>
<li class="">see your subscriptions and invoices, and change or cancel a subscription</li>
<li class="">write to support about a licence or a site, with files attached</li>
</ul>
<p><strong>Licences and updates come from WordPlus Cloud.</strong> The new <strong>Licence</strong> page under Better Messages shows the status of your licence and the sites using it, and updates of the WebSocket version arrive through the usual WordPress updates, from WordPlus Cloud.</p>
<p><strong>The realtime addresses have new names.</strong> Browsers connect to <code>ws.wordplus.cloud</code>, the site talks to <code>rest.wordplus.cloud</code>, and group calls run on <code>video.rtc.wordplus.cloud</code>. If your site has a Content Security Policy, allow them as the <a class="" href="https://www.better-messages.com/changelog/">3.1 changelog</a> lists. Sites on a self-hosted server keep their own addresses.</p>
<p><strong>Every conversation has its own key.</strong> What your site sends through the cloud is encrypted with a key for each conversation, which only its members get and which changes when someone leaves. We relay it without being able to read it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="leaving-the-freemius-sdk">Leaving the Freemius SDK<a href="https://www.better-messages.com/blog/wordplus-cloud/#leaving-the-freemius-sdk" class="hash-link" aria-label="Direct link to Leaving the Freemius SDK" title="Direct link to Leaving the Freemius SDK" translate="no">#</a></h2>
<p>Until now, the WebSocket version loaded the Freemius SDK in your WordPress admin: its Account and Contact Us pages, its opt-in screen and its licence checks. From 3.1, Better Messages does without it, and WordPlus Cloud, our own service, does that work instead.</p>
<ul>
<li class=""><strong>Better Messages has its own pages</strong> in place of those from the SDK: <strong>Licence</strong>, <strong>Upgrade</strong> and <strong>Support</strong>, the same in every WordPlus plugin.</li>
<li class=""><strong>Your WordPlus Cloud account takes the place of the Freemius customer dashboard</strong> for Better Messages: licences and their sites, downloads, subscriptions and invoices, under the same email.</li>
<li class=""><strong>Your licence renews as before.</strong> A licence bought through Freemius keeps renewing there at the same price, and Freemius still handles its invoices and refunds, so your card statement and receipts name it.</li>
<li class=""><strong>New purchases are made at WordPlus Cloud</strong>, on its own checkout page, card or PayPal, sold by our reseller Paddle, the merchant of record, which handles sales tax, invoices and refunds.</li>
<li class=""><strong>Usage data.</strong> If your site shared usage data through the Freemius opt-in, it stays opted in, and the data now comes to WordPlus Cloud instead. A one-time notice says so. A site that skipped the opt-in stays skipped, and the free version can opt out at any time. While a licence of the WebSocket version is active, the site shares its address, its versions and which features and settings are in use, as the <a href="https://www.wordplus.cloud/terms" target="_blank" rel="noopener noreferrer" class="">terms</a> say. The rest, such as the list of its plugins and themes, stays your choice.</li>
</ul>
<p>Why the change? One account now holds every WordPlus plugin and the cloud behind them. Each site connects with a key and a secret of its own instead of sending its licence key. Nothing from another company loads in your admin anymore. And knowing which features are actually used tells us what to improve next.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-stays-the-same">What stays the same<a href="https://www.better-messages.com/blog/wordplus-cloud/#what-stays-the-same" class="hash-link" aria-label="Direct link to What stays the same" title="Direct link to What stays the same" translate="no">#</a></h2>
<ul>
<li class=""><strong>Your data stays in WordPress.</strong> Conversations, members and files stay in your own database and storage. The cloud keeps only what delivery needs.</li>
<li class=""><strong>The servers.</strong> The main servers run in Germany, and group calls run on a mesh of media servers in several regions, close to your members.</li>
<li class=""><strong>Your licence.</strong> Its key and its sites stay the same, and it renews as before.</li>
<li class=""><strong>Sites still on 3.0.</strong> They keep working on their current addresses until they update.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-to-the-websocket-version">New to the WebSocket version?<a href="https://www.better-messages.com/blog/wordplus-cloud/#new-to-the-websocket-version" class="hash-link" aria-label="Direct link to New to the WebSocket version?" title="Direct link to New to the WebSocket version?" translate="no">#</a></h2>
<p>Open <strong>Better Messages → Upgrade</strong> in WordPress, or the <a class="" href="https://www.better-messages.com/pricing/">pricing page</a>, and choose the plan for your number of sites. The WebSocket version includes WordPlus Cloud for WordPress, every service of the cloud for one price per site, billed monthly or yearly, and a staging or local copy of the site does not count as another site.</p>
<p>To read more about the cloud itself, see <a href="https://www.wordplus.cloud/blog/introducing-wordplus-cloud" target="_blank" rel="noopener noreferrer" class="">Introducing WordPlus Cloud</a> on its own blog. Questions about the move? Write to us at <a href="mailto:support@better-messages.com" target="_blank" rel="noopener noreferrer" class="">support@better-messages.com</a>.</p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Releases</category>
            <category>WebSocket</category>
        </item>
        <item>
            <title><![CDATA[WordPress Chat Attachments in Cloudflare R2, Amazon S3 or Bunny.net]]></title>
            <link>https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/</link>
            <guid>https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/</guid>
            <pubDate>Thu, 15 Oct 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[Better Messages 3.1 keeps the photos, videos, voice messages and documents members send in cloud storage instead of your uploads folder. Cloudflare R2, Bunny.net, Amazon S3 and any S3-compatible storage, chosen per kind of file, with uploads that skip your server, members-only links, and a one-click move for the files you already have. In the free version too.]]></description>
            <content:encoded><![CDATA[<p>A busy messaging site collects files fast. Every photo, screen recording, voice message and PDF that members send lands in your uploads folder, where it grows your backups, eats your hosting plan's disk and goes out through your server's bandwidth every time someone opens it. On a community with a few thousand active members that can add up to gigabytes a month.</p>
<p>Better Messages 3.1 can keep those files in cloud storage instead: Cloudflare R2, Bunny.net, Amazon S3, or any storage with an S3 API such as Backblaze B2, DigitalOcean Spaces or Wasabi. Members see no difference. Their files simply stop living on your server.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1412;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/messenger-files-38db084-2000.webp" srcset="https://www.better-messages.com/assets/img/messenger-files-c6b348e-640.webp 640w, https://www.better-messages.com/assets/img/messenger-files-4d822e6-980.webp 980w, https://www.better-messages.com/assets/img/messenger-files-894453f-1320.webp 1320w, https://www.better-messages.com/assets/img/messenger-files-aa661d7-1660.webp 1660w, https://www.better-messages.com/assets/img/messenger-files-38db084-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="A group conversation in Better Messages with a photo, a video and a PDF that members shared, all kept in cloud storage" width="2000" height="1412" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<p>Cloud storage works in the free version and in the WebSocket version. Everything is set up under <strong>Better Messages → Settings → Attachments</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="which-storage-to-pick">Which storage to pick<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#which-storage-to-pick" class="hash-link" aria-label="Direct link to Which storage to pick" title="Direct link to Which storage to pick" translate="no">#</a></h2>
<table><thead><tr><th>Storage</th><th>Good to know</th></tr></thead><tbody><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/cloudflare-r2/">Cloudflare R2</a></td><td>No fees for downloads, however often a file is opened. Members-only files can come from your own domain through a Cloudflare Worker</td></tr><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/bunny-net/">Bunny.net</a></td><td>Files come from Bunny's CDN through a Pull Zone. Needs a storage zone created with S3 compatibility on</td></tr><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/amazon-s3/">Amazon S3</a></td><td>The original S3, in any AWS region</td></tr><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/backblaze-b2/">Backblaze B2</a></td><td>Public files can come from your own domain through Cloudflare, which B2 does not bill downloads for</td></tr><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/digitalocean-spaces/">DigitalOcean Spaces</a></td><td>Public files can come from your own subdomain through the Spaces CDN</td></tr><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/wasabi/">Wasabi</a></td><td>Every file is billed for at least 90 days, even if it is deleted sooner</td></tr><tr><td><a class="" href="https://www.better-messages.com/docs/cloud-storage/s3-compatible/">Any other S3-compatible storage</a></td><td>Scaleway, Hetzner Object Storage, OVHcloud, or a MinIO server you run yourself</td></tr></tbody></table>
<p>Each one has a step-by-step guide, from creating the bucket to connecting it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="choose-where-each-kind-of-file-goes">Choose where each kind of file goes<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#choose-where-each-kind-of-file-goes" class="hash-link" aria-label="Direct link to Choose where each kind of file goes" title="Direct link to Choose where each kind of file goes" translate="no">#</a></h2>
<p>Files are split into seven groups: images, videos, audio, voice messages, video messages, files from end-to-end encrypted conversations, and documents with everything else. Each group goes to the place you pick. Send photos and videos to R2 and keep documents on your own server, or send everything to the cloud. It is one dropdown per group.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1627;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRi4BAABXRUJQVlA4ICIBAACwBgCdASooACEAPjEYikQiIaERxAAgAwS0gGiGBYrJR0qNLmIkHWYo0IO8f1O9QQZf0mR0J2oTjEh72mc1OAD+/3q/TuChXs+oCs00ZSgt8xaJZoUSX9Y0gh0mxmv8Qlyhwe5FchpXJH6iCt5NmcsgwUKmDnZsjwtD+R0GO5k8vHgX3MA1oILW9xpNj8Vs8QrveUf1T966ZwKABwIW1QvYs8ux128lOrxU2+NBbFvi7fd5ZpaKzWmeiL1QAGXggnQ+qgDIHcnBlSKxFv/5J+wrNwocsnicUdnWgHBqSJBiwsencgqpSlUWC2eqUcczban+p5FBhg9cYE2so56PEHCmq96K5TxhKsV7cXSOzMcSSKmhiHU875Pd5CiKK5mJyIoAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/file-groups-15ec1f4-2000.webp" srcset="https://www.better-messages.com/assets/img/file-groups-11a3c76-640.webp 640w, https://www.better-messages.com/assets/img/file-groups-4a3b93e-980.webp 980w, https://www.better-messages.com/assets/img/file-groups-cf016a5-1320.webp 1320w, https://www.better-messages.com/assets/img/file-groups-d4dde05-1660.webp 1660w, https://www.better-messages.com/assets/img/file-groups-15ec1f4-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="The Attachments settings page with the Storage list and File Groups, and a note that four files are not where their group goes, with a Move Them button" width="2000" height="1627" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Your server is always on the list. With <strong>File Protection</strong> on, files kept there still go through your website, which checks that the person opening one is a member of the conversation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="private-by-default">Private by default<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#private-by-default" class="hash-link" aria-label="Direct link to Private by default" title="Direct link to Private by default" translate="no">#</a></h2>
<p>Chat files are private, so cloud files are too. By default the bucket stays private, and each member gets links that your website signs for them. A link works for a day or so and is renewed automatically. Without one, nobody can open or list the files, even with the bucket's name.</p>
<p>For files that are not private, a storage can serve them from a public address instead, such as a CDN on your own domain, and your website does no work at all when a file is opened.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="uploads-that-skip-your-server">Uploads that skip your server<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#uploads-that-skip-your-server" class="hash-link" aria-label="Direct link to Uploads that skip your server" title="Direct link to Uploads that skip your server" translate="no">#</a></h2>
<p>When a member sends a file, the browser or the mobile app uploads it straight to the storage, through a link your website signs for that one file. The file never passes through your server, so even a large video costs your hosting nothing, and it is in the storage the moment the message is sent. Large files go up in parts, several at a time.</p>
<p>The storage has to allow uploads from your site, which takes one CORS rule. On Cloudflare R2 and S3-compatible storages, the <strong>Configure CORS</strong> button saves it for you. Bunny.net needs none. If a storage ever refuses, uploads quietly go through your server instead, so sending never fails, and the storage's line on the settings page says so.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bring-the-files-you-already-have">Bring the files you already have<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#bring-the-files-you-already-have" class="hash-link" aria-label="Direct link to Bring the files you already have" title="Direct link to Bring the files you already have" translate="no">#</a></h2>
<p>Changing where a group goes only affects new files. The settings page counts the files that are not where their group goes now, and <strong>Move Them</strong> moves them. To empty one storage into another, for example everything on your server into R2, choose <strong>Move all files from one storage to another</strong>.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1318;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRvYAAABXRUJQVlA4IOoAAACwBQCdASooABoAPjEWiUMiISEVVAAgAwS0gAc8YTP6aqVAQ2JyhI4lS/yQnpP3UmYuuJ1IGOAA/vdX0B9+rXsvdcxCDuvi9rXyLtTExB+Erd1Mu5A8JnkULW5kqU3IQ1qTrbM7lz2cWgonpK2ksVnJtbmhPjaM9bm3ac3jtOAAUQ4ScgolvTY2FFVnKRVgPewj3spcHwiT4pAUhgACXSDhfPjP1/cf9PWf+6ecmVZxKOZmxuhmLfFQhRRNBpfXcrQR8SAHrRSPYWi/EDS+GhDbaAptsrpvv4iJdC1x3ue9dj2PJc07kAAAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/move-files-b120537-2000.webp" srcset="https://www.better-messages.com/assets/img/move-files-ff7cb39-640.webp 640w, https://www.better-messages.com/assets/img/move-files-642c95a-980.webp 980w, https://www.better-messages.com/assets/img/move-files-c1784ec-1320.webp 1320w, https://www.better-messages.com/assets/img/move-files-98a3ebc-1660.webp 1660w, https://www.better-messages.com/assets/img/move-files-b120537-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="The Move Files dialog moving the files on this server to a cloud storage, with From and To choices and a Start Moving button" width="2000" height="1318" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Moves run in the background, with pause, resume and stop. Files keep opening the whole time, and the old copies are deleted a day or two after each file moves, once every device has the new links.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="every-file-in-one-place">Every file in one place<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#every-file-in-one-place" class="hash-link" aria-label="Direct link to Every file in one place" title="Direct link to Every file in one place" translate="no">#</a></h2>
<p><strong>Better Messages → Administration → Files</strong> lists every file members have sent, wherever it is kept. Filter it by type, storage, sender, conversation or date, search by name, open or download any file, and delete what should not be there. A deleted file disappears from its message, and a message left with nothing in it goes too.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1327;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAABwBwCdASooABsAPjEYikOiIaEStAAgAwS0gGNOYBx3WAdwLh1xAAkSZkbcqIypTEcKpUqvXFQAnq4T9ak3TjeOB4/RAAD+/2x6Ny233+hDWQZ0vNLYlV6wlkioaJfKgw/Shm4R6Il0jraMVV/Gck+MN6IkoWiedqDdP78sM5B8ibGKpXpjFjQBVG5d905N6prcqt+fgu0X7Q4RAOmb8FNj8nW+dcoPpPLhGal5P0tu4NgeVrqjLeS38ZUpzesQeqnFS4nuFIgQFtgjQfG0bDjvH7RUiV5qVv4ueE14mR3Fv70T0A8gKOFH6pI2ipAj2upfcJsSgal/khOgxa8n5KBjdgs58ZkOlMhglLeMbphUiI72HO1gCDBcgk0F1eYl5n3CbyrfrHDxICCDr81o7x9JLL8XXCmFJ9aAAAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/files-library-29a4224-2000.webp" srcset="https://www.better-messages.com/assets/img/files-library-21b3131-640.webp 640w, https://www.better-messages.com/assets/img/files-library-2e1d72e-980.webp 980w, https://www.better-messages.com/assets/img/files-library-371b323-1320.webp 1320w, https://www.better-messages.com/assets/img/files-library-88cb421-1660.webp 1660w, https://www.better-messages.com/assets/img/files-library-29a4224-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="The Files list in Administration, showing photos, a video and documents with who sent them, the conversation, and whether each one is on this server or in cloud storage" width="2000" height="1327" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="safe-with-staging-sites-and-backups">Safe with staging sites and backups<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#safe-with-staging-sites-and-backups" class="hash-link" aria-label="Direct link to Safe with staging sites and backups" title="Direct link to Safe with staging sites and backups" translate="no">#</a></h2>
<p>A staging site is a copy of your site, storage settings included. Without care, deleting a test message on staging would delete the live site's file from the shared bucket. Better Messages marks each storage folder with the site that owns it. A copy that finds the live site's files there writes nothing to that storage and deletes nothing from it, and asks whether it is a copy or the site really moved.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1070;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRhwBAABXRUJQVlA4IBABAAAQBgCdASooABUAPjEYikOiIaEStAAgAwSzgFiP5AcaRgB3+xnKOyauZPbF2okJBtEMfGhgf5ixArAA/v9sffflwl/9EkQJTx9TqEIaoUh6EC5of/Dm+IN/6xd2ZIOk/MGl9Usb35HM9fm9ncu5sSMCJeONlctVq+YcAYub1XhzvrtdZUQf4/fc5/q+yWWz4+3IX33tGkJ8y2USzd/SegDhJ3um5NNLHgNIrgMw/+nrCxH0dzzjh+gtin/XKjIRVt6JcvK58pGZ/LV5LLYlm7iaR8hZG1DhcCRsUJ2AWdkKn2vhbzu8ZcmFTBrBjn4xFQUM1IInX/DFq1lJSG0qL1zdttWhgdTpYczgfAAF0HcAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/copy-notice-bb1bf05-2000.webp" srcset="https://www.better-messages.com/assets/img/copy-notice-4fa9b72-640.webp 640w, https://www.better-messages.com/assets/img/copy-notice-360024f-980.webp 980w, https://www.better-messages.com/assets/img/copy-notice-8189a68-1320.webp 1320w, https://www.better-messages.com/assets/img/copy-notice-ce8a575-1660.webp 1660w, https://www.better-messages.com/assets/img/copy-notice-bb1bf05-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="The Storage section on a staging site saying it looks like a copy of example.com, with the buttons This is a copy and This site moved here" width="2000" height="1070" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Deletes are careful in the other direction too. A file deleted in Better Messages stays listed as pending until the storage confirms it is gone, and the delete is retried if the storage refuses. Once a week, Better Messages also looks for files in its storage folder that no message knows any more, such as files left after a database backup was restored, and removes them only after seeing them twice, a week apart.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="works-with-the-rest-of-better-messages">Works with the rest of Better Messages<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#works-with-the-rest-of-better-messages" class="hash-link" aria-label="Direct link to Works with the rest of Better Messages" title="Direct link to Works with the rest of Better Messages" translate="no">#</a></h2>
<ul>
<li class=""><strong>Mobile apps.</strong> The iOS and Android apps upload straight to the storage as well.</li>
<li class=""><strong>Voice and video messages.</strong> With the <a class="" href="https://www.better-messages.com/docs/addons/voice-messages/">Voice and Video Messages add-on</a> 2.1, recordings move to the storage right after they are sent and play from there.</li>
<li class=""><strong>AI chat bots.</strong> Bots read images and documents kept in cloud storage, so a member can still ask a bot about a file they shared.</li>
<li class=""><strong>End-to-end encrypted conversations.</strong> Encrypted files are stored encrypted, wherever they are kept. Only the devices of the members can read them.</li>
<li class=""><strong>Keys outside the database.</strong> Every key can be set in <code>wp-config.php</code> instead of the settings.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting started<a href="https://www.better-messages.com/blog/wordpress-chat-attachments-cloud-storage/#getting-started" class="hash-link" aria-label="Direct link to Getting started" title="Direct link to Getting started" translate="no">#</a></h2>
<p>Update to Better Messages 3.1, open <strong>Settings → Attachments</strong>, and click <strong>Connect</strong> next to the storage you want. Then read <a class="" href="https://www.better-messages.com/docs/cloud-storage/">Where files are kept</a> for the full picture, or go straight to the guide for your provider.</p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[How to Add Video Chat to a WordPress Site]]></title>
            <link>https://www.better-messages.com/blog/add-video-chat-to-wordpress/</link>
            <guid>https://www.better-messages.com/blog/add-video-chat-to-wordpress/</guid>
            <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Five ways to add video chat to a WordPress site, from a Zoom link or an embedded meeting room to members calling each other inside the chat of the site, and which one fits which kind of site.]]></description>
            <content:encoded><![CDATA[<p>"Video chat on a WordPress site" can mean two different things, and the right tool depends on which one you need.</p>
<ul>
<li class=""><strong>A meeting.</strong> Someone hosts a call at a set time and sends people a link: a webinar, a class, a consultation.</li>
<li class=""><strong>Members calling each other.</strong> The people on your site, members of a community, buyers and sellers on a marketplace, students of a course, start a video call with each other whenever they want, the way they already send each other messages.</li>
</ul>
<p>Most WordPress video chat plugins are built for the first. This guide walks through every way to add video chat to WordPress, what each one takes to set up and to run, and which one fits which kind of site.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1600px;aspect-ratio:1600 / 1285;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/group-video-chat-344f902-1600.webp" srcset="https://www.better-messages.com/assets/img/group-video-chat-40e3db8-640.webp 640w, https://www.better-messages.com/assets/img/group-video-chat-c95a87a-980.webp 980w, https://www.better-messages.com/assets/img/group-video-chat-a9000f8-1320.webp 1320w, https://www.better-messages.com/assets/img/group-video-chat-344f902-1600.webp 1600w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="A group video chat on a WordPress site: four participants in a grid of camera tiles beside the conversation, with the mic, camera, screen sharing and hang-up controls along the bottom" width="1600" height="1285" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-five-ways-at-a-glance">The five ways at a glance<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#the-five-ways-at-a-glance" class="hash-link" aria-label="Direct link to The five ways at a glance" title="Direct link to The five ways at a glance" translate="no">#</a></h2>
<table><thead><tr><th>Way</th><th>Best for</th><th>What people need</th><th>What it costs</th></tr></thead><tbody><tr><td><a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#zoom-link" class="">Send a Zoom or Google Meet link</a></td><td>Scheduled meetings you host</td><td>The app of that service, often an account</td><td>Free plans limit how long a group meeting lasts</td></tr><tr><td><a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#embed-a-room" class="">Embed a video room on a page</a></td><td>One fixed room on one page</td><td>A browser</td><td>Usage billing from the video service above a free allowance</td></tr><tr><td><a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#meeting-plugins" class="">A meeting plugin</a></td><td>Meetings and webinars created in wp-admin</td><td>Whatever the service behind it needs</td><td>The plugin plus the service</td></tr><tr><td><a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#inside-the-chat" class="">Video calls inside the chat of your site</a></td><td>Members calling each other, one-on-one and in groups</td><td>Their account on your site</td><td>One license, servers included</td></tr><tr><td><a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#build-your-own" class="">Build your own on WebRTC</a></td><td>A product where video is the product</td><td>A browser</td><td>Months of development and your own servers</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="zoom-link">1. Send a Zoom or Google Meet link<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#zoom-link" class="hash-link" aria-label="Direct link to 1. Send a Zoom or Google Meet link" title="Direct link to 1. Send a Zoom or Google Meet link" translate="no">#</a></h2>
<p>The simplest way needs nothing installed. Create a meeting in Zoom, Google Meet or Microsoft Teams and put the link where people will find it: on a page, in a booking confirmation, in an email to members.</p>
<p><strong>Good:</strong> everyone knows these apps, they handle large meetings and recordings, and there is nothing to maintain.</p>
<p><strong>Not so good:</strong></p>
<ul>
<li class="">People leave your site for the call, and the meeting knows nothing about your members. Anyone with the link can join unless you set a passcode or a waiting room.</li>
<li class="">Members cannot call each other. Every call is a meeting that someone has to create and share first.</li>
<li class="">The free plans cap how long a group meeting can last.</li>
</ul>
<p><strong>Fits:</strong> a weekly webinar, a scheduled class, a consultation booked through a form.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="embed-a-room">2. Embed a video room on a page<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#embed-a-room" class="hash-link" aria-label="Direct link to 2. Embed a video room on a page" title="Direct link to 2. Embed a video room on a page" translate="no">#</a></h2>
<p>Hosted video services give you a room that you embed into a page with an iframe, pasted into a <strong>Custom HTML</strong> block. <a href="https://jitsi.org/" target="_blank" rel="noopener noreferrer" class="">Jitsi Meet</a> is the open source option, and Whereby Embedded and Daily Prebuilt are hosted services built for this.</p>
<p><strong>Good:</strong> the call happens on your page, in the browser, with no app to install.</p>
<p><strong>Not so good:</strong></p>
<ul>
<li class="">A room is a URL. Anyone who has it can join unless you build a sign-in on top, and the room does not know which of your members is in it.</li>
<li class="">Hosted services bill by usage, usually per participant minute, once you pass their free allowance.</li>
<li class="">The free public Jitsi server, meet.jit.si, no longer supports embedding. For an embedded Jitsi room you use Jitsi as a Service from 8x8, or run a Jitsi server of your own.</li>
<li class="">It is still one room on one page. A member cannot call a specific person.</li>
</ul>
<p><strong>Fits:</strong> a consultation page with one host, a support page with a "talk to us" room, a small team room.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="meeting-plugins">3. A meeting plugin for WordPress<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#meeting-plugins" class="hash-link" aria-label="Direct link to 3. A meeting plugin for WordPress" title="Direct link to 3. A meeting plugin for WordPress" translate="no">#</a></h2>
<p>WordPress.org has plugins that connect your site to Zoom or Jitsi. You create meetings and webinars in wp-admin and show them on pages with a shortcode, and some plugins add booking or calendar sync.</p>
<p><strong>Good:</strong> meetings are managed where your content is, and some plugins tie a meeting to a course lesson or a booking.</p>
<p><strong>Not so good:</strong> these are still meetings with a host, like the first two ways. Check when a plugin was last updated before you install it, because several video chat plugins on WordPress.org have not been tested with recent WordPress versions.</p>
<p><strong>Fits:</strong> course platforms with live lessons, coaches who sell scheduled sessions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="inside-the-chat">4. Video calls inside the chat of your site<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#inside-the-chat" class="hash-link" aria-label="Direct link to 4. Video calls inside the chat of your site" title="Direct link to 4. Video calls inside the chat of your site" translate="no">#</a></h2>
<p>This is what <a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages</a> does. Members already message each other on your site. With the WebSocket version, every conversation also gets a video call and an audio call button, and group conversations and chat rooms get group calls.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1600px;aspect-ratio:1600 / 1285;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRp4DAABXRUJQVlA4IJIDAADwEwCdASooACAAPjEUh0KiIQqrABABgloAJ0yhIU0gSmv0PFq4AG2R/VXpktMU9ADyyPZX8rG7g/qvgj4OvIHsruVt7/+C/JnRa/4bfKsh/px+wHMB3Hv+I+xTnp4W/pNf7nlW+gP+D7g38s/r/+2/Nb+p+AX9lfZmPvgau2maXrQ9oQf7ctY5vCX53RLiPls4POgfbhSWDB5BsujZZsp9acNbPwhC2IAA/v/+O2JBpu7ZHL/axc9/w/mZnurWnuzFoNQ1Up1Qf2yMNPn57sTE0hMsnmcv44G5muWXD/OuhFKbWx/vo2F57N8piLEb430bo0cgN3awNoPF8P3wV4/lcv+Rb8VuRGKmjRDOCDv2pDJiNRT34lKKCtJS4BZIPigAQwkgqX3qFdKBPB5txWep0p/mHbU66H/GZzkAGg0cXujHyT9wu4NGbTep1JLC+Ypmaqxxed5toeYNSyNC/woPslG9GRt4q9iZrHx3yIqAWx0I3XdpFuardwGsKv0OzlMznkxXyvDUwf+JRr1g5uf4j9mcPBBQp3EjegZ5R7AQKRRQ3unMwkmGvw+Ge97X0zrQ3EJuCvRvT9kkcjEzVaBgGZWS0+uLYJQnHTiuD+/Efyh5jktWMEtyBWLndf8ePK1GKP3vqPLAmtci6sxzgELzmOYKz/Ab12vnov7TExzwklXqUh3/oPfKhkXZ1/0YktlKluAxhrCXBtg/IgW/EPNbVdO7L7GtbjlSoacbzGfru80b7071UNsHt8QHWuANONtYhINdMRABAgpNZWRpBjCS1s5LQAn6iEpGsqcJpROn0T9aXBULM1UHmFlmSmnOLBGCsGb0o7xJrFZ5dTNnwcWT6bFK+8sNm4VM0WYbMT+F2rB78aoin3BIFUU94U6kk7F+ErWT0/bV+ddv+UkyMU7r45k8Pl3xLcOiYotQ91n6pfvXhveRiEFmVs+Vf8imFKXfcIkhYKOzyv683rkCQT2dPzGPLkClDPx80OGvtRsfvTCMVvapH5hJiK36WDMeza3RW0s2nYxxSXw8JPTr5mXHd/zHWOvSseUkmt8POdCXXrKBJagJgDuj2+iGTWNff8DvvZ6JPCXwEIQT3KXFR1Tn0tjtYG3g/hBT9oMnBLr+hag+71VRd1uGjSCaHesMA25euIjN+j6DfzIGVjljkzfQOvUFtWAmEdNqetWvlF7qnj/+zcPhwyNiRyP7X0GKUwwAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/one-on-one-video-call-2ef509d-1600.webp" srcset="https://www.better-messages.com/assets/img/one-on-one-video-call-c04d691-640.webp 640w, https://www.better-messages.com/assets/img/one-on-one-video-call-f5a9b17-980.webp 980w, https://www.better-messages.com/assets/img/one-on-one-video-call-6a14255-1320.webp 1320w, https://www.better-messages.com/assets/img/one-on-one-video-call-2ef509d-1600.webp 1600w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="A one-on-one video call beside the conversation in Better Messages: the other person fills the call panel, a small preview of your own camera sits in the corner, and the mic, camera and hang-up controls line the bottom" width="1600" height="1285" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>What members get:</p>
<ul>
<li class=""><strong>One-on-one video and voice calls</strong> in any private conversation. The other person hears a ring in the browser, and with web push on, a notification reaches them even when your site is closed. Calls go directly between the two browsers whenever the network allows, encrypted by WebRTC.</li>
<li class=""><strong>Group video chat for up to 32 people</strong> and group voice calls for up to 50, inside group conversations and chat rooms. Group calls can be encrypted end to end, and in Broadcast mode only moderators speak while everyone else watches.</li>
<li class=""><strong>Screen sharing</strong> during any call.</li>
<li class=""><strong>Calls on phones,</strong> in the mobile browser and in your own branded iOS and Android apps.</li>
</ul>
<p>What you control:</p>
<ul>
<li class=""><strong>Who can call.</strong> Call Restrictions lists the roles that cannot place calls, and <strong>Friends Only</strong> limits calls to friends on sites with a friends feature, such as BuddyPress.</li>
<li class=""><strong>Who can start or join a group call,</strong> by role, and for each chat room whether it has calls at all.</li>
<li class=""><strong>Guests.</strong> Visitors without an account can call too, when guest chat is on and they are part of the conversation.</li>
<li class=""><strong>A call button on any page.</strong> The <a class="" href="https://www.better-messages.com/docs/shortcodes/better_messages_video_call_button/"><code>[better_messages_video_call_button]</code></a> shortcode puts a button for a video call with a given member on a profile, a listing or a sales page.</li>
</ul>
<p>It works with the plugins your site already runs, such as BuddyPress, BuddyBoss, PeepSo, Ultimate Member, FluentCommunity, Dokan, WCFM, LearnDash, Tutor LMS, HivePress and Directorist, and members reach the messenger from the profiles, stores, courses and listings those plugins show.</p>
<p><strong>Good:</strong></p>
<ul>
<li class="">Calls happen between people who already have accounts on your site, with the permissions you set, and without links to share.</li>
<li class="">The chat goes on during the call and after it. When a call ends, the conversation keeps a note that it took place and how long it lasted.</li>
<li class="">The video servers are included in the license. There is no Zoom, Twilio or Daily account to open, and video and sound never pass through your WordPress server.</li>
</ul>
<p><strong>Not so good:</strong></p>
<ul>
<li class="">Calls need the WebSocket version. The free version on WordPress.org has private messages, group chats and chat rooms, but no calls.</li>
<li class="">Calls are not recorded.</li>
<li class="">Group calls stop at 32 cameras. A webinar for hundreds of viewers needs a webinar tool.</li>
</ul>
<p><strong>Fits:</strong> communities and social networks, marketplaces, dating sites, membership sites, course platforms with office hours, coaching and telemedicine where clients have accounts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-your-own">5. Build your own on WebRTC<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#build-your-own" class="hash-link" aria-label="Direct link to 5. Build your own on WebRTC" title="Direct link to 5. Build your own on WebRTC" translate="no">#</a></h2>
<p>Browsers have video calling built in through WebRTC, so building it yourself looks tempting. The browser part is the small part. You also need:</p>
<ul>
<li class="">a signaling server that tells two browsers how to reach each other,</li>
<li class="">STUN and TURN servers for the many networks where browsers cannot connect directly,</li>
<li class="">a media server for any call with more than two people, such as LiveKit, mediasoup or Janus,</li>
<li class="">a call screen that works in every desktop and phone browser, and ringing for people who are not on the page.</li>
</ul>
<p>Video APIs such as Agora, Daily, Twilio and Vonage run the servers for you and bill by the minute. Either way, you write and maintain the rest.</p>
<p><strong>Fits:</strong> a product where video is the product, with a developer team behind it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="setup">Setting up video chat with Better Messages<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#setup" class="hash-link" aria-label="Direct link to Setting up video chat with Better Messages" title="Direct link to Setting up video chat with Better Messages" translate="no">#</a></h2>
<ol>
<li class="">Install <a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a> and activate it.</li>
<li class="">Get a <a class="" href="https://www.better-messages.com/docs/pricing/">WebSocket version license</a>. The WebSocket version is a separate download from your account, and it replaces the free version with all messages and settings kept.</li>
<li class="">Activate the license in <strong>Better Messages → Account</strong>.</li>
<li class="">Open <strong>Better Messages → Settings → Calls</strong> and turn on <strong>Video Calls</strong> and <strong>Audio Calls</strong>. Both are off on a new install.</li>
<li class="">For group video chat, open <strong>Settings → Group Calls</strong> and turn on <strong>Group Video Chat</strong> for groups, conversations or chat rooms.</li>
<li class="">Optionally, choose the roles that cannot place or join calls under <strong>Call Restrictions</strong> and <strong>Group Call Restrictions</strong>.</li>
</ol>
<p>Your site must use HTTPS, because browsers give camera and microphone access only to secure pages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="which-way">Which way fits your site<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#which-way" class="hash-link" aria-label="Direct link to Which way fits your site" title="Direct link to Which way fits your site" translate="no">#</a></h2>
<table><thead><tr><th>Your site</th><th>The way that fits</th></tr></thead><tbody><tr><td>Community or social network on BuddyPress, BuddyBoss, PeepSo or FluentCommunity</td><td>Calls inside the chat</td></tr><tr><td>Marketplace or directory where buyers talk to sellers</td><td>Calls inside the chat, with a call button on vendor or listing pages</td></tr><tr><td>Dating site</td><td>Calls inside the chat, so members talk face to face before they meet</td></tr><tr><td>Course platform</td><td>Group calls in the course chat for office hours, a meeting tool for large live lessons</td></tr><tr><td>Coach or consultant</td><td>Calls inside the chat when clients have accounts, a meeting link when they do not</td></tr><tr><td>Company webinar for hundreds of people</td><td>A webinar tool, not video chat</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="is-there-a-free-video-chat-plugin-for-wordpress">Is there a free video chat plugin for WordPress?<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#is-there-a-free-video-chat-plugin-for-wordpress" class="hash-link" aria-label="Direct link to Is there a free video chat plugin for WordPress?" title="Direct link to Is there a free video chat plugin for WordPress?" translate="no">#</a></h3>
<p>Jitsi Meet is open source and free when you run your own Jitsi server, and some WordPress plugins connect to it. Hosted video services have free allowances. The free version of Better Messages covers private messages, group chats and chat rooms, and calls come with the WebSocket version.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-video-chat-slow-down-my-wordpress-site">Does video chat slow down my WordPress site?<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#does-video-chat-slow-down-my-wordpress-site" class="hash-link" aria-label="Direct link to Does video chat slow down my WordPress site?" title="Direct link to Does video chat slow down my WordPress site?" translate="no">#</a></h3>
<p>Not with Better Messages. Video and sound go between the browsers or through the media servers that come with the license, never through your WordPress server. Your site only decides who may join a call.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-visitors-without-an-account-use-video-chat">Can visitors without an account use video chat?<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#can-visitors-without-an-account-use-video-chat" class="hash-link" aria-label="Direct link to Can visitors without an account use video chat?" title="Direct link to Can visitors without an account use video chat?" translate="no">#</a></h3>
<p>Yes, when guest chat is on. A guest who is part of a conversation or a chat room can place and join calls, and the <strong>Guests</strong> entry in the call restrictions turns that off.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-many-people-can-join-a-video-chat">How many people can join a video chat?<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#how-many-people-can-join-a-video-chat" class="hash-link" aria-label="Direct link to How many people can join a video chat?" title="Direct link to How many people can join a video chat?" translate="no">#</a></h3>
<p>Two in a one-on-one call, up to 32 in a group video call and up to 50 in a group voice call.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-video-chat-work-on-phones">Does video chat work on phones?<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#does-video-chat-work-on-phones" class="hash-link" aria-label="Direct link to Does video chat work on phones?" title="Direct link to Does video chat work on phones?" translate="no">#</a></h3>
<p>Yes, in mobile browsers and in the iOS and Android apps you can build for your site with Better Messages.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-record-calls">Can I record calls?<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#can-i-record-calls" class="hash-link" aria-label="Direct link to Can I record calls?" title="Direct link to Can I record calls?" translate="no">#</a></h3>
<p>No. Better Messages does not record calls. If you need recordings, use a meeting tool for those sessions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/add-video-chat-to-wordpress/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-video-call-plugin/">WordPress video chat plugin</a> — calls in Better Messages in detail</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/websocket/video-calls/">Video calls</a> — one-on-one video calls</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/websocket/group-video-chat/">Group video chat</a> — up to 32 people, restrictions and encryption</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/shortcodes/better_messages_video_call_button/">Video call button shortcode</a> — a call button on any page</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">How to add a chat room to WordPress</a> — rooms with group calls</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Guides</category>
            <category>WebSocket</category>
            <category>Community</category>
        </item>
        <item>
            <title><![CDATA[Better Messages 3.0: The Redesign, the Appearance Tab, and Everything Else in the Release]]></title>
            <link>https://www.better-messages.com/blog/better-messages-3-0/</link>
            <guid>https://www.better-messages.com/blog/better-messages-3-0/</guid>
            <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Better Messages 3.0 redraws the whole messenger and replaces the WordPress Customizer with a full Appearance tab — palettes, separate light and dark values, typography, live preview. Plus location messages, video messages, per-conversation translation, an offline outbox, a device cache that survives updates, and a Mobile App page out of alpha that the free version can now see and set up.]]></description>
            <content:encoded><![CDATA[<p>Better Messages 3.0 is out. It is the largest release the plugin has had: every surface of the messenger was redrawn, the styling moved out of the WordPress Customizer into the plugin's own <strong>Appearance</strong> tab with a live preview, and a handful of features landed alongside it — location messages, video messages, per-conversation translation, an offline outbox, a device cache that no longer resets itself on every update, and a Mobile App page that left alpha and is now visible on the free version.</p>
<p>Your conversations, settings and integrations carry across untouched, including the colors and sizes you had set in the Customizer. Three things do need your attention on upgrade, and they are listed at the bottom in <a class="" href="https://www.better-messages.com/blog/better-messages-3-0/#updating-from-2x">Updating from 2.x</a>.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1265;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/messenger-09eb185-2000.webp" srcset="https://www.better-messages.com/assets/img/messenger-646404d-640.webp 640w, https://www.better-messages.com/assets/img/messenger-2ed5fae-980.webp 980w, https://www.better-messages.com/assets/img/messenger-8122fea-1320.webp 1320w, https://www.better-messages.com/assets/img/messenger-4ce51d2-1660.webp 1660w, https://www.better-messages.com/assets/img/messenger-09eb185-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="The redesigned Better Messages 3.0 messenger" width="2000" height="1265" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="redrawn-not-rearranged">Redrawn, not rearranged<a href="https://www.better-messages.com/blog/better-messages-3-0/#redrawn-not-rearranged" class="hash-link" aria-label="Direct link to Redrawn, not rearranged" title="Direct link to Redrawn, not rearranged" translate="no">#</a></h2>
<p>The conversations list, the conversation itself, mini chats, popups, pickers, the call surfaces — all of it is new. What did <strong>not</strong> change is where things are. The list is still on the left, the composer is still at the bottom, the same buttons do the same jobs. Members who used your site yesterday do not have to relearn it today. It simply looks like software from this decade.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="everything-visual-now-lives-on-one-tab">Everything visual now lives on one tab<a href="https://www.better-messages.com/blog/better-messages-3-0/#everything-visual-now-lives-on-one-tab" class="hash-link" aria-label="Direct link to Everything visual now lives on one tab" title="Direct link to Everything visual now lives on one tab" translate="no">#</a></h2>
<p>2.x styled the messenger through the WordPress Customizer, plus a scattering of controls across the settings page. 3.0 replaces both with a self-contained design system at <strong>Better Messages → Settings → Appearance</strong>, with a live preview next to the controls.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1171;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRoABAABXRUJQVlA4IHQBAAAwCACdASooABcAPjESiEKiISEYDVQAIAMEs4BnaETbIi/YG1oPjdcXFM8rSAfxOtedZvFDyEGr/4u8DNaQi4bDfClzElTqje0HAAD+/1S1SflatpHnzYOP8/d04dwnuJG2WzcLzbbamaNqglOiYkrGKZXYR3VgtafHXozAqBgRNEHY6mAjWzBrmKA8fquwyAJaH2rDXiUTlYMI8RaB7hE0D7N5eoxEq0gNlWc56ss2RTJm4Si2e2e/1bc+HSST7V4gygmWC+M0lhIAufCcBdOJJ1+J6/U8ypvvBRNCV1I7+XEklSIYavHowiKe/u2/1rW+7qCeg1Y30ASnTNNItYJhncToGDMExYivyBgs6TflBV6js5f8WF2vzMPxqJ7AKAM15fkc/YC5ioMqfDtYFpG5qX/Z6PcrUgX+BSZ5Cd3P7/Cy7RLm6tjOMz4dSGM90ulS9GJAeRRbwXLvnGSL1AExFg2TokEE+pd0F+4i+W3I1yGAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/appearance-f439aaf-2000.webp" srcset="https://www.better-messages.com/assets/img/appearance-b2f1385-640.webp 640w, https://www.better-messages.com/assets/img/appearance-0226c89-980.webp 980w, https://www.better-messages.com/assets/img/appearance-63412b6-1320.webp 1320w, https://www.better-messages.com/assets/img/appearance-1db2fe9-1660.webp 1660w, https://www.better-messages.com/assets/img/appearance-f439aaf-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="The Appearance tab in WP Admin, with colors on the left and a live messenger preview on the right" width="2000" height="1171" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Six sections:</p>
<table><thead><tr><th>Section</th><th>What it covers</th></tr></thead><tbody><tr><td><strong>Colors</strong></td><td>Every color, in a light set and a dark set</td></tr><tr><td><strong>Conversation</strong></td><td>Message design, which side messages sit on, avatars, timestamps, the conversation header</td></tr><tr><td><strong>Layout</strong></td><td>Corners, spacing, messenger size, the sidebar and which panels appear</td></tr><tr><td><strong>Typography</strong></td><td>Font family, monospace font, text sizes, line height</td></tr><tr><td><strong>Mini widgets</strong></td><td>The widget bar, its placement, corners and icons</td></tr><tr><td><strong>Mobile</strong></td><td>Full screen behavior, swipe-to-go-back, the floating chat button</td></tr></tbody></table>
<p>A few things are worth calling out:</p>
<ul>
<li class=""><strong>Palettes.</strong> Six of them — Graphite, Evergreen, Sandstone, Indigo, Ocean and Rose. Applying one repaints colors only. Your sizes and layout are left alone. Touch any individual color afterwards and the selector switches to <em>Custom</em>.</li>
<li class=""><strong>Light and dark are separate value sets</strong>, not one theme dimmed. Switch the preview between them and edit each.</li>
<li class=""><strong>Colors are scoped.</strong> Messenger, mini chats, mini widgets and mobile each have their own tab. The last three follow the messenger until you give them their own values.</li>
<li class=""><strong>Several fields are automatic.</strong> Text on the accent color, secondary text, field fills and subtle borders are blended from the colors you did set, until you override them.</li>
<li class=""><strong>Nothing is written until you press Save changes.</strong> <em>Discard</em> throws away what you were trying, <em>Reset design</em> puts everything back to what the plugin ships with, and a <em>Find an option</em> search across the top handles the case where you know what you want to change but not where it lives.</li>
</ul>
<p>Underneath, the whole thing is CSS custom properties — <code>--bm-color-*</code>, <code>--bm-radius-*</code>, sizes — which is also what makes the live preview honest rather than an approximation.</p>
<p>The design system is <strong>not</strong> WebSocket-only. It is there on the free version too.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="your-font-without-css">Your font, without CSS<a href="https://www.better-messages.com/blog/better-messages-3-0/#your-font-without-css" class="hash-link" aria-label="Direct link to Your font, without CSS" title="Direct link to Your font, without CSS" translate="no">#</a></h3>
<p><strong>Appearance → Typography</strong> picks the messenger's font: System, Classic sans-serif, Serif, Monospace, or <em>Inherit from the theme</em>. If your theme already loads a web font — Inter, Roboto, whatever it is — choose <strong>Custom</strong> and type its name.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-chat-room-can-now-look-different-from-the-rest-of-the-site">A chat room can now look different from the rest of the site<a href="https://www.better-messages.com/blog/better-messages-3-0/#a-chat-room-can-now-look-different-from-the-rest-of-the-site" class="hash-link" aria-label="Direct link to A chat room can now look different from the rest of the site" title="Direct link to A chat room can now look different from the rest of the site" translate="no">#</a></h3>
<p>Each chat room's editor gained its own <strong>Appearance</strong> section with the same two choices the site has — <strong>Message design</strong> (Bubbles, Outlined, No bubbles) and <strong>Message side</strong> (mine on the right, mine on the left, all on one side) — each starting at <em>Site default</em>. A support room can read as a flat log while the rest of the site keeps its bubbles, without a line of CSS.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-design-travels">The design travels<a href="https://www.better-messages.com/blog/better-messages-3-0/#the-design-travels" class="hash-link" aria-label="Direct link to The design travels" title="Direct link to The design travels" translate="no">#</a></h3>
<p>The Appearance tab exports what you built to a file and imports one back — including changes you have not saved yet, and telling you how many values the importing version had no place for. A design also rides along in the Tools settings export, so a look built on staging can be carried to production instead of rebuilt by hand.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-the-migration-carries-over">What the migration carries over<a href="https://www.better-messages.com/blog/better-messages-3-0/#what-the-migration-carries-over" class="hash-link" aria-label="Direct link to What the migration carries over" title="Direct link to What the migration carries over" translate="no">#</a></h3>
<p>On upgrade a migration reads your old Customizer values and writes them into the new tokens: colors, sizes, avatar radius, density, the side conversations list width. Sites that were on the old <strong>Standard</strong> template come out as <strong>No bubbles</strong> + <strong>All on one side</strong>, which is the same look expressed as design options.</p>
<p>No stored setting was dropped in the move and no default changed — the controls relocated into the Appearance tab, so it is bookmarked navigation paths that need updating rather than values. The handful of things that genuinely went away are listed under <a href="https://www.better-messages.com/blog/better-messages-3-0/#what-was-removed" class="">What was removed</a> below.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-can-carry-a-location">Messages can carry a location<a href="https://www.better-messages.com/blog/better-messages-3-0/#messages-can-carry-a-location" class="hash-link" aria-label="Direct link to Messages can carry a location" title="Direct link to Messages can carry a location" translate="no">#</a></h2>
<p>New <strong>Location</strong> tab, and a new addon behind it. It is off until you turn it on.</p>
<p>Sending is a map picker in the composer's attachment menu: search an address, pick from nearby places, or drop straight onto your current position. The received message renders as a map in the bubble with an <em>open in maps</em> action — OpenStreetMap, Google Maps or Apple Maps, your choice.</p>
<p>The providers are all configurable and all default to open services: OpenStreetMap tiles, Nominatim for address search, Overpass for nearby places. Point them at your own instances if you'd rather not depend on the public ones. There is a role restriction for who may send a location, and a <strong>precision</strong> control that rounds the coordinates before the message is stored, for sites that want the neighbourhood without the doorstep.</p>
<p>Works on both the free and the WebSocket version.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="video-messages">Video messages<a href="https://www.better-messages.com/blog/better-messages-3-0/#video-messages" class="hash-link" aria-label="Direct link to Video messages" title="Direct link to Video messages" translate="no">#</a></h2>
<p>The Voice Messages add-on became <strong>Voice and Video Messages 2.0</strong> and gained a camera button next to the microphone: record a short clip, round or square, and send it in the conversation. There is a new <strong>Video Messages</strong> settings tab for the shape, the maximum length, auto-deletion and which roles may send one.</p>
<p>That release has <a class="" href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/">its own post</a> — it also covers automatic transcription and talking to AI chat bots by voice.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-conversation-in-your-own-language">A conversation in your own language<a href="https://www.better-messages.com/blog/better-messages-3-0/#a-conversation-in-your-own-language" class="hash-link" aria-label="Direct link to A conversation in your own language" title="Direct link to A conversation in your own language" translate="no">#</a></h2>
<p>Translation is no longer limited to private conversations. The <strong>Translation</strong> tab now reaches group conversations, chat rooms and chat bot messages, and can be on by default. A member turns it on for a conversation and every message arrives in their language, with the original one tap away.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="nothing-is-lost-when-the-connection-is">Nothing is lost when the connection is<a href="https://www.better-messages.com/blog/better-messages-3-0/#nothing-is-lost-when-the-connection-is" class="hash-link" aria-label="Direct link to Nothing is lost when the connection is" title="Direct link to Nothing is lost when the connection is" translate="no">#</a></h2>
<p>Messages and files sent while offline are now kept on the device and sent by themselves once the connection is back — or cancelled before that, if the moment has passed. Previously they failed where they stood.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-devices-copy-survives-the-update">The device's copy survives the update<a href="https://www.better-messages.com/blog/better-messages-3-0/#the-devices-copy-survives-the-update" class="hash-link" aria-label="Direct link to The device's copy survives the update" title="Direct link to The device's copy survives the update" translate="no">#</a></h2>
<p>Conversations cached on a device are kept across plugin updates and settings changes, and the oldest are trimmed automatically once the copy grows large. Members get a <strong>Storage on this device</strong> section in their own settings showing what is held, with <em>Free up space</em> and <em>Clear local data</em>. Administrators get a matching tool under <strong>Tools</strong> that makes every browser and app drop its copy and download it again — for the times when a change should reach every device at once.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-mobile-app-is-out-of-alpha">The mobile app is out of alpha<a href="https://www.better-messages.com/blog/better-messages-3-0/#the-mobile-app-is-out-of-alpha" class="hash-link" aria-label="Direct link to The mobile app is out of alpha" title="Direct link to The mobile app is out of alpha" translate="no">#</a></h2>
<p>The Mobile App page was rebuilt, and the alpha label is gone with the rebuild. Three things about it are worth more than a line.</p>
<p><strong>The page is in the free version now — the builds are not.</strong> Everything short of the build itself is there without a licence: app name and artwork, the App Store Connect connection, App IDs and certificates, the Firebase files, the Android signing keystore, the store screenshots. All of it is stored and waiting if you upgrade later. Creating a build still needs the WebSocket version, and that is the only screen on the page that says so — no locked tabs, no notice beside a field.</p>
<p><strong>A readiness checklist tells you what is still missing, and why it matters.</strong> Each row names the thing and the consequence rather than a status code — a missing push key reads <em>"without it the app receives no notifications"</em> — so you find out before a build, not from a rejected one. Sharing a screen from the iOS app runs in its own broadcast extension, which needs its own App ID and an App Group, and the checklist tracks those rows too.</p>
<p><strong>Store screenshots are generated for you.</strong> Apple and Google both refuse a listing without screenshots at their exact pixel sizes, and the app you are submitting is the one thing you cannot photograph before it exists. So the page photographs the messenger instead: the real thing, laid out as the app lays it out, at the sizes the stores accept, across five scenes — inbox, conversation, group chat, voice call, group call. The last two need the WebSocket version, because the free build does not carry the code that draws a call, so a free site photographs the first three. The conversations in them are fixtures, not anything from your live site, which is also the only content safe to publish on a store page.</p>
<p>The installed app also has better manners about updates: it says when one needs a restart, or when a newer version is waiting in the App Store or Google Play, and it replaces or rolls back a broken update by itself instead of sitting on it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="smaller-things-you-will-notice-daily">Smaller things you will notice daily<a href="https://www.better-messages.com/blog/better-messages-3-0/#smaller-things-you-will-notice-daily" class="hash-link" aria-label="Direct link to Smaller things you will notice daily" title="Direct link to Smaller things you will notice daily" translate="no">#</a></h2>
<ul>
<li class=""><strong>Uploads say what they are doing</strong> — conversion, optimization, type checks, per file, before the message is sent.</li>
<li class=""><strong>A reply to a photo or file carries a thumbnail of it</strong>, so the reply makes sense on its own.</li>
<li class=""><strong>The attachments list can jump to the message a file was sent in.</strong></li>
<li class=""><strong>Answering a call on one device stops the others ringing.</strong> They used to ring on until the caller gave up.</li>
<li class=""><strong>Settings export to a file.</strong> Tools could already import settings. The export side is new, and both carry the design with them.</li>
</ul>
<p>3.0 also fixes a crafted icon SVG that could smuggle markup past the sanitizer and run script on the icon preview screen, and carries every fix from the 2.15 line up to 2.15.35 — including the two security fixes released in 2.15.34.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-was-removed">What was removed<a href="https://www.better-messages.com/blog/better-messages-3-0/#what-was-removed" class="hash-link" aria-label="Direct link to What was removed" title="Direct link to What was removed" translate="no">#</a></h2>
<ul>
<li class=""><strong>The WordPress Customizer integration</strong>, including <code>Better_Messages()-&gt;customize</code>. Snippets calling it stop working.</li>
<li class=""><strong>The Classic design</strong> template selector — the Standard look is now <em>No bubbles</em> + <em>All on one side</em> on the Appearance tab.</li>
<li class=""><strong>The follow-the-device color scheme</strong> option. The messenger is light or dark, because the rest of your page does not follow the visitor's device setting either.</li>
<li class=""><strong>Settings → Mobile</strong>, folded into Appearance → Mobile.</li>
<li class=""><strong>Mini Widgets → Layout</strong>, folded into Appearance → Mini widgets. The tab itself is now called <strong>Widgets</strong>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="updating-from-2x">Updating from 2.x<a href="https://www.better-messages.com/blog/better-messages-3-0/#updating-from-2x" class="hash-link" aria-label="Direct link to Updating from 2.x" title="Direct link to Updating from 2.x" translate="no">#</a></h2>
<p>The update is in place — no export, no migration step to run by hand. Three things to check afterwards:</p>
<ol>
<li class=""><strong>Custom CSS needs rewriting.</strong> Every messenger class is now prefixed <code>bm-</code>, replacing <code>bpbm-</code> and <code>bp-messages-</code>. Rules written against the old names do nothing.</li>
<li class=""><strong>Update your caching or optimisation plugin's exclusion lists.</strong> The script and style files were renamed: <code>bp-messages*</code> → <code>better-messages*</code>, and <code>bpbm-worker.js</code> → <code>bm-worker.js</code>. An exclusion list still naming the old files stops protecting the new ones.</li>
<li class=""><strong>Customizer snippets stop working.</strong> Colors and sizes live on the Appearance tab now. The values themselves are migrated for you.</li>
</ol>
<p>If something looks wrong after updating, please tell us rather than living with it. A redesign this size can behave differently on a theme or plugin combination we have not seen — <a href="https://www.wordplus.org/contact/" target="_blank" rel="noopener noreferrer" class="">contact support</a>, or open a topic on the <a href="https://wordpress.org/support/plugin/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">support forum</a> if you are on the free version.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-to-look-next">Where to look next<a href="https://www.better-messages.com/blog/better-messages-3-0/#where-to-look-next" class="hash-link" aria-label="Direct link to Where to look next" title="Direct link to Where to look next" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/easy-customization/">Easy customization</a> — the Appearance tab in full</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/modern-design/">Modern design</a> — message design, alignment and messenger size</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/addons/voice-messages/">Voice and video messages</a> — the add-on's own documentation</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/category/mobile-app/">Mobile app</a> — the iOS and Android build guides</li>
<li class=""><a class="" href="https://www.better-messages.com/changelog/">Changelog</a> — the full version-by-version history</li>
<li class=""><a class="" href="https://www.better-messages.com/roadmap/">Roadmap</a> — what shipped, and what is next</li>
</ul>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Releases</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[Voice and Video Messages 2.0: Round Video Notes, Automatic Transcription, and Bots That Listen]]></title>
            <link>https://www.better-messages.com/blog/voice-and-video-messages-2-0/</link>
            <guid>https://www.better-messages.com/blog/voice-and-video-messages-2-0/</guid>
            <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Better Messages voice add-on becomes Voice and Video Messages 2.0 — record short round or square video messages from the composer, transcribe voice messages the moment they are sent, and talk to AI chat bots instead of typing.]]></description>
            <content:encoded><![CDATA[<p>The voice add-on has a new name and a new version. <strong>Better Messages – Voice and Video Messages 2.0</strong> keeps everything the voice recorder did and adds a camera button beside the microphone: short video messages, recorded in the composer, sent like any other message.</p>
<p>Alongside it, <a class="" href="https://www.better-messages.com/blog/better-messages-3-0/">Better Messages 3.0</a> picked up two things on the voice side that this post is the right place for — voice messages that transcribe themselves the moment they are sent, and AI chat bots you can talk to instead of typing.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1024px;aspect-ratio:1024 / 705;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/conversation-85b3b10-1024.webp" srcset="https://www.better-messages.com/assets/img/conversation-d528e3f-640.webp 640w, https://www.better-messages.com/assets/img/conversation-79a59c6-980.webp 980w, https://www.better-messages.com/assets/img/conversation-85b3b10-1024.webp 1024w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Voice messages and a round video message in a Better Messages conversation" width="1024" height="705" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="recording-a-video-message">Recording a video message<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#recording-a-video-message" class="hash-link" aria-label="Direct link to Recording a video message" title="Direct link to Recording a video message" translate="no">#</a></h2>
<p>While the composer is empty, a camera button sits next to the microphone. Press it and a live preview opens above the composer, in whichever shape the site is set to use, and recording starts as soon as the camera is ready — there is no second press to hunt for. A progress ring fills around the rim toward the maximum length, and recording stops on its own when it gets there.</p>
<p>Stopping turns that same circle into a replay preview with <strong>send</strong> and <strong>discard</strong>, so nothing goes out that the sender has not seen first. Camera and microphone can be picked from dropdowns on the recorder, and the choice is remembered for next time.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="watching-one">Watching one<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#watching-one" class="hash-link" aria-label="Direct link to Watching one" title="Direct link to Watching one" translate="no">#</a></h2>
<p>Received video messages play in place. Click to play or pause, watch the progress travel around the rim, drag around that rim to scrub. Scroll away or switch conversation and playback keeps going as audio in the player bar at the top of the messenger — the same bar voice messages use, which in 3.0 also carries a playback speed control for anyone who listens to long notes at 1.5×.</p>
<p>It works the same on phones, with both buttons in the same place in the composer.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:355px;aspect-ratio:355 / 768;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRrwFAABXRUJQVlA4ILAFAABwGgCdASooAFcAPjEUiEKiISEYCc44IAMEoAzi/LjyugpATqTYr0C+oDbRfrl6gP119cb0e+gB/iP7d6M3sRehL+wHppeyl+3v7O+05d5H3jwn8gvtnLdx1zlfyv5SetHejtZ/33elOLf1r/XeGJqBXVXpJ3g0xP/H+g9ncepP+97gn6xf9LgdP2VJNk4wS4e5PvN3AZkt+Sie1dSz4VCohKujpIMU/6KN+sgXsjGZI6C8zl+w/JPNfIv+u+ITBfp/JYDaIN/M5hqDZlsZt9+BYbLOojStV6e43oUAAP7/9OM3dZ9Aqx3ZpQme+THo+j7DR7ugd0Mf8BbmgAbJT/PUS23zLEyfUMErywQzL0rtc7y6qXL2Y4GfMQDc/77+VkO7A/paJEHsFzv40370AfVC7a/5j/vqV/qHn+Xm7wYfB7r9eoszMsAEwW6M575xa5bD0u0UHkrhIJOePQ3xtDr4ryEQ/zvNKVXuse/zMvY+0OGNfi5WUT4yq9QO8twOaZQsaOKYWLW1UQ4Z4QmLvIyLR51A1SmLRH9Kv2Q6JYzrsFH1A5ffJJn9DqQOpK2Bb28bUlmtP/K+DYXshLBi7pWgCNNw/TO/e+QsoqCjL/C276kyWcPJc/GJU2DvUw0g+qX/qRys6+0HZ6llhQCX3bwRuIS4zc1hp01lUHn7PxUzFsYw+sH696wSGBQtsevrMsxBEb7tA7UiCJcQhfLuj5AmlrfbORaHy/lOX6gxpJMT9AAX13hAHVbsyQ+1/RYYlD1ACpNSESrpHx3ZQBq+x6t+7D/cyxRAUC8LT0ugynVVbaiRGjSXD7AnazEdAXl93aUJFNZh3KE41udT/QpEN+Q9jjruPu83vVj4YNuwJK22/+mrd+cRibyUuzUduNXB3az8HnV9J/ljv95EpQuRvyO6ytk4LTqAm7kkZ/58Nct1e+z3SaNwKjFi/xd1YzrTpHAmd3W2uaRGEIxbUu+jirQgtU432NiBNh/8GSPZVyNCIjJKzOQ6cghHN+DCYRBp2ZWQmpsg5x1aeNgvmfUFcU48LrtfB/BzShifsg8yEPPRXMxIddP7yiY2X8YB2Ynu7+TYkhI3eu0jD/2BP/NFzo300eceSqLyRzH/few92giY0ciGJjt5n/g1709kHaixDqF9EjyoC4TLyRjUnD7cJxPJB+Frcl/24Yj/8aX7w/Fdcj6agOvI6PrqutcrJ86OCBlb58sHteXDfdfm628lqGCAgLOyJ0SWKxMiblDojBpgjf0FyzUoj/A1+vCOuwLlWNBl4ZIV6XiD/YSJFjaEvO9OZKVjstuj72w4ITDmFpYuTWa1M2Bo0VFPcq1w1/bkK5puKwB09hj08BfXkBrZq/rTtQDfq2+uc0B3frCqWd/Jtm8h9KuR9NaSihzuKgPGTAqr6L+DwXQKzRuDNQFpbwQypa0g/7q0cfnQe0AmX/SSivoLpoMtMM/z8edszeB2gapfQMol7av6G8uetddPbVBcBG8ueZMp6uc02B+FcHtlyuv7HA3M8DOZtGglAW8lQI832VsOp46mTpw43XKGbnoRAbR69LMsMPd9djq/l2jBH6+27snMKmRUVYOdBk/O6prV5b5HMygUEjaqCYCwNg9Qg4YEKAbMu3UvqY2pnZ+pMthb44VRVl4e3ubOlaF13tgbxySG6eTgs4X/5M0r8tL03sknt8eJgqHAk7IeW1g6wwKYLU27K37I2knj1IA4+av7+TYvO5sMQkX//k76N+oC+pDJT2rfnQhlutWXAezA3G1bUofR9whNEl8PUTizNmaaSfW+xM4Aw8MdsP2QA8yKc/F0+wvCrRqiTt7x0AQAYnTvwICGp8/iq0B/8R8FAhQAsGU7P8aRYdmhXUd0pRfJvqiJpvvxyMTLWr186ePUzPfv0eqJoPk1SL6dXqjEvHGgP2gKFiIBAsTbkJ5RoQAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/mobile-00b8819-355.webp" srcset="https://www.better-messages.com/assets/img/mobile-00b8819-355.webp 355w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Voice and video messages in the Better Messages mobile messenger" width="355" height="768" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="settings">Settings<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#settings" class="hash-link" aria-label="Direct link to Settings" title="Direct link to Settings" translate="no">#</a></h2>
<p>The add-on now has two settings tabs, one per message type. The new one is <strong>Better Messages → Settings → Video Messages</strong>.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1024px;aspect-ratio:1024 / 711;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRkQBAABXRUJQVlA4IDgBAACwBgCdASooABwAPjESiEKiISEYDVQAIAMEtIBlELah701pp6bzNN5CTZEMdeDK/YjoOSJ0jX9j7bJEF9ZPIAD+/v8PSyNK//lAfEPxX4X+xZdYipCj/5eyxDHz9foTurepGoOGpNwcYolXzGvn2M4itP/+7QZYQ+kc/s93DE1NLnbNyaxps+W99ubxkcne2VrSvGWgqu2YXh+KGlCPVPwlJtmH4YM6POqKLNiqlnAVcJOVkq1h58gHaoE+c2pAhjGuVNbiObFsP/FmfGTZAv9VPJ1fTac2KjrZeZtJTh9dLP63kiT4LrnA6J24D4CvUjOjRh2vBPbo676F37cXiiDg1Hyy8nznRgsKEss2BRXBpdK7EoV4RXuFMJimoi1kaWliLefI0t5GVoawO7wJGvYORz/DR+gAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/settings-video-b6fe20f-1024.webp" srcset="https://www.better-messages.com/assets/img/settings-video-37f4a34-640.webp 640w, https://www.better-messages.com/assets/img/settings-video-de57a17-980.webp 980w, https://www.better-messages.com/assets/img/settings-video-b6fe20f-1024.webp 1024w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="The Video Messages settings tab in WP Admin" width="1024" height="711" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<table><thead><tr><th>Setting</th><th>What it does</th><th>Default</th></tr></thead><tbody><tr><td><strong>Video shape</strong></td><td>Round, like a Telegram video note, or square with rounded corners</td><td>Round</td></tr><tr><td><strong>Max duration</strong></td><td>Recording auto-stops at the limit — <code>0</code> means no limit</td><td>60 seconds</td></tr><tr><td><strong>Delete after</strong></td><td>Automatically delete video messages older than N days — <code>0</code> keeps them</td><td>0</td></tr><tr><td><strong>Restricted roles</strong></td><td>Roles that cannot send video messages</td><td>none</td></tr></tbody></table>
<p>Voice messages keep their own tab with the same shape of controls, set independently — a site can allow one-minute video notes and unlimited voice, or the reverse.</p>
<p>Recording honors the same role restrictions and thread permissions as everything else: someone who cannot write in a conversation cannot record into it either.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="voice-messages-that-write-themselves-down">Voice messages that write themselves down<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#voice-messages-that-write-themselves-down" class="hash-link" aria-label="Direct link to Voice messages that write themselves down" title="Direct link to Voice messages that write themselves down" translate="no">#</a></h2>
<p>Transcription is not new, but it used to wait for a tap. 3.0 adds <strong>Auto Transcription</strong> on the <strong>Voice Messages</strong> tab: switch it on and every voice message is transcribed the moment it is sent, with the bubble showing the transcription running instead of asking anyone to request it.</p>
<p>Transcription runs through <a class="" href="https://www.better-messages.com/docs/websocket/cloud-ai/">Better Messages Cloud AI</a> or your own OpenAI key, and you can pin the language and pass a prompt for names and jargon the model would otherwise mangle.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bots-that-listen">Bots that listen<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#bots-that-listen" class="hash-link" aria-label="Direct link to Bots that listen" title="Direct link to Bots that listen" translate="no">#</a></h2>
<p>AI chat bots can now be spoken to. Send a voice message to a bot and it answers what was actually said — whatever model the bot runs on, not only the audio-capable ones, because the transcription happens before the model ever sees it.</p>
<p>Each bot has its own <strong>Voice Input</strong> switch in its editor. The one prerequisite is a transcription provider configured on the Voice Messages tab. Without it the switch stays disabled and says so.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="requirements-and-compatibility">Requirements and compatibility<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#requirements-and-compatibility" class="hash-link" aria-label="Direct link to Requirements and compatibility" title="Direct link to Requirements and compatibility" translate="no">#</a></h2>
<ul>
<li class=""><strong>Video messages need Better Messages 3.0.</strong> On older versions the add-on offers the microphone alone and nothing else changes — voice messages keep working on 2.x.</li>
<li class=""><strong>Both work on the free and the WebSocket version.</strong> Neither recorder is WebSocket-gated.</li>
<li class=""><strong>Files stay on your own hosting.</strong> Voice messages are compact Opus audio. Nothing is uploaded to a third-party service unless you turn transcription on.</li>
<li class=""><strong>Voice messages are no longer listed by the WordPress media API.</strong> The add-on now marks its uploads as Better Messages attachments, which is what the core filter excludes, so a private voice note does not surface in the media library or in anything reading <code>/wp/v2/media</code>. Administrators still see them.</li>
<li class="">Works in private conversations, <a class="" href="https://www.better-messages.com/docs/faq/group-threads/">group conversations</a> and <a class="" href="https://www.better-messages.com/docs/features/chat-rooms/">chat rooms</a> alike.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-to-look-next">Where to look next<a href="https://www.better-messages.com/blog/voice-and-video-messages-2-0/#where-to-look-next" class="hash-link" aria-label="Direct link to Where to look next" title="Direct link to Where to look next" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/addons/voice-messages/">Voice and video messages documentation</a> — settings, transcription, playback in full</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/better-messages-3-0/">Better Messages 3.0</a> — the release this add-on version was built against</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/ai-chat-bots/">AI chat bots</a> — what a bot can do once it can hear you</li>
<li class=""><a class="" href="https://www.better-messages.com/changelog/">Changelog</a> — the full version-by-version history</li>
</ul>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Releases</category>
            <category>Voice messages</category>
            <category>AI</category>
        </item>
        <item>
            <title><![CDATA[WordPress Monetized Messaging: Build a Paid DM Platform with Per-Message Billing]]></title>
            <link>https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/</link>
            <guid>https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/</guid>
            <pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Build a monetized DM platform on WordPress — charge per message, per thread, per call minute, with per-role pricing and content moderation built in.]]></description>
            <content:encoded><![CDATA[<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1609px;aspect-ratio:1609 / 977;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/hero-62d59d0-1609.webp" srcset="https://www.better-messages.com/assets/img/hero-04a7d90-640.webp 640w, https://www.better-messages.com/assets/img/hero-53e61fc-980.webp 980w, https://www.better-messages.com/assets/img/hero-7770902-1320.webp 1320w, https://www.better-messages.com/assets/img/hero-62d59d0-1609.webp 1609w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="WordPress monetized messaging platform — per-message billing, per-role pricing, and balance display inside the messenger" width="1609" height="977" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<p>A monetized messaging platform sells the conversation itself. Visitors browse profiles for free, but <strong>sending a direct message costs points</strong> — and so does opening a new thread or placing a call. The business model is paid DMs: the platform charges per interaction, the recipient (a creator, coach, or expert) earns a share, and the user tops up a balance to keep talking. Better Messages plus a points engine (GamiPress or MyCRED) implements this on WordPress — per-message billing, per-role pricing, per-call rates, with the balance shown inside the chat.</p>
<p>This guide covers the building blocks: per-message pricing, per-call billing, role-gated tiers, and the moderation layer that keeps spam and contact-sharing from draining revenue.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-monetized-messaging-stack">The monetized messaging stack<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#the-monetized-messaging-stack" class="hash-link" aria-label="Direct link to The monetized messaging stack" title="Direct link to The monetized messaging stack" translate="no">#</a></h2>
<table><thead><tr><th>Layer</th><th>Plugin / setting</th></tr></thead><tbody><tr><td>User accounts</td><td>WordPress core</td></tr><tr><td>Points engine</td><td><strong>GamiPress</strong> or <strong>MyCRED</strong></td></tr><tr><td>Messaging</td><td><strong>Better Messages</strong> (free) + <strong>WebSocket version</strong> for calls + push</td></tr><tr><td>Per-message billing</td><td><code>GamiPressNewMessageCharge</code> / <code>MyCredNewMessageCharge</code> per WordPress role</td></tr><tr><td>Per-new-thread billing</td><td><code>GamiPressNewThreadCharge</code> / <code>MyCredNewThreadCharge</code></td></tr><tr><td>Per-call billing</td><td><code>GamiPressCallPricing</code> / <code>MyCredCallPricing</code> — per call minute, one-on-one calls only</td></tr><tr><td>Spam / contact-sharing filter</td><td>Better Messages AI Content Moderation (23 categories)</td></tr><tr><td>Top-up checkout</td><td>WooCommerce + points-engine top-up product (or any custom URL)</td></tr><tr><td>Mobile app</td><td>Better Messages iOS + Android</td></tr></tbody></table>
<p>A self-hosted DM platform on one WordPress install — no SaaS fee, no per-seat licensing, no platform cut.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="per-message-pricing-setup">Per-message pricing setup<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#per-message-pricing-setup" class="hash-link" aria-label="Direct link to Per-message pricing setup" title="Direct link to Per-message pricing setup" translate="no">#</a></h2>
<p>The pricing primitive lives at <strong>Better Messages → Settings → Integrations → Points Systems</strong>. Pick GamiPress or MyCRED as the provider, then choose the point type to charge against. Both engines share the same UI and per-role configuration.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 2343;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRsgBAABXRUJQVlA4ILwBAACwBwCdASooAC8APjEUiEKiISEY6zQAIAMEs5OACn6UNvKAifpgAISmMpdM7NYU7FZ9+k5t4HBfAoSKZjiIJEiEtYsLZHkAAP7/bH3ELlM/j+l5MjiMzBToxmDcg561smdxVncS3FXwU7la0DZuJVGD23N9wioDYbe14zpW40B09aHLrf+iuFwljK1JiH7v9FwUrCVMDg09EyzPiEn/RQ5G+88Sk4NLOEAnNb5j6n9lQ/z//6LIBBV1Ghw7yMdNLBcbuaxaOWFkZucPzVjmOF35c/sLwOb33vjNWf15xSnngFvUsRgBi1v/Zu2ALi6UfOCP9F9oVPv/Jef7b/mOr1+/fTG4xrBj6yVnY7JNJuqPT0M12DEsoGO/G6GOp434ZybQHGAlvrrlNM+YPL/pLSNmyjG/GupR27SwgvsQd9MHAAL8zvXL8OczR+c0e1tlU/9Ye8hOdkF/Y18tUbXTKqEYs15vP/dv5Xu/z7v/A0RWdu3DfL8/GswchLK6AGcO7LP2RMs855Qpg57Bq3AOTNCZd3Y7OKaZGL/JoTFmi/TVzXlZotJlWYmSsz1VUnAuumhhIbnvFwJDcHbAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/01-gamipress-per-message-pricing-f4d864c-2000.webp" srcset="https://www.better-messages.com/assets/img/01-gamipress-per-message-pricing-090a0d2-640.webp 640w, https://www.better-messages.com/assets/img/01-gamipress-per-message-pricing-0bd8b99-980.webp 980w, https://www.better-messages.com/assets/img/01-gamipress-per-message-pricing-e915791-1320.webp 1320w, https://www.better-messages.com/assets/img/01-gamipress-per-message-pricing-91bba97-1660.webp 1660w, https://www.better-messages.com/assets/img/01-gamipress-per-message-pricing-f4d864c-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="GamiPress per-message pricing — per-role rates for messages, new threads, and calls" width="2000" height="2343" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The pricing matrix has <strong>three sections</strong> (New Message Pricing, New Conversation Pricing, Private Call Pricing) and a <strong>Conversation Types</strong> picker — Private Conversations, Chat Rooms, and one entry per community plugin you run (BuddyPress, PeepSo, Ultimate Member, FluentCommunity Group Chats) — that combine. New Conversation Pricing is charged <em>in addition</em> to the message price, not instead of it. A typical paid-DM configuration: <strong>10 points per message in private threads, 0 in groups, 25 to open a new thread, 5 per call minute</strong>. Group and chat-room chatter stays free, DMs are the monetized surface.</p>
<p>The charge is gated by category — set "private threads only" under <code>NewMessageChargeTypes</code> and groups stay free regardless of role. The <code>charge_for_message</code> action fires after delivery, deducting points from the sender. If a message fails moderation or validation, no points are deducted.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 2343;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRr4BAABXRUJQVlA4ILIBAABQCACdASooAC8APjEUiEKiISEY6zQAIAMEs4BoEgnHlARPcxQEJTGFXaoCDxat8/KPH2+/dkm3g8T8gOvV4blIZGdOm5bA54VEmFAA/v9sfcQuUz+P/QFppYt9DBJ2drvDpKUt6aMfoog/DaGR/TjUO/5D7q92d17oU5W7uHAwZ7fPVXvMv7ABWVbVxcXm+9k1iG0gPfwb1wyVLKDS/cZdR/V1rrzVnRpqoBCoAh8De/zjIP95/+iyAQVhlnr8en28XA0GQTJ2uLsaL36T+BbbiMDxLf85JIBeu974nF+kLx0R768o9kps8X//7N2wBcXSj5wR/rBlJsn/kvP9t/zHV6/fvpjcY1ie99rzvkrh+YUzyfCqdd8iFsGPKKJRzGLnCzTwFu2fquWJCOINPG4/qwJiqI9hHgBfqeBDB43GcedfXDRHnf6w95Cc7IL+xr5So2umVUJuyNaPl+wurMTp01waGQZ+5gYH0H0R3nZ/FsZcEDHU3TniiDSFZDWtGkJHKGQMg47OKaY+N7+q1d2YaSSGwmb7swz43H5MsR8eZQeBAXtkHbL6705Ia6cEbk4AAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/02-mycred-per-message-pricing-391409b-2000.webp" srcset="https://www.better-messages.com/assets/img/02-mycred-per-message-pricing-953afb1-640.webp 640w, https://www.better-messages.com/assets/img/02-mycred-per-message-pricing-f5d92d5-980.webp 980w, https://www.better-messages.com/assets/img/02-mycred-per-message-pricing-e9bbeee-1320.webp 1320w, https://www.better-messages.com/assets/img/02-mycred-per-message-pricing-84dcbc2-1660.webp 1660w, https://www.better-messages.com/assets/img/02-mycred-per-message-pricing-391409b-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="MyCRED per-message pricing — same UI on the alternate points engine" width="2000" height="2343" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Every charge type has a row per WordPress user role. The pattern that converts: <strong>free users pay the headline rate, paid-tier members pay zero or a discounted rate, founding members pay nothing</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="per-call-billing-setup">Per-call billing setup<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#per-call-billing-setup" class="hash-link" aria-label="Direct link to Per-call billing setup" title="Direct link to Per-call billing setup" translate="no">#</a></h2>
<p>Voice and video calls have their own pricing row. The <code>GamiPressCallPricing</code> / <code>MyCredCallPricing</code> setting (per role) sets the rate <strong>per call minute</strong> — not per call. It applies to one-on-one calls. Group calls are not charged.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1082;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRu4AAABXRUJQVlA4IOIAAACwBQCdASooABYAPjEYikOiIaEStAAgAwS0gAKKRHDZLMDiLLd9anU9n8FpQtGQ/BW6GLCFtAAA/v9seUc3KYD+Gpa8eNkYSzoG2gz/bIX/wArMB8gWow80+lTVyR9xdp125X09OXR8gJsUU96SbjPSBT0hCeca5UpD6yP6spnYMeL5ODdfF4f0QX4mTYgxVo4FwJ27LZXnPgBl+5pLZdYJigd/tYdbj7CQACD5Zy/7I44xh5mL4Zou1tjc0t6yXNkgE1U17VR0J/NO723vDCXZUgoDFvvBB2ZGAlV7BeJuDgAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/03-per-call-pricing-04b87c5-2000.webp" srcset="https://www.better-messages.com/assets/img/03-per-call-pricing-5f14569-640.webp 640w, https://www.better-messages.com/assets/img/03-per-call-pricing-226882f-980.webp 980w, https://www.better-messages.com/assets/img/03-per-call-pricing-fa2a494-1320.webp 1320w, https://www.better-messages.com/assets/img/03-per-call-pricing-7344de2-1660.webp 1660w, https://www.better-messages.com/assets/img/03-per-call-pricing-04b87c5-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Per-call pricing settings — voice and video billed per minute, with per-role rates" width="2000" height="1082" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>How the per-minute billing works:</p>
<ol>
<li class="">A user starts a call. The <code>check_call_balance</code> filter runs first — if the caller can't afford one minute, the call is blocked with the <code>CallPricingStartMessage</code>.</li>
<li class="">The call connects. Better Messages tracks confirmed call-traffic minutes in a message-meta counter. <code>charge_call_usage</code> fires once per minute and deducts the configured rate.</li>
<li class="">If mid-call the balance drops below one more minute, the call ends gracefully with the <code>CallPricingEndMessage</code>.</li>
</ol>
<p>Billing covers <strong>one-on-one calls only</strong> — the setting is named <em>Private Call Pricing</em>, and the charging hooks fire from the one-on-one call addon, not the group one. Group calls are free however long they run, so a paid expert-AMA cannot be metered per attendee-minute this way. Gate the room by role and sell access to the role instead.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="role-gated-tiers">Role-gated tiers<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#role-gated-tiers" class="hash-link" aria-label="Direct link to Role-gated tiers" title="Direct link to Role-gated tiers" translate="no">#</a></h2>
<p>Monetized DM platforms usually run a <strong>tiered subscription model</strong> on top of per-message pricing — free users see profiles, paid tiers unlock the ability to send DMs at all. Better Messages handles tier gating with the <code>restrictRoleBlock</code> setting at <strong>Settings → Restrictions</strong>.</p>
<p>A common shape for a creator-economy DM platform:</p>
<table><thead><tr><th>Role</th><th>Can send DMs</th><th>Per-message rate</th><th>Per-call rate</th></tr></thead><tbody><tr><td>Subscriber (free)</td><td>No</td><td>n/a</td><td>n/a</td></tr><tr><td>Member (paid tier 1)</td><td>Yes</td><td>10 points</td><td>5 points/min</td></tr><tr><td>Premium (paid tier 2)</td><td>Yes</td><td>5 points</td><td>2 points/min</td></tr><tr><td>VIP (paid tier 3)</td><td>Yes</td><td>0 points</td><td>0 points/min</td></tr><tr><td>Creator (recipient)</td><td>Yes (replies only)</td><td>n/a</td><td>n/a</td></tr></tbody></table>
<p>The free Subscriber role is added to <code>restrictRoleBlock</code> so the Send Message button is hidden for it. Paid tiers progressively reduce the per-message cost via the per-role configuration. Combine with a membership plugin (MemberPress, Paid Memberships Pro, Restrict Content Pro) for the subscription side — it assigns the WordPress role on payment, Better Messages reads it on every send.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="spam-scam-and-contact-sharing-moderation">Spam, scam, and contact-sharing moderation<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#spam-scam-and-contact-sharing-moderation" class="hash-link" aria-label="Direct link to Spam, scam, and contact-sharing moderation" title="Direct link to Spam, scam, and contact-sharing moderation" translate="no">#</a></h2>
<p>A monetized DM platform attracts users trying to extract value without paying — <strong>spam DMs</strong> from bot accounts, <strong>scam / phishing</strong> links to high-value users, and <strong>contact sharing</strong> where users send phone numbers or social handles to continue off-platform.</p>
<p>Better Messages <strong>AI Content Moderation</strong> covers all three. The Cloud AI provider (included with the WebSocket version) covers <strong>23 content categories</strong> — the OpenAI base set plus extended categories built for monetized platforms: <strong>Spam</strong>, <strong>Scam / Phishing</strong>, <strong>Contact Sharing</strong>, <strong>Doxxing</strong>, <strong>Commercial Promotion</strong>, <strong>Impersonation</strong>, <strong>Profanity</strong>, <strong>Threats</strong>, <strong>Drugs / Alcohol</strong>, and <strong>Minor Safety</strong>.</p>
<p>Two action modes per category — <strong>Flag Only</strong> (delivers, marked for review) and <strong>Hold for Review</strong> (held until a moderator approves). For a monetized DM platform, the high-leverage configuration is <strong>Contact Sharing → Hold for Review</strong> plus <strong>Spam → Flag Only</strong>.</p>
<p>On top of categories, <strong>Custom Rules</strong> let you define platform-specific rules in plain text:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Block any attempt to move conversation to email, SMS, Telegram, WhatsApp, Discord, or any external chat</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Block sharing of phone numbers, emails, social handles, or external profile links</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Block solicitation of payments outside the platform</span><br></span></code></pre></div></div>
<p>The Cloud AI evaluates each rule against the message in context — it sees surrounding messages, not just one — useful for catching multi-message contact-sharing where a user splits a phone number across two sends.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="balance-display">Balance display<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#balance-display" class="hash-link" aria-label="Direct link to Balance display" title="Direct link to Balance display" translate="no">#</a></h2>
<p>The <strong>Balance Display</strong> section carries six independent toggles, one per placement: <strong>In Header</strong>, <strong>Above Conversations List</strong>, <strong>Below Conversations List</strong>, <strong>User Menu</strong>, <strong>User Menu Popup</strong> and <strong>Reply Area</strong>.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRqIBAABXRUJQVlA4IJYBAADQCACdASooAB0APjESh0KiIQ1VAwAQAYJZQC/RiAN4m/bH9YPaZpXEwDSd4KvMVTKzF4qhMcVEN17d6JTDwKvS/S0sVTQKqUrk3seTMhgAAP7//g5MOCUpXtaatHfFOV4rCXksgsynXf/8Q0H/gDInMAOy1Xqcu6Hc4R5MxbR1FLheYYzivyzjnUZ6dp1H/d9i/IDf9rAHrsic1/axegu8wfhjXEcWaXvMoG5KI3oOdmFeuGBtLFWclRg9Ps4RSRdwPY9e06mfYnFWOMbp1QBzCyyEvB6Lm7gAaUVnU8lduv9M8lJZDcuf/7ENT/ahtvpn/RyZ/iuX8AZ9H/SHzoH/u8KWZjv0zQt9kss3iZfyXne8N/HHJy+6yUn4GN8fbn3mzFA8VNutzviJ0Xv7O/rNM8ULq7L/9uAf9fP8ivvHLO752HAQNa2a7qWIxiwyjtxkXrj/iENi2LdZvoa5wGHB80Q6bL4YCUFtVQGBzdhTSQuzQ0mUTcFZdiHqACchiJ1aHQyapckBWYCwQeOKiZQG7JCkAAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/04-user-balance-display-5bf9567-2000.webp" srcset="https://www.better-messages.com/assets/img/04-user-balance-display-7c2614c-640.webp 640w, https://www.better-messages.com/assets/img/04-user-balance-display-d98015d-980.webp 980w, https://www.better-messages.com/assets/img/04-user-balance-display-f16cbb1-1320.webp 1320w, https://www.better-messages.com/assets/img/04-user-balance-display-0f8dd21-1660.webp 1660w, https://www.better-messages.com/assets/img/04-user-balance-display-5bf9567-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="User balance displayed inline in the messenger header and reply form" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Most platforms enable <strong>In Header</strong> + <strong>Reply Area</strong>. The balance number links to the <strong>Balance Page URL</strong> you set below it — typically a WooCommerce product, a custom checkout, or a Stripe page. When a send is blocked, the message the user sees is the one in your points plugin's own setting: <code>myCredNewMessageChargeMessage</code> or <code>GamiPressNewMessageChargeMessage</code>, both defaulting to <em>"Not enough points to send a new message."</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version">Free vs WebSocket version<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#free-vs-websocket-version" class="hash-link" aria-label="Direct link to Free vs WebSocket version" title="Direct link to Free vs WebSocket version" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Per-message billing (GamiPress / MyCRED)</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Per-new-thread billing</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Per-role pricing matrix</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Balance display in messenger</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Role-gated send</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time message delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Voice / video calls (1-on-1 + group up to 32/50)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Per-call-minute billing</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>AI content moderation (23 categories, Cloud AI)</td><td style="text-align:center">OpenAI key</td><td style="text-align:center">included with license</td></tr><tr><td>End-to-end encryption (AES-256-GCM, per thread)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications (desktop + iOS PWA)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Native mobile app (iOS / Android)</td><td style="text-align:center">set up only</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For a monetized DM platform, the WebSocket version is where the model actually pays off — per-call billing is WebSocket-only, the Cloud AI moderation that catches spam and contact-sharing is included with the license, and web push notifications keep users coming back. The free version covers the basics. A real revenue platform leans on call billing, real-time delivery, and built-in moderation.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-charge-different-rates-for-different-user-roles">Can I charge different rates for different user roles?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#can-i-charge-different-rates-for-different-user-roles" class="hash-link" aria-label="Direct link to Can I charge different rates for different user roles?" title="Direct link to Can I charge different rates for different user roles?" translate="no">#</a></h3>
<p>Yes — every charge type (new message, new thread, call) has a row per WordPress role. Free users pay the headline rate. Paid-tier members pay discounted rates. VIPs can be set to 0. The role lookup happens on every send, so changes apply immediately.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-do-users-top-up-their-balance">How do users top up their balance?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#how-do-users-top-up-their-balance" class="hash-link" aria-label="Direct link to How do users top up their balance?" title="Direct link to How do users top up their balance?" translate="no">#</a></h3>
<p>The points engine handles the wallet, not Better Messages itself. Most platforms run a WooCommerce product that grants points on purchase (both GamiPress and MyCRED have official WooCommerce add-ons), or a custom Stripe checkout that calls the points-engine API on success.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-better-messages-support-both-voice-and-video-call-billing">Does Better Messages support both voice and video call billing?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#does-better-messages-support-both-voice-and-video-call-billing" class="hash-link" aria-label="Direct link to Does Better Messages support both voice and video call billing?" title="Direct link to Does Better Messages support both voice and video call billing?" translate="no">#</a></h3>
<p>Yes for <strong>one-on-one</strong> calls — the <code>CallPricing</code> setting covers voice and video alike, billed per connected minute to the caller, with the per-role matrix applying as it does for messages. <strong>Group calls are not billed at all</strong>: the charging hooks fire from the one-on-one call addon only, which is why the setting is named <em>Private Call Pricing</em>. If you need paid group sessions, gate the room by role and sell the role.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-block-spam-contact-sharing-automatically">Can I block spam contact-sharing automatically?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#can-i-block-spam-contact-sharing-automatically" class="hash-link" aria-label="Direct link to Can I block spam contact-sharing automatically?" title="Direct link to Can I block spam contact-sharing automatically?" translate="no">#</a></h3>
<p>Yes — enable AI Content Moderation under <strong>Settings → Moderation</strong> and set <strong>Contact Sharing</strong> to <strong>Hold for Review</strong> (or <strong>Flag Only</strong> for less friction). The Cloud AI catches phone numbers, emails, social handles, and external chat-platform mentions even when split across two messages.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-if-a-users-balance-hits-zero-mid-message">What happens if a user's balance hits zero mid-message?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#what-happens-if-a-users-balance-hits-zero-mid-message" class="hash-link" aria-label="Direct link to What happens if a user's balance hits zero mid-message?" title="Direct link to What happens if a user's balance hits zero mid-message?" translate="no">#</a></h3>
<p>The send is blocked with the <code>NewMessageChargeMessage</code> shown as a toast — typically "You need 10 points to send this message. Top up your balance." Mid-call, the call ends gracefully with the <code>CallPricingEndMessage</code>. No charge is taken for the partial minute that pushed the balance negative.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-the-recipient-earn-from-messages-they-receive">Can the recipient earn from messages they receive?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#can-the-recipient-earn-from-messages-they-receive" class="hash-link" aria-label="Direct link to Can the recipient earn from messages they receive?" title="Direct link to Can the recipient earn from messages they receive?" translate="no">#</a></h3>
<p>The default model deducts from the sender only. For revenue-share scenarios, the <code>charge_for_message</code> action is the integration point — a small <code>functions.php</code> snippet can trigger a parallel credit to the recipient via the points-engine API.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="is-the-platform-gdpr-compatible">Is the platform GDPR-compatible?<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#is-the-platform-gdpr-compatible" class="hash-link" aria-label="Direct link to Is the platform GDPR-compatible?" title="Direct link to Is the platform GDPR-compatible?" translate="no">#</a></h3>
<p>Yes — every message, points transaction, and billing log lives in the WordPress database on your server. The cloud WebSocket relay stores no message content (only routing metadata is written down), so the cloud version is GDPR-compatible by default. For stricter cases, the self-hosted WebSocket relay keeps even the routing metadata on your infrastructure.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/wordpress-monetized-messaging-platform/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/mycred-gamipress/">Pay-to-Message with MyCred and GamiPress</a> — canonical feature reference</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/gamipress/">GamiPress integration</a> — provider-specific setup</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/mycred/">MyCred integration</a> — provider-specific setup</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/gamipress-pay-to-message/">GamiPress pay-to-message</a> — the GamiPress integration reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/mycred-pay-to-message/">MyCRED pay-to-message</a> — the MyCRED integration reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-patreon-style-creator-chat/">Patreon-style creator chat</a> — tier-gated chat (membership model rather than per-DM)</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-fan-community-chat/">WordPress fan community chat</a> — paid-tier chat rooms and live events</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/ai-content-moderation-wordpress-chat/">AI content moderation</a> — spam, scam, and contact-sharing filter</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/end-to-end-encrypted-wordpress-messaging/">End-to-end encrypted messaging</a> — for confidential paid conversations</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/role-based-access-wordpress-chat/">Role-based access</a> — for tier and free-user gating</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>GamiPress</category>
            <category>myCred</category>
            <category>Guides</category>
            <category>WebSocket</category>
        </item>
        <item>
            <title><![CDATA[WordPress Chat Rooms Website: Build a Live Chat Community From Scratch]]></title>
            <link>https://www.better-messages.com/blog/wordpress-chat-rooms-website/</link>
            <guid>https://www.better-messages.com/blog/wordpress-chat-rooms-website/</guid>
            <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Build a chat-rooms-first WordPress site — topic-based public rooms, role-gated private rooms, guest entry, moderation, and monetization on a stack you own.]]></description>
            <content:encoded><![CDATA[<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1731px;aspect-ratio:1731 / 909;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/hero-33c3469-1731.webp" srcset="https://www.better-messages.com/assets/img/hero-9e4971a-640.webp 640w, https://www.better-messages.com/assets/img/hero-5f9a476-980.webp 980w, https://www.better-messages.com/assets/img/hero-1536ab6-1320.webp 1320w, https://www.better-messages.com/assets/img/hero-456c3e5-1660.webp 1660w, https://www.better-messages.com/assets/img/hero-33c3469-1731.webp 1731w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Build a WordPress chat rooms website — topic-based rooms with guest access, role-gated private rooms, and live moderation" width="1731" height="909" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<p>The classic chat-rooms website — a list of topic rooms across the homepage, a public lobby for guests, a few private rooms behind a login, people drifting between them all evening — is one of the oldest layouts on the web. IRC servers, AIM rooms, and the small Java-applet chats of the early 2000s all hit the same shape. WordPress can host that site today with a single plugin and no external chat service.</p>
<p>This guide is for builders whose site's <strong>primary feature is chat rooms</strong> — a destination where the rooms themselves are the product, not a forum with a chat tab or a course with a discussion area. If you instead want to drop one chat room into an existing site, follow the shorter <a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">add a chat room tutorial</a> — this post is its architectural sibling.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-chat-rooms-website-stack">The chat-rooms website stack<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#the-chat-rooms-website-stack" class="hash-link" aria-label="Direct link to The chat-rooms website stack" title="Direct link to The chat-rooms website stack" translate="no">#</a></h2>
<p>A chat-rooms-first site is light by design — one plugin doing the chat work and a theme that gets out of the way.</p>
<table><thead><tr><th>Layer</th><th>Role</th></tr></thead><tbody><tr><td>WordPress</td><td>Identity (accounts, roles), pages, navigation, theme</td></tr><tr><td>Better Messages</td><td>Chat rooms (<code>bpbm-chat</code> custom post type), access control, message delivery, moderation, calls</td></tr><tr><td>Optional: WebSocket version</td><td>Instant delivery, presence and typing indicators, group voice and video calls</td></tr><tr><td>Optional: membership plugin</td><td>Paywall on private rooms (Paid Memberships Pro, MemberPress, WooCommerce Memberships)</td></tr><tr><td>Optional: AI moderation</td><td>Auto-flag harmful content across 23 categories</td></tr></tbody></table>
<p>Everything lives in your WordPress database — messages, files, guest sessions, moderation rules — with no third-party chat vendor.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="site-architecture-three-tiers-of-rooms">Site architecture: three tiers of rooms<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#site-architecture-three-tiers-of-rooms" class="hash-link" aria-label="Direct link to Site architecture: three tiers of rooms" title="Direct link to Site architecture: three tiers of rooms" translate="no">#</a></h2>
<p>A chat-rooms website typically layers three tiers: <strong>public lobby rooms</strong> (open to everyone including guests, the front door of the site, one per major topic), <strong>member rooms</strong> (logged-in users with a specific role — quieter, more on-topic), and <strong>private rooms</strong> (invite-only or paid, the reason members sign up).</p>
<p>A chat room is a WordPress custom post type (<code>bpbm-chat</code>), but it has no public URL of its own — it always renders inside a regular WordPress page or post via shortcode. The standard pattern is one WordPress page per visible room: the page is what your menu links to, and <code>[better_messages_chat_room id="123"]</code> lives in the page content. You categorize, organize, and link to the pages — never to the rooms directly.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-rooms-in-wp-admin">Creating rooms in WP-admin<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#creating-rooms-in-wp-admin" class="hash-link" aria-label="Direct link to Creating rooms in WP-admin" title="Direct link to Creating rooms in WP-admin" translate="no">#</a></h2>
<p>Every chat room is created from <strong>WP Admin → Better Messages → Chat Rooms → Add New</strong>. Give it a name, write an optional topic description, then scroll to the <strong>Chat Room Settings</strong> panel below the editor to set access rules.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1012;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAACwBQCdASooABQAPjEWiEMiISEVXAUAIAMEtIAO1E8k0BKPVSMjClj4LBdorqVKR7BEdpfHVrgA/v7r4SrNs0r/0ymP4Hu6/3pdf4aqo5yv8f7n1ZbdkzcpixQwwPrqknTEWJu4N1ZkUduJvzv8y4/+dm616iF9c4Ahw7ljuo5irES+yJYXERwot+UCzex5Bsfs8tiGf+Y+U6LOFr79MON/Tg1pExV15XA3M7XH6FNXGB3f7Nj6Ol0KHdm/+PTn3qBmsY4oPTQ1wqqVSzeozlxRCIbEjvI9JbcvgIR/50pqN3Wr41DhjfDazwoGDMPnHmTWAAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/01-create-chat-room-6b397f1-2000.webp" srcset="https://www.better-messages.com/assets/img/01-create-chat-room-f6b425a-640.webp 640w, https://www.better-messages.com/assets/img/01-create-chat-room-c64b0a9-980.webp 980w, https://www.better-messages.com/assets/img/01-create-chat-room-c93ebf5-1320.webp 1320w, https://www.better-messages.com/assets/img/01-create-chat-room-60fa186-1660.webp 1660w, https://www.better-messages.com/assets/img/01-create-chat-room-6b397f1-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Better Messages admin — create a new chat room" width="2000" height="1012" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Embed the room with the shortcode <code>[better_messages_chat_room id="123"]</code> (accepts a <code>full_screen="1"</code> attribute) or the <strong>Better Messages — Chat Room</strong> Gutenberg block. The standard pattern is one WordPress page per room with the page slug matching the topic (<code>/general/</code>, <code>/coding/</code>, <code>/movies/</code>) — the shortcode goes on each page and the menu links to them.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="public-vs-private-rooms-the-access-toggles">Public vs private rooms: the access toggles<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#public-vs-private-rooms-the-access-toggles" class="hash-link" aria-label="Direct link to Public vs private rooms: the access toggles" title="Direct link to Public vs private rooms: the access toggles" translate="no">#</a></h2>
<p>Every room has a <code>can_join</code> setting that tells the plugin who can enter — by WordPress role, plus an optional <strong>Guests</strong> slot for unregistered visitors. Typical configurations:</p>
<ul>
<li class=""><strong>Public lobby</strong> — all editable roles + guests allowed.</li>
<li class=""><strong>Member-only room</strong> — subscriber / member / your custom role. Guests off.</li>
<li class=""><strong>Private paywalled room</strong> — paid-member role from your membership plugin. Guests off. <strong>Only joined can read</strong> on so non-members can't lurk.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1800px;aspect-ratio:1800 / 984;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRhoBAABXRUJQVlA4IA4BAAAwBwCdASooABYAPjEYikOiIaEStAAgAwS0gGiyVf7O2ldMA3l8iQggHvFNT2PXeZWP1HDbgn6t0oRGZWflohPM4AAA/v9iTu93O8wf8QYM2ziF/NTJwbJ5kAC/y5ttoGa1KHFSlKv45y+NrFS+RnmuYehxJxh9hgonKOAJ/18nbVZ9itOVuhSXS5UZOg5WWqbUUmUAq88JjxBjnhb83Z7S9k/CQUNXZsewgzIUn+1pUnq6SwqLbElXwMhu87/kc90Rsgwgjf5eP5LkqVI4NGnKIoLaPBa//kBJFhDNlWWNf2q9VVkgJ6tW02l9WM7izx6UnVdJ19/mSqAZcv+uAp/N3UkzB4E/MHgVanerkAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/02-room-settings-guest-role-0bdc3ea-1800.webp" srcset="https://www.better-messages.com/assets/img/02-room-settings-guest-role-6d127fd-640.webp 640w, https://www.better-messages.com/assets/img/02-room-settings-guest-role-d09bc6e-980.webp 980w, https://www.better-messages.com/assets/img/02-room-settings-guest-role-2c3cd8f-1320.webp 1320w, https://www.better-messages.com/assets/img/02-room-settings-guest-role-b250e63-1660.webp 1660w, https://www.better-messages.com/assets/img/02-room-settings-guest-role-0bdc3ea-1800.webp 1800w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Chat room settings — allowed roles and guest access" width="1800" height="984" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The plugin reads WordPress roles directly, so any role created by another plugin (memberships, WooCommerce, LMS, BuddyPress, BuddyBoss) appears in the same checklist — no separate permission system to maintain.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="guest-access-the-front-door">Guest access: the front door<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#guest-access-the-front-door" class="hash-link" aria-label="Direct link to Guest access: the front door" title="Direct link to Guest access: the front door" translate="no">#</a></h2>
<p>A chat-rooms site that requires registration before anyone can read a message rarely takes off. With <strong>Guests</strong> enabled on a room, an unregistered visitor sees a tiny "join as guest" form (display name, optionally email for lead capture), gets stored in the <code>bm_guests</code> table with a stable browser-side identity, and returns to the same display name across sessions. Guests can send messages, upload files, use reactions, get @-mentioned, receive notifications, and — on the WebSocket version — join a room’s group call. They authenticate on the REST API like any other participant, so nothing is closed to them by default. If you would rather they could not call, the <strong>Guests</strong> row in <strong>Settings → Group Calls → Restricted from Joining</strong> is where to say so.</p>
<p>Guest access is per-room, so the lobby can be guest-open while topic rooms require registration. The standard funnel: guest lobby → "create an account to join the other rooms" → registered member → paid upgrade.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1696px;aspect-ratio:1696 / 1260;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRtoBAABXRUJQVlA4IM4BAACwCACdASooAB4APi0ShkKhoQ6tmgAMAWJYwDLukATEt7JNZj6E05h4tcTvLjzVerohUjIVjiShnnDhS/mgtAu9R09Aod+vgPfy2/LhegAA/v+5CN/3of8mksv/m8Wc8976sJqmcdgN/J3dGxqLv+pfjH+8UIV5MIm1YgohAYYHo//z2Z941rAld4YZu9ydbXlseewYff+FHhx/iZKEpBKiw/HiI8uS/Mvmn44Aw/QMHaFWTpvKQfEmhGxxG63zYy68SBOmWa5dwR2iejxZwiNKFkz1OXqoXdtAu18iTXx1rX8f80X/ht//Yhmy/m+3g6N+J8Cz4ImOppRUPf+ECx8z+s30Euu+SqOdMWGNx3/z0ry9Gv0JXdqme03kowvZzvn47rnZ15uN/ismmUpA59M4KGiJFxJmujfrXnvcJuTjyU3+s/698mr9kexMvJLdM1dSQuNH+Xtgt3IKTuSR4P5U+qT4iyA313Igf8IPHDDNNiDXuzmdgl1COJdPmNHX3OXl012j+wNZtfmAUa6B5GeBemXSIZpVL7jNN9XdWtTmCyOdA3Sn9x+GGLHYQyWkwrXSXX/H/1h2HN21//hnTF6DR4x/7O0rDwT+8SZAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/03-populated-chat-thread-8b13c44-1696.webp" srcset="https://www.better-messages.com/assets/img/03-populated-chat-thread-6fca0b6-640.webp 640w, https://www.better-messages.com/assets/img/03-populated-chat-thread-3825eb4-980.webp 980w, https://www.better-messages.com/assets/img/03-populated-chat-thread-135f366-1320.webp 1320w, https://www.better-messages.com/assets/img/03-populated-chat-thread-8f392c2-1660.webp 1660w, https://www.better-messages.com/assets/img/03-populated-chat-thread-8b13c44-1696.webp 1696w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Populated chat room with mixed registered users and guests" width="1696" height="1260" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-inside-every-room">What's inside every room<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#whats-inside-every-room" class="hash-link" aria-label="Direct link to What's inside every room" title="Direct link to What's inside every room" translate="no">#</a></h2>
<p>Every room ships the full Better Messages conversation surface: persistent message history, file sharing with resumable uploads, emoji selector, sticker packs, GIF search via GIPHY and Klipy, Markdown formatting, @-mentions, reply / edit / forward, reactions, and an online users sidebar.</p>
<p>On the WebSocket version you also get <strong>presence indicators</strong>, <strong>typing indicators</strong>, instant delivery, and <strong>group voice and video calls</strong> — up to 32 participants on video, 50 on audio — with the call button in every room's header.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mini-widget-every-page-becomes-a-chat-surface">Mini widget: every page becomes a chat surface<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#mini-widget-every-page-becomes-a-chat-surface" class="hash-link" aria-label="Direct link to Mini widget: every page becomes a chat surface" title="Direct link to Mini widget: every page becomes a chat surface" translate="no">#</a></h2>
<p>Beyond the room pages themselves, the Mini Widget pins a floating chat icon to every page on the site with a <strong>Chat Rooms</strong> tab listing joined rooms and unread counts. A visitor reads a post, sees a notification badge, opens the widget, finds two new messages in their favorite topic room, replies, and goes back to the post — no navigation to a room page required.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:664px;aspect-ratio:664 / 908;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRvgCAABXRUJQVlA4IOwCAADQDgCdASooADcAPjESiEKiISEZW22YIAMEs4BkKO42Y92Abxx/qLAN+0cLtlH/xX5D8gMrtXEx5/+c9QnOp9Lf933Cf1o60Homh0g+3Uzd6dcpFmq9J/nHl4XA1vH9A+iX+YQayUQauvKyAsa3Vl6SVjHuTgfAUrMGStGGmhZgAP7/mwT2V9JY4/7Iv9X+W+TDhllFna/V/Mk/txTsNtZ/6d4fKHXcO2FnOUTVPGlOmycMcstc/RGla7sMUCafzSiqW8NYkHFDJUX36TXIZs7jvC5iqZelJdzuRYGmt2ZB+jzPs8fx1NGs2EOQ8HQtMBmImHZDcDk0VQVKq7ton15envpEx361TDpT7e+Eq8jxn5NXY8Iednp42TfP2YGDs4loojNu7U3NM9DxFSc364kXLfl2oad974fXAfV6ubzUEmwe//M84N+wP7KoeJHz4qcUitinwtXbHPw6N/Cz5Y1g/P6r8kN9sI254XIeO4WOf2AkPYCscaw/bCWJUWwdGngeR7zOQTuIvRySr6+s/l0IoTVO62//XX8NupYFmJ1H9/reV6bbeiztmprXn5N2PgyW109/ohS5VZWt06yYeWo/0nS+0ojmCoXRF3t6zSBdlSjJkJ2rBLLk7uJZzTnxTY9ef0eCfuMTcn3jr5QwyDbFAORwuzVGaVyIax0Fns1KS6xAXLpM/OG09MAMjtI1g2Bmj+vxS6uWLYwbPISfnnLnCR7VtDIVn/3/evuUTA/sg6JuT6qeJ7H7Sd2+2xefURLkDNP9ylsrC/VJqL27AQbn/gq/JOKrGAqEmJ8B+cF1qeEGUIHjZAmbjHPSeo8JIB/kcIm9f6SwuVG7nJji+gQqTh3ZKYAtkfGs6OLOqwWUGRJFqyk50atd7meYRsfw/d2mymVnD4/i1/e65I4boCPVIuKXrC8DYm/wqxSyAD6fGB54+kELG/RUdCRuPq2M+ZfZXs9wcbcI/uBiBc9D3JFJVWniqkoxSAeELAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/04-chat-room-mini-widget-e5bfdf5-664.webp" srcset="https://www.better-messages.com/assets/img/04-chat-room-mini-widget-b2fea1d-640.webp 640w, https://www.better-messages.com/assets/img/04-chat-room-mini-widget-e5bfdf5-664.webp 664w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Mini widget with Chat Rooms tab on a WordPress site" width="664" height="908" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="moderation-keep-the-rooms-healthy">Moderation: keep the rooms healthy<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#moderation-keep-the-rooms-healthy" class="hash-link" aria-label="Direct link to Moderation: keep the rooms healthy" title="Direct link to Moderation: keep the rooms healthy" translate="no">#</a></h2>
<p>A chat-rooms site lives or dies by its moderation quality. Better Messages ships three composable layers:</p>
<ul>
<li class=""><strong>Pre-moderation</strong> — hold messages from designated users or roles until an admin approves. Configure under <strong>Better Messages → Settings → Moderation</strong>: hold first messages from new users, pre-moderate replies from specific roles, quarantine an individual.</li>
<li class=""><strong>Bad words filter</strong> — a list of forbidden words. Block, asterisk-mask, or flag for review. It sits under <strong>Settings → Restrictions</strong>, not alongside the other two.</li>
<li class=""><strong>AI Content Moderation</strong> (WebSocket version) — classifies messages across <strong>23 content categories</strong> (hate, harassment, sexual content, violence, self-harm, illicit, and more), supports <strong>custom rules in plain text</strong>, and is aware of <strong>conversation context</strong> — it catches patterns split across multiple messages, like a phone number typed one digit per line. Choose <strong>Flag Only</strong> (deliver but mark for review) or <strong>Hold for Review</strong> (queue until approved).</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRjABAABXRUJQVlA4ICQBAADQBQCdASooAB0APjEWiEMiISEVVAAgAwS0gGk5mCsDKqkSr+3OVk4pD/rv40GFVYsloytIaaMAAP7/Ec9JBeRv/7Ar+L//8Nf/728z2AB6WiUHc+OE2T314dr2sheSuCmUyrXxHNQEo19il1zaOUQ4Vy6khPkBfVar/NF70VjjBAnmGgsgXPs2aoE98rhfgHgaxG7n9+5dey/sTFunXXLmzpuierFoYKFrXuHlCeIiU+ScQCW8fiN/kz+Tz9/tXFIwR6mbfPPlr8+Jwu45zEgT9yuVaDU3sY7tXCo0XPRiOzgpzvGf1gDGxfqcL2GkPQ2HfJnw0r3ltQITPW9tG6Am6UrCns2Vxb4cVKsiIFGrcKMqp6OGNlm0Z2kJzfYoLpsAFkAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/05-moderation-rules-3cc4ecc-2000.webp" srcset="https://www.better-messages.com/assets/img/05-moderation-rules-0761611-640.webp 640w, https://www.better-messages.com/assets/img/05-moderation-rules-b937131-980.webp 980w, https://www.better-messages.com/assets/img/05-moderation-rules-541dbb5-1320.webp 1320w, https://www.better-messages.com/assets/img/05-moderation-rules-4e820eb-1660.webp 1660w, https://www.better-messages.com/assets/img/05-moderation-rules-3cc4ecc-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Moderation settings — pre-moderation per role, and the AI Content Moderation provider choice" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Flagged output lands in the admin Messages Viewer where moderators read in-context, approve, reject, ban, or delete. A realistic combination: bad words on for low-effort spam, AI moderation set to Flag Only across all rooms, pre-moderation on for first messages from brand-new accounts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="monetization-options">Monetization options<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#monetization-options" class="hash-link" aria-label="Direct link to Monetization options" title="Direct link to Monetization options" translate="no">#</a></h2>
<p>Three common revenue patterns:</p>
<ol>
<li class=""><strong>Paid memberships</strong> — pair Better Messages with a membership plugin (Paid Memberships Pro, MemberPress, WooCommerce Memberships). The membership plugin creates the paid role. Better Messages restricts paid rooms to that role. Subscription start auto-adds the member. Cancellation removes them via the role change.</li>
<li class=""><strong>Pay-per-message</strong> — credit economy via the <a class="" href="https://www.better-messages.com/blog/mycred-pay-to-message/">myCred</a> or <a class="" href="https://www.better-messages.com/blog/gamipress-pay-to-message/">GamiPress</a> integration. Members earn or buy credits and spend them per message in paid rooms.</li>
<li class=""><strong>Sponsored rooms</strong> — a brand sponsors a topic room, featured on your homepage or a curated landing. Standard WordPress content techniques apply — the room is just a custom post type.</li>
</ol>
<p>The plugin doesn't take a cut of any of this.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-version-vs-websocket-version-for-a-chat-rooms-site">Free version vs WebSocket version for a chat-rooms site<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#free-version-vs-websocket-version-for-a-chat-rooms-site" class="hash-link" aria-label="Direct link to Free version vs WebSocket version for a chat-rooms site" title="Direct link to Free version vs WebSocket version for a chat-rooms site" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Unlimited chat rooms</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Public + private rooms via roles</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Guest access per room</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>File sharing, emoji, stickers, GIFs</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Markdown formatting</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Mini widget with Chat Rooms tab</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Pre-moderation + bad words filter</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Presence + typing indicators</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls inside rooms</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>AI Content Moderation</td><td style="text-align:center">13 categories, your OpenAI key</td><td style="text-align:center">23 categories, no key needed</td></tr><tr><td>End-to-end encryption (per thread)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For a chat-rooms-first website the WebSocket version is the realistic choice. The polling overhead grows fast once you have a busy lobby, and the experience changes the moment delivery flips from "every few seconds" to "instant". Presence indicators, typing dots, and group calls are also what make a chat room feel like a chat room rather than a slow message board.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-is-this-different-from-adding-a-chat-room-to-an-existing-site">How is this different from adding a chat room to an existing site?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#how-is-this-different-from-adding-a-chat-room-to-an-existing-site" class="hash-link" aria-label="Direct link to How is this different from adding a chat room to an existing site?" title="Direct link to How is this different from adding a chat room to an existing site?" translate="no">#</a></h3>
<p>The <a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">add a chat room tutorial</a> covers "I have a WordPress site and want to drop one chat room onto a page". This post covers the chat-rooms-first case — site architecture, monetization, and moderation are different even though the plugin is the same.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="is-this-a-real-irc-alternative-on-wordpress">Is this a real IRC alternative on WordPress?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#is-this-a-real-irc-alternative-on-wordpress" class="hash-link" aria-label="Direct link to Is this a real IRC alternative on WordPress?" title="Direct link to Is this a real IRC alternative on WordPress?" translate="no">#</a></h3>
<p>For the "users hop between topic rooms in real time and chat all evening" use case, yes — the WebSocket version reproduces that experience with WordPress accounts as the identity layer and WordPress roles as the access layer. You lose IRC-specific features like channel modes and <code>/commands</code>, but you get message history, file sharing, voice and video, mobile apps, and a mainstream identity system.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-have-hundreds-of-rooms">Can I have hundreds of rooms?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#can-i-have-hundreds-of-rooms" class="hash-link" aria-label="Direct link to Can I have hundreds of rooms?" title="Direct link to Can I have hundreds of rooms?" translate="no">#</a></h3>
<p>Yes. Each room is a separate <code>bpbm-chat</code> post in the database and is embedded on a separate WordPress page, so the scaling limit is the WordPress server itself. For large catalogues, build a directory page that lists your room pages — a manual list, a custom Gutenberg block, or a navigation menu — and link each card to the WordPress page that embeds that specific room.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-do-i-keep-participant-lists-from-filling-up-with-ghosts">How do I keep participant lists from filling up with ghosts?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#how-do-i-keep-participant-lists-from-filling-up-with-ghosts" class="hash-link" aria-label="Direct link to How do I keep participant lists from filling up with ghosts?" title="Direct link to How do I keep participant lists from filling up with ghosts?" translate="no">#</a></h3>
<p>Every room has an <strong>Auto-remove inactive users</strong> option. Pick a signal (no site visit, no message in room, no room visit), set a day threshold, and the cleanup runs on the standard five-minute cron. Most chat-rooms sites scope this to <strong>Guests only</strong>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-the-shortcode-work-in-elementor--bricks--oxygen">Does the shortcode work in Elementor / Bricks / Oxygen?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#does-the-shortcode-work-in-elementor--bricks--oxygen" class="hash-link" aria-label="Direct link to Does the shortcode work in Elementor / Bricks / Oxygen?" title="Direct link to Does the shortcode work in Elementor / Bricks / Oxygen?" translate="no">#</a></h3>
<p>Yes — every page builder that accepts WordPress shortcodes (Elementor, Bricks, Oxygen, Beaver Builder, Divi). The Gutenberg block works in any builder that supports Gutenberg blocks.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="are-conversations-indexed-by-search-engines">Are conversations indexed by search engines?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#are-conversations-indexed-by-search-engines" class="hash-link" aria-label="Direct link to Are conversations indexed by search engines?" title="Direct link to Are conversations indexed by search engines?" translate="no">#</a></h3>
<p>Container pages are indexable, but messages load via REST after page render, so Google doesn't index message content. This is usually the right behavior — chat is ephemeral, not canonical SEO content.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-members-dm-each-other-on-the-same-site">Can members DM each other on the same site?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#can-members-dm-each-other-on-the-same-site" class="hash-link" aria-label="Direct link to Can members DM each other on the same site?" title="Direct link to Can members DM each other on the same site?" translate="no">#</a></h3>
<p>Yes — Better Messages serves both surfaces from the same install. Members can DM through the main messenger while chat rooms run as separate persistent spaces, sharing the same inbox, notification stack, and identity.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="are-encrypted-chat-rooms-a-thing">Are encrypted chat rooms a thing?<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#are-encrypted-chat-rooms-a-thing" class="hash-link" aria-label="Direct link to Are encrypted chat rooms a thing?" title="Direct link to Are encrypted chat rooms a thing?" translate="no">#</a></h3>
<p>End-to-end encryption is a per-thread setting on the WebSocket version, available primarily for private one-on-one and group conversations using <strong>AES-256-GCM</strong> content encryption and <strong>ECDH P-256</strong> key exchange — see <a class="" href="https://www.better-messages.com/blog/end-to-end-encrypted-wordpress-messaging/">End-to-end encrypted WordPress messaging</a> for the architecture.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/wordpress-chat-rooms-website/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">How to add a chat room to your WordPress site</a> — the tutorial for adding a single chat room to an existing site</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/chat-rooms/">Chat rooms documentation</a> — full reference for the chat-room feature</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-guest-chat-without-login/">WordPress guest chat without login</a> — guest entry mechanics in depth</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/ai-content-moderation-wordpress-chat/">AI content moderation for WordPress chat</a> — the 23-category moderation engine</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/role-based-access-wordpress-chat/">Role-based access for WordPress chat</a> — how role gates work across rooms and DMs</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-community-chat-plugin/">WordPress community chat plugin</a> — pairing chat with a community plugin</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-chat-mobile-app/">WordPress chat mobile app</a> — native iOS/Android apps for the same chat rooms</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/export-transcripts/">Export transcripts</a> — archive a room's conversation as a file</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Chat rooms</category>
            <category>Guides</category>
            <category>Community</category>
        </item>
        <item>
            <title><![CDATA[WordPress Live Chat Plugin: Real-Time Chat for Visitors and Members]]></title>
            <link>https://www.better-messages.com/blog/wordpress-live-chat-plugin/</link>
            <guid>https://www.better-messages.com/blog/wordpress-live-chat-plugin/</guid>
            <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add a real-time live chat to a WordPress site — Live Chat button, floating mini widgets, guest access without login, group rooms, and the WebSocket version for instant delivery. Free version on WordPress.org.]]></description>
            <content:encoded><![CDATA[<p>"Live chat" on a WordPress site has two distinct meanings — and most WordPress live chat plugins only cover one of them. The first is <strong>visitor-to-staff support chat</strong>: a floating bubble in the corner, anonymous visitors typing to a sales or support agent. The second is <strong>member-to-member real-time chat</strong>: logged-in users private-messaging each other, group chats, chat rooms, community discussion. Better Messages handles both from one plugin, with a single chat surface and a single REST API.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1672px;aspect-ratio:1672 / 941;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/hero-caca5be-1672.webp" srcset="https://www.better-messages.com/assets/img/hero-9932c88-640.webp 640w, https://www.better-messages.com/assets/img/hero-6ea5328-980.webp 980w, https://www.better-messages.com/assets/img/hero-eef9cd8-1320.webp 1320w, https://www.better-messages.com/assets/img/hero-913f16d-1660.webp 1660w, https://www.better-messages.com/assets/img/hero-caca5be-1672.webp 1672w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="WordPress live chat plugin — floating chat bubble and mini widgets on a WordPress site" width="1672" height="941" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<p>This post covers what to expect from a WordPress live chat plugin, the two flavours of "live chat" Better Messages supports, and the trade-offs between AJAX polling (free version) and WebSocket (real-time) delivery.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-a-wordpress-live-chat-plugin-needs-to-do">What a WordPress live chat plugin needs to do<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#what-a-wordpress-live-chat-plugin-needs-to-do" class="hash-link" aria-label="Direct link to What a WordPress live chat plugin needs to do" title="Direct link to What a WordPress live chat plugin needs to do" translate="no">#</a></h2>
<p>Regardless of which "live chat" you mean, the plugin has to provide:</p>
<ol>
<li class="">A <strong>chat entry point</strong> on the front-end — a floating button, a shortcode-embeddable widget, a page in the WordPress menu, or a tab inside the user profile.</li>
<li class=""><strong>Real-time message delivery</strong> — messages appear in seconds, not on next page reload.</li>
<li class=""><strong>Conversation history</strong> — every chat is saved server-side, searchable, exportable.</li>
<li class=""><strong>Notifications</strong> — sound, in-app badge, browser push, email, mobile push.</li>
<li class=""><strong>Access control</strong> — who can chat with whom, whether visitors (guests) can start a thread, and which roles see which surfaces.</li>
</ol>
<p>Better Messages covers all five, plus the bigger features most live-chat plugins skip — group conversations, voice and video calls inside the chat thread, AI chat bots, end-to-end encryption, and a native iOS / Android mobile app.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-live-chat-button">The Live Chat button<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#the-live-chat-button" class="hash-link" aria-label="Direct link to The Live Chat button" title="Direct link to The Live Chat button" translate="no">#</a></h2>
<p>The simplest entry point is the <strong>Live Chat button</strong> — a single shortcode (<code>[better_messages_live_chat_button]</code>) that drops a button on any page, any post, or any custom post type. Clicking it opens a chat thread between the visitor and a designated recipient (configurable via the shortcode attributes — a specific user, the post author, etc.).</p>
<p>The button is the canonical entry for service-provider sites:</p>
<ul>
<li class=""><strong>Real estate</strong> — buyer clicks Live Chat on a property listing, opens a thread with the agent.</li>
<li class=""><strong>Coaching / freelancers</strong> — visitor clicks Live Chat on the coach's profile, starts a private conversation.</li>
<li class=""><strong>Marketplaces</strong> — buyer clicks Live Chat on a vendor's product page, threads land in the vendor's inbox.</li>
<li class=""><strong>Directories</strong> — visitor clicks Live Chat on a business listing, contacts the listing owner.</li>
</ul>
<p>The button label, target user, and behaviour for unauthenticated visitors are configurable per shortcode. For sites that prefer a single button across all custom post types without a shortcode, the <a class="" href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/">Live Chat Button Shortcode Builder</a> generates the markup from a WP-admin UI.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1770px;aspect-ratio:1770 / 3726;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRqAEAABXRUJQVlA4IJQEAADwFgCdASooAFQAPjEUiEKiISEYDHY4IAMEsoBqYuAxzZQazv9g9gG2Y8Rb9juwBvCPoAeWH+uXwZeUzq4DGv8B4U+F33XIPOD+Evlb3r+7PJF5PfYDt2uMfyz/QcYGkUzIfM5z9PTnsGfrZ1nivKS6x2ASxnTXSV7x9pWAkNIv80odqKX/Vnh6lOEVGej86z5BnufAN0zWsFXkbezjEyo+FGwEdR5mpS1+8Zcd3EdDyzZ+kGl7QZ7GVlbSJMCKmAAA/v/+iX7KJX7naIhF6S870Yds8k7pFe+ZA2SWaZ/ZZfE3tmcIKS2ph6Xk7W7KiZ+3mKZ/oEIpEETW6/tlfIHV4raiSFa0JvbJ6ClK5X88r6sFXqTrQERRVsYWPrRLlFO1++dPJ5O/aG+rqRv/9lfH/lULyaALGyqPPk9RdRjAFG82vXrOYzM0xmT/FLNaSFneNWaC0IMOa3dmiA7px+G5QQGBeG2aqFeFTTXmcxY6GpfDN7MZQO68pVWCBnezUeLSkggr1V9nO7THdLcj94OqfX16QmHnuIu1VmVNeN6fM2wE0f+Va/3P6/mmqHuvOJe6wM+PztOZZGXVVnzzOWFLH9o6+0g7GI/8f6ZXSgh4HvwICzT4aE5k5HLjCHoCu3/wg9//7AF3/9pBqSiN3No4ydpnY5w6gZFCNDMD33n67oCG0mh9SSKiFE6MKdWP48OlZ+2bpdy2cZcybeX206EZOGLybBfKH42XXHRaL7UBogVnfY28jG/0B18q9Qq6Lgi7SpwOc6/vb5tPlJIfeQr3RpLKLBiI4i6HRDjMffcm1KpjGvrsy8QMd5zNf9vCpVktNf3GhB335fzkBcjkRMGUXKnMkD76fJ59cDg3iXZfzTqdor3R/4Tf72++TH/oHQAHUXlqOEvr/j+o/FbLybpaz7+xxe61pDxlonqX9LUZwqIlxOzBvsU5PPQvPeDqLI+/nWGPy6LkX4BSIS+4v/ZJ3+jdrSlDeK95dQBQfw74kLWsw7yw/A13JaSg5cc/+HgZgjNPQBxA3jrf8LEgtAIB0Fsaxkixxbss69P8NITmgTuiwNN1y0c4Asto7AEXttziIA7v4LPzJHklCtcF5D37abI8Zr0q7EmyqZWiaOhOjS+YPEMXzRvmQKfO2CUg0ht5cNwXcpo8zRG3uDLti7Kn5MxD3/DjRd9aXzSFxOX7AgKjzCTHSLkK5F0A4eHmVSDWvtsRqrbxq4ignorfaSc6ySbnKdPmnpypvxn3dJCIHfCgVSNz6C2x/aAWdjMQVbextWU9Ryp3/pkFNZJhpa011QI6im+T3NzCoRSapV9gjagt96PzhNbaZ2zlyxR3VSUspwpLIqBPB7iq9ttwElBkAw0jkYXcM4fBBES/uOsFAC1Ys+n8uJVtHJrX37OM9HhIN8OaEDZDb07D1r5+jzh3HKVtwDhQTgXDNXMJheYKnS2O6eP7vRtTYWWQW28gSmsr/IJn6JNcQOAm6gvHFb/3ZrfvexzBE2jYo0b86zf6cWqBn5hf5p/xmDLH91e3l1fX/Bv/tCNCJT1a/j6B8Nh7yVUAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/live-chat-buttons-600c097-1770.webp" srcset="https://www.better-messages.com/assets/img/live-chat-buttons-5d96ef8-640.webp 640w, https://www.better-messages.com/assets/img/live-chat-buttons-5a5f54b-980.webp 980w, https://www.better-messages.com/assets/img/live-chat-buttons-552e7f4-1320.webp 1320w, https://www.better-messages.com/assets/img/live-chat-buttons-3c645da-1660.webp 1660w, https://www.better-messages.com/assets/img/live-chat-buttons-600c097-1770.webp 1770w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat button variations rendered on a WordPress page" width="1770" height="3726" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="floating-bubble-and-mini-widgets">Floating bubble and mini widgets<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#floating-bubble-and-mini-widgets" class="hash-link" aria-label="Direct link to Floating bubble and mini widgets" title="Direct link to Floating bubble and mini widgets" translate="no">#</a></h2>
<p>For sites that want chat available from any page (not pinned to a specific post), Better Messages ships two floating modes:</p>
<ul>
<li class=""><strong>Floating chat bubble</strong> — a single rounded button in the bottom corner. Clicking it opens the messenger panel as an overlay. Position and colour configurable.</li>
<li class=""><strong>Mini chat widgets</strong> — multiple open chat threads stacked at the bottom of the screen with a Facebook-Messenger-like layout. Users can keep several conversations open while browsing. The number that fit depends on screen width.</li>
</ul>
<p>See the <a class="" href="https://www.better-messages.com/blog/wordpress-chat-widget-mini-widgets/">WordPress chat widget guide</a> for the visual breakdown and the choice between floating bubble vs mini widgets.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:720px;aspect-ratio:720 / 1200;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRiYEAABXRUJQVlA4IBoEAADwEwCdASooAEMAPjEWiUOiISETNQAgAwSzgGYAt4QDbAXY1vFPlM3frWdfPY/n+n/If1f70/dVkg/xO8Ece/pf+18ILUCuqvT3wEPFvPl59ed76a/Yb4CP1Z/53AlqjzLGcf//9DWOahArdWJrk3shmNYJ5Ai0jecsLDBZYjn4+ouaFIzPLtIaAuZliJrXP90Goz9AZTy/4+BeRlrU2cXo0x0G/f3ll0AA/v/+cU114AsxdLuhNCMVobZMnd3p7PvQVeSbu1vE91ZjGn0JbWI/F32PS/bj4s5yHBDMbVV/uLBZPxqerLAxSR+LtvyaP9mGwfbMCvTz3xYp6TJC1Ck35No1obX1+aoknzW4MneRFocC+L0mu/+9CxcniKXi10JeWf2HD1A+3j4/9R2TVaY/61vzy1aboqlfenZsj3fO3oWD1tvVUVXUTN3qHGNufOx/adpTOZLc2mkM+v8WdKiIoARxKsbhP5udAX9X0nOsOT9g1dcFpBvis0/6UCtdlOzsVJ+cXKXSE5vnTUtV4+Brq9BVZaAj/uguyZPvEf2ZYAmvi4IXPaQ6Z6SyxqcLriZpsfK4h32n0SeDI1tmId+R2zgIxhvX4xomk+YbeVIgMWMwW6XZN0huAQMFZUg/91BMVOen89EkMmq+daC1wBE93XmfrLVqbuYBkGqvqmvaN/v5TJAQe6LOfID7ZhQL/n9ZT+n1PP+WfbIx1+Rx/qQ4SRyNT7KVS+DbLRdUoTyn7yQZJgRmIMlwC0Vl9IASXReIjeLIJF+9/34veTceezX5JKn1NB2vWfQ0cf5zv9XP43H1r5noD/6oy6f0zPX8P7k7IuvX4LK9rp9ku5BSSui5GFwkPhMS8SlTRE/cIBx8STUD0OCRXckZql8uHClOalCTVYtNYJKIPBP456i39PLJM9MhH1sHCHFHMvFkyb2cPjAnGzAAJG3f81/oeO9yhz4cGgXJPrySHnr3T8EGqHT2WG8022vyq+5pnyn4qT2Woocc3TH9rm8hrH/nC/A39qe9m4Xh3h2/a5BA4/EeTfp9MvBTFPoowyHrZG5zLVf+5FiBK6+12m7ZEj6+tK0fHfeeVPp2mLMhk7fId9GV87x64uNX28D4L8qqtVPy7gQN1GQKl3I9q/u2DVB7K2Tcihc6x46hDuhWDe6EX2ngrzIaUyfCL3GY2YmqhRs7OG6GAdHEtWaw5pmL8IHPXObdv/i2Hrx8w+4Ln/V+XeNX+fB/y4N51mM4Nj9HV8Df/MXwen/HOVj+Gb+dg/TGwJWRWYGcL+bZarfG9RYGX3WB0kFNAC/mgdvSf3iiV0AItlcIcOIlS5ha0luBozc56CB2jnMqVypBIPLZzOOe/7SBwoa/KKmtsC+LKoVqx/qh/3/XPCQHhczJaK5AAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/mini-widgets-bfcc25d-720.webp" srcset="https://www.better-messages.com/assets/img/mini-widgets-770fc12-640.webp 640w, https://www.better-messages.com/assets/img/mini-widgets-bfcc25d-720.webp 720w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Multiple mini chat widgets stacked at the bottom of a WordPress page" width="720" height="1200" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-for-visitors-no-account-needed">Live chat for visitors (no account needed)<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#live-chat-for-visitors-no-account-needed" class="hash-link" aria-label="Direct link to Live chat for visitors (no account needed)" title="Direct link to Live chat for visitors (no account needed)" translate="no">#</a></h2>
<p>The biggest single barrier on a customer-facing site is the login wall — a visitor with a pre-sales question is not going to register an account just to ask whether the medium tee fits a 38" chest. Better Messages has <a class="" href="https://www.better-messages.com/blog/wordpress-guest-chat-without-login/">guest chat</a> built in: a visitor types their name, picks an avatar (or skips it), and starts chatting immediately. The guest gets a stable session — they can come back tomorrow and the conversation history is still there.</p>
<p>Guests are first-class participants — they show in the same inbox as registered users, they can join chat rooms (if the room allows guests), and a staff member can answer either guest threads and member threads from the same admin UI.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-for-members-private-messaging-between-users">Live chat for members (private messaging between users)<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#live-chat-for-members-private-messaging-between-users" class="hash-link" aria-label="Direct link to Live chat for members (private messaging between users)" title="Direct link to Live chat for members (private messaging between users)" translate="no">#</a></h2>
<p>The other flavour is <strong>member-to-member chat</strong> — registered users private-messaging each other. This works on <strong>any</strong> WordPress site (no community plugin required — BM has its own user search and thread UI), and on top of that integrates natively with every major WordPress community plugin: <a class="" href="https://www.better-messages.com/blog/buddypress-messaging-plugin/">BuddyPress</a>, <a class="" href="https://www.better-messages.com/blog/buddyboss-messaging-plugin/">BuddyBoss</a>, <a class="" href="https://www.better-messages.com/blog/peepso-messaging-plugin/">PeepSo</a>, <a class="" href="https://www.better-messages.com/blog/ultimate-member-private-messaging/">Ultimate Member</a>, <a class="" href="https://www.better-messages.com/blog/fluentcommunity-chat-plugin/">FluentCommunity</a>, <a class="" href="https://www.better-messages.com/blog/profile-grid-private-messaging/">ProfileGrid</a>, <a class="" href="https://www.better-messages.com/blog/userswp-private-messaging/">UsersWP</a>, <a class="" href="https://www.better-messages.com/blog/wp-user-manager-private-messaging/">WP User Manager</a>.</p>
<p>The integration is two-way: profile pages get a Live Chat button next to the existing community-plugin actions, and the community-plugin groups get paired chat threads (joining a BuddyBoss Group auto-adds the user to the matching group chat).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-conversations-and-chat-rooms">Group conversations and chat rooms<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#group-conversations-and-chat-rooms" class="hash-link" aria-label="Direct link to Group conversations and chat rooms" title="Direct link to Group conversations and chat rooms" translate="no">#</a></h2>
<p>Live chat is rarely one-on-one only. Better Messages supports:</p>
<ul>
<li class=""><strong>Group threads</strong> — pick multiple recipients from the new-thread screen, every participant sees the same conversation, replies route to the whole group.</li>
<li class=""><strong>Chat rooms</strong> — persistent public or private rooms, embedded via shortcode or as a dedicated WordPress page. Optional guest access, role-based restrictions, online users sidebar. See <a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">How to add a chat room to your WordPress site</a>.</li>
<li class=""><strong>Mass messaging</strong> — send a one-to-many broadcast from WP-admin, every recipient gets their own private thread, replies route back individually. See <a class="" href="https://www.better-messages.com/blog/wordpress-mass-messaging-broadcast/">WordPress mass messaging</a>.</li>
</ul>
<p>The same live-chat surface handles all three patterns — there is no separate "rooms plugin" to install.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-time-delivery--ajax-vs-websocket">Real-time delivery — AJAX vs WebSocket<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#real-time-delivery--ajax-vs-websocket" class="hash-link" aria-label="Direct link to Real-time delivery — AJAX vs WebSocket" title="Direct link to Real-time delivery — AJAX vs WebSocket" translate="no">#</a></h2>
<p>The free version of Better Messages delivers messages via short-interval AJAX polling — a request every couple of seconds. It works on every WordPress host, no extra infrastructure required. For most low-volume sites (a coach with a handful of clients, a freelancer chatting with leads, a small forum) the polling cadence is indistinguishable from real-time.</p>
<p>For higher-volume sites, the WebSocket version replaces polling with a persistent WebSocket connection. Latency drops from ~2 seconds to ~50 milliseconds, server CPU drops sharply (a single WebSocket connection is cheaper than 30 AJAX requests per minute per user), and the realtime stack unlocks the rest of the live-chat feature set: typing indicators, online presence, group voice and video calls, web push notifications, end-to-end encryption, and Better Messages Cloud AI for translation, moderation and voice transcription.</p>
<p>For the difference in practice and the install steps, see <a class="" href="https://www.better-messages.com/blog/realtime-messaging-wordpress/">Real-time messaging on WordPress</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="voice-and-video-calls-inside-the-live-chat">Voice and video calls inside the live chat<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#voice-and-video-calls-inside-the-live-chat" class="hash-link" aria-label="Direct link to Voice and video calls inside the live chat" title="Direct link to Voice and video calls inside the live chat" translate="no">#</a></h2>
<p>The WebSocket version adds one-on-one and group voice and video calls directly in the chat thread. Click the call button next to the message input, the other participant gets a ring tone, and the call opens inside the same panel — no Zoom link, no Calendly, no separate window.</p>
<p>For a service business, this turns a pre-sales text chat into an instant face-to-face conversation when the conversation gets complicated. See <a class="" href="https://www.better-messages.com/blog/wordpress-video-call-plugin/">WordPress video call plugin</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-chat-bots-in-the-live-chat">AI chat bots in the live chat<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#ai-chat-bots-in-the-live-chat" class="hash-link" aria-label="Direct link to AI chat bots in the live chat" title="Direct link to AI chat bots in the live chat" translate="no">#</a></h2>
<p>Connect an AI model (OpenAI, Anthropic Claude, Google Gemini, or the Better Messages Cloud AI) and a registered bot user appears in the chat as a regular participant. The bot can:</p>
<ul>
<li class="">Answer pre-sales questions when a human agent is offline.</li>
<li class="">Deflect common support tickets via a configurable system prompt.</li>
<li class="">Translate messages in real time across 69 languages.</li>
<li class="">Moderate incoming messages against configurable content categories.</li>
<li class="">Transcribe voice messages.</li>
</ul>
<p>See <a class="" href="https://www.better-messages.com/blog/ai-chat-bots-wordpress-messaging/">AI chat bots for WordPress private messaging</a> for the bot setup and the choice between providers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="search-history-and-audit-trail">Search, history, and audit trail<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#search-history-and-audit-trail" class="hash-link" aria-label="Direct link to Search, history, and audit trail" title="Direct link to Search, history, and audit trail" translate="no">#</a></h2>
<p>Every live chat is stored in the WordPress database. The <a class="" href="https://www.better-messages.com/blog/wordpress-chat-search/">chat search</a> feature lets users find messages across every conversation they have access to. Admins can query the full database directly for compliance, support audits, or data-subject requests. GDPR export and erasure flow through the standard WordPress user-tools UI. See <a class="" href="https://www.better-messages.com/blog/gdpr-compliant-wordpress-messaging/">GDPR-compliant WordPress chat</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-live-chat">Free vs WebSocket version for live chat<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#free-vs-websocket-version-for-live-chat" class="hash-link" aria-label="Direct link to Free vs WebSocket version for live chat" title="Direct link to Free vs WebSocket version for live chat" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free</th><th style="text-align:center">WebSocket</th></tr></thead><tbody><tr><td>Live Chat button + floating bubble + mini widgets</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one private chat</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Group conversations</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Chat rooms (public + private, guest-friendly)</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Guest chat (no login required)</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>File / image / video attachments</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>AI chat bot replies</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Message delivery latency</td><td style="text-align:center">~1–3 sec (polling)</td><td style="text-align:center">~50 ms (WebSocket)</td></tr><tr><td>Typing indicators + online presence</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Voice and video calls in the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption per thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>AI message translation across 69 languages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Native iOS + Android mobile app</td><td style="text-align:center">set up only</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For a live chat that handles 20+ concurrent conversations or runs voice / video calls inside the thread, the WebSocket version is the practical default — polling at that scale costs more CPU than the WebSocket licence does. For low-volume support sites with one or two active chats at a time, the free version is genuinely sufficient.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installation">Installation<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate.</li>
<li class="">Choose where the chat lives:<!-- -->
<ul>
<li class="">For a customer-facing <strong>Live Chat button</strong>, drop the <code>[better_messages_live_chat_button]</code> shortcode on the page, or use the <a class="" href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/">Shortcode Builder</a> for a no-code admin UI.</li>
<li class="">For a <strong>floating bubble</strong>, switch the mini widget bar to <strong>Floating Bubble</strong> under <strong>Better Messages → Settings → Appearance → Mini widgets</strong>.</li>
<li class="">For <strong>chat rooms</strong>, create the room under <strong>Better Messages → Chat Rooms</strong> and embed via shortcode or assign a page.</li>
</ul>
</li>
<li class="">Open <strong>Settings → Restrictions</strong> to set who can start threads, reply and view messages per WordPress role, and <strong>Settings → Group Calls</strong> for who can start or join group calls.</li>
<li class="">(Optional) Activate the WebSocket version under <strong>Better Messages → Account</strong> with your licence key.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-the-live-chat-work-without-a-login">Does the live chat work without a login?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#does-the-live-chat-work-without-a-login" class="hash-link" aria-label="Direct link to Does the live chat work without a login?" title="Direct link to Does the live chat work without a login?" translate="no">#</a></h3>
<p>Yes — guest chat is built in. Visitors type a display name and start a thread without registering. Configurable per chat surface (you can require login on some rooms, allow guests on others).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-have-multiple-support-agents">Can I have multiple support agents?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#can-i-have-multiple-support-agents" class="hash-link" aria-label="Direct link to Can I have multiple support agents?" title="Direct link to Can I have multiple support agents?" translate="no">#</a></h3>
<p>Yes — any WordPress user with the right role can reply to incoming live-chat threads. The admin Inbox shows every thread routed to the support role. Agents can claim, reply, transfer, and close threads. Combine with role-based access for tiered support (Tier 1 sees all, Tier 2 only escalated, etc.).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-on-mobile">Does it work on mobile?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#does-it-work-on-mobile" class="hash-link" aria-label="Direct link to Does it work on mobile?" title="Direct link to Does it work on mobile?" translate="no">#</a></h3>
<p>The chat is fully responsive out of the box. For visitors, mobile browsers (including iOS Safari and Android Chrome) get a full-screen chat experience. For staff, the WebSocket version includes a native iOS / Android app — agents get push notifications, can reply on the go, and stay logged in across days. See <a class="" href="https://www.better-messages.com/blog/wordpress-chat-mobile-app/">WordPress chat mobile app</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-the-live-chat-run-inside-woocommerce-product-pages">Can the live chat run inside WooCommerce product pages?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#can-the-live-chat-run-inside-woocommerce-product-pages" class="hash-link" aria-label="Direct link to Can the live chat run inside WooCommerce product pages?" title="Direct link to Can the live chat run inside WooCommerce product pages?" translate="no">#</a></h3>
<p>Yes — drop the <code>[better_messages_live_chat_button]</code> shortcode on the product page or template. Buyers click and chat with the seller / store owner. For vendor marketplaces (Dokan, WCFM, WC Vendors, MultiVendorX), the chat routes to the actual vendor, not the store admin. See <a class="" href="https://www.better-messages.com/blog/woocommerce-customer-chat/">WooCommerce customer chat</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-integrate-with-my-existing-community-plugin">Does it integrate with my existing community plugin?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#does-it-integrate-with-my-existing-community-plugin" class="hash-link" aria-label="Direct link to Does it integrate with my existing community plugin?" title="Direct link to Does it integrate with my existing community plugin?" translate="no">#</a></h3>
<p>Yes — Better Messages integrates natively with BuddyPress, BuddyBoss Platform, PeepSo, Ultimate Member, FluentCommunity, ProfileGrid, UsersWP, WP User Manager, and more. The chat reads the existing user directory, role mapping, and group structure — no separate user import.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-without-a-community-plugin">Does it work without a community plugin?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#does-it-work-without-a-community-plugin" class="hash-link" aria-label="Direct link to Does it work without a community plugin?" title="Direct link to Does it work without a community plugin?" translate="no">#</a></h3>
<p>Yes — Better Messages runs on any standard WordPress site without BuddyPress, BuddyBoss, or any other community plugin. It ships with its own user search, thread UI, group conversations, and chat rooms. The community-plugin integrations are additive: when present, they give you profile-page chat buttons, paired group chats, and member directory hooks. When absent, the chat still works end-to-end.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="is-the-live-chat-gdpr-compliant">Is the live chat GDPR-compliant?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#is-the-live-chat-gdpr-compliant" class="hash-link" aria-label="Direct link to Is the live chat GDPR-compliant?" title="Direct link to Is the live chat GDPR-compliant?" translate="no">​</a></h3>
<p>Yes — every conversation is stored in your WordPress database, not on a third-party SaaS. GDPR export and erasure use the standard WordPress user-tools UI. End-to-end encryption is available per-thread on the WebSocket version for the most sensitive conversations. See <a class="" href="https://www.better-messages.com/blog/gdpr-compliant-wordpress-messaging/">GDPR-compliant WordPress chat</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-see-who-is-currently-online">Can I see who is currently online?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#can-i-see-who-is-currently-online" class="hash-link" aria-label="Direct link to Can I see who is currently online?" title="Direct link to Can I see who is currently online?" translate="no">#</a></h3>
<p>On the WebSocket version, yes — online users sidebar in chat rooms, online indicator on profile pages, typing indicators in active threads. On the free version, presence is approximated from recent activity (less precise but still usable).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-is-this-different-from-a-saas-live-chat-widget-tidio-tawk-livechat">How is this different from a SaaS live-chat widget (Tidio, Tawk, LiveChat)?<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#how-is-this-different-from-a-saas-live-chat-widget-tidio-tawk-livechat" class="hash-link" aria-label="Direct link to How is this different from a SaaS live-chat widget (Tidio, Tawk, LiveChat)?" title="Direct link to How is this different from a SaaS live-chat widget (Tidio, Tawk, LiveChat)?" translate="no">#</a></h3>
<p>SaaS widgets store conversations on the vendor's cloud and bill per agent per month. Better Messages stores conversations in your WordPress database, is licensed per site (not per agent), and the conversation surface is woven into the rest of your WordPress install — same user accounts, same roles, same theme. For sites that already run on WordPress, the operational cost is lower and the data stays on infrastructure you control.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/wordpress-live-chat-plugin/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-chat-widget-mini-widgets/">WordPress chat widget — floating bubble and mini widgets</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/">Live Chat Button Shortcode Builder</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/realtime-messaging-wordpress/">Real-time messaging on WordPress</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-guest-chat-without-login/">WordPress guest chat without login</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">How to add a chat room to your WordPress site</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-group-chat-plugin/">WordPress group chat plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/ai-chat-bots-wordpress-messaging/">AI chat bots for WordPress private messaging</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-chat-mobile-app/">WordPress chat mobile app</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-video-call-plugin/">WordPress video call plugin</a></li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Live Chat</category>
            <category>Community</category>
            <category>WebSocket</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[WordPress Intranet Chat: Real-Time Messaging for Internal Communication]]></title>
            <link>https://www.better-messages.com/blog/wordpress-intranet-chat/</link>
            <guid>https://www.better-messages.com/blog/wordpress-intranet-chat/</guid>
            <pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Turn a WordPress intranet into a real-time internal communication hub — department group chats, role-gated channels, web push, group video calls, and self-hosted privacy.]]></description>
            <content:encoded><![CDATA[<p>An internal WordPress intranet — built on BuddyBoss, BuddyPress, FluentCommunity, Woffice, or Olympus — already hosts the employee directory, the document library, the org chart, the company announcements. What it usually doesn't host is the conversation: the day-to-day private messages, the department group chats, the live discussion when something needs to be sorted now rather than emailed. A native WordPress chat plugin adds that conversation layer inside the same intranet — one login, one inbox, one set of WordPress roles to manage.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1672px;aspect-ratio:1672 / 941;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/hero-5d8ca17-1672.webp" srcset="https://www.better-messages.com/assets/img/hero-5c44fd6-640.webp 640w, https://www.better-messages.com/assets/img/hero-9c06dbe-980.webp 980w, https://www.better-messages.com/assets/img/hero-28b0f8e-1320.webp 1320w, https://www.better-messages.com/assets/img/hero-f676d15-1660.webp 1660w, https://www.better-messages.com/assets/img/hero-5d8ca17-1672.webp 1672w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="WordPress intranet chat — department channels and real-time internal communication on a WordPress site" width="1672" height="941" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<p>This post covers how to add real-time private messaging to a WordPress intranet and which intranet stacks pair well with Better Messages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-intranet-chat-needs-to-do">What "intranet chat" needs to do<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#what-intranet-chat-needs-to-do" class="hash-link" aria-label="Direct link to What &quot;intranet chat&quot; needs to do" title="Direct link to What &quot;intranet chat&quot; needs to do" translate="no">#</a></h2>
<p>An employee-facing intranet messenger is a different product from a customer-facing live chat. The intranet version has to:</p>
<ol>
<li class="">Be available <strong>only to logged-in employees</strong> — never to the public internet, optionally only to the office network.</li>
<li class="">Respect the <strong>org chart</strong> — managers, HR, executives, contractors, and external auditors all need different access.</li>
<li class="">Allow <strong>department / project group chats</strong> that map to existing intranet groups.</li>
<li class="">Support <strong>company-wide announcements</strong> that reach every employee at once.</li>
<li class="">Run on the <strong>company's own infrastructure</strong> — the messages and files stay on the WordPress server the rest of the intranet is hosted on.</li>
<li class="">Have a <strong>mobile app</strong> for field staff, drivers, retail employees, and anyone not at a desk all day.</li>
</ol>
<p>Better Messages covers all six on top of any standard WordPress intranet stack.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stack-wordpress--better-messages-community-plugin-optional">Stack: WordPress + Better Messages (community plugin optional)<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#stack-wordpress--better-messages-community-plugin-optional" class="hash-link" aria-label="Direct link to Stack: WordPress + Better Messages (community plugin optional)" title="Direct link to Stack: WordPress + Better Messages (community plugin optional)" translate="no">#</a></h2>
<p>Better Messages adds the messaging layer to <strong>any</strong> WordPress site — vanilla WordPress, a custom theme, an intranet theme like Woffice / Olympus / BuddyApp / Interactive / Bookmark, or a community-driven stack on BuddyBoss / BuddyPress / FluentCommunity / Ultimate Member / PeepSo.</p>
<p>Two common shapes for an intranet:</p>
<ul>
<li class=""><strong>WordPress + Better Messages only</strong> — works on any WordPress install. Employees log in, find each other via search, start one-on-one or group threads, join chat rooms. No community plugin required.</li>
<li class=""><strong>WordPress + community plugin + Better Messages</strong> — when an employee directory, profile pages, and groups are already needed for the rest of the intranet, a community plugin (BuddyBoss Platform, BuddyPress, FluentCommunity, Ultimate Member, or PeepSo) supplies them. Better Messages then integrates with that plugin so department / project groups get paired chat threads.</li>
</ul>
<p>The community plugin (when present) owns identity — profile, role, department. Better Messages always owns the conversation — DM, group thread, chat room, call. They share the same WordPress user table, so an employee onboarded once in WP-admin is reachable in the messenger immediately.</p>
<table><thead><tr><th>Intranet shape</th><th>Stack</th></tr></thead><tbody><tr><td>Small company / department, no employee directory needed</td><td>WordPress + Better Messages</td></tr><tr><td>Mid-size company with profiles and groups</td><td>WordPress + BuddyBoss Platform (or BuddyPress / Ultimate Member / PeepSo / FluentCommunity) + Better Messages</td></tr><tr><td>Custom intranet built around a specific workflow</td><td>WordPress + custom plugin + Better Messages</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="department-and-project-group-chats">Department and project group chats<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#department-and-project-group-chats" class="hash-link" aria-label="Direct link to Department and project group chats" title="Direct link to Department and project group chats" translate="no">#</a></h2>
<p>Every intranet has departments — Engineering, Sales, HR, Finance, Marketing, Support, plus cross-functional projects.</p>
<p>If you run a community plugin (BuddyBoss, BuddyPress, PeepSo, FluentCommunity, Ultimate Member), each department is already a group there (BuddyBoss Group, BuddyPress Group, PeepSo Group, FluentCommunity Space, Ultimate Member Group). Better Messages can pair a group chat with each of those — joining the group adds the user to the paired chat.</p>
<p>The flow that works for most companies on a community-plugin intranet:</p>
<ul>
<li class="">Create a private BuddyBoss Group called <strong>Engineering</strong>, restricted to the <code>engineering</code> role.</li>
<li class="">Enable the paired Better Messages group chat under <strong>Integrations</strong>.</li>
<li class="">Every engineer joining the group also joins the Engineering chat — no manual invites.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRioBAABXRUJQVlA4IB4BAADQBgCdASooAB0APjEUiEKiISEYBAAgAwSzgGiq//PBrGfGVumFPSQ7MtjL3ExMhbCxIRGDUIIrXpfkI2NHJ4AA/v+lAKJGeIfvmzlevEDi7Wncp38Mum8aad7lhHNubOgi5FouOWIB0pHc5ckheoFjCTlqRPxM9EgAkJeo7t5pvD/6EfWrW6RZYnxuueZXQdHnU3d34e/+qfh3+fTd9FOeUApC1MMdkzia+arK42hLrIAfRb0TfH/6lIyI7Hcptu57ilkiFRyHPVvCAf3TgQxrNcb5FHXXAiIuirCoE7w14D/N9e73XuwAMtPtYL9kTKC4ZGpYFeHGTXyqLLkAVz7M/s33IzXOpv8/Ak3DERKhzeywS7pMPiXP5SWoZIAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/members-directory-33b96ba-2000.webp" srcset="https://www.better-messages.com/assets/img/members-directory-14c2a6e-640.webp 640w, https://www.better-messages.com/assets/img/members-directory-280ef48-980.webp 980w, https://www.better-messages.com/assets/img/members-directory-50fd5f5-1320.webp 1320w, https://www.better-messages.com/assets/img/members-directory-af25177-1660.webp 1660w, https://www.better-messages.com/assets/img/members-directory-33b96ba-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Department member directory on a BuddyBoss-based WordPress intranet" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>For an intranet without a community plugin (a plain WordPress site, or one built on a non-community theme), the same outcome is achievable using Better Messages <strong>Chat Rooms</strong> — create one room per department, restrict access by WordPress role, and admins manage membership directly. See <a class="" href="https://www.better-messages.com/blog/add-chat-room-to-wordpress/">How to add a chat room to your WordPress site</a>.</p>
<p>For an org with location-based teams (e.g. <strong>NYC office</strong>, <strong>Berlin office</strong>, <strong>Remote — EMEA</strong>), the same pattern works — one group (or room) per location, one chat per group.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="role-gated-channels">Role-gated channels<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#role-gated-channels" class="hash-link" aria-label="Direct link to Role-gated channels" title="Direct link to Role-gated channels" translate="no">#</a></h2>
<p>Beyond per-group chats, intranets need broader, role-gated channels:</p>
<ul>
<li class=""><strong>All-hands</strong> room — every employee, read-only for non-management.</li>
<li class=""><strong>Managers</strong> room — leadership only.</li>
<li class=""><strong>HR confidential</strong> thread — one-on-one HR conversations, end-to-end encrypted.</li>
<li class=""><strong>External contractors</strong> room — limited access. Cannot see the rest of the intranet.</li>
<li class=""><strong>Executives</strong> room — board, C-suite, optionally outside legal counsel.</li>
</ul>
<p>Better Messages reads WordPress roles directly. In <strong>Better Messages → Settings → Restrictions</strong>, the core messaging surfaces — start a new thread, reply, view messages, and which roles may message which — are configurable per role, with calls, group calls and voice messages gated on their own settings tabs. A contractor role can be allowed to chat only with their project manager and one HR contact. An intern role can be allowed to read but not start a thread. A former-employee role can be revoked from every chat surface in one toggle, without deleting their account.</p>
<p>For role-by-role rules in more depth, see <a class="" href="https://www.better-messages.com/blog/role-based-access-wordpress-chat/">Role-based access for WordPress chat</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="company-wide-announcements">Company-wide announcements<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#company-wide-announcements" class="hash-link" aria-label="Direct link to Company-wide announcements" title="Direct link to Company-wide announcements" translate="no">#</a></h2>
<p>Internal communications teams need to push a message to <strong>every employee at once</strong> — a policy update, a town-hall reminder, a security incident notification. The Better Messages <a class="" href="https://www.better-messages.com/blog/wordpress-mass-messaging-broadcast/">mass messaging</a> feature does exactly this: from WP-admin you compose one message, target a role or set of roles, and every targeted employee receives an individual thread with the message. Replies route privately back to the sender — so HR can ask "any questions?" and field 200 individual responses without 200 of them becoming a public reply-all storm.</p>
<p>Combined with web push notifications, an all-hands message lands as a browser notification on every employee's desktop within seconds, even if they don't have the intranet tab open.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="on-premises-self-hosted-gdpr-friendly">On-premises, self-hosted, GDPR-friendly<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#on-premises-self-hosted-gdpr-friendly" class="hash-link" aria-label="Direct link to On-premises, self-hosted, GDPR-friendly" title="Direct link to On-premises, self-hosted, GDPR-friendly" translate="no">#</a></h2>
<p>A major reason companies adopt a WordPress intranet in the first place is <strong>data sovereignty</strong> — they want HR conversations, performance reviews, internal incident reports, and legal discussions to live on infrastructure they control.</p>
<p>Better Messages stores every message in the WordPress database. A daily database dump captures every message and file alongside the rest of the intranet. For the WebSocket version, the relay can run on the same server as WordPress (or on a private VPC), so even the real-time delivery never leaves company infrastructure. End-to-end encryption is available per thread for the most sensitive conversations — HR, legal, executive — so even a database breach yields ciphertext for those threads.</p>
<p>GDPR data-subject requests are also straightforward: every message a given employee has sent or received can be exported from the database, and the standard WordPress user-deletion flow removes them.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-video-calls-and-web-push-the-productivity-unlock">Group video calls and web push: the productivity unlock<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#group-video-calls-and-web-push-the-productivity-unlock" class="hash-link" aria-label="Direct link to Group video calls and web push: the productivity unlock" title="Direct link to Group video calls and web push: the productivity unlock" translate="no">#</a></h2>
<p>Two features turn an intranet messenger from "an email replacement" into "the place work happens":</p>
<ul>
<li class=""><strong>Group voice and video calls inside the chat thread.</strong> Daily standups, sprint demos, project kickoffs, and ad-hoc "can we jump on a quick call?" all happen inside the messenger — enough for a department all-hands without a separate Zoom link.</li>
<li class=""><strong>Web push notifications for new messages.</strong> Employees hear about new messages even when the intranet tab is closed or the browser is minimized — works on Chrome, Edge, Firefox, and Safari, plus iOS 16.4+ when the intranet is added to the home screen as a PWA.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRv4BAABXRUJQVlA4IPIBAABwCQCdASooAB0APikShkKhoQ6uZgAMAUJZwDJQusNVnoLt03j//fI8FxHegGlWZ4FY+1S12xPoqiOjASSAUFL9tx5MPif+E060skCMGFcj8NAzabgA/v/kIXyVGLc7/acUVmIdNIbvptkFIHMOA/HSf+OFE+hvf32gh3g4Ad2R9eZybE4eC1cv/63VNNbwPAi9rryEtD6wsP5DkoG1//jw/FlVyzbiljn1nnddq7gPyKKsU8AlciLUt15ZBMTJCxuq64Cr03nIRXEc6dR7mb5jTqkosf4ORMLuxuuvaYMRaPiqWfu+njOoST34QNv3/EqbswF8QK1RPXu5va/nfvU4WRiFee1m9fmSYxlGi4LbAk0CJEsRiwYAF+KaV2GfBn/6lHbmRjeQ1F7D0l5SVtOZfF5y/TNnC9nz/CeJ4SU0KLebzB3dNH/+01jKe12hqiN9f6f8M6fy+NRioTsc6VpeNFXLkLPlH4rDtwMEM6ydlzsDyNDXG+1J0XX9bEv6vy11Gm3Q16xhjIXGrl523VjfiEnnXf7XTlNWvdfdPM/k4/invmgBBDfFPe8PRoRNExMslHa/5KjlfwDGXfzoIPYvx71mmFla9BTcje2YchV/te0e78vA65Tvyrfyr9MrCsEXsH3XljGV1Xgan8gIWgOIAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/unread-counter-a2d3f3d-2000.webp" srcset="https://www.better-messages.com/assets/img/unread-counter-4bee0b3-640.webp 640w, https://www.better-messages.com/assets/img/unread-counter-6ed45f8-980.webp 980w, https://www.better-messages.com/assets/img/unread-counter-11482b3-1320.webp 1320w, https://www.better-messages.com/assets/img/unread-counter-a5e37e1-1660.webp 1660w, https://www.better-messages.com/assets/img/unread-counter-a2d3f3d-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Unread message counter in the profile dropdown of an intranet header" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>A typical week on an intranet with both enabled: morning standups run as group calls inside the Engineering chat, a contractor pings the project manager mid-day via DM (push notification on the PM's laptop), HR sends an end-of-day reminder by mass messaging (push notification on everyone's phones via the mobile app), the weekly all-hands runs as a 30-person group video call inside the <strong>All-Hands</strong> room.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mobile-app-for-non-desk-employees">Mobile app for non-desk employees<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#mobile-app-for-non-desk-employees" class="hash-link" aria-label="Direct link to Mobile app for non-desk employees" title="Direct link to Mobile app for non-desk employees" translate="no">#</a></h2>
<p>A meaningful fraction of any company's headcount isn't at a desk: field service, drivers, retail floor staff, warehouse, security. They need the same chat on a phone, with native push notifications that survive the screen being off.</p>
<p>Better Messages ships a native <a class="" href="https://www.better-messages.com/blog/wordpress-chat-mobile-app/">iOS and Android mobile app</a> that connects to the company's WordPress intranet. Employees install one app, sign in once, and get the same chats, calls, and notifications as the web users. The app talks to the same backend, so a message sent from a delivery driver's phone shows up instantly in the Logistics group chat on the dispatcher's desktop.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-on-site-for-internal-communication">Why on-site for internal communication<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#why-on-site-for-internal-communication" class="hash-link" aria-label="Direct link to Why on-site for internal communication" title="Direct link to Why on-site for internal communication" translate="no">#</a></h2>
<p>A WordPress intranet exists because the company chose to own its directory, documents, and process inside its own infrastructure. The conversation layer benefits from the same model:</p>
<ul>
<li class=""><strong>One login, one identity.</strong> Employees use their WordPress account for everything — directory, docs, announcements, and chat. Offboarding a leaver is a single role change in WP-admin.</li>
<li class=""><strong>One database for backups, audits, and exports.</strong> Every message ends up in the same MySQL dump that captures the rest of the intranet, so retention policy is one policy, not two.</li>
<li class=""><strong>Same WordPress roles for permissions.</strong> A contractor role you've already configured for documents and forums applies equally to who they can chat with — no separate permission system.</li>
<li class=""><strong>No per-seat tax on growth.</strong> Headcount changes don't change the chat licence cost. The only thing that scales is the WordPress server itself.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-an-intranet">Installing Better Messages on an intranet<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#installing-better-messages-on-an-intranet" class="hash-link" aria-label="Direct link to Installing Better Messages on an intranet" title="Direct link to Installing Better Messages on an intranet" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate.</li>
<li class="">Confirm your community plugin is active (BuddyBoss Platform, BuddyPress, FluentCommunity, Ultimate Member, or PeepSo).</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Restrictions</strong> and configure access per WordPress role. Set contractor, intern, and external roles to restricted access. Give HR and executive roles a wider surface.</li>
<li class="">Enable the matching group integration under <strong>Better Messages → Settings → Integrations</strong> so department / project groups get paired chats.</li>
<li class="">For real-time delivery, web push, and group video calls, activate the WebSocket version under <strong>Better Messages → Account</strong> with your license key.</li>
<li class="">(Recommended for internal-only intranets) At the web-server level (<code>.htaccess</code> / nginx), restrict the WordPress site to the office IP range or corporate VPN. This is generic WordPress hardening, not a Better Messages setting — chat traffic inherits whatever WP itself is reachable on.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-an-intranet">Free vs WebSocket version for an intranet<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#free-vs-websocket-version-for-an-intranet" class="hash-link" aria-label="Direct link to Free vs WebSocket version for an intranet" title="Direct link to Free vs WebSocket version for an intranet" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Role-gated chat</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Paired group chats for departments / projects</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Auto-provision on role / group change</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time message delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mass-message company-wide announcements</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (standups, all-hands)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<p>| Web push notifications (desktop + iOS PWA) | — | yes |
| End-to-end encryption (HR, legal, executive threads) | — | yes |
| Native mobile app for non-desk employees | set up only | yes |
| Self-hosted WebSocket relay (on-prem, no cloud) | — | yes |</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For an intranet, the WebSocket version's combination of real-time delivery, web push, group calls, and self-hosted relay is what turns the chat from an asynchronous message board into a surface where standups and urgent HR messages land in seconds. On the free version, the chat works fine for asynchronous internal-discussion patterns but lacks the live presence that real-time delivery brings.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-buddyboss-platform">Does it work with BuddyBoss Platform?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#does-it-work-with-buddyboss-platform" class="hash-link" aria-label="Direct link to Does it work with BuddyBoss Platform?" title="Direct link to Does it work with BuddyBoss Platform?" translate="no">#</a></h3>
<p>Yes — BuddyBoss is the most common WordPress intranet stack and Better Messages integrates natively. Department chats pair with BuddyBoss Groups, the directory uses BuddyBoss member profiles, and the BuddyBoss ReadyLaunch theme is fully supported. See <a class="" href="https://www.better-messages.com/blog/buddyboss-messaging-plugin/">BuddyBoss messaging plugin</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-run-it-without-any-community-plugin">Can I run it without any community plugin?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#can-i-run-it-without-any-community-plugin" class="hash-link" aria-label="Direct link to Can I run it without any community plugin?" title="Direct link to Can I run it without any community plugin?" translate="no">#</a></h3>
<p>Yes — Better Messages works on a vanilla WordPress install without BuddyPress / BuddyBoss / PeepSo. You lose the auto-paired group chats but you keep one-on-one DMs, chat rooms, mass messaging, calls, and web push. The community plugin only adds the department-group auto-provisioning.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-chat-access-be-limited-to-the-office-network-or-vpn">Can chat access be limited to the office network or VPN?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#can-chat-access-be-limited-to-the-office-network-or-vpn" class="hash-link" aria-label="Direct link to Can chat access be limited to the office network or VPN?" title="Direct link to Can chat access be limited to the office network or VPN?" translate="no">#</a></h3>
<p>Yes — but this isn't a Better Messages setting. Restrict the entire WordPress site at the web-server level (nginx / Apache config, <code>.htaccess</code>, or a network ACL on the VPN). Better Messages inherits whatever WordPress itself is reachable on — every chat request goes through the WP permission stack, so whatever you block at WordPress level blocks the chat as well.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-does-offboarding-work">How does offboarding work?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#how-does-offboarding-work" class="hash-link" aria-label="Direct link to How does offboarding work?" title="Direct link to How does offboarding work?" translate="no">#</a></h3>
<p>When a leaving employee's WordPress account is deactivated (or their role is changed to a stripped-down "former employee" role), chat access follows the same WordPress role check that gates the rest of the site. Their previous messages remain in the history for the audit trail. The user-deletion flow removes them permanently if needed.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-support-sso-active-directory-okta-azure-ad">Does it support SSO (Active Directory, Okta, Azure AD)?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#does-it-support-sso-active-directory-okta-azure-ad" class="hash-link" aria-label="Direct link to Does it support SSO (Active Directory, Okta, Azure AD)?" title="Direct link to Does it support SSO (Active Directory, Okta, Azure AD)?" translate="no">#</a></h3>
<p>Better Messages doesn't integrate with SSO providers directly — it reads the WordPress user table. Any WordPress SSO plugin that creates a WP user on first login (miniOrange SSO, WP SAML Auth, Auth0 for WP, Authentication Pro, and others) handles the SSO side. Once the employee has a WP account, chat access follows their WordPress role automatically.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-we-host-the-websocket-relay-on-premises">Can we host the WebSocket relay on-premises?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#can-we-host-the-websocket-relay-on-premises" class="hash-link" aria-label="Direct link to Can we host the WebSocket relay on-premises?" title="Direct link to Can we host the WebSocket relay on-premises?" translate="no">#</a></h3>
<p>Yes — the WebSocket version of Better Messages can either use the hosted Better Messages cloud or your own self-hosted relay. Self-hosted means message bytes never leave your network. See <a class="" href="https://www.better-messages.com/docs/websocket/servers-location/">Where are the WebSocket servers located?</a> for the relay-location discussion and the <a class="" href="https://www.better-messages.com/docs/pricing/#self-hosted">Self-Hosted plan pricing</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="is-end-to-end-encryption-available">Is end-to-end encryption available?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#is-end-to-end-encryption-available" class="hash-link" aria-label="Direct link to Is end-to-end encryption available?" title="Direct link to Is end-to-end encryption available?" translate="no">#</a></h3>
<p>Yes — per-thread end-to-end encryption is available on the WebSocket version. Enable it on HR, legal, executive, or any thread where the message content should be unreadable even to the database administrator. See <a class="" href="https://www.better-messages.com/blog/end-to-end-encrypted-wordpress-messaging/">End-to-end encrypted messaging on WordPress</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-many-employees-can-a-single-intranet-handle">How many employees can a single intranet handle?<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#how-many-employees-can-a-single-intranet-handle" class="hash-link" aria-label="Direct link to How many employees can a single intranet handle?" title="Direct link to How many employees can a single intranet handle?" translate="no">#</a></h3>
<p>There is no hard cap — the limit is the WordPress server. A standard $40–80/month VPS handles 1,000–5,000 daily-active employees comfortably. Larger organizations run on a dedicated MySQL host plus a separate WebSocket relay. The architecture scales horizontally the same way the rest of the WordPress install does.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/wordpress-intranet-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/blog/buddyboss-messaging-plugin/">BuddyBoss messaging plugin</a> — the most common intranet community stack</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/buddypress-messaging-plugin/">BuddyPress messaging plugin</a> — the open-source intranet base</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/fluentcommunity-chat-plugin/">FluentCommunity chat</a> — for Discord-style internal spaces</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/ultimate-member-private-messaging/">Ultimate Member private messaging</a> — for UM-driven employee directories</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-mass-messaging-broadcast/">Mass messaging to all users</a> — for company-wide announcements</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/role-based-access-wordpress-chat/">Role-based access</a> — for HR / contractor / executive gating</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/end-to-end-encrypted-wordpress-messaging/">End-to-end encrypted messaging</a> — for confidential threads</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-chat-mobile-app/">Mobile app</a> — for field staff and non-desk employees</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-group-chat-plugin/">WordPress group chat plugin</a> — for department-style multi-user chats</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Intranet</category>
            <category>Community</category>
            <category>BuddyBoss</category>
            <category>BuddyPress</category>
            <category>WebSocket</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[Shortcode Builder: Live Chat Button on Any Custom Post Type, No PHP]]></title>
            <link>https://www.better-messages.com/blog/live-chat-button-shortcode-builder/</link>
            <guid>https://www.better-messages.com/blog/live-chat-button-shortcode-builder/</guid>
            <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Better Messages 2.15.9 adds a visual Shortcode Builder for the Live Chat Button — point at any custom post type, pick how the target user is resolved, copy the resulting shortcode. Includes a built-in thread information banner that works on any CPT without a dedicated integration.]]></description>
            <content:encoded><![CDATA[<p>Until this release, putting a Live Chat button onto a custom directory, a marketplace listing, or a real-estate agent profile that Better Messages didn't ship a dedicated integration for required PHP. You'd open the theme template, fetch <code>get_the_ID()</code>, look up a vendor user id from postmeta, build a unique tag per post, and finally call <code>do_shortcode()</code> with the right attributes. It worked, but every CPT meant another snippet to write and maintain.</p>
<p>Better Messages 2.15.9 ships a visual Shortcode Builder that does this for you. Point it at a sample listing, pick a few radio buttons, copy the resulting shortcode, paste it anywhere. The same shortcode then works for every listing of that shape — Better Messages resolves the target user, the conversation thread, and the in-chat banner against whichever listing the visitor is currently looking at.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1770px;aspect-ratio:1770 / 3726;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/button-variations-600c097-1770.webp" srcset="https://www.better-messages.com/assets/img/button-variations-5d96ef8-640.webp 640w, https://www.better-messages.com/assets/img/button-variations-5a5f54b-980.webp 980w, https://www.better-messages.com/assets/img/button-variations-552e7f4-1320.webp 1320w, https://www.better-messages.com/assets/img/button-variations-3c645da-1660.webp 1660w, https://www.better-messages.com/assets/img/button-variations-600c097-1770.webp 1770w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Live Chat Button variations rendered on a vendor listing" width="1770" height="3726" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-shortcode-builder">The Shortcode Builder<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#the-shortcode-builder" class="hash-link" aria-label="Direct link to The Shortcode Builder" title="Direct link to The Shortcode Builder" translate="no">#</a></h2>
<p>Open <strong>WP Admin → Better Messages → Settings → Shortcodes</strong>. The first card is the new Builder.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:1800px;aspect-ratio:1800 / 4072;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRqYCAABXRUJQVlA4IJoCAABQDgCdASooAFoAPjEWiUOiISETlJAgAwS0gGpWMeTV0zPcgP1mY2E6WWxpcWlAqyfA4lzkKmWFbEoYvdUyyFEZWYLtUJlEa5Jbro5hrfmiro7QFlqne+g49IDiJ68tDLjqJ80kQj1rPZ5KE8mDNuNCE/or/KpWc0w4v4AA/v9sTgqtmxiGcVtuB3grVLSn7iNokcuyVAnozfQPYaNHdvB2mxEk8Zlz2XOzzgYlxiKnORhe0mbPYSlbQRBnJgiamGxhHhiALNKwBkACWgFZguK6vrOQkM/aSlqFO6BsK6P3dQeg/6HI6FPoewQuQ7VTDGfgbYPK+UfneXOZB1ElxMhrBAFbFT4377LUfZrSusVpZo4RCefQ6GbbQHN7qP0JXuPRD3HQ0RnSJ6gdxPyGQvFKxgsfFqsZl5WfbDP/tYOwQIc56C9zT/DjP1rY+CHjLGurTaGs8NkpJXnI6q2Vfg4OgXZSUXA2ipR4/3Q2a8X6vD7+FVOhIUBzTZmzuAZbillfgoPusNapSHoKndKtK/G88F/HyUj49paW5mpYGrL6p4OzVdX62EykZdymHrlhmK7N+FTvgtEc8jEmlOU6nKkqKVqit6SiKV85daPEOz07mMOfL+EHRD/sZJnfJVMZePF56wmiDn3j0rL8+ic3kKMPvY1dLh79QNHFIc49iKN1HX1RCxhjm/7PT9Cufn/yL8KiOXX4WQKf1p3+ag8NUPoLJ3dbB1soNJuhsgO6qsT5Osf3LR/AYTNIOsIGB5K6OwQxUb/8mvUxEt2JuGzP4vGZ+pqmBG+R0sBFoTJi/dVAB+Eh8kBbD/8OeeI3xmzvmNpy/eqT5QfwdaNDDx9h4ZE1I8Sj/u//1X/H/P/X72A5ueFft9ZKwbLBUAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/shortcode-builder-b48c1ed-1800.webp" srcset="https://www.better-messages.com/assets/img/shortcode-builder-6280c3b-640.webp 640w, https://www.better-messages.com/assets/img/shortcode-builder-0de90b5-980.webp 980w, https://www.better-messages.com/assets/img/shortcode-builder-598b9ce-1320.webp 1320w, https://www.better-messages.com/assets/img/shortcode-builder-42c6990-1660.webp 1660w, https://www.better-messages.com/assets/img/shortcode-builder-b48c1ed-1800.webp 1800w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Shortcode Builder admin UI with a vendor product selected as target post" width="1800" height="4072" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The flow:</p>
<ol>
<li class=""><strong>Pick a target post.</strong> This is just for previewing — a real listing whose values get plugged into the form so you can see exactly what visitors will see. It is not written into the generated shortcode. The shortcode you copy works on every post of the same shape.</li>
<li class=""><strong>Choose how the target user is resolved.</strong> Three options:<!-- -->
<ul>
<li class=""><strong>Author of the current post</strong> — chat goes to whoever wrote the listing. Works for blog posts, vendor profiles where the vendor is the WP author, agent CPTs, anything author-driven.</li>
<li class=""><strong>User stored in a custom field on the post</strong> — chat goes to a user id stored in a postmeta key (e.g. <code>_vendor_user_id</code>, <code>agent_user_id</code>, <code>_listing_owner</code>). The classic directory / marketplace pattern.</li>
<li class=""><strong>Fixed user (a single inbox for the whole site)</strong> — all visitors land in the same thread with one staff user. Site-wide support pattern.</li>
</ul>
</li>
<li class=""><strong>Pick a thread strategy.</strong> <code>Auto — one thread per post</code> means repeat visitors to the same listing reopen the same conversation instead of starting fresh each time. Or set a custom pattern, or open a new thread per visitor.</li>
<li class=""><strong>Pick a label.</strong> Use <code>Auto — "Chat with {author_name}"</code>, write your own with placeholders like <code>{post_title}</code> and <code>{author_name}</code>, or stick to a plain <code>Live Chat</code>.</li>
<li class=""><strong>Tune the look</strong> — background color, text color, font size, padding, border radius, margin, an inline SVG icon. All optional. The default <code>bm-lc-button-styled</code> class already gives you a branded button out of the box, so most sites don't need to touch this section.</li>
<li class=""><strong>Attach a thread information banner</strong> — toggle on by default. More on this below.</li>
<li class=""><strong>Click "Test in real chat"</strong> — opens the resolved conversation in a new tab so you can send a real message and see exactly what the visitor would see.</li>
<li class=""><strong>Copy the generated shortcode</strong> and paste it into your post body, Gutenberg shortcode block, Elementor shortcode widget, or theme template.</li>
</ol>
<p>The live preview on the right is an iframe that loads inside your active theme — fonts, colors, line heights all match what visitors will see on the frontend. Not a mockup.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-vendor-postmeta-pattern-end-to-end">The vendor-postmeta pattern, end to end<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#the-vendor-postmeta-pattern-end-to-end" class="hash-link" aria-label="Direct link to The vendor-postmeta pattern, end to end" title="Direct link to The vendor-postmeta pattern, end to end" translate="no">#</a></h2>
<p>A common case: you have a custom directory CPT (vendors, agents, businesses, freelancers, real-estate listings). Each listing has a postmeta key — say <code>_vendor_user_id</code> — pointing to the WordPress user account behind that listing. You want every listing page to have a "Chat with vendor" button that opens a thread with the <em>right</em> vendor — never the wrong one, never the listing author (which might be the site admin who imported the data).</p>
<p>Old way:</p>
<div class="language-php codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-php codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token delimiter important">&lt;?php</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token variable" style="color:#36acaa">$vendor_user_id</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">get_post_meta</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">get_the_ID</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'_vendor_user_id'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token constant boolean" style="color:#36acaa">true</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token variable" style="color:#36acaa">$unique_tag</span><span class="token plain">     </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'vendor-'</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">get_the_ID</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">echo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">do_shortcode</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string single-quoted-string" style="color:#e3116c">'[better_messages_live_chat_button '</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'user_id="'</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">esc_attr</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"> </span><span class="token variable" style="color:#36acaa">$vendor_user_id</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'" '</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'unique_tag="'</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">esc_attr</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"> </span><span class="token variable" style="color:#36acaa">$unique_tag</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'" '</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token operator" style="color:#393A34">.</span><span class="token plain"> </span><span class="token string single-quoted-string" style="color:#e3116c">'text="Chat with vendor"]'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token delimiter important">?&gt;</span><br></span></code></pre></div></div>
<p>New way — open the builder, switch <strong>Target user</strong> to <em>User stored in a custom field on the post</em>, type <code>_vendor_user_id</code>, hit Copy:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_live_chat_button user_id="postmeta:_vendor_user_id" unique_tag="auto" object_id="auto" text="Chat with vendor" class="bm-lc-button-styled"]</span><br></span></code></pre></div></div>
<p>Drop that shortcode into your vendor CPT's single template or post body once. On every listing page, the button automatically targets the user id stored in that listing's <code>_vendor_user_id</code> postmeta, opens or reuses a thread keyed by <code>vendor-{post_id}</code>, and attaches the listing as a banner.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="thread-information-banner--on-any-cpt">Thread information banner — on any CPT<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#thread-information-banner--on-any-cpt" class="hash-link" aria-label="Direct link to Thread information banner — on any CPT" title="Direct link to Thread information banner — on any CPT" translate="no">#</a></h2>
<p>Set <code>object_id="auto"</code> and the listing becomes a banner inside the conversation. Both participants see the listing's title, thumbnail, and link at the top of the thread — so there's no ambiguity about <em>which</em> property, <em>which</em> vendor, <em>which</em> job posting the chat is about.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1423;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRoABAABXRUJQVlA4IHQBAACQBgCdASooABwAPjEUh0KiIQwFVqoQAYJZQCw/f/2TGRIRBWa8Lmfpn5+AUpoZXbbWo2PTImPS2Abk5AAAAP7/8/LyK2UrmqTN+l8CfcLiOjmetx89+6/y+wEccTqOSEfUh9zqA/8S8BRC+K4jKLhun6H7n6b1dzfgjj7EI6bB+/J+z9j/rvtqulepVM8kg7VZMrm8UbtLQx77o3tbI9+FAHXj1u5O1pf2T9m+jrA+H4kEPL2Fltgxm5hccbSzhAbiFhdtg/C71rgybObgBicCBELG4a8epEOHob9YQsxO2KGpUC4xB36B+a3//0kXzOP/jE0HrbQzUQsjuNwICmfg5mpOC7cd/9TmdjdCeagucP6/8f/NoYIHrn9Tz4at1BAucYHkn9olI4d7vIWNZ+hEa3AVL9oCkMRoSPEi0I6P/Eo95oRFJnCda6ND4eeDpWk1Vb3lDUZyWV/GNBRDwb1Iu9thSmA7RvWVe2QXEZox+uyIAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/conversation-with-banner-4c3a3ab-2000.webp" srcset="https://www.better-messages.com/assets/img/conversation-with-banner-92d9c18-640.webp 640w, https://www.better-messages.com/assets/img/conversation-with-banner-efdb044-980.webp 980w, https://www.better-messages.com/assets/img/conversation-with-banner-45fd865-1320.webp 1320w, https://www.better-messages.com/assets/img/conversation-with-banner-525fa04-1660.webp 1660w, https://www.better-messages.com/assets/img/conversation-with-banner-4c3a3ab-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live conversation with the post information banner pinned at the top" width="2000" height="1423" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Until this release, the in-chat post banner only worked for the integrations Better Messages ships directly (WooCommerce, WP Job Manager, Houzez). For any other CPT, you had to write your own addon that hooked the <code>better_messages_rest_thread_item</code> filter. Now it works for any custom post type with no code — the post is published, the post id is attached at thread creation, the banner renders.</p>
<p>The banner is filterable via <code>better_messages_thread_info_banner_html</code> if you want to add custom fields (price, rating, availability, etc.) to the rendered banner.</p>
<p>Existing integration banners (WooCommerce product cards, WP Job Manager listings, Houzez property cards) continue to win when both are present — they hook the same filter at the default priority, the generic banner runs at priority 20.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="magic-tokens-if-you-prefer-writing-shortcodes-by-hand">Magic tokens, if you prefer writing shortcodes by hand<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#magic-tokens-if-you-prefer-writing-shortcodes-by-hand" class="hash-link" aria-label="Direct link to Magic tokens, if you prefer writing shortcodes by hand" title="Direct link to Magic tokens, if you prefer writing shortcodes by hand" translate="no">#</a></h2>
<p>The builder generates shortcodes that use a small set of "magic" attribute values. Each one resolves against the post the shortcode is rendered inside. You can hand-write them too:</p>
<table><thead><tr><th>Attribute</th><th>Magic value</th><th>What it does</th></tr></thead><tbody><tr><td><code>user_id</code></td><td><code>post_author</code></td><td>Chat with the current post's author</td></tr><tr><td><code>user_id</code></td><td><code>postmeta:KEY</code></td><td>Read a numeric user id from the named postmeta</td></tr><tr><td><code>user_id</code></td><td><code>5</code></td><td>Hard-coded user id (existing behavior)</td></tr><tr><td><code>unique_tag</code></td><td><code>auto</code></td><td><code>{post_type}-{post_id}</code> — one thread per listing</td></tr><tr><td><code>unique_tag</code></td><td><code>chat-{post_id}-{author_id}</code></td><td>Custom pattern with placeholders</td></tr><tr><td><code>text</code></td><td><code>auto</code></td><td><code>Chat with {author_name}</code></td></tr><tr><td><code>text</code></td><td><code>Ask {author_name} about {post_title}</code></td><td>Custom label with placeholders</td></tr><tr><td><code>object_id</code></td><td><code>auto</code></td><td>Attach the current post as a banner</td></tr></tbody></table>
<p>The placeholders — <code>{post_id}</code>, <code>{post_title}</code>, <code>{post_type}</code>, <code>{author_id}</code>, <code>{author_name}</code> — work in <code>text</code>, <code>subject</code>, and the custom-pattern form of <code>unique_tag</code>. When the shortcode runs outside of a post (sidebar widget on the home page, for example), placeholders quietly collapse to safe defaults instead of leaking empty strings.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="style-without-writing-css">Style without writing CSS<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#style-without-writing-css" class="hash-link" aria-label="Direct link to Style without writing CSS" title="Direct link to Style without writing CSS" translate="no">#</a></h2>
<p>The Button style block in the Shortcode Builder includes color pickers and inline numeric inputs that map directly to CSS properties on the rendered button. Examples:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_live_chat_button</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    user_id="post_author"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    text="auto"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    class="bm-lc-button-styled"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    bg_color="#ff6b35"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    text_color="#ffffff"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    font_size="18px"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    padding="14px 24px"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    border_radius="999px"]</span><br></span></code></pre></div></div>
<p>Renders an orange pill button. All values pass through WordPress's <code>safecss_filter_attr</code> — unsafe properties and <code>javascript:</code>-style URL values are stripped automatically.</p>
<p>The <code>icon</code> attribute takes inline SVG — picked from a preset library inside the builder, or pasted directly. The icon is embedded inside the shortcode itself, so no separate icon font (Dashicons, Font Awesome) needs to be loaded on the frontend. SVG content is sanitized: <code>&lt;script&gt;</code>, <code>&lt;foreignObject&gt;</code>, <code>&lt;iframe&gt;</code>, event handlers, and <code>javascript:</code> URLs are all stripped before render.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="backward-compatibility">Backward compatibility<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#backward-compatibility" class="hash-link" aria-label="Direct link to Backward compatibility" title="Direct link to Backward compatibility" translate="no">#</a></h2>
<p>Every shortcode you already wrote keeps working unchanged. Numeric <code>user_id</code>, plain <code>text</code>, the <code>unique_tag</code> you set six months ago, AI bot launchers with <code>user_id="-3"</code>, <code>type="button"</code> versus the default link — all of it is preserved. The magic tokens are additive.</p>
<p>The <code>bm-lc-button-styled</code> class is opt-in. The raw <code>[better_messages_live_chat_button]</code> shortcode (no class) still renders an unstyled element so sites that style buttons themselves via CSS aren't disrupted.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-to-start">Where to start<a href="https://www.better-messages.com/blog/live-chat-button-shortcode-builder/#where-to-start" class="hash-link" aria-label="Direct link to Where to start" title="Direct link to Where to start" translate="no">#</a></h2>
<p>If you maintain a custom post type and want a chat button on it, the Shortcode Builder is the fastest path. If you want every detail, <a class="" href="https://www.better-messages.com/docs/shortcodes/better_messages_live_chat_button/">the full docs page</a> has the complete attribute reference, the placeholder grammar, and example shortcodes for every common pattern.</p>
<p>The Shortcode Builder ships in Better Messages 2.15.9 — available in both the free version on WordPress.org and the WebSocket version.</p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Shortcodes</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[RealHomes Real Estate Chat: Buyer ↔ Agent Messaging]]></title>
            <link>https://www.better-messages.com/blog/realhomes-real-estate-chat/</link>
            <guid>https://www.better-messages.com/blog/realhomes-real-estate-chat/</guid>
            <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat to a RealHomes real estate site — Live Chat button on every property page, listing card, agent and agency profile, plus a Messages tab inside the RealHomes user dashboard.]]></description>
            <content:encoded><![CDATA[<p>RealHomes from Inspiry Themes is one of the longest-running real-estate WordPress themes — property post types, agent and agency CPTs, the Easy Real Estate plugin, three design variations (Ultra / Modern / Classic), Elementor templates, and a polished user dashboard with CRM Inquiries. What it does not ship with is a real-time chat layer that keeps the conversation on-site, with persistent history, file attachments and the option to escalate to a call. The native contact form mails the agent, then the lead goes cold while the buyer browses the next listing. Better Messages adds a Live Chat row on every property page, every listing card, every agent and agency profile, and a Messages tab inside the RealHomes dashboard — same accent color as the rest of the theme, no template overrides needed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-realhomes">What Better Messages adds to RealHomes<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#what-better-messages-adds-to-realhomes" class="hash-link" aria-label="Direct link to What Better Messages adds to RealHomes" title="Direct link to What Better Messages adds to RealHomes" translate="no">#</a></h2>
<p>Once Better Messages is installed and the RealHomes integration is enabled under <strong>Better Messages → Settings → Integrations → Directories</strong>:</p>
<ul>
<li class=""><strong>Live Chat row on the single property page</strong>, one per agent, inside the agent contact card next to Office / Mobile / WhatsApp / Email.</li>
<li class=""><strong>Live Chat icon on property cards</strong> as a small circular icon next to the native Favorite / Compare buttons, in both grid and list views. Hover tooltip uses RealHomes' own <code>rh-ui-tooltip</code> style.</li>
<li class=""><strong>Live Chat row on agent profiles</strong> as a contact-list entry between Office / Mobile / Email — same layout as the native rows, same theme accent color.</li>
<li class=""><strong>Live Chat row on agency profiles</strong> for chatting with the brokerage owner.</li>
<li class=""><strong>Live Chat row on every card</strong> of the Agents and Agencies listing pages so buyers can start chatting without opening the profile first.</li>
<li class=""><strong>Messages tab inside the RealHomes dashboard</strong> at <code>/dashboard/?module=bm-messages</code> — full Better Messages inbox running edge-to-edge inside the native dashboard chrome.</li>
<li class=""><strong>Messages link inside the header user-avatar dropdown</strong>, with a live unread badge.</li>
<li class=""><strong>Property info card inside the conversation</strong> — image, price, beds / baths / sq ft, address pinned to the top of every thread.</li>
<li class=""><strong>Theme accent inheritance</strong> — buttons read the value from <code>--rh-global-color-primary</code> (set from <strong>Theme Options → Global Styling → Primary Color</strong>) so they always match the rest of the theme.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/property-page-21b6eaf-2000.webp" srcset="https://www.better-messages.com/assets/img/property-page-f5966c0-640.webp 640w, https://www.better-messages.com/assets/img/property-page-eaca04e-980.webp 980w, https://www.better-messages.com/assets/img/property-page-a00af3f-1320.webp 1320w, https://www.better-messages.com/assets/img/property-page-1019714-1660.webp 1660w, https://www.better-messages.com/assets/img/property-page-21b6eaf-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Live Chat row in the RealHomes property page agent contact card, alongside Office, Mobile, WhatsApp, Fax, Email" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-on-property-listing-cards">Live Chat on property listing cards<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#live-chat-on-property-listing-cards" class="hash-link" aria-label="Direct link to Live Chat on property listing cards" title="Direct link to Live Chat on property listing cards" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRhoDAABXRUJQVlA4IA4DAADQEACdASooAB0APi0Sh0KhoQ1SAAwBYlkAJ0yhHqoIDl4YDbS+YDzxedA60b0APLJ9lH9tPRdpbP3f8lcom+Uzj2Mv/wnf36gXcvnV/tf9u8eaNX/Z+oBn/emf+h7hv6y/8bgQP2AJyyb40DlrM5vnerpnkKBs8pPoGJ8BSzvvLcBige+TJjQHPZL14EeSAAD+/tt2LeGW4CC8OyFowqFsjGSr1c1yP5corp2dhROerr+9X6tY+Yz2FCx/lo8G7/g4zbOfsLpNsslUjvUCmYD9LCTe/a5D4oWy+8W/6FXEntV6P14fnFBz8H57AB9r9k4HO4x+WtWFzdvFEQpudfuL3j9Jz/uc51TIpPf/187OrP4TPMo0Vq2873k97o2y6OFPGS4uVsfnRJMuEG5qhbjBSrtC/0YOQfPV5ciIoWFScD+G4Cm+3/cvpI/yzR8LzApQj+20anoDW0wZUnOO6J5lAAKjvss04syY+Ax7puYUH43xwMbFXVX+GW8IBDMFVb+mvBad0tIGdM1nvCGcOkZjeVi/zlI/yXcofAl8Oy2p/y2Bi7wu/DsZyGQrnCvzWcun36apQ4iE/E5x4YW2QlSRHV8X/nSdvoUeib0udU+3Ua7uPtBFAGZUytUPjUVjUmFzF4+FTf/4z7gWo3O/ueIMKI9cVZCyRYWNTCOwZNBrcXtHCeJGdeAlu9xr7X6SUeuAq8w6+yRUd2f/1GlqS/k2vnX6Nu68QCK4AyYLqSaJ5FcJuNbDOf6PPzvGXrcKLjiFFiw8HbuU9GaFk/yGJ0/7VfvCYWEfxV2MHOAnJKUUnCYaxVnPHQyDrFxYTL/9ev5Va3RLACJkOgEysBuOJ0mhBrRfm7owKtB5flRIOmIjobdM2l+i/9HJfQpkjFdI2vu2P1OFkg0dX6zeoIVwgn4qWFoq2Gxgtm1Ib8NiBDwj7VBkkB8O43hbdX/BG+6CbRvHX1jzyIq33A2nMrKLvb14k3ET+Oiya3cswRYCHfez996vPyTFd7Vd2PYfuflE4mTZ/CpvQH5LXH8IgwAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/listing-grid-7ae771a-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-grid-38ae09f-640.webp 640w, https://www.better-messages.com/assets/img/listing-grid-a0ac8f7-980.webp 980w, https://www.better-messages.com/assets/img/listing-grid-a2d6e97-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-grid-f13dfc4-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-grid-7ae771a-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat icon on RealHomes property grid cards, next to Favorite and Compare" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Buyers do not have to open each property to start a chat — the button is on every card in the grid view, sitting next to the native Favorite / Compare icons. The size and outline match the natives (32×32, transparent background, theme-accent icon, filled-accent on hover) and the tooltip uses RealHomes' own <code>rh-ui-tooltip</code> style so it pops up identically to the <strong>Add to compare</strong> tooltip you already know.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRqwCAABXRUJQVlA4IKACAABwDACdASooAB0APjESiEKiISEYCq6oIAMEoAnTMqv7AquhhgNsp4uXrJegDeJd5B8oyJp1D77csquUtrOLP0KtAOan/xd4rKFcx+iYsLncTulpWPTvovJhO8P0twY55WJQ8jUQxSP/eDzvnZAA/v8U9+30fOT47UBynNeR7xc7qTlkdvhh/I8IE7PYvqwvkXf/jYId57Ar7OS+xo1SOUi2fBT6Jap7KgAQnyHoAPZmcg4flAmynBJLZNvvQO+1QPzNcspqbEU/a5+d/qInVZlIwto8fze7jMKM2pfWS9uejBi8Hhl/DnIEdSsttrBUkfaSgWmweLFCXur/etbcqtKri6e3E0oLON/4NQlskwYgQHbLh7ia+SGLK/KD51q9IqifSOpg67u1i5Wn61fhIxR1PRX9a8GrjRqMv1KJgG6wp9pSQjUslyAGp6e9WY8p5XiwhIe9mApnKUC3u46PEOK8OctIc63YPnVjgjHHzV27AvEvMLP87slPLvk7ohbpkVNoiL6PbsTbLEfel+LBZ3cjVXfEVl+gAi86Fb/pEifukvr2d5Wc9fEThSEAfQeftcyjqXcVzv7Vf1f7Uh7TSmiZ6PXrJlSRUJ8BT/kV6/GF/C3j5qbhpxszqjgdO8Jz93SxFL0QLgdvC/8Sy1g6Y+TwN9SeZ32Zu50kn57BQg7DC/KmnfvTIfjs+9Gp8QB/Xo8e9vDNeBijaAZZ4Rhb6C2MBeQ0/qpi3zm9fVmzM3kmmT0c91wyUOkZ+NUC8Y9UT4L+L8dwxzkDBdK6YDk89EXrNg6FwBkqW5xjHj9OWoZCYdfA1boCRkhall7uRyxeJzA0bQCnRiwnHk2shLoHfpPFRt61KrlR6oFf9YV9sg2dGe48x9NyVz1rV6DU7hB6AAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/listing-list-43ec726-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-list-4a23837-640.webp 640w, https://www.better-messages.com/assets/img/listing-list-e99cc51-980.webp 980w, https://www.better-messages.com/assets/img/listing-list-0a5ed70-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-list-a9e449f-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-list-43ec726-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat icon on RealHomes property list-view cards" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The list view gets the same button in its action row, alongside Favorite and Compare. List view is the layout RealHomes uses for the Half-Map property search — high-intent traffic that converts well into a chat.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-on-agent-and-agency-profiles">Live Chat on agent and agency profiles<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#live-chat-on-agent-and-agency-profiles" class="hash-link" aria-label="Direct link to Live Chat on agent and agency profiles" title="Direct link to Live Chat on agent and agency profiles" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRiQCAABXRUJQVlA4IBgCAAAQCQCdASooAB0APjEUh0KiIQwFVqoQAYJZwC9bQauwDlgPhF/1T0Yb1PADSXzPPHp9LBAPbPK2pbQnHA26bAc8GvjOdRBOucrHZv3y93FTnoAA/v++Q+6mJalOUQBxSJq2ezJ1JL4rpiYw+2R21uVrAcOdagZk2LvxJQdtx0SnwBP+f8XSZ/v23jZZpHK02wwcFgG6nRH3GORpLtimSopzHZLv+GQDlURQrYb8XoWopEEGKqBfNj7gTX3xcWEAMCtPdU9CXEpwMk4Jv0YSg8iLzzTJgPuP6iee4K+8wFTmgeh8Y0re4l/359W0MxP+iMocjhuv6w5lYN9ZZz3O9zPkmtwqmIcCnKuIrJDd6kWDWRNivrULrARhWq14I30PjoIPj2YTatdwQpyHen1tVvpTWC2/xZTH1ixUZJ6uoQctfjtqwMvRP9sNAMLw4eCBobCqKrtHs4fDiGRynk2ee4oyDvtG5s+vqIRseKwF2KjqInpd/b/1Pt07Rv/YzXrLmWpPUs3M+fn3+LQ2BYGyXDKLoth0AhcC9n5okucdXw/SOQ8N9qEDXO+sTonRV7m3P5YrsalGlg3yCJaWdobHAxqPqgr7ffHRH5/xVs9w/PAPrKwLJrteNP2ScrRn8HlgiMH/WVio2aYjik0rB7TJYBlXOF7j1fdpjU2P/4X7/vA1Gx4zbr3+GpQyREWrL092eb7nuG8o911wAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/agent-profile-5a53223-2000.webp" srcset="https://www.better-messages.com/assets/img/agent-profile-dfaabaa-640.webp 640w, https://www.better-messages.com/assets/img/agent-profile-26e8cbe-980.webp 980w, https://www.better-messages.com/assets/img/agent-profile-e184f9d-1320.webp 1320w, https://www.better-messages.com/assets/img/agent-profile-1d51bad-1660.webp 1660w, https://www.better-messages.com/assets/img/agent-profile-5a53223-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat contact row on the RealHomes agent profile page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Agent profile pages get a <strong>Live Chat</strong> row inserted into the contacts grid alongside Office / Mobile / WhatsApp / Fax / Email. The chat-bubble icon takes the same shape and accent color as the native phone / envelope icons, the label reads <code>Live Chat</code>, the value reads <code>Send a message</code> styled as a normal link. The whole row is clickable — tap anywhere and the chat popup opens with the agent's name and headshot pre-loaded.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRlYCAABXRUJQVlA4IEoCAABQCgCdASooAB0APjEUiEKiISEYBAAgAwSygGGGg14gH8AygD0APKy9jPyRv//FazAOwKqBTopnvkKQcKddcTCUMrZbNp1jogL5a1M0GxcH7PxFnY42s4nAsMIAAP7/vjhFLY84sTQU6bY/XU+rnqrIQaBy9TqwT8vD03/8oCLkf6c3/06/HlNGl+f/tY/8/Gf9xL8P/+/zauDl1e9+f6WntfNsO81mc+le/07/9LD6l5vz4SONsD9B9GUoVzbFz8iLIzL8J+WRXy/XBuDfUM85KUd9eL3OQ0PfpUTDqla3aJkyrRw34C+8oDPwZ9uBc1Jc/dG17JTWBkZ363cFCCAd4FaiK2kZ4kUNPrtfH7WvrCzKI5cORC8VH3VHv1gjvhC5tihouxwOn8lcqkjOuEt7IiyhCQnE82J1/71JkRYKmQcFSMmnzFyw/QTS+CdoDGsIYYuHohEa6PyH/pNg7LyBfoA1Ut/F0Nnlg4cJ9Iq8T1AFoGKh5InzAF3852Vq6/hikD9M+PLXPt3ROTqXn10Q/mjFir83PZ5Vb2//6lbBQEMghScqOtflnByrL5gMtmILquHiYL78GJeugoOLckHuBJs2p8TbEc2KAUQa4L59IzkXnLbLtE2f347BN3+kNweGzbVtFaXaED39f9/UBtkRRgf1R6pyiAAOSZ+/5DJKm6Sc3FCNgT5BiYHqbX3N8jO7Ne0AjL/fCzFmMdY+/ngAte10m/4jPgFxwg+d3TSHKa/C/xEUf3Q+yz4+/RJJ3O/E7L1qC1ZFwgAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/agency-profile-5d1a3de-2000.webp" srcset="https://www.better-messages.com/assets/img/agency-profile-0c248e0-640.webp 640w, https://www.better-messages.com/assets/img/agency-profile-3eff83c-980.webp 980w, https://www.better-messages.com/assets/img/agency-profile-9ed5e50-1320.webp 1320w, https://www.better-messages.com/assets/img/agency-profile-d6c8a86-1660.webp 1660w, https://www.better-messages.com/assets/img/agency-profile-5d1a3de-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat contact row on the RealHomes agency profile page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Agency profile pages get the same treatment — the link targets the WordPress user that owns the agency CPT (usually the brokerage owner).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-on-the-agents-and-agencies-listings">Live Chat on the agents and agencies listings<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#live-chat-on-the-agents-and-agencies-listings" class="hash-link" aria-label="Direct link to Live Chat on the agents and agencies listings" title="Direct link to Live Chat on the agents and agencies listings" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRi4CAABXRUJQVlA4ICICAABQCgCdASooAB0APjEUh0KiIQ1WAgAQAYJZwDBD3byieNXYB6AHS0uBO92rgfE+nBDQfIT9QCAhdjEJgj3V2INi//9UjpFkYxfXPvVR7cF6Zz+6bJyDyA2EtVgYAP7/vkPupr3fG0TCnvze8I8vrNSFAdju+xjNVppz18XOs3aqrdPS2B6QeXm4rGqLLY3Yx8ra6uuoIAv/Ubge2pQ/WIx48afmtDWYUY0YAI/AR6gnGPTIfhZ7A1zophK6AWzPkjIgiAXFcmaqXjQIKZq0+lP4C+8nix1wlf5OgSS6ysbtULsI9xAALpeCW4PHV1Wb2OgcLUg7Ds5we9uFJYFvyWiRmo7exwzKyI+MV8wRQnHjH4kSzKmyoygwAC2x3n4IvjJZEt6dldKRJkXBsxFizttQKgd+OGk3PMhjkp48xeTwCYbEeovuGrqiby9VKwK+mZ7NW1TGLt5tmD9kbs/PR7ECtzlL47FxudnjxH43EPr/zJaHGcVloV1bOaMQ0TB01GKe++9l98Xpf/pM5tOpl0LuP3DgXL9k7WPk9iNffsgpf/sY2DHlwPzWhi6zGrCpuU0hqJTqnZkPQfS9VUk4nX+fdObavupk1E2YwTyIZJv2M/pguFRWt/v/o7dH8An7w7nvT9lmg8EVbQ/UR57Ne9rKQ6IsmgLbq/fCdbzTNhQ8o3/6P/++MsOH7/C47VIspMJc+HjQOc/57GrPQf7oBR5cAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/agents-listing-a65a1ee-2000.webp" srcset="https://www.better-messages.com/assets/img/agents-listing-c35db7d-640.webp 640w, https://www.better-messages.com/assets/img/agents-listing-3cb63a5-980.webp 980w, https://www.better-messages.com/assets/img/agents-listing-aa3d711-1320.webp 1320w, https://www.better-messages.com/assets/img/agents-listing-fd7b102-1660.webp 1660w, https://www.better-messages.com/assets/img/agents-listing-a65a1ee-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Agents listing with a Live Chat row on every card" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The Agents listing (<code>/our-agents/</code> on a default RealHomes site) shows a Live Chat row on every card, sized and aligned to match the native Office / Mobile / Email rows. Same treatment on the Agencies listing.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-buyer--agent-conversation">Example: buyer ↔ agent conversation<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#example-buyer--agent-conversation" class="hash-link" aria-label="Direct link to Example: buyer ↔ agent conversation" title="Direct link to Example: buyer ↔ agent conversation" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRnQBAABXRUJQVlA4IGgBAABwBwCdASooAB0APjESh0KiIQ1WAgAQAYJZwDH+kAeqDnx9MA3egsaPd6V1Uo+mx1zlPdQ+LXHKjfA8VAVRHfhSE6ZMAAD+/nJ5e9S9dh3H3Jin5Xh/+cx/JzP/kV//UOUoSyDN7/K+3jSfk33eMJJTDN/lbqfqI5CfLEhy6+prdO2tHt7qYiEqDX+26klI2sv7H70P+V979j/z/GPEuYc65jk3fxw2CGT36WyQ4H/fMifC1J5hX5kbddoQdAaVpCjbYshF746Hw76CROW0RXVkrf9v6/ZNDCxTBqtrvaconTvGzP5u/PzbwT/lSgK4GZF2I2H7udjD9O8HdtbxSCwGG+D/WoVHg8AE6nNKSRCcDE7viQMP3P/S6LaK2j/Ksf+mXS/1nH7ylSQE38W1dX/hxMU9qoYCqn7HLy6PhbY25tutBOAr4wnEI3HDs73ShOEdTVby+5sqJ5ie1WNvvTL14ZW0nDewAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/conversation-example-d407933-2000.webp" srcset="https://www.better-messages.com/assets/img/conversation-example-a00b0d6-640.webp 640w, https://www.better-messages.com/assets/img/conversation-example-a0db994-980.webp 980w, https://www.better-messages.com/assets/img/conversation-example-6a4a5f7-1320.webp 1320w, https://www.better-messages.com/assets/img/conversation-example-910785d-1660.webp 1660w, https://www.better-messages.com/assets/img/conversation-example-d407933-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Buyer ↔ agent conversation on the RealHomes dashboard with property context card and persona banner" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The conversation pane keeps the property in view — image, price, beds / baths / sq ft, address pinned at the top so neither side has to flip back to the listing to remember which property is being discussed. The yellow <strong>"Chatting as Melissa William"</strong> banner just below the property card tells the routed receiver which agent persona this conversation is attributed to (more on that in the <a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#agent-personas-without-wordpress-accounts" class="">Agent personas</a> section below). Messages flow naturally back and forth on the same surface — no email roundtrip, no second tab, no "let me check my inbox."</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-tab-inside-the-realhomes-user-dashboard">Messages tab inside the RealHomes user dashboard<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#messages-tab-inside-the-realhomes-user-dashboard" class="hash-link" aria-label="Direct link to Messages tab inside the RealHomes user dashboard" title="Direct link to Messages tab inside the RealHomes user dashboard" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRlgBAABXRUJQVlA4IEwBAAAQBwCdASooAB0APi0QhkKhoQ6uZgAMAWJZQC7FkZ7n+N4FwgNtf4kr6jPtSTCTp4KrcQoMNh4su51VhhNgyPfEMAD+/qQKPbl9djHUdcKFPyvD/+Ic/kin/lX//ZEwYl1ocmRq+epH2AP2JTTz72wRwZjCP3c7FpesiVOMR2isHr/KncrY0D/ZLb39kmfj36M5YdrvzbJt+cL7BezwP2P0y77mT8JglwKx3i2e8z7Zprr+o6HNt7JTgNdEwap8zEqdMpojn3J72sqyT1/NuYYYe1tt3fCRDSSyezHTq1W1wWQdYdWQXcAqUlcKWEUS+xncBBkOsEPHb199RJwFu6MroibuTv3m/5C/8sOIrBRHfNF8Z7+Dk+xq1L4hvDr6eLwpLxOGWF8qTq5MY9zNUY+80V7jbQ+F8pF5Mk8eav7bJDfnrDAY+7bEBoAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-84ba7df-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-5f49903-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-03061e0-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-c9b527b-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-8764aae-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-84ba7df-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="RealHomes user dashboard with the Better Messages inbox loaded inline" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>A <strong>Messages</strong> tab is added to the dashboard sidebar, sitting between <strong>My Saved Searches</strong> and <strong>My Profile</strong>. The tab is registered through RealHomes' native <code>realhomes_dashboard_menu</code> filter so it renders server-side with the same markup as Properties, Favorites and Saved Searches — same icon position, same active-state highlight, same responsive collapse on narrow viewports.</p>
<p>Clicking the tab loads the messenger inline at <code>/dashboard/?module=bm-messages</code>. The page-head breadcrumbs are hidden so the conversation pane takes the full available height — every reply form, every attachment picker, every emoji bar stays inside the visible viewport regardless of the surrounding theme header.</p>
<p>The Messages entry in the RealHomes dashboard sidebar also carries a <strong>live unread badge</strong> — a small circle with the total unread count — so users see new messages from anywhere in the dashboard. It updates the instant a message arrives (WebSocket version) or within a few seconds via polling (free version), and clears as soon as the user opens the unread thread. The same badge is mirrored on the <strong>Messages</strong> link inside the header user-avatar dropdown, so an agent never has to land on the dashboard to know there's something new.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRnYBAABXRUJQVlA4IGoBAADQBgCdASooAB0APjEShkKiIQ1WAwAQAYJZwDH+kq7lVpgG8qlfKbriuqlH02Oucp7qHxX/3LfTmMJvu9Gy4YwA/v5yeXvSfXYdx9vXOTMgn/OY/k5n/yK//qG9umniCxC4AnDZn1o2YOY0GFXLwHY333Tb3qLddqrgyZvO8Pf95bE3URy/+OOmMFpC/4GPsL8r737H/n+MeJctbUzHJu/jdAvZ5WQemuzf+fmtork4mezTrb4xy314APrPbU7g3uwv18tLIO3lkK001qaz2+9XLkVg3d5BwJKp0O8ZMgz0kDjNvR8/FAPGfep2x7Z6B2skmP3omUxkv78/DeTMIJuQG1Sqzk3gHOcXEAXBAdCB4/9wvd6cvMEUe8ddV/SHP8VnG/asfxHWnMxmT0fif+HExT2qhgKqfscvLo+Ftjbm260EYCkyWipn3UjnrFO/6Gys8weAJjxYvLp481CyTA96tDVeIRDQwAAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-unread-307db77-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-unread-7f43035-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-unread-bcf87d1-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-unread-1a0bb0e-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-unread-b50fc6a-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-unread-307db77-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="RealHomes dashboard sidebar with a &quot;1&quot; unread badge on the Messages tab" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="setting-realhomes-as-the-messages-location">Setting RealHomes as the messages location<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#setting-realhomes-as-the-messages-location" class="hash-link" aria-label="Direct link to Setting RealHomes as the messages location" title="Direct link to Setting RealHomes as the messages location" translate="no">#</a></h2>
<p>Better Messages → <strong>Settings → General</strong> has a <strong>Messages Location</strong> dropdown. Selecting <strong>Show in RealHomes Dashboard</strong> routes every "open inbox" link in the plugin into the dashboard at <code>/dashboard/?module=bm-messages</code> — notification emails, push notifications, on-site bell-icon links, the floating bubble. The dashboard tab toggle becomes force-enabled and locked while this option is selected, because the dashboard IS the inbox.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="agent-personas-without-wordpress-accounts">Agent personas without WordPress accounts<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#agent-personas-without-wordpress-accounts" class="hash-link" aria-label="Direct link to Agent personas without WordPress accounts" title="Direct link to Agent personas without WordPress accounts" translate="no">#</a></h2>
<p>RealHomes lets you create an <strong>agent CPT</strong> without a linked WordPress user — the property's <code>post_author</code> becomes the de-facto recipient of the contact form. That works for email but breaks for chat: with no linked user, the buyer would be messaging "admin" instead of "Nathan James".</p>
<p>Better Messages handles this with <strong>per-thread participant overrides</strong>. When the buyer clicks Live Chat on Nathan James' card:</p>
<ul>
<li class="">The chat is routed to the property's <code>post_author</code> so it actually lands in someone's inbox.</li>
<li class="">The buyer sees the agent's name, headshot and profile URL in the thread sidebar, conversation header and message sender chips — same name and avatar everywhere.</li>
<li class="">The routed receiver keeps their real WordPress identity in the bottom-left profile widget, and gets a yellow <strong>"Chatting as Nathan James"</strong> banner above the property card so they always know which persona the buyer is contacting.</li>
</ul>
<p>The same fallback account can host conversations for several different agent CPTs simultaneously — each thread still shows its own distinct persona to the buyer. Three buyers messaging three different agents on the same property all end up with three conversations in the same inbox, each displayed with a distinct agent name and photo. The "fake-user" pattern is documented in the <a class="" href="https://www.better-messages.com/docs/development/guides/per-thread-fake-users/">per-thread fake users guide</a> — the RealHomes addon and the Houzez addon are the two reference implementations.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="theme-accent-inheritance-no-settings-to-copy">Theme accent inheritance, no settings to copy<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#theme-accent-inheritance-no-settings-to-copy" class="hash-link" aria-label="Direct link to Theme accent inheritance, no settings to copy" title="Direct link to Theme accent inheritance, no settings to copy" translate="no">#</a></h2>
<p>The Live Chat buttons read <strong>RealHomes' own <code>--rh-global-color-primary</code> CSS variable</strong> for the button background, the property-card icon accent, the price label inside the thread context card, and the dashboard sidebar highlight. Change the RealHomes primary color in <strong>Theme Options → Global Styling → Primary Color</strong> and every Better Messages surface updates on the next page load. No second color picker to keep in sync, no caching to flush.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="guest-chat--buyers-do-not-have-to-register">Guest chat — buyers do not have to register<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#guest-chat--buyers-do-not-have-to-register" class="hash-link" aria-label="Direct link to Guest chat — buyers do not have to register" title="Direct link to Guest chat — buyers do not have to register" translate="no">#</a></h2>
<p>Most real-estate buyers will not sign up before sending a message. If guest chat is enabled in <strong>Better Messages → Settings → General → Guest Chat</strong>, anonymous visitors can use any of the Live Chat buttons without logging in — they pick a display name in the popup, the message is sent, the thread is theirs, and they can come back later (cookie-based identity) to read the reply.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-realhomes-site">Installing Better Messages on a RealHomes site<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#installing-better-messages-on-a-realhomes-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a RealHomes site" title="Direct link to Installing Better Messages on a RealHomes site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Make sure RealHomes (Inspiry Themes) and the <strong>Easy Real Estate</strong> plugin are both active.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → Directories → RealHomes Integration</strong>.</li>
<li class="">Toggle <strong>Enable RealHomes Integration</strong> and the individual placement toggles you want (property page, listing cards, agent profile, agency profile, dashboard tab).</li>
<li class="">Optionally pick <strong>Messages Location → Show in RealHomes Dashboard</strong> in Settings → General so every internal Messages link in the plugin routes into the new dashboard tab at <code>/dashboard/?module=bm-messages</code>.</li>
</ol>
<p>For custom Elementor templates, child-theme overrides or third-party property grids, place buttons manually:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_realhomes_property_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_realhomes_property_card_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_realhomes_agent_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_realhomes_agency_button]</span><br></span></code></pre></div></div>
<p>The buttons inherit <strong>Theme Options → Global Styling → Primary Color</strong> automatically — change the RealHomes palette and every Live Chat surface updates on the next page load.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-realhomes-sites">Free vs WebSocket version for RealHomes sites<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#free-vs-websocket-version-for-realhomes-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for RealHomes sites" title="Direct link to Free vs WebSocket version for RealHomes sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Live Chat row on property page, listing cards, agent and agency profiles</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Messages tab inside the RealHomes dashboard</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Property info card pinned to the top of every thread</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Persona override (agent CPT without a WP user)</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>RealHomes theme-accent inheritance</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Live unread badge on the Messages sidebar entry</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mini-widget popup chat (buyer stays on the property page)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (e.g. buyer + listing agent + brokerage owner)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new inquiries</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For real-estate sites the WebSocket version's web push and instant delivery are the difference between a hot lead that converts the same day and a lead that goes cold while the agent is waiting for an email notification. The mini-widget keeps the buyer on the property page they were considering instead of redirecting them to a separate messages page, and the group calls let a buyer talk to the listing agent and a brokerage manager in the same call without leaving the site.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's next<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#whats-next" class="hash-link" aria-label="Direct link to What's next" title="Direct link to What's next" translate="no">#</a></h2>
<p>The next iteration adds:</p>
<ul>
<li class=""><strong>Schedule-a-viewing canned reply</strong> on the agent side — one tap inserts "Are you free for a viewing this weekend?" into the reply box.</li>
<li class=""><strong>Per-property unread filter</strong> in the agent inbox — filter all threads about a specific listing.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-the-ultra-modern-and-classic-design-variations">Does it work with the Ultra, Modern and Classic design variations?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#does-it-work-with-the-ultra-modern-and-classic-design-variations" class="hash-link" aria-label="Direct link to Does it work with the Ultra, Modern and Classic design variations?" title="Direct link to Does it work with the Ultra, Modern and Classic design variations?" translate="no">#</a></h3>
<p>Yes — all three design variations (Ultra / Modern / Classic) ship the same <code>realhomes_dashboard_menu</code> filter and the same single-property / agent / agency templates. The Live Chat rows render natively on each. Switch design variation in <strong>Theme Options → Design Variation</strong> and the buttons re-render with the new variation's spacing and accent on the next page load.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-elementor-and-realhomes-studio-templates">Does it work with Elementor and RealHomes Studio templates?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#does-it-work-with-elementor-and-realhomes-studio-templates" class="hash-link" aria-label="Direct link to Does it work with Elementor and RealHomes Studio templates?" title="Direct link to Does it work with Elementor and RealHomes Studio templates?" translate="no">#</a></h3>
<p>Yes for the default placements. If you build a property page or agent profile from scratch in Elementor, drop the appropriate shortcode (<code>[better_messages_realhomes_property_button]</code>, <code>[better_messages_realhomes_agent_button]</code>, etc.) into a Shortcode widget to place the button manually.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="should-i-disable-the-native-crm-inquiries-panel">Should I disable the native CRM Inquiries panel?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#should-i-disable-the-native-crm-inquiries-panel" class="hash-link" aria-label="Direct link to Should I disable the native CRM Inquiries panel?" title="Direct link to Should I disable the native CRM Inquiries panel?" translate="no">#</a></h3>
<p>It's optional. The native <strong>CRM → Inquiries</strong> panel stays in place by default — agents can keep using it for email-style inquiries while Better Messages handles real-time chat. If you want a single inbox, turn on <strong>Hide Native Inquiries Tab</strong> in the RealHomes integration settings and the legacy panel is removed from the dashboard sidebar.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-buyers-chat-without-registering">Can buyers chat without registering?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#can-buyers-chat-without-registering" class="hash-link" aria-label="Direct link to Can buyers chat without registering?" title="Direct link to Can buyers chat without registering?" translate="no">#</a></h3>
<p>Yes — if Guest Chat is enabled in <strong>Better Messages → Settings → General → Guest Chat</strong>, anonymous visitors can use any of the Live Chat buttons without logging in. They pick a display name in the popup, the message is sent, the thread is theirs, and a cookie-based identity lets them come back later to read the reply.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-property-is-unpublished">What happens when a property is unpublished?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#what-happens-when-a-property-is-unpublished" class="hash-link" aria-label="Direct link to What happens when a property is unpublished?" title="Direct link to What happens when a property is unpublished?" translate="no">#</a></h3>
<p>The Live Chat row is hidden on cards and on the single property page as soon as the property is not published. Existing threads remain readable on both sides — buyer and agent can still chat about a property that has been taken off the market.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-agent-cpts-that-dont-have-a-wordpress-user-owner">Does it work with agent CPTs that don't have a WordPress user owner?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#does-it-work-with-agent-cpts-that-dont-have-a-wordpress-user-owner" class="hash-link" aria-label="Direct link to Does it work with agent CPTs that don't have a WordPress user owner?" title="Direct link to Does it work with agent CPTs that don't have a WordPress user owner?" translate="no">#</a></h3>
<p>Yes. When the agent CPT has no linked WordPress user, the chat is silently routed to the property's <code>post_author</code> (or to the agency owner). The buyer sees the agent CPT's name, headshot and profile URL everywhere in the conversation — the routed receiver gets a yellow <strong>"Chatting as [Agent name]"</strong> banner above the property card so they always know which persona the buyer is contacting. One fallback account can host inquiries for several different agent CPTs simultaneously, and each thread still displays its own distinct persona to the buyer.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-better-messages-clash-with-the-native-realhomes-inbox">Will Better Messages clash with the native RealHomes inbox?<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#will-better-messages-clash-with-the-native-realhomes-inbox" class="hash-link" aria-label="Direct link to Will Better Messages clash with the native RealHomes inbox?" title="Direct link to Will Better Messages clash with the native RealHomes inbox?" translate="no">#</a></h3>
<p>No. Both can coexist side by side. They use different database tables, different REST endpoints, different dashboard URLs. Most sites pick one and hide the other through the <strong>Hide Native Inquiries Tab</strong> toggle, but it's not required.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/realhomes-real-estate-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/realhomes/">RealHomes integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/houzez-real-estate-chat/">Houzez real estate chat</a> — the sister real-estate theme integration</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-real-estate-chat/">WordPress real estate chat</a> — adjacent real-estate use case</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/hivepress-listing-chat/">HivePress listing chat</a> — for HivePress real-estate marketplaces</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/motors-car-dealer-chat/">Motors car dealer chat</a> — Stylemix Motors classifieds</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/directorist-listing-chat/">Directorist chat</a> — for general directory sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/geodirectory-listing-chat/">GeoDirectory listing chat</a> — GeoDirectory-driven real-estate sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/classified-listing-chat/">Classified Listing chat</a> — Classified Listing (RTCL) sites</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/development/guides/per-thread-fake-users/">Per-thread fake users guide</a> — developer reference for the agent-persona override pattern</li>
</ul>
<p>Install the <strong><a href="https://www.wordplus.org/realhomes" target="_blank" rel="noopener noreferrer" class="">RealHomes Real Estate WordPress Theme</a></strong> and Better Messages, enable the integration, and the Live Chat rows appear on every property, agent, agency, listing card and dashboard tab automatically. No template overrides, no shortcodes required for the default placement.</p>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>RealHomes</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[Houzez Real Estate Chat: Buyer ↔ Agent Messaging]]></title>
            <link>https://www.better-messages.com/blog/houzez-real-estate-chat/</link>
            <guid>https://www.better-messages.com/blog/houzez-real-estate-chat/</guid>
            <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat to a Houzez real estate site — Live Chat button on every property page, listing card, agent and agency profile, plus a Messages tab inside the Houzez user dashboard.]]></description>
            <content:encoded><![CDATA[<p>Houzez from Favethemes is the most-installed real estate theme on the WordPress ecosystem — every Houzez site ships with property post types, agent and agency CPTs, a polished user dashboard, the Houzez Studio Elementor builder, and contact actions on every listing. What it does not ship with is a real-time chat layer that keeps a conversation on-site, with persistent history, file attachments, and the option to escalate to a call. The native contact buttons send an email, then the lead goes cold while the buyer browses the next listing. Better Messages adds a Live Chat button on every property page, every listing card, every agent and agency profile, and a Messages tab inside the Houzez dashboard — same accent color as the rest of the theme, no template overrides needed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-houzez">What Better Messages adds to Houzez<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#what-better-messages-adds-to-houzez" class="hash-link" aria-label="Direct link to What Better Messages adds to Houzez" title="Direct link to What Better Messages adds to Houzez" translate="no">#</a></h2>
<p>Once Better Messages is installed and the Houzez integration is enabled under <strong>Better Messages → Settings → Integrations → Directories</strong>:</p>
<ul>
<li class=""><strong>Live Chat button on the single property page</strong> alongside the native Call / Email / WhatsApp buttons in the agent / agency contact panel.</li>
<li class=""><strong>Live Chat button on property cards</strong> as a fourth equal-width action in the v7 grid and list views, matching the native button outline / hover styles exactly.</li>
<li class=""><strong>Live Chat row on agent profiles</strong> below the native Send Email / Call buttons. Targets the WordPress user linked to the agent through Houzez's Author Information → User mapping.</li>
<li class=""><strong>Live Chat row on agency profiles</strong> for chatting with the brokerage owner.</li>
<li class=""><strong>Messages tab inside the Houzez dashboard</strong> at <code>/dashboard-live-chat/</code> — full Better Messages inbox running edge-to-edge inside the Houzez dashboard chrome.</li>
<li class=""><strong>Property info card inside the conversation</strong> — image, price, beds / baths / sq ft, address pinned to the top of every thread.</li>
<li class=""><strong>Theme accent inheritance</strong> — buttons read the value from Houzez Options → Styling Options → Primary Color so they always match the rest of the theme.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/property-page-d1650e8-2000.webp" srcset="https://www.better-messages.com/assets/img/property-page-90cccae-640.webp 640w, https://www.better-messages.com/assets/img/property-page-595c92a-980.webp 980w, https://www.better-messages.com/assets/img/property-page-108f660-1320.webp 1320w, https://www.better-messages.com/assets/img/property-page-6ff765c-1660.webp 1660w, https://www.better-messages.com/assets/img/property-page-d1650e8-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Live Chat button on the Houzez property page, alongside Call, Email and WhatsApp" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-on-property-listing-cards">Live Chat on property listing cards<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#live-chat-on-property-listing-cards" class="hash-link" aria-label="Direct link to Live Chat on property listing cards" title="Direct link to Live Chat on property listing cards" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRmoCAABXRUJQVlA4IF4CAACQCgCdASooAB0APi0ShkKhoQ1WAwAMAWJQBjTnRedwAOVJ/Wbe0rKArHfLBH0FdJ/pOMDS1zMPHdqEiPtr5X7E5gorDYiJl14zbJZVJdPWXsHPKeY7vUttlafQsAAA/v+mUf8XhYwVy77NmwEJnoc2DLe8Lh9SN9oqNpCB0AD8GBxWXagH/9DlxXxs4pUPM4/S29274V2CamYzYN/5/2aDorMz4TOlDT9up6CDaROaNw1mbaPOWfW06O/YpIXfgoqsCe+dKvh4f4mP7//y00Xep947GKCp44QL85ywKtGwnB+KgdafEzxckynVpIC+/hHGaE1vxD+6Nf7x3oJOuGNFe3p2lMsjqbuertS+C62Y/TklzA74UapvXdeMEZ8hRyknGGhj7NtrRmJbTH2VfuF1uMgsoItMWFMIviEa7RO/c8C3aRi8vX5mfwEtNfhUW8cSa4iLv5otkKN82dRzORrXeWGTvUM6H5sXbhXVArkXNQr/lFeE/gU+S5X2Bb8fNLQTDt8EoCmQWbx53I0z/7DinyP5ydi4wP7OEPrZi7xQte1eEMWQWGqikDUMJTx+gONmIQNguRNW3vkGUs+/+XanvC7fAuH3eMlJ5LjMMwWf2vJwnlvR1b9/reOLFuLWVD1kUBxKI+IcGVkP+HHKFuJRne/M69S/8oX/dcWNOX/53+n48v85j/9y979zNf3MCKQG35TSQNP49pfttGRiRCV765eOBxOKFXqSJehLYkxcabqxEkAIhnkU5GeOsS/mTOdxrA+DaZ0hwc283CP6fhVFdoeEXdBkGh+mMwC6QAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/listing-grid-59feb59-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-grid-ac2ae28-640.webp 640w, https://www.better-messages.com/assets/img/listing-grid-3e8f0f9-980.webp 980w, https://www.better-messages.com/assets/img/listing-grid-065dce1-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-grid-0423147-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-grid-59feb59-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat button on Houzez v7 grid listing cards, fourth equal-width button next to Call / Email / WhatsApp" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Buyers do not have to open each property to start a chat — the button is on every card in the grid view, fourth in the action row alongside the native Call / Email / WhatsApp icons.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRsoBAABXRUJQVlA4IL4BAADwBwCdASooAB0APjEYiEMiIYquAoAQAYJZwC7GaaejNXUdcDSuM5DGI6Lb2T7mgEi5Bclm28kEdDUeqVUJJQJvYTu0fbRAfXAA/v+2Aha8Q1+1XdT04E2Y9UCnVMiirRXM/yFO25W1t1//tLY/2rBkfLRwlTG87N0Bbhi8/77//7gfg3v1d37tK6/wKry40c2XNhVC6uhpKjplf0xq4kVmJV5oIRS1Sj7leHdlKHiJZIQBbwtyWjjJBCdD6nSpb6ik244DCLv8aGAmMt53yRrMtATD0Sjp4MEdT2Gv4vs+QTMeIIVVn6MZq1ucJNVqYwqPSN4qI/LDkkP8Dd71dPomMyW74mfDOcrDhxB8wfWhVxIur39xDR/v+cYjbVOP/kiCG9LE6dIDWLv3u5G/c36z3c78ZtVDCTDxZHifff/mly3Y8B1V6hqmIMI/4/0oPXo26mYrMK3Cd8J/LP/xmW/fH4/vj9i3Ev2V2Jv1Zr1S+OWQAO3DRm4o6nCOILmFQzYVtkgkjtNyHcRBjZf3tJFZX3U/+IvKgJf8J62eJkfRggH5oMSMUOd4KnJTUSicDe1zNb+YU3eCDDJu+IAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/listing-list-6014d42-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-list-1298dbb-640.webp 640w, https://www.better-messages.com/assets/img/listing-list-c188dbd-980.webp 980w, https://www.better-messages.com/assets/img/listing-list-54c6997-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-list-908ab1e-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-list-6014d42-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat button on Houzez v7 list view cards" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Same in the list view — equal-width buttons, same outline style, same hover color.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-on-agent-and-agency-profiles">Live Chat on agent and agency profiles<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#live-chat-on-agent-and-agency-profiles" class="hash-link" aria-label="Direct link to Live Chat on agent and agency profiles" title="Direct link to Live Chat on agent and agency profiles" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRhoCAABXRUJQVlA4IA4CAACwCQCdASooAB0APjEWiUOiISEVXAQAIAMEs4BhUGkkA23e4A3gDePazM3hfAO5PxAaQJmYIio4ceSWogsqgKV3p4IPYBgnTb6X2RC1h8gIMIFREwnOYAD+/4cxYj9ilEGS0MaJ6k8V/rg0K2ZyaLFTM4Zp/ep6KRFCRw+dXgzn/9L749apEqYfc7iGoNDL3hrsnYqgwTrOn81/rfl6fhp0d18fF+hHnT2Hdp4atl17F+kM4TY8pWHtS35R2R0We/nT+6Jaf+P+dSqdRT/R/s9luW0/IO5eH2vmsSP9bKUVZ6vJgf0FVi7QjmTBrppuZFgw2Gh7o5z+jI/hCK7nKEHgN/2bKFDh8FXo1IEPeEWnbRKHePv8f+I8zRbz3bGx0b8N9vq9Rv/QWdiTn9ymAs/exXjFpbtg+/HhzUWvTtTII2RTiX3XE45DC6VPHmn5Vn+cx/LdaNfFHFt9ntoXD/AdZixmV3VLnpeLNHNeNYlirmsI27iijlBTmbPwBS/rVg4cahFf/G2Mv/zdeQGVhc9+v7NcLPyvy8r9NdGK/xCPg5jdQPp69e5q4EX5K0ai1VUx60JI4Zjo9bSDjGrpWMHKh8OV33uunJbmnf6D+qVeTyPGL7fOiS/qd+1Ietx7rD2ZoEr1jrvt0LjgSYBdC618dZWIAL/9EJCk392P5M0kXGOBvxUr8DEynVFWPgAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/agent-profile-e1e0352-2000.webp" srcset="https://www.better-messages.com/assets/img/agent-profile-d7a61d5-640.webp 640w, https://www.better-messages.com/assets/img/agent-profile-e3c94fb-980.webp 980w, https://www.better-messages.com/assets/img/agent-profile-ab09f57-1320.webp 1320w, https://www.better-messages.com/assets/img/agent-profile-6bfadd0-1660.webp 1660w, https://www.better-messages.com/assets/img/agent-profile-e1e0352-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat row on the Houzez agent profile contact panel" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Adds a Live Chat row to the contact panel on agent profile pages, below the native Send Email and Call buttons. The button targets the WordPress user linked to the agent through Houzez's Author Information → User mapping, so every conversation lands in that agent's own dashboard inbox — no extra wiring, no shared mailbox.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRsABAABXRUJQVlA4ILQBAABQCQCdASooAB0APikQhkKhoQ6vMgAMAUJZQDJbQCcAb3/kovkZtEFa/qAvmVsDZx8loj//wxttWOECrIRujGadbPjQNCk4YYu/zVpGlFNFjx0wsAD+/9FMSQkCC5/TZzAU/MV6KZQM+S6I2WN93/ncvMyTK+9XDNtUXwxNxekdpARXBZ3DXAkXXd3BxRDuA7qL21EW9jqml4PcBOPxs/6zV0RKan+2yYV0Olri36HSfiCrdn6meTOypgmf2k0gYdXVMVfz9foZP9pZ//1t//qmc3VKKpMCx9uyfec2qv1nXG6TNKSDvBj6Zp8mjrCLXSRig3TAVCNaPqujed0P+gdX3z/AQrLEAUzsZQ3ufMzfnfC8sWqAYZoLIRodpyOEegC4tmYXM1PeInRvkKyKei+ULYEsy3AiFXplQ0WWAJdeUOanBpF6AI4EkWmRrrTvk8SYLpIRwCJJrVgnFoO3D697xfZrf44thiYRqoj5s8+KZvp3ygn5FspyPbQb0LO5aN8p5KexBff/GA+7hnNlfwufzjgt/pXnFaq6WHmUFPXXabUO0Gmk/ZvdO3C16dp0C0kYEAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/agency-profile-dd797a7-2000.webp" srcset="https://www.better-messages.com/assets/img/agency-profile-931d1e5-640.webp 640w, https://www.better-messages.com/assets/img/agency-profile-868090c-980.webp 980w, https://www.better-messages.com/assets/img/agency-profile-2c09c6b-1320.webp 1320w, https://www.better-messages.com/assets/img/agency-profile-a248129-1660.webp 1660w, https://www.better-messages.com/assets/img/agency-profile-dd797a7-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat row on the Houzez agency profile" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Same treatment for agency profile pages — the button targets the WordPress user that owns the agency CPT (typically the brokerage owner).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="buyers-always-see-the-agent-persona-even-with-no-linked-wp-user">Buyers always see the agent persona, even with no linked WP user<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#buyers-always-see-the-agent-persona-even-with-no-linked-wp-user" class="hash-link" aria-label="Direct link to Buyers always see the agent persona, even with no linked WP user" title="Direct link to Buyers always see the agent persona, even with no linked WP user" translate="no">#</a></h2>
<p>Houzez sites often have agent and agency CPTs with no linked WordPress account — they're listing showcases, not real users. Better Messages handles this without dropping the chat: the conversation is silently routed to the property's <code>post_author</code> (or to the agency owner), but the buyer's view of the thread shows the <strong>agent CPT's own name, headshot and profile URL</strong> — in the sidebar, in the conversation header, on every message they receive, and in the mini chat widget. A single fallback account can route inquiries for several different agent CPTs at once and each thread still shows the buyer a distinct agent.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRpABAABXRUJQVlA4IIQBAAAQCACdASooAB0APjESiEKiISEYCq6oIAMEsYBOkLM9Afqr0vGmm8oB8KoB3W69vcWv1fa747h/8eVM/gDyHhWi+r8+rMnk+cpAAP7+qcpJT/rv+R3/u+Tv/oefeOejJg7xfbtgSJ4UUzaPOSadfNjvnZzH4MkcQX+xWrp/A1fwvWv6z91RrZwQME+IrDgs5s5hBwBb0QI//4kQSUb/GWvlXH/4Z5Ae/zxIOc7s7E2ryPXtssRfRZ3/I0lktIoR/gQ0DiU2n6/H93Evf2Z+adsAlPCv/MCzQV/+O0G2527Eh46XjoigKp/ocwPa/X2rroZQMWFiknqqzn7yBfvdlrO1eTsgXxo8goNbXXzdXFeGdOPAM81vSht8Xmwn3+Fzac6dX5i1/2Cs6/qtMzloXATmmvfhjyNx1WU8K98cXtDRQ+VRsP9EA8lzZW6mo8+vXeUDUE6/5kLHMm8qq8etQglLd51baMEDJzqkuTAYU3038IJE+jrqp5F2AD1MbdMffKjn7AAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/persona-dashboard-56e052c-2000.webp" srcset="https://www.better-messages.com/assets/img/persona-dashboard-9cacc3a-640.webp 640w, https://www.better-messages.com/assets/img/persona-dashboard-5e98e7e-980.webp 980w, https://www.better-messages.com/assets/img/persona-dashboard-4fdbe95-1320.webp 1320w, https://www.better-messages.com/assets/img/persona-dashboard-115e803-1660.webp 1660w, https://www.better-messages.com/assets/img/persona-dashboard-56e052c-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Buyer side: three open Houzez chats routed to the same WordPress fallback account, displayed as three different agent personas (Mike Moore, Dave Harris, Jason Carter) — each with their own CPT photo, profile link, and &quot;Live Chat&quot; reply attribution" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The routed receiver always sees their <strong>own WordPress identity</strong> in the bottom-left profile widget (no leakage into self-view) and gets a yellow <strong>"Chatting as Mike Moore"</strong> banner above the property card, so they know which persona the buyer thinks they are talking to:</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRqABAABXRUJQVlA4IJQBAACQCACdASooAB0APjEUiUMiISEVXAUAIAMEoAnTOpVAuzvPY6ZLz2fsp+Ucno0GuN234pFjIuMMk8r6xru7zf+gpMIvOHlvXYbUnHbcxAD+/qnKSU/67/kd/7m5n/oefeO6S37ifn+pNz6sqzidNTzMI0m0+fCtjcHQ878/HmvO+zMZ9kehjAR19ozFkrHqK3c00GS0wUx7X/xCZulPi4EVj/8MHb1P3nMwSb5s9SPxclpkpbKIz2Ngv2MhBq8VXlxLD1lCn4utiez3sDsMT4uOsq0k71/Pud/7l+8l78LUZMnqbf9NP/5CDjh//E/XTFM3i5kPx+t0o5RCVTJI+qKsbol1r9USUsZASMd7LXWKFoQqaBnprFsIYGqmtVorAhFt27j3r4X5xWxnS8CafUaPG6gSs8w3QlZzdz9+Fe/bLT6vv9/aFHB34i2+Lwymcb+kQeKlOLZAdI9/kIOf5cv0mTJBkvBaI1fo/w9k1V5AD0/A9JpafxPPPIDHJb0p5RqKX3wohZaJssP7pmtbt5J5FgAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/persona-banner-0c754e1-2000.webp" srcset="https://www.better-messages.com/assets/img/persona-banner-bb02a88-640.webp 640w, https://www.better-messages.com/assets/img/persona-banner-6fcb263-980.webp 980w, https://www.better-messages.com/assets/img/persona-banner-27d2b0b-1320.webp 1320w, https://www.better-messages.com/assets/img/persona-banner-4a191e7-1660.webp 1660w, https://www.better-messages.com/assets/img/persona-banner-0c754e1-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Agent side: yellow &quot;Chatting as Mike Moore&quot; banner above the property card, real WP identity preserved in the bottom-left profile widget" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The same mechanism solves the multi-account case: if a brokerage has several agent profiles powered by one shared backend account, every buyer-side view stays distinct — different agent name and photo per thread — without any extra config.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-tab-inside-the-houzez-dashboard">Messages tab inside the Houzez dashboard<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#messages-tab-inside-the-houzez-dashboard" class="hash-link" aria-label="Direct link to Messages tab inside the Houzez dashboard" title="Direct link to Messages tab inside the Houzez dashboard" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRpYBAABXRUJQVlA4IIoBAAAQCACdASooAB0APjEUiEMiISEVXAYAIAMEsYBOkIidAc8RpoHKgfDMV80ZoDWuDw60Q16HECxWpOsXyNsOPqWo8+Z5ddv21BNAAP7+qcpJS1wqWoz/3fJ3/0PPvGokqUIoHqTcyGZdM98mji0IyADL3TZhNiC9uHtHm8UrUy3CqoYNV42O4qb5hdQWDG0oA1tI0G5f/8SIJc1/jLX5mY/8M8iW/43YhmqyOK7SbL3TtdLnkMwfedKWLYqivjYm35HS1u8BTkZ/Rq3cff2aEO9jCSBpaf1Ye4eP/5NjEMMKQ0FMCiAu3wwy4LY16flzOl9jUhQoGFtWH/Pi1vIX6IGzQHN2djF4T9odQXbVZYWawg5SxZECAdJv81SM2b+tw9VyMiTuTwIf/n1pzvrk/FAJyKdRR7dmmF/HVuT12k3HnnwJiqwfwgrhdJ/0ZmUbK4Waa/ge6bl+Sk9SH1pCLs9+forII1QOiYZ0jjIC2DdiyaziGa42vqqWhi3atde4efHrOwjR9j6vQAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-a3fbdbd-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-1897d88-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-4cf2541-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-f8e60ae-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-261ba67-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-a3fbdbd-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Better Messages Messages tab inside the Houzez user dashboard with property context card pinned to the top of the conversation" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Buyers and agents stay inside the Houzez dashboard to read and reply. The native Houzez sidebar / topbar / account header stay in place. Only the main content panel hosts the messenger. Combined with <strong>Messages Location → Show in Houzez Dashboard</strong>, every internal Messages link in Better Messages (notification emails, the floating bubble, push notifications) routes to this tab.</p>
<p>Notice the property context card at the top of the conversation — image, price, beds / baths / sq ft, address. Threads started from a property page or listing card automatically carry that context, so the agent sees exactly which property the buyer is asking about without scrolling for context.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRpABAABXRUJQVlA4IIQBAAAQCACdASooAB0APjESiEKiISEYCq6oIAMEsYBOkLM9Afqr0vGmm8oB8KoB3W69vcWv1fa747h/8eVM/gDyHhWi+r8+rMnk+cpAAP7+qcpJT/rv+R3/u+Tv/oefeOejJg7xfbtgSJ4UUzaPOSadfNjvnZzH4MkcQX+xWrp/A1fwvWv6z91RrZwQME+IrDgs5s5hBwBb0QI//4kQSUb/GWvlXH/4Z5Ae/zxIOc7s7E2ryPXtssRfRZ3/I0lktIoR/gQ0DiU2n6/H93Evf2Z+adsAlPCv/MCzQV/+O0G2527Eh46XjoigKp/ocwPa/X2rroZQMWFiknqqzn7yBfvdlrO1eTsgXxo8goNbXXzdXFeGdOPAM81vSht8Xmwn3+Fzac6dX5i1/2Cs6/qtMzloXATmmvfhjyNx1WU8K98cXtDRQ+VRsP9EA8lzZW6mo8+vXeUDUE6/5kLHMm8qq8etQglLd51baMEDJzqkuTAYU3038IJE+jrqp5F2AD1MbdMffKjn7AAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/thread-context-6f248b4-2000.webp" srcset="https://www.better-messages.com/assets/img/thread-context-adf06fb-640.webp 640w, https://www.better-messages.com/assets/img/thread-context-a3704b6-980.webp 980w, https://www.better-messages.com/assets/img/thread-context-7f1df5d-1320.webp 1320w, https://www.better-messages.com/assets/img/thread-context-959737b-1660.webp 1660w, https://www.better-messages.com/assets/img/thread-context-6f248b4-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Property context card pinned to the top of every conversation" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The Messages entry in the Houzez dashboard sidebar also carries a live unread badge — a small blue circle with the total unread count — so users see new messages from anywhere in the dashboard. It updates the instant a message arrives (WebSocket version) or within a few seconds via polling (free version), and clears as soon as the user opens the unread thread.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRn4BAABXRUJQVlA4IHIBAAAwBwCdASooAB0APjEWiUMiISEStZggAwSygGZvEk7yJ+zhNMfJEKLDlR7C4fqU0fuIBXIqPGcisRkb3O3AZKkuo2AA/v6pyisY8XOMo/93yd/9Dz7nBCPcFqQHTf8Pog8+6amMasE/8Og+7PE807suDLqYSDUscYcEqNWuTLcboluLxyLvQ8+W64ygzWBNxY5aL+FJwlFYhBF7LUNwN2Z/0mt1e0V+VrF2ylMP+h0xQf//+8VAo4JfxLIICRFb/CcekTv7aiMo3vO/xWaqBy2E704zDRRdXSxR3Y5l84jam9Lwdr4Fbo7UrOWzXBvIkG7x6eu4rTrIZJukVp4iNc2wYdY18SrZ8fPD4td5y/TASiem5poSzZQ3z9dWAjoSOUh1x9YGLaAICjt7aKg22tqFTl4mCQCd+6mmH/c427kv8Sl6bGxf6aNkUvZIPnsfZgR0Ddiee0/k4O5DkLCa/r/3w2nowd1b5dHHFVyfxLkDIAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-unread-d7a30d6-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-unread-c705190-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-unread-87e4f1e-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-unread-1657650-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-unread-ad1f981-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-unread-d7a30d6-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Houzez dashboard sidebar with a &quot;1&quot; unread badge on the Messages tab" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-houzez-site">Installing Better Messages on a Houzez site<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#installing-better-messages-on-a-houzez-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a Houzez site" title="Direct link to Installing Better Messages on a Houzez site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Make sure Houzez is active, along with the required Houzez plugin pack (Houzez Login Register, Houzez Theme Functionality, Houzez API).</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → Directories → Houzez Integration</strong>.</li>
<li class="">Toggle <strong>Enable Houzez Integration</strong> and the individual placement toggles you want.</li>
<li class="">Optionally pick <strong>Messages Location → Show in Houzez Dashboard</strong> in Settings → General so every internal Messages link in the plugin routes into the new dashboard tab.</li>
</ol>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1268;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRjgBAABXRUJQVlA4ICwBAACwBgCdASooABkAPjEYikOiIaEStAAgAwS0gGej4HsiI0EIADbjwwxMeJdkZP8oP+pppTWUUkpJkOypl0zFAAD+/2x96P5glWyjbqvfG9ADkjkGer4ANWDjotGuuZTeAH5rZLRmApAlUc/NC3PcEEEHD8oAUFHrBVzHtgArDjJpcqZXieps8RQaBj/oswqxf6c4K3jZlDBzrkRP6V2woznKNxURmVlPLPh5GuwENXIwnuMw5iapbh7Bje/hTIG7gBFMqxCPoD3S0qw/h9VtEjNacQAlZMsArKLP0Yzsgv65rdBhqRbwQW8R+BTRYabaXhzesjnT6yQ2maAO1mhcIXMGvc2XTx5mDOJOuq7k+Nj3ns7FX7aAmGxartUowPJqjZLu9eELvpz6iYYAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/settings-7fe5181-2000.webp" srcset="https://www.better-messages.com/assets/img/settings-a3d9e6e-640.webp 640w, https://www.better-messages.com/assets/img/settings-0dae148-980.webp 980w, https://www.better-messages.com/assets/img/settings-a290303-1320.webp 1320w, https://www.better-messages.com/assets/img/settings-c14a47c-1660.webp 1660w, https://www.better-messages.com/assets/img/settings-7fe5181-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Houzez integration settings" width="2000" height="1268" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>For custom Elementor templates, Houzez Studio widgets, or theme overrides, place buttons manually:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_houzez_property_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_houzez_property_card_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_houzez_agent_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_houzez_agency_button]</span><br></span></code></pre></div></div>
<p>The buttons inherit <strong>Houzez Options → Styling Options → Primary Color</strong> automatically — change the theme palette in Houzez Options and every Live Chat surface updates on the next page load.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-houzez-sites">Free vs WebSocket version for Houzez sites<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#free-vs-websocket-version-for-houzez-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for Houzez sites" title="Direct link to Free vs WebSocket version for Houzez sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Live Chat button on property page, cards, agent and agency profiles</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Messages tab inside the Houzez dashboard</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Property info card inside the conversation</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Houzez theme accent inheritance</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mini-widget popup chat (buyer stays on the property page)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (e.g. buyer + listing agent + brokerage owner)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For real-estate sites the WebSocket version's web push and instant delivery are the difference between a hot lead that converts the same day and a lead that goes cold while the agent waits for an email notification. The mini-widget popup keeps the buyer on the property page they were considering instead of redirecting them to a separate messages page, and the group calls let a buyer talk to the listing agent and a brokerage manager in the same call without leaving the site.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-houzez-studio-elementor-templates">Does it work with Houzez Studio Elementor templates?<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#does-it-work-with-houzez-studio-elementor-templates" class="hash-link" aria-label="Direct link to Does it work with Houzez Studio Elementor templates?" title="Direct link to Does it work with Houzez Studio Elementor templates?" translate="no">#</a></h3>
<p>Yes — buttons on the <strong>single property page</strong>, <strong>agent profile</strong>, <strong>agency profile</strong> and <strong>dashboard</strong> are auto-injected via Houzez theme hooks and work with every Houzez Studio layout. For property cards rendered through Houzez Studio's own grid widgets, use the <code>[better_messages_houzez_property_card_button]</code> shortcode inside the Elementor template if the auto-injection doesn't catch the custom widget.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="should-i-disable-the-native-houzez-messages-panel">Should I disable the native Houzez Messages panel?<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#should-i-disable-the-native-houzez-messages-panel" class="hash-link" aria-label="Direct link to Should I disable the native Houzez Messages panel?" title="Direct link to Should I disable the native Houzez Messages panel?" translate="no">#</a></h3>
<p>It's optional. Both messengers can coexist — the Houzez native panel stays at <code>/dashboard-messages/</code>, Better Messages lives at <code>/dashboard-live-chat/</code>. If you want a single inbox, enable <strong>Hide native Messages tab</strong> in the Houzez integration settings. The native panel is removed from the dashboard sidebar.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-buyers-chat-without-registering">Can buyers chat without registering?<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#can-buyers-chat-without-registering" class="hash-link" aria-label="Direct link to Can buyers chat without registering?" title="Direct link to Can buyers chat without registering?" translate="no">#</a></h3>
<p>Yes — if Guest Chat is enabled in <strong>Better Messages → Settings → General → Guest Chat</strong>, anonymous visitors can use the Live Chat buttons without logging in.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-property-is-unpublished">What happens when a property is unpublished?<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#what-happens-when-a-property-is-unpublished" class="hash-link" aria-label="Direct link to What happens when a property is unpublished?" title="Direct link to What happens when a property is unpublished?" translate="no">#</a></h3>
<p>The Live Chat button is hidden when the property is not published. Existing threads remain readable on both sides.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-agent-or-agency-cpts-that-dont-have-a-wordpress-user-owner">Does it work with agent or agency CPTs that don't have a WordPress user owner?<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#does-it-work-with-agent-or-agency-cpts-that-dont-have-a-wordpress-user-owner" class="hash-link" aria-label="Direct link to Does it work with agent or agency CPTs that don't have a WordPress user owner?" title="Direct link to Does it work with agent or agency CPTs that don't have a WordPress user owner?" translate="no">#</a></h3>
<p>Yes. When the CPT has no linked WordPress user, the chat is silently routed to the property's <code>post_author</code> (or to the agency owner). The buyer sees the agent / agency CPT's name, headshot and profile URL in the conversation — the routed receiver gets a yellow <strong>"Chatting as [Agent name]"</strong> banner above the property card so they know which persona the buyer is contacting. A single fallback account can host inquiries for several different agent CPTs and every thread still shows its own distinct persona to the buyer.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-better-messages-clash-with-the-native-houzez-messenger">Will Better Messages clash with the native Houzez messenger?<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#will-better-messages-clash-with-the-native-houzez-messenger" class="hash-link" aria-label="Direct link to Will Better Messages clash with the native Houzez messenger?" title="Direct link to Will Better Messages clash with the native Houzez messenger?" translate="no">#</a></h3>
<p>No. Both can coexist side-by-side. They use different database tables, different REST endpoints, different dashboard URLs. Most sites pick one and hide the other through the <strong>Hide native Messages tab</strong> toggle, but it's not required.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/houzez-real-estate-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/houzez/">Houzez integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/realhomes-real-estate-chat/">RealHomes real estate chat</a> — the sister Inspiry-family real-estate theme</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-real-estate-chat/">WordPress real estate chat</a> — adjacent real-estate use case</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/hivepress-listing-chat/">HivePress listing chat</a> — for HivePress real-estate marketplaces</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/motors-car-dealer-chat/">Motors car dealer chat</a> — Stylemix Motors classifieds</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/directorist-listing-chat/">Directorist chat</a> — for general directory sites</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Houzez</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[Motors Car Dealer Chat: Real-Time Buyer ↔ Dealer Messaging]]></title>
            <link>https://www.better-messages.com/blog/motors-car-dealer-chat/</link>
            <guid>https://www.better-messages.com/blog/motors-car-dealer-chat/</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat to a Motors car-dealer / classifieds site — Live Chat button on the car listing, LIVE CHAT pill on inventory cards, button on dealer profiles, and a Messages tab inside the dealer dashboard.]]></description>
            <content:encoded><![CDATA[<p>The Motors plugin from Stylemix turns WordPress into a car-dealer / vehicle-classifieds platform — the most-installed automotive listing plugin on the WordPress ecosystem. Motors ships with <strong>Message Us</strong> and <strong>Make an Offer Price</strong> buttons that email the dealer. What it does not ship with is a real-time chat that keeps the conversation on-site, with persistent history, file attachments, and the option to escalate to a call. Better Messages adds that layer: a Live Chat button on every car listing, a LIVE CHAT pill on every inventory list card, a Live Chat row on the dealer profile, and a MESSAGES tab inside the dealer dashboard.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-motors">What Better Messages adds to Motors<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#what-better-messages-adds-to-motors" class="hash-link" aria-label="Direct link to What Better Messages adds to Motors" title="Direct link to What Better Messages adds to Motors" translate="no">#</a></h2>
<p>Once Better Messages is installed and the Motors integration is enabled under <strong>Better Messages → Settings → Integrations → Directories</strong>:</p>
<ul>
<li class=""><strong>Live Chat button on the single car listing page</strong> alongside Motors' Message Us / Make an Offer Price buttons.</li>
<li class=""><strong>LIVE CHAT pill on each inventory list card</strong> inline with Schedule Test Drive / Add to Compare / Quote by Phone / Trade-In / Share This.</li>
<li class=""><strong>Live Chat row on the dealer profile</strong> Contact Info card.</li>
<li class=""><strong>MESSAGES tab inside the dealer dashboard</strong> at <code>/author/&lt;username&gt;/?page=better-messages</code>.</li>
<li class=""><strong>Listing info card inside the conversation</strong> — car image, title, price.</li>
<li class=""><strong>Motors author profile links</strong> — clicking the dealer's name in a conversation opens their Motors profile, not the WordPress one.</li>
<li class=""><strong>Motors theme accent inheritance</strong> — the Live Chat buttons inherit the theme's accent and text colors automatically.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/listing-page-b416509-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-page-c48d861-640.webp 640w, https://www.better-messages.com/assets/img/listing-page-d316a19-980.webp 980w, https://www.better-messages.com/assets/img/listing-page-14a480e-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-page-673a10b-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-page-b416509-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Live Chat button on the Motors car listing page, alongside Message Us and Make an Offer Price" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-pill-on-inventory-cards">LIVE CHAT pill on inventory cards<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#live-chat-pill-on-inventory-cards" class="hash-link" aria-label="Direct link to LIVE CHAT pill on inventory cards" title="Direct link to LIVE CHAT pill on inventory cards" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRgQDAABXRUJQVlA4IPgCAABQEACdASooAB0APjESh0KiIQ1WAgAQAYJYwC36xsw6cBtgPMB/AP49/u/8Z7IH9V9gG8AegB5VX+7/unwXftx6XFyg8EfFx5GP0ft+cb/tmOt/u/2d3TKYj5GPpT/ie4L+on/DNHAutFUpgeqe1e+OZ10usNaKfXKY6RRu48bprJt+1lEPwBkP/lwAAP7//h89sr2wLbC9HsuKP3/ulfcfuy5a5FDHShxjcXcFu8vyrs3kNThNsYew+rNe6YCYNH883ZR/+6lFDW6kI9Mb9M9/KECXtzfm2Y2dQFGEIevxnnwvgKKrQY36W62Lveo5H+seLfXSM5eiQQJMo8/PHPvRhiePYZVU8wNUfU2Wl+WSBxPmQ8It1gibVqISmhThVj4HMuhf9TPIU/K0Hd/6BPGGVegV2Kc47jy5DCMC9XvrLgagcHz9SbDcUBU6CnbV5S6Sb48EKs/7kAR5HKnyiOYNAHJbJhfFj9so/Ru4SX2N+k1fvIy6hKrjKf/yGlSC2LxYuOVBn3T0Pezf/Ttgh1OugqLCu2O0a0jn8rfqe/YOrQNiA7dfBqxtok6prkrH9quzRsY+fIpOS52pk5zxzlqC8UT3lOd2uo9m8O8pn0f6wsGz9GJ1j34Uo2RqEvWC45UiSzAso1QEsLmpVNBMdRAR2yQSuia0m/0//KqdPF+K+tpAwoQ7psVpHJxTdusgBQlXWCwg64UxmncnGloEB6fKvWNXH7OyUIeWSlKAGn+vXC4R/5ZstXd/flPomZGvPUx6KaDgu/P0QpNHy1HW0vLnVLiBISUnYkV/8+hqk//geo5ibH5gHFAVZ16pPpFuWob+SHvO64iDOsm51mPo+qv4Y0LvmxAugJBan2L9KgfXvWpyq1/5Qul9Z8oxK0RDHf1I3C+2BMpiSF6N1k2br1ih9wa+EM/fzX8c8es9WVv47r6Pf9STpw6JdlQeofv1M+Kx35pvgmnKJCvTYtqU3+yZ1v0O5hq0Fjn+b28jK48OBvqaYObGlAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/inventory-list-d6e6070-2000.webp" srcset="https://www.better-messages.com/assets/img/inventory-list-4a973ae-640.webp 640w, https://www.better-messages.com/assets/img/inventory-list-fb8ea6f-980.webp 980w, https://www.better-messages.com/assets/img/inventory-list-7ae5bf3-1320.webp 1320w, https://www.better-messages.com/assets/img/inventory-list-54c6c4a-1660.webp 1660w, https://www.better-messages.com/assets/img/inventory-list-d6e6070-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="LIVE CHAT pill inline on Motors inventory list cards" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Buyers do not have to open each car to start a chat — the pill is on every inventory card, inline with the native Motors actions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-chat-row-on-the-dealer-profile">Live Chat row on the dealer profile<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#live-chat-row-on-the-dealer-profile" class="hash-link" aria-label="Direct link to Live Chat row on the dealer profile" title="Direct link to Live Chat row on the dealer profile" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRmgCAABXRUJQVlA4IFwCAAAwDgCdASooAB0APjESh0KiIQ1VAwAQAYJYgCCApAgwG2A3EH/J9Jn0XPUA/UDgJZjM85/GL9ncvv97zhn2q5ID+36Kf+R2vd/rnp3f43mk+cP9P7EH9U/2xZ+Y1tUkHj/0KI3Q4ApUzGORg02YysAtNeI4gJBvnJ0T4AD+//4fLtwuqFt86ITkXI71xTfcZfffK7bennZTqZJ7kZBTFQp9EYn4iuFQudVMhyiwT54oXsXc41DCzMqWBV+OVHJ/+XJ02hVBglnDiqh7EL8cfKoCHB/YYyVj0zRMBSjOt3v82TpRKBlfix9p+PVNK8M8f1+/cfrzNLtqiPqqpK6hjW+DG/fShg6imT82934gHoVF7v/sTR3a1eWDhCnhDAdl1M3KbtIlEeXEFzyju8dyxQ+3lUOR/Engnb7JWSR1fjF15hBclXPw1lAM+0QjX8DHXcHSz2jfR/HqzHfEf3m915qk45trGD2kkDNs5VJ+hA9ZEIf/s9jdTOp3Xg0cPZQe2Ysj1h05Lzn3VDMSD9CnDPs/7Nuh5AT3I6cjdNCvmxs89jFtpH7d01P7rZTjg2TsoLhiXSdI6hj1ILo074pLLl7nrbuespQmngrIPepUgt9mzaa3x8LxIJA7jt8DfxgovPLNaY1eg9q09/VcKShE6fn+bghyKOSGoPd/J3k6PhgCdTznu6l16GZRy4bWbdBdnafPrn+95fwKcxp+A3hlro2KB/cw5pq7Sl2u7BKSBpWvH9/3hdAiBiLlivGGsf9ucxuv8jQQgp2X+CjRrS8Gq99EWz/wB/z6JVO0AAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dealer-profile-712f831-2000.webp" srcset="https://www.better-messages.com/assets/img/dealer-profile-4a8b8e3-640.webp 640w, https://www.better-messages.com/assets/img/dealer-profile-d20d33f-980.webp 980w, https://www.better-messages.com/assets/img/dealer-profile-1530bec-1320.webp 1320w, https://www.better-messages.com/assets/img/dealer-profile-c8a8629-1660.webp 1660w, https://www.better-messages.com/assets/img/dealer-profile-712f831-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Live Chat row in the Contact Info card on the dealer profile" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Adds a Live Chat row to the dealer / private-seller Contact Info card. Hidden when the dealer has no published listings.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-tab-inside-the-dealer-dashboard">MESSAGES tab inside the dealer dashboard<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#messages-tab-inside-the-dealer-dashboard" class="hash-link" aria-label="Direct link to MESSAGES tab inside the dealer dashboard" title="Direct link to MESSAGES tab inside the dealer dashboard" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRvQBAABXRUJQVlA4IOgBAACwCgCdASooAB0APi0Sh0KhoQ1WAwAMAWJQBOmZVlStNZjB/Zvaj00neTf2c9HZEldspaR/Wn2A/yy4AA8YrnqyDrfrMENc3tqpIkBZ55aUpXQ9l6e++CzewyIsPRzAAP7+mn//4IH/RKtfO342S0rcw3OYWWv2bB5v3GfKhGRODA3P/kr4lKMCK23/S/8FfOm0Mv/sN/OP3PH89hbttjdONE+CQqDh0jrz9HPj2YmJBmZr3ZY8W8Pb61qfx//JcCdQ3OleKXOzXGAUzymE51aTZLp3DxniR8TnWcxWy6x67wXhTvDtQq2Y+YNXF/flZgmx8KglMK9k/H2lP+Dn8IMpPxeOJ6XiSt9qt5XLKuMFjnv6U90JiSqm74r/ZJgRnn0F5EM/0b3GKH1s1RQf/iWNmFe5V+Qp4ybXrxm4HzXTzkfQtiiL/K25nkhphcvcCeLEIB3k3DQb2ff9l6dFHw/HNercvaIgsfIKDCC2zvHqTAHIx1JHmL6PCrkjROEd0GE3Hw2MB6ZrbDZ/wXTf+yD+JpoF984WIQJwcn7wNpBmBVMw5mSTjvwZqeTLwiFcOj5+IDMVp1/weKn/yq/XYBHvV/sJAC8Azdwn2ugi39+dhvcXt++6zXn9MIH4Ah6k4Z5UIF4MnQAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-tab-e82419e-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-tab-cb030bc-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-tab-5e0e34b-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-tab-19b1b38-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-tab-afc7d59-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-tab-e82419e-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="MESSAGES tab inside the Motors dealer dashboard" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Dealers stay inside the Motors dashboard to read and reply to buyer inquiries. Combined with <strong>Messages Location → Show in Motors Dealer Dashboard</strong>, every internal Messages link in Better Messages routes to this tab.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="multi-listing-support">Multi-listing support<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#multi-listing-support" class="hash-link" aria-label="Direct link to Multi-listing support" title="Direct link to Multi-listing support" translate="no">#</a></h2>
<p>If you run the Motors Multi-Listing add-on with extra vehicle types (motorcycles, boats, trucks, RVs, etc.), every placement above works for those listings automatically — no extra configuration needed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-motors-site">Installing Better Messages on a Motors site<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#installing-better-messages-on-a-motors-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a Motors site" title="Direct link to Installing Better Messages on a Motors site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Make sure Motors is active. Stylemix's Motors Starter Theme (or any of their commercial Motors themes) is recommended for the polished out-of-the-box layout the screenshots above use.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → Directories → Motors Integration</strong>.</li>
<li class="">Toggle <strong>Enable Motors Integration</strong> and the individual placement toggles you want.</li>
</ol>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1082;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAAAQBgCdASooABYAPjEYikOiIaEStAAgAwS0gGVCCcI22HFE4SBZKBjtTFK5goSdBoNOOc/NnG6TPgAA/v9seUifUTTDDgUdKaLp4XDF4nCMFZqQDuTXNEz7agSuV12kpauDqEen8fBI7xjqWoJy3wP4tuYIbvZ/lXiUNFFZRLM1BFNRP1RnSPtkligoVdt4eysT16UDpu8cLf7m7/LbO6t6VP94EbcGfAgmVyMRY/n9/Esq5SEEPCfVj6h9P+jqQoEBSkNwgANQ/0cihoHGL/QfetdWfS+yODNT+sQogxviKOE042f7j2NPWEtWxDfyFyYI9ZCYbfPbBEXcrQAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/settings-8a97843-2000.webp" srcset="https://www.better-messages.com/assets/img/settings-75579e2-640.webp 640w, https://www.better-messages.com/assets/img/settings-829ad24-980.webp 980w, https://www.better-messages.com/assets/img/settings-a3412bd-1320.webp 1320w, https://www.better-messages.com/assets/img/settings-7ff46c1-1660.webp 1660w, https://www.better-messages.com/assets/img/settings-8a97843-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Motors integration settings" width="2000" height="1082" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>For custom Elementor templates, sidebar widgets, or theme overrides, place buttons manually:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_motors_listing_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_motors_dealer_button]</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-motors-sites">Free vs WebSocket version for Motors sites<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#free-vs-websocket-version-for-motors-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for Motors sites" title="Direct link to Free vs WebSocket version for Motors sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Live Chat button on listing, inventory cards, dealer profile</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>MESSAGES tab inside the dealer dashboard</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Listing info card inside the conversation</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Motors author profile links and theme accent</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Multi-listing add-on support</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mini-widget popup chat (buyer stays on the car listing)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (e.g. buyer + multiple dealership reps)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For car dealerships running paid Motors listings, the WebSocket version's web push and instant delivery are the difference between a hot lead that converts the same day and a lead that goes cold while the dealer waits for an email notification. The mini-widget popup keeps the buyer on the car page they were considering instead of redirecting them to a separate messages page.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-all-motors-theme-variants-cars-motorcycles-boats">Does it work with all Motors theme variants (Cars, Motorcycles, Boats…)?<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#does-it-work-with-all-motors-theme-variants-cars-motorcycles-boats" class="hash-link" aria-label="Direct link to Does it work with all Motors theme variants (Cars, Motorcycles, Boats…)?" title="Direct link to Does it work with all Motors theme variants (Cars, Motorcycles, Boats…)?" translate="no">#</a></h3>
<p>Yes — Better Messages works with the standard Motors plugin regardless of which Stylemix theme you use. The Live Chat buttons inherit the active theme's accent colors automatically.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-the-motors-multi-listing-add-on">Does it work with the Motors Multi-Listing add-on?<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#does-it-work-with-the-motors-multi-listing-add-on" class="hash-link" aria-label="Direct link to Does it work with the Motors Multi-Listing add-on?" title="Direct link to Does it work with the Motors Multi-Listing add-on?" translate="no">#</a></h3>
<p>Yes — every placement (listing, inventory card, dealer profile, dashboard) works for motorcycles, boats, trucks, RVs, and any custom vehicle type the Multi-Listing add-on registers.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-buyers-chat-without-registering">Can buyers chat without registering?<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#can-buyers-chat-without-registering" class="hash-link" aria-label="Direct link to Can buyers chat without registering?" title="Direct link to Can buyers chat without registering?" translate="no">#</a></h3>
<p>Optional. With <strong>Guest Chat</strong> enabled, an unregistered buyer can start a thread by typing a name and email.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-car-listing-is-unpublished">What happens when a car listing is unpublished?<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#what-happens-when-a-car-listing-is-unpublished" class="hash-link" aria-label="Direct link to What happens when a car listing is unpublished?" title="Direct link to What happens when a car listing is unpublished?" translate="no">#</a></h3>
<p>The Live Chat button is hidden when the listing is not published. Existing threads remain readable on both sides.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-move-the-live-chat-pill-to-a-different-position-on-inventory-cards">Can I move the LIVE CHAT pill to a different position on inventory cards?<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#can-i-move-the-live-chat-pill-to-a-different-position-on-inventory-cards" class="hash-link" aria-label="Direct link to Can I move the LIVE CHAT pill to a different position on inventory cards?" title="Direct link to Can I move the LIVE CHAT pill to a different position on inventory cards?" translate="no">#</a></h3>
<p>The pill is rendered inline with Motors' standard inventory-card action row. Position is controlled by the order of the Motors action hooks. A custom filter can reorder if needed. For more drastic layout changes, disable the auto-injection toggle and place the button manually via shortcode.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/motors-car-dealer-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/motors/">Motors integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/houzez-real-estate-chat/">Houzez real estate chat</a> — adjacent listing-driven use case</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/classified-listing-chat/">Classified Listing chat</a> — for general classifieds sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/directorist-listing-chat/">Directorist chat</a> — for directory sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/hivepress-listing-chat/">HivePress listing chat</a> — for HivePress marketplaces</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Motors</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[Classified Listing (RTCL) Chat: Real-Time Messaging Plugin]]></title>
            <link>https://www.better-messages.com/blog/classified-listing-chat/</link>
            <guid>https://www.better-messages.com/blog/classified-listing-chat/</guid>
            <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat between Classified Listing (RTCL) sellers and buyers — Live Chat button on listings and archive cards, floating header chat icon, Messages tab inside the RTCL My Account dashboard.]]></description>
            <content:encoded><![CDATA[<p>Classified Listing (RTCL — Radius Theme Classified Listing) is the best-known classifieds plugin on WordPress, used for everything from local for-sale boards to country-wide listings sites. Better Messages adds a WordPress-native real-time chat layer to RTCL sites — running on its own WebSocket cloud, with the messenger hooking into every RTCL surface: the listing page, archive cards, author / store pages, the My Account dashboard, plus a floating header chat icon with live unread badge.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-classified-listing">What Better Messages adds to Classified Listing<a href="https://www.better-messages.com/blog/classified-listing-chat/#what-better-messages-adds-to-classified-listing" class="hash-link" aria-label="Direct link to What Better Messages adds to Classified Listing" title="Direct link to What Better Messages adds to Classified Listing" translate="no">#</a></h2>
<p>Once Better Messages is installed and the Classified Listing integration is enabled under <strong>Better Messages → Settings → Integrations → Directories</strong>:</p>
<ul>
<li class=""><strong>Live Chat button on the listing page</strong> inside the Seller Information widget.</li>
<li class=""><strong>Live Chat button on archive listing cards</strong> (opt-in).</li>
<li class=""><strong>Live Chat button on author and store pages</strong> (Classified Listing Store add-on supported).</li>
<li class=""><strong>Floating header chat icon</strong> with live unread-count badge.</li>
<li class=""><strong>Messages tab inside the My Account dashboard</strong> next to My Listings, Store, Payments.</li>
<li class=""><strong>Listing info card inside the conversation</strong> — image, title, price, location.</li>
<li class=""><strong>Author archive links</strong> — clicking the seller's name in a conversation opens their RTCL author archive.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/listing-page-81f6045-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-page-14259d2-640.webp 640w, https://www.better-messages.com/assets/img/listing-page-935358f-980.webp 980w, https://www.better-messages.com/assets/img/listing-page-b06e23f-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-page-82bb0c9-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-page-81f6045-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Live Chat button inside the RTCL listing Seller Information widget" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="floating-header-chat-icon">Floating header chat icon<a href="https://www.better-messages.com/blog/classified-listing-chat/#floating-header-chat-icon" class="hash-link" aria-label="Direct link to Floating header chat icon" title="Direct link to Floating header chat icon" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRiABAABXRUJQVlA4IBQBAACwBQCdASooAB0APjEShUKiIQ1VABABglAF8B5SE0PPqK9leJm/rz2IByh4SU2G8e6/DLhMYAAA/vgw/8r+2nC9MHsq2UbgkDJhM+LA99/2D7AVx8XvlNuNhyOi0H9+E6LbCrWY3yxB94tT//V5g8FH/7//3S789734/an+AZqkcMuh55G8a/vViz/SH6qNQMuKjjWnNz59XY+7fJ7tb3FIL5hN1qcjZ2zFyc//6Fh7C/y/qtIf+eH96//St4tX3Cvn/ot1YDVSFt2y1sfAQCV4B5VYMBzVy0weWLRITtTNVrF/+MUWE25Jdyk5hN4SOj/82Yz2j2mqNxtiQBSMqrhIrF+fAYVoYW5kdfiORcdT8cUQAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/header-icon-86743b5-2000.webp" srcset="https://www.better-messages.com/assets/img/header-icon-0923336-640.webp 640w, https://www.better-messages.com/assets/img/header-icon-85bd311-980.webp 980w, https://www.better-messages.com/assets/img/header-icon-11c92d8-1320.webp 1320w, https://www.better-messages.com/assets/img/header-icon-53ef287-1660.webp 1660w, https://www.better-messages.com/assets/img/header-icon-86743b5-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Floating chat icon in the site header with unread badge" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Inserts a chat-bubble icon into the site header next to My Account and (when Pro is active) the native Chat icon. Inherits the theme's header-icon styling and shows a live unread count that updates in real time. Opt-in via the <strong>Header Chat Icon</strong> toggle.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-tab-in-the-rtcl-my-account-dashboard">Messages tab in the RTCL My Account dashboard<a href="https://www.better-messages.com/blog/classified-listing-chat/#messages-tab-in-the-rtcl-my-account-dashboard" class="hash-link" aria-label="Direct link to Messages tab in the RTCL My Account dashboard" title="Direct link to Messages tab in the RTCL My Account dashboard" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRhYCAABXRUJQVlA4IAoCAADwCACdASooAB0APjEYiUMiIaEVXAUAIAMEsYBg9puYOd4k/Xn0UXkBsAKQAuh7Rvkolg/ko4f0T+NcArXP4rtIkjw2rfSE7zYNu1BwFLKgAAD+/4zetXu33ocK0fE52TMP0HpJne22gH/0Cp9RsEX/7foeyW8yB4ClUFWp+5Y6J34xoM2OfUMN5XljAni07KS6lr4VTHX58eOAA6TGQdXEiqfUipvqR+YZP9DaSJ310cmyaUoIhAuLCch+hMUgLY5Y3GIsBbocEcH/nJXlmAzytNCbXguRaC3fUs71XPIn+bH/CP3/z3//4nOYwA9MQYui8aIf8N/9cZ4iI0ZoJz8S8Ilzx/dHSJyTG2n/CAOYRLk6B74An+cOdEygVNCSSBOMBav6r3DMl6B0/Nt/Hbv6f/nilGyZMZccAwv59uq/8iGep7g3Xei/CKTnP0Mv/fzn9Egn97eAHRM+ShkG4eaX/khEX1n8HANSWEA3lDtbb/OJWfWv9xQidetZ/6f/i7aQc6E0g//HCv9Mb+7WXG3/59r8yGK/30biMAQCNl7K+qSEZH0ZCtkstVmv/WqhU1CRYnSbM+IULgn/LJ/tf/UGn/ihb9+HP13+jkz/QdIL+ul/W/6dImKcvdrQSghsbIL+MdITzjVIPRugZ8M31uhM5YwutjwNvSrVbhTpz5tifdsi1afj3BwAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-tab-4548000-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-tab-1504be0-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-tab-98cf2c9-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-tab-7b2a447-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-tab-6020660-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-tab-4548000-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Messages tab inside the Classified Listing My Account dashboard" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Embeds the full Better Messages inbox inside the RTCL My Account layout. Combined with <strong>Messages Location → Show in Classified Listing Account</strong>, every internal Messages link routes here.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>After enabling the dashboard tab for the first time, visit <strong>Settings → Permalinks</strong> and click <strong>Save Changes</strong> to register the new endpoint. Without that step the tab will appear in the sidebar but the URL will 404.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="listing-info-card-inside-the-conversation">Listing info card inside the conversation<a href="https://www.better-messages.com/blog/classified-listing-chat/#listing-info-card-inside-the-conversation" class="hash-link" aria-label="Direct link to Listing info card inside the conversation" title="Direct link to Listing info card inside the conversation" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRgwCAABXRUJQVlA4IAACAABwCQCdASooAB0APjEYiUMiIaEVXAQAIAMEsYBihbnLSd4d/Y30R3fyrv8hn+IF5TksfPHmnow/BFa/j7Eq8IJs7uSRKszc2Zvfjf+EM/V7M4IFXAAA/v/iFTrnobMCuaM+lfdoGuhlWO0BT7FRuWUAXD/9xc//5p8GwP8T/LU5sHUF8lNVM7IObw/E0Ie6ziz1sLFmHuqdBYQEW7vDNf89t4A/nMwCz+Bf5fU/v9VuDf5QvF6jtMh01gDTNPLfUMNZom3QAqfo0xJQ+Ry6+WXS46qXpPdI3m9JRL7c0qqAar4e/4R+/+e///FG6e63X9mcSegWg3+V//XDpKYjRM5AwrbKzwQM2E853/FRSjbqh1V55B+uAEQks0aHufoZwbn4fL/NYm6cb9+Ozf0v/O/CNST1yre2vb8+j0f/4hBSIm09Bm8GOW/b8cj//fzlwS+Y20ZpyGE2xZNhQP/4JBBp1rgtvPkTP0P4OE/nBPPrdgRq6yye8/9P/xbmGsIBHz49f/v8H/Og7EmZc/59oPrNjW87lKyOItLSOBpqDnH6aO4sV/DTNceWDtrS6vTa6fPdmD/4d/qD3/xP1nxfe+/2OTP9AzeXaRJaccz8Z4qkaMgtZ5SxQ3hfxk8yMpkMswGfDNS2chz6i7eoZPm2U+TbAdnaC96jBIfZUWKarzsAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/thread-info-c441394-2000.webp" srcset="https://www.better-messages.com/assets/img/thread-info-c7ecabb-640.webp 640w, https://www.better-messages.com/assets/img/thread-info-bd69a30-980.webp 980w, https://www.better-messages.com/assets/img/thread-info-8a19f2a-1320.webp 1320w, https://www.better-messages.com/assets/img/thread-info-b42bfc2-1660.webp 1660w, https://www.better-messages.com/assets/img/thread-info-c441394-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Conversation with the Classified Listing info card showing image, title, price" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The card removes the "which listing is this about" question — the seller sees the listing image, title, and price at the top of the thread.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="using-classified-listing-pro-chat-alongside-better-messages">Using Classified Listing Pro chat alongside Better Messages<a href="https://www.better-messages.com/blog/classified-listing-chat/#using-classified-listing-pro-chat-alongside-better-messages" class="hash-link" aria-label="Direct link to Using Classified Listing Pro chat alongside Better Messages" title="Direct link to Using Classified Listing Pro chat alongside Better Messages" translate="no">#</a></h2>
<p>If you are running Classified Listing Pro with its built-in chat enabled, Better Messages coexists with it — both buttons render side by side on the listing page, both inboxes work independently.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For the cleanest experience, disable Pro's built-in chat under <strong>Classified Listing → Settings → Chat → uncheck Enable Chat</strong> so visitors only see one Live Chat button.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-classified-listing-site">Installing Better Messages on a Classified Listing site<a href="https://www.better-messages.com/blog/classified-listing-chat/#installing-better-messages-on-a-classified-listing-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a Classified Listing site" title="Direct link to Installing Better Messages on a Classified Listing site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Make sure Classified Listing (RTCL) is active. Pro is optional — both work.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → Directories → Classified Listing Integration</strong>.</li>
<li class="">Toggle <strong>Enable Classified Listing Integration</strong> and the individual placement toggles you want.</li>
</ol>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1294;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRigBAABXRUJQVlA4IBwBAADwBgCdASooABoAPjEYiUOiIaEStMwgAwS0gGZ4JrgA3lp9D/DKSzgwEs4N6wh6nOX79+iGliqUEDOLUlPcvpAAAP7/bH3EGY+F/BYxUV09weIX4iafLYN8Fnbk3NQhKw7bc2H0IbcyVn6AZuP70tISEs0Gi4JM98hHKDtfR6vLicYQOOP5mEUcYsinxap+NlI6i7paKv5+5722xO08VjX1bn3+wsfK6MIvd0ntuD6u1Au1tKslgA2V7d/fpOjvpT7TA4dAA8CDWF4bvI6Mbkw5CODRlrrokeSORUY/go6TyGkAaByhoWAcUyWmRmHvtUre+M1KGZU7F9heqSB07HOPKi2Pk2byCF4iUkeecxi4WBQFaWY2HftqKwAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/settings-f72a7dc-2000.webp" srcset="https://www.better-messages.com/assets/img/settings-ae1ab46-640.webp 640w, https://www.better-messages.com/assets/img/settings-6fe24ae-980.webp 980w, https://www.better-messages.com/assets/img/settings-b98a65f-1320.webp 1320w, https://www.better-messages.com/assets/img/settings-e851ae7-1660.webp 1660w, https://www.better-messages.com/assets/img/settings-f72a7dc-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Classified Listing integration settings" width="2000" height="1294" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-classified-listing-sites">Free vs WebSocket version for Classified Listing sites<a href="https://www.better-messages.com/blog/classified-listing-chat/#free-vs-websocket-version-for-classified-listing-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for Classified Listing sites" title="Direct link to Free vs WebSocket version for Classified Listing sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Live Chat buttons on listing, archive cards, author / store pages</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Floating header chat icon with unread badge</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Messages tab inside RTCL My Account</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Listing info card inside the thread</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mini-widget popup chat (buyer stays on the listing)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For classified sites where the time-to-first-reply is the conversion metric, the WebSocket version's web push notifications close the gap dramatically — sellers see and reply to inquiries within minutes, not hours. The mini-widget popup keeps the buyer on the listing page they were considering.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/classified-listing-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-classified-listing-pro">Does it work with Classified Listing Pro?<a href="https://www.better-messages.com/blog/classified-listing-chat/#does-it-work-with-classified-listing-pro" class="hash-link" aria-label="Direct link to Does it work with Classified Listing Pro?" title="Direct link to Does it work with Classified Listing Pro?" translate="no">#</a></h3>
<p>Yes. Pro is optional — Better Messages works with the free RTCL plugin too. With Pro, the Better Messages buttons render next to (or instead of) the Pro chat depending on whether you disable Pro's chat.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-the-dashboard-tab-work-on-commercial-themes-like-classima">Will the dashboard tab work on commercial themes like Classima?<a href="https://www.better-messages.com/blog/classified-listing-chat/#will-the-dashboard-tab-work-on-commercial-themes-like-classima" class="hash-link" aria-label="Direct link to Will the dashboard tab work on commercial themes like Classima?" title="Direct link to Will the dashboard tab work on commercial themes like Classima?" translate="no">#</a></h3>
<p>Yes — the Messages tab is added through RTCL's My Account endpoint registration, which commercial themes respect. The archive-card button is the only piece that depends on RTCL's default loop templates (some commercial themes replace those, and the archive button does not auto-render on those themes — listing page and header icon still work).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-visitors-message-without-an-account">Can visitors message without an account?<a href="https://www.better-messages.com/blog/classified-listing-chat/#can-visitors-message-without-an-account" class="hash-link" aria-label="Direct link to Can visitors message without an account?" title="Direct link to Can visitors message without an account?" translate="no">#</a></h3>
<p>Optional. With <strong>Guest Chat</strong> enabled, unregistered visitors can start a thread from a listing by typing a name and email.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-the-header-chat-icon-support-translation--dark-mode">Does the header chat icon support translation / dark mode?<a href="https://www.better-messages.com/blog/classified-listing-chat/#does-the-header-chat-icon-support-translation--dark-mode" class="hash-link" aria-label="Direct link to Does the header chat icon support translation / dark mode?" title="Direct link to Does the header chat icon support translation / dark mode?" translate="no">#</a></h3>
<p>Yes — the icon inherits the theme's native header-icon styling, so dark-mode flips and RTL layouts are handled by the theme automatically.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-place-the-header-chat-icon-in-a-custom-location">Can I place the header chat icon in a custom location?<a href="https://www.better-messages.com/blog/classified-listing-chat/#can-i-place-the-header-chat-icon-in-a-custom-location" class="hash-link" aria-label="Direct link to Can I place the header chat icon in a custom location?" title="Direct link to Can I place the header chat icon in a custom location?" translate="no">#</a></h3>
<p>Yes — use the shortcode <code>[better_messages_classified_listing_header_button]</code> inside a page-builder block or a custom header template.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/classified-listing-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/classified-listing/">Classified Listing integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/directorist-listing-chat/">Directorist chat</a> — for Directorist-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/geodirectory-listing-chat/">GeoDirectory chat</a> — for GeoDirectory-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/hivepress-listing-chat/">HivePress listing chat</a> — for HivePress-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/motors-car-dealer-chat/">Motors car dealer chat</a> — for automotive classifieds</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Classified Listing</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[WordPress LMS Chat: Student & Instructor Messaging Compared]]></title>
            <link>https://www.better-messages.com/blog/wordpress-lms-chat-plugin/</link>
            <guid>https://www.better-messages.com/blog/wordpress-lms-chat-plugin/</guid>
            <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Adding real-time chat to LearnDash, LearnPress, Tutor LMS, MasterStudy LMS, and FluentCommunity Courses — one plugin covers all five, with course group chats, instructor DMs, and cohort office hours.]]></description>
            <content:encoded><![CDATA[<p>WordPress LMS plugins compete on course-builder UX, certificates, and quizzes — but none of them ship with real-time student ↔ instructor messaging out of the box. Students who hit a roadblock either drop the question in a forum that may or may not be monitored, email the instructor and wait, or abandon the course. The fix is a chat layer that lives inside the course page, knows which students are enrolled, and stays in sync as enrollment changes.</p>
<p>Better Messages adds that layer to LearnDash, LearnPress, Tutor LMS, MasterStudy LMS, and FluentCommunity Courses — from one install. This post compares what the integration looks like across the five LMS plugins.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-five-lms-integrations-at-a-glance">The five LMS integrations at a glance<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#the-five-lms-integrations-at-a-glance" class="hash-link" aria-label="Direct link to The five LMS integrations at a glance" title="Direct link to The five LMS integrations at a glance" translate="no">#</a></h2>
<table><thead><tr><th>LMS plugin</th><th style="text-align:center">Active installs (approx.)</th><th style="text-align:center">Message Instructor button on course page</th><th style="text-align:center">Auto-managed course group chat</th><th style="text-align:center">Instructor profile Send Message button</th></tr></thead><tbody><tr><td>LearnDash</td><td style="text-align:center">100,000+</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes (Instructor Role add-on)</td></tr><tr><td>LearnPress</td><td style="text-align:center">70,000+</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Tutor LMS</td><td style="text-align:center">90,000+</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>MasterStudy LMS</td><td style="text-align:center">30,000+</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>FluentCommunity Courses</td><td style="text-align:center">5,000+</td><td style="text-align:center">yes (on the course creator card)</td><td style="text-align:center">yes (Courses widget)</td><td style="text-align:center">yes (Private Message button)</td></tr></tbody></table>
<p>All five share the same Better Messages course-info card, shared course settings (info card / email / push toggles), and the dedicated <strong>Courses widget</strong> on the messenger's Mini Widgets bar — separate from the social Groups widget so academic chats and friend cohorts do not mix.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/courses-widget-dcdf9b8-2000.webp" srcset="https://www.better-messages.com/assets/img/courses-widget-0187c30-640.webp 640w, https://www.better-messages.com/assets/img/courses-widget-873544a-980.webp 980w, https://www.better-messages.com/assets/img/courses-widget-f569cb4-1320.webp 1320w, https://www.better-messages.com/assets/img/courses-widget-77cf2c8-1660.webp 1660w, https://www.better-messages.com/assets/img/courses-widget-dcdf9b8-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Better Messages Courses widget on a multi-LMS site" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="learndash">LearnDash<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#learndash" class="hash-link" aria-label="Direct link to LearnDash" title="Direct link to LearnDash" translate="no">#</a></h2>
<p>The most-installed LMS on WordPress. Better Messages adds a Message Instructor button on every course page, an auto-managed Course Group Chat that mirrors enrollment, a LearnDash Group cohort chat, and a Send Message button on the LearnDash Instructor Role profile.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRm4BAABXRUJQVlA4IGIBAAAwCACdASooAB0APi0ShkKhoQ1SAAwBYlnAIE7HAP2A9Gs20n8Zr4/mcf6rgAClqMcFpehjkkz/4455OhqgUqIQ4urBDPRr5WWs4AD+/8En8S9Y82h6Yi4IwXFXRFSdEtM33Q+Gb9Tf/uTjja1h//XiiRvRt99/AnRJe/NIs7JlhLb7eXuavMdFo5npTrDi0C5CMUbaqWaFALT8CnoVfMfud5kaoEgjcvgJHnNE6nfudZfQJEo/Jh/zFHQf/9XPlTDRrZWLBk1cmaDLFkDz1jLFKzp1QKRPmgf3VDoUc5A9pOhEjxR8+THxNenWdf0HHTnbJ35YXiSSu2vWR/ufX/0t0cheQeP2p70E+f7o5V/kZee/HH5dg26qn9GCgH0bCWzZYThOzquF33ijGD0aNXmDmxxAjuIt71Du9f8b56S91PWQQvCCdbYIlef8idxuKEYNxsDchXhDJ7t9sDqEsJBgAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/learndash-course-button-a0566dc-2000.webp" srcset="https://www.better-messages.com/assets/img/learndash-course-button-99b0438-640.webp 640w, https://www.better-messages.com/assets/img/learndash-course-button-e561ca1-980.webp 980w, https://www.better-messages.com/assets/img/learndash-course-button-32711f7-1320.webp 1320w, https://www.better-messages.com/assets/img/learndash-course-button-a9773f1-1660.webp 1660w, https://www.better-messages.com/assets/img/learndash-course-button-a0566dc-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Message Instructor button on a LearnDash course page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Full write-up: <a class="" href="https://www.better-messages.com/blog/learndash-student-messaging/">LearnDash student messaging plugin</a>. Reference: <a class="" href="https://www.better-messages.com/docs/integrations/learndash/">LearnDash integration documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="learnpress">LearnPress<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#learnpress" class="hash-link" aria-label="Direct link to LearnPress" title="Direct link to LearnPress" translate="no">#</a></h2>
<p>LearnPress's structure (Courses, Lessons, Quizzes) maps directly to Better Messages: each course gets its own group chat, the instructor's user gets a Send Message button on their profile, and the Courses widget surfaces every course the student is enrolled in.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRp4BAABXRUJQVlA4IJIBAADwCACdASooAB0APi0ShkKhoQwDVAwBYllANCjIBYx36gfAx5EUVOMOrQUwJXa3vIN+8hw62HOPC1ngsOOwWNVn9fYAmdLNfR/LJhnrrsnLAAD+/6+4RFjSGvndxMjXRMYG+aCLYSgq26aQ2C97DAb0rzOCtr+E3eVMksOGSg6WB20giClM5Wv7uQZ3J2A+KnyV9bNy0pO7VGUjHARL+7urNDGjSDVUBTO9nPvm5Njv8uT6V9f7Rf/1GeFlbFe7pJ6GYM/4P7zihTJO1cwQkQzTeAuUwd50PGEpQTb+uACsxtbnE5DUNS2cra/VxVWBr1G0kFtXGwIupuI0d9ijFDFWHWiBHrlmKPWrS0czV3byJ5stnr/K6R0IvKqTVkDbG+gRTUoXxJGyjuE+GLwCHgworK5ZADG2sN/LIG4ZqSjJsMOHydAn4mox7jgsOuUa4c5zXfr//QCo8O2P+sS/3p1Bss6e/Otz3NPjmUSc/IF19RAD3jNM/9X4r/y4//D3+/h9e6yO9zs99zNA9WTbWKAAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/learnpress-course-button-48ae929-2000.webp" srcset="https://www.better-messages.com/assets/img/learnpress-course-button-ad86923-640.webp 640w, https://www.better-messages.com/assets/img/learnpress-course-button-9559a7b-980.webp 980w, https://www.better-messages.com/assets/img/learnpress-course-button-d9109dd-1320.webp 1320w, https://www.better-messages.com/assets/img/learnpress-course-button-609dcc0-1660.webp 1660w, https://www.better-messages.com/assets/img/learnpress-course-button-48ae929-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Message Instructor button on a LearnPress course page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Reference: <a class="" href="https://www.better-messages.com/docs/integrations/learnpress/">LearnPress integration documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tutor-lms">Tutor LMS<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#tutor-lms" class="hash-link" aria-label="Direct link to Tutor LMS" title="Direct link to Tutor LMS" translate="no">#</a></h2>
<p>Tutor LMS has its own student / instructor dashboards. Better Messages adds a Messages tab to the Tutor LMS dashboard and a Message Instructor button on the course page. The integration also adds a student-profile Send Message button so instructors can reach out to specific students.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRpABAABXRUJQVlA4IIQBAADQBgCdASooAB0APjEUiEKiISEaqgQAIAMEtIBicgoBKtv9KDyATopgua3LcPnSTseGbK33DLQsSgs3hhjfQAAA/v+GoQY4Pl0BJdmkssln48r/Hv+0El/83H2mf8AxyXAI2xUlfOgWQMZtqf8UL/+kH3z//MCPlnHFS6zzah7COJbTpeTO/zYxr/sKz793/8B9cP86n/b0rIpYWQ/9gq/IrYP2k36+sGzx71hXtxvi9dgh/UDy7Or3zPbPJNjk3H/C2ZeXgrEcbkIfse2zNZ4KLmOHo24Q9jo1F1aBXq0XXIh4qqmRoguNmzbw9qZvWriwPof560cT3O4Yc4undTaTjFnUUQZJ7SyA7/ScKp1a/wAlEUUXXD/7+c8xf+YlsvCLK8zza69T+nNvcJls3UWlQnulF0U3ctP5NH16Hh0OJ5r4AGwv7Hv2ERQBhDp/F2re/D9UCjWWc19P7J/P5k98OXl8WNXGP0SgEj/oiRE9J6pVuHzZTwDQYEiR4tR8T34FBdgA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/tutor-lms-course-button-5c9935e-2000.webp" srcset="https://www.better-messages.com/assets/img/tutor-lms-course-button-d27ce4f-640.webp 640w, https://www.better-messages.com/assets/img/tutor-lms-course-button-55229ac-980.webp 980w, https://www.better-messages.com/assets/img/tutor-lms-course-button-939efb6-1320.webp 1320w, https://www.better-messages.com/assets/img/tutor-lms-course-button-add3d07-1660.webp 1660w, https://www.better-messages.com/assets/img/tutor-lms-course-button-5c9935e-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Message Instructor button on a Tutor LMS course page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Reference: <a class="" href="https://www.better-messages.com/docs/integrations/tutor-lms/">Tutor LMS integration documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="masterstudy-lms">MasterStudy LMS<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#masterstudy-lms" class="hash-link" aria-label="Direct link to MasterStudy LMS" title="Direct link to MasterStudy LMS" translate="no">#</a></h2>
<p>MasterStudy ships with its own account-messages tab. Better Messages takes it over and embeds the full messenger inside the MasterStudy account layout — students never leave the LMS UI to chat.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRiYCAABXRUJQVlA4IBoCAABwCgCdASooAB0APikQhkKhoQ6qAAwBQllAMEPWJUeBF+GNEB+lH7R8FB1MG8eeTzWHWfpQI4FcBKmu7RtADZFEI5g9W5Uf4NeIkMM5D1SK2QRx1XcvPlh62Y2AAAD+/+P2MlvxxNZFYge3e94yoVcfsKowjIdTk/66JTN0/7bwSljYndXoU5jXh5+dAczpYSa00IJvf1ACmqLeC745MBSpMzVWVfG3RhWHyM9vZ5qmyvovGdFc5OgoSlK9Drw+yWX09GSAlId/dpniPJcySptLKIpXaqrxMy1AEVVm9AMJcxXUiRG1xXd4YJb7YQhvXO7b3vSc9TMdefi2bktFrtUrExEDFoOcz0F0GhsxE34Qlu72vitUB5FDa6Ky4lmlJY2gPvJbMatn4xK1N0bVdVnsDh+sjJZ1Owc68Wf/FZJdH+Zamd32wHA/s91zCGvrQTOwrio6hXdppyAfjQJ1uaJ6d5g4VGeWmJ8IakDEhXuceXSJ63xS1x+637L73u9die2IEkDcNtoFqyi2HsdyUu88fBdV6uIK0x7hVceP2We034bb+Kyv/2Cv/y7vHV93TidJqZ//P//3KPl9P6/H/7+LfEhIQl42ZH1vElufK7OunNtrsScZRVp3cWmwvT5FuPsl3jMrQauCp71JP+GNHuwCnr6UIOcWflQdlgJ7FPormjgtg0KZJscXNjQHCLL3A0Vnl9aKf6LrwAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/masterstudy-course-button-76bbf39-2000.webp" srcset="https://www.better-messages.com/assets/img/masterstudy-course-button-687391d-640.webp 640w, https://www.better-messages.com/assets/img/masterstudy-course-button-14f6b7f-980.webp 980w, https://www.better-messages.com/assets/img/masterstudy-course-button-c139f54-1320.webp 1320w, https://www.better-messages.com/assets/img/masterstudy-course-button-9706eb7-1660.webp 1660w, https://www.better-messages.com/assets/img/masterstudy-course-button-76bbf39-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Message Instructor button on a MasterStudy LMS course page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Reference: <a class="" href="https://www.better-messages.com/docs/integrations/masterstudy-lms/">MasterStudy LMS integration documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluentcommunity-courses">FluentCommunity Courses<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#fluentcommunity-courses" class="hash-link" aria-label="Direct link to FluentCommunity Courses" title="Direct link to FluentCommunity Courses" translate="no">#</a></h2>
<p>FluentCommunity has its own community + course product. Better Messages integrates with FluentCommunity Spaces (community side) and FluentCommunity Courses (LMS side). The Courses widget lists every FC course a student is enrolled in, and each course gets its paired group chat. A <strong>Message Instructor Button</strong> toggle puts a button on the course creator card, and a <strong>Course Chat Button</strong> toggle adds a <em>Course Chat</em> button next to FluentCommunity’s own <em>Continue Course</em>.</p>
<p>Reference: <a class="" href="https://www.better-messages.com/docs/integrations/fluentcommunity/">FluentCommunity integration documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-they-compare-on-the-student-instructor-flow">How they compare on the student-instructor flow<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#how-they-compare-on-the-student-instructor-flow" class="hash-link" aria-label="Direct link to How they compare on the student-instructor flow" title="Direct link to How they compare on the student-instructor flow" translate="no">#</a></h2>
<table><thead><tr><th>Student → instructor flow</th><th style="text-align:center">LearnDash</th><th style="text-align:center">LearnPress</th><th style="text-align:center">Tutor LMS</th><th style="text-align:center">MasterStudy</th><th style="text-align:center">FC Courses</th></tr></thead><tbody><tr><td>Course page → DM the instructor</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Course → shared group chat with all enrolled students</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Group chat enrollment auto-sync</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Cohort / group-leader chat</td><td style="text-align:center">yes (LearnDash Groups)</td><td style="text-align:center">—</td><td style="text-align:center">—</td><td style="text-align:center">—</td><td style="text-align:center">yes (FC Spaces)</td></tr><tr><td>Instructor profile Send Message button</td><td style="text-align:center">yes (Inst. Role)</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Courses widget in the messenger</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Course info card above the conversation</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr></tbody></table>
<p>The core experience — Message Instructor + course group chat + Courses widget — is identical across all five. Differences are in dashboard placement (each LMS has its own conventions) and a couple of advanced surfaces (LearnDash Groups, FluentCommunity Spaces).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="shared-lms-settings-apply-to-all-five">Shared LMS settings apply to all five<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#shared-lms-settings-apply-to-all-five" class="hash-link" aria-label="Direct link to Shared LMS settings apply to all five" title="Direct link to Shared LMS settings apply to all five" translate="no">#</a></h2>
<p>Three toggles under <strong>Better Messages → Settings → Integrations → LMS → Shared Course Settings</strong> apply across every LMS integration:</p>
<ul>
<li class=""><strong>Course Info Card</strong> <em>(on by default)</em> — banner with course title, image, and instructor name above the conversation.</li>
<li class=""><strong>Email Notifications</strong> <em>(on by default)</em> — standard new-message email for course chat activity.</li>
<li class=""><strong>Push Notifications</strong> <em>(off by default, WebSocket version)</em> — integration-level real-time push for course-chat events.</li>
</ul>
<p>Changing any toggle propagates across LearnDash, LearnPress, Tutor LMS, MasterStudy LMS, and FluentCommunity Courses.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-any-lms-site">Installing Better Messages on any LMS site<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#installing-better-messages-on-any-lms-site" class="hash-link" aria-label="Direct link to Installing Better Messages on any LMS site" title="Direct link to Installing Better Messages on any LMS site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Install your LMS plugin of choice (LearnDash, LearnPress, Tutor LMS, MasterStudy LMS, or FluentCommunity).</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → LMS</strong> and enable the integrations you want. FluentCommunity is the exception — it has its own <strong>Integrations → FluentCommunity</strong> sub-tab, because its Courses and Spaces settings sit together there.</li>
</ol>
<p>Sites running more than one LMS plugin (rare, but it happens) can enable multiple integrations simultaneously — each appears as its own section in the Courses widget.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-lms-sites">Free vs WebSocket version for LMS sites<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#free-vs-websocket-version-for-lms-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for LMS sites" title="Direct link to Free vs WebSocket version for LMS sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Message Instructor button on course page</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Auto-managed Course Group Chat</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Cohort / Group chat (LearnDash Groups, FC Spaces)</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Courses widget on the Mini Widgets bar</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>One-on-one voice and video calls inside course threads (private office hours)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls inside course threads (cohort office hours, study sessions)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Integration-level real-time push for course-chat events</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional per thread)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The WebSocket version turns course threads into a Discord-style space for the cohort: instant delivery, group voice / video calls for office hours and study sessions, and web push notifications that reach students when the LMS tab is closed. For paid courses and structured cohorts, this is the difference between a passive course library and an active learning community.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-students-from-different-courses-end-up-in-the-same-chat">Will students from different courses end up in the same chat?<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#will-students-from-different-courses-end-up-in-the-same-chat" class="hash-link" aria-label="Direct link to Will students from different courses end up in the same chat?" title="Direct link to Will students from different courses end up in the same chat?" translate="no">#</a></h3>
<p>No — each course has its own group chat. Students enrolled in multiple courses see one thread per course in the Courses widget.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-students-enrollment-is-revoked">What happens when a student's enrollment is revoked?<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#what-happens-when-a-students-enrollment-is-revoked" class="hash-link" aria-label="Direct link to What happens when a student's enrollment is revoked?" title="Direct link to What happens when a student's enrollment is revoked?" translate="no">#</a></h3>
<p>Better Messages listens to each LMS plugin's enrollment hooks (<code>learndash_update_course_access</code>, <code>learn-press/user-enrolled-course</code>, <code>tutor_after_enrolled</code>, etc.) and removes the student from the course chat. Their previous messages remain in history.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-run-two-lms-plugins-side-by-side">Can I run two LMS plugins side by side?<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#can-i-run-two-lms-plugins-side-by-side" class="hash-link" aria-label="Direct link to Can I run two LMS plugins side by side?" title="Direct link to Can I run two LMS plugins side by side?" translate="no">#</a></h3>
<p>Yes — Better Messages detects each active LMS and wires the integration in independently. The Courses widget surfaces courses from every LMS.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="are-course-chats-included-in-the-standard-email-digest">Are course chats included in the standard email digest?<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#are-course-chats-included-in-the-standard-email-digest" class="hash-link" aria-label="Direct link to Are course chats included in the standard email digest?" title="Direct link to Are course chats included in the standard email digest?" translate="no">#</a></h3>
<p>Yes — the shared <strong>Email Notifications</strong> toggle controls the standard new-message email for every LMS course chat. Toggle it off if your students prefer not to receive email per message.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-learndash-groups-cohort-feature">Does it work with LearnDash Groups (cohort feature)?<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#does-it-work-with-learndash-groups-cohort-feature" class="hash-link" aria-label="Direct link to Does it work with LearnDash Groups (cohort feature)?" title="Direct link to Does it work with LearnDash Groups (cohort feature)?" translate="no">#</a></h3>
<p>Yes — each LearnDash Group gets its own chat, separate from the per-course chat. Group Leaders are auto-joined as instructors.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-fluentcommunitys-own-messaging">Does it work with FluentCommunity's own messaging?<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#does-it-work-with-fluentcommunitys-own-messaging" class="hash-link" aria-label="Direct link to Does it work with FluentCommunity's own messaging?" title="Direct link to Does it work with FluentCommunity's own messaging?" translate="no">#</a></h3>
<p>Better Messages adds a real-time chat layer to FluentCommunity, with paired group chats for FluentCommunity Spaces and FC Courses. If you are using Fluent Messaging, deactivate it after installing Better Messages to avoid a double-messenger conflict.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/blog/learndash-student-messaging/">LearnDash student messaging plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/learnpress-student-messaging/">LearnPress student messaging plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/tutor-lms-student-messaging/">Tutor LMS student messaging plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/">MasterStudy LMS student messaging plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/fluentcommunity-chat-plugin/">FluentCommunity chat plugin</a> — includes the FluentCommunity Courses LMS integration</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/group-conversations/">Group conversations</a> — how the group chat feature works</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/mini-widgets/">Mini widgets</a> — including the Courses widget</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/realtime-messaging/">Real-time messaging</a> — what changes with the WebSocket version</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>LearnDash</category>
            <category>LMS</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[LearnDash Student & Instructor Messaging Plugin]]></title>
            <link>https://www.better-messages.com/blog/learndash-student-messaging/</link>
            <guid>https://www.better-messages.com/blog/learndash-student-messaging/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add private messaging to LearnDash — Message Instructor button on every course, auto-managed Course Group Chat that mirrors enrollment, LearnDash Group cohort chats, Instructor Role profile button.]]></description>
            <content:encoded><![CDATA[<p>LearnDash is the most-installed LMS plugin on WordPress. Students who have a question for an instructor often open a support ticket on a separate system, drop a note in a forum that may or may not be monitored, or — most often — abandon the question. Better Messages adds a real-time messenger that hooks into LearnDash at every level: a <strong>Message Instructor</strong> button on every course page, an auto-managed <strong>Course Group Chat</strong> that mirrors course enrollment, a <strong>LearnDash Group</strong> cohort chat, and a <strong>Send Message</strong> button on the LearnDash Instructor Role public profile.</p>
<p>This guide walks through what Better Messages adds to a LearnDash site, how the auto-managed chats stay in sync with enrollment changes, and what the differences are between the free and WebSocket versions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-learndash">What Better Messages adds to LearnDash<a href="https://www.better-messages.com/blog/learndash-student-messaging/#what-better-messages-adds-to-learndash" class="hash-link" aria-label="Direct link to What Better Messages adds to LearnDash" title="Direct link to What Better Messages adds to LearnDash" translate="no">#</a></h2>
<p>Once LearnDash is detected and the integration is enabled in <strong>Better Messages → Settings → Integrations → LMS</strong>, three independent features come online:</p>
<ol>
<li class=""><strong>Message Instructor button</strong> on every course page — students open a private DM with the course author in one click.</li>
<li class=""><strong>Course Group Chat</strong> — a group conversation auto-created per course, with the course author and every enrolled student auto-joined.</li>
<li class=""><strong>LearnDash Group Chat</strong> — a group conversation for each LearnDash Group (a cohort of students sharing access to one or more courses), with Group Leaders auto-joined as instructors.</li>
</ol>
<p>A fourth toggle adds a <strong>Send Message</strong> button to the public profile generated by the paid <strong>LearnDash Instructor Role</strong> add-on.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1483;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/settings-lms-5d34844-2000.webp" srcset="https://www.better-messages.com/assets/img/settings-lms-a006477-640.webp 640w, https://www.better-messages.com/assets/img/settings-lms-422d98a-980.webp 980w, https://www.better-messages.com/assets/img/settings-lms-e44def0-1320.webp 1320w, https://www.better-messages.com/assets/img/settings-lms-ce4ed1e-1660.webp 1660w, https://www.better-messages.com/assets/img/settings-lms-5d34844-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="LearnDash integration settings in Better Messages" width="2000" height="1483" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="message-instructor-button-on-course-pages">Message Instructor button on course pages<a href="https://www.better-messages.com/blog/learndash-student-messaging/#message-instructor-button-on-course-pages" class="hash-link" aria-label="Direct link to Message Instructor button on course pages" title="Direct link to Message Instructor button on course pages" translate="no">#</a></h2>
<p>Adds a <strong>Message Instructor</strong> button to every LearnDash course page. The button targets the user listed as the course author, and is hidden on the instructor's own course.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRm4BAABXRUJQVlA4IGIBAAAwCACdASooAB0APi0ShkKhoQ1SAAwBYlnAIE7HAP2A9Gs20n8Zr4/mcf6rgAClqMcFpehjkkz/4455OhqgUqIQ4urBDPRr5WWs4AD+/8En8S9Y82h6Yi4IwXFXRFSdEtM33Q+Gb9Tf/uTjja1h//XiiRvRt99/AnRJe/NIs7JlhLb7eXuavMdFo5npTrDi0C5CMUbaqWaFALT8CnoVfMfud5kaoEgjcvgJHnNE6nfudZfQJEo/Jh/zFHQf/9XPlTDRrZWLBk1cmaDLFkDz1jLFKzp1QKRPmgf3VDoUc5A9pOhEjxR8+THxNenWdf0HHTnbJ35YXiSSu2vWR/ufX/0t0cheQeP2p70E+f7o5V/kZee/HH5dg26qn9GCgH0bCWzZYThOzquF33ijGD0aNXmDmxxAjuIt71Du9f8b56S91PWQQvCCdbYIlef8idxuKEYNxsDchXhDJ7t9sDqEsJBgAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/course-page-button-a0566dc-2000.webp" srcset="https://www.better-messages.com/assets/img/course-page-button-99b0438-640.webp 640w, https://www.better-messages.com/assets/img/course-page-button-e561ca1-980.webp 980w, https://www.better-messages.com/assets/img/course-page-button-32711f7-1320.webp 1320w, https://www.better-messages.com/assets/img/course-page-button-a9773f1-1660.webp 1660w, https://www.better-messages.com/assets/img/course-page-button-a0566dc-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Message Instructor button on a LearnDash course page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Clicking it opens a private one-to-one conversation with the instructor — no group, no other students.</p>
<p>If your site uses a custom layout, page builder, or block theme that breaks the auto-injected button, place it manually with a shortcode:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_learndash_course_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_learndash_course_button course_id="123"]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_learndash_course_button text="Ask the instructor"]</span><br></span></code></pre></div></div>
<p>The shortcode auto-detects the current course on a course page, and supports per-instance overrides for course, recipient, label, and CSS classes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="course-group-chat--auto-managed-enrollment">Course Group Chat — auto-managed enrollment<a href="https://www.better-messages.com/blog/learndash-student-messaging/#course-group-chat--auto-managed-enrollment" class="hash-link" aria-label="Direct link to Course Group Chat — auto-managed enrollment" title="Direct link to Course Group Chat — auto-managed enrollment" translate="no">#</a></h2>
<p>When <strong>Course Group Chat</strong> is enabled, opening a course in the messenger creates a group conversation that the course author and every enrolled student can join. Students are added on enrollment and removed when their access is revoked.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRnwBAABXRUJQVlA4IHABAABwBwCdASooAB0APjESh0KiIQ1WAgAQAYJZwDAKdbPZ/ZUe8gCfzCU3fTsN9yfoAn78Opcl5y55EYn4s3TloNrLbaySxAD+/3mXKW+XnqZQXVEv/9ti7bF9/zYIf3zN9wxf1KjC0D5oq1OJBzW3+T7/9wm2gsF0A4hkpZUXLYX4/iMxdqO5jWDYwMjkiMwIY4cmVGdj+f4Bm/cndLaAOkfYCI/x6sHQapuqD2a3X3OENaDbFXNkV/+3FtipKrMwPhmQCuxewQzHCnxoniTXMTg09KRm1fRZBFvI4g7kaLUmyvVSnlR1//GBb/z95X4fPzf7/QedI8Yf9txRxY3NvUIcyRl+pD977SCtnEnf/ZD+K1yO0IyN8V0JqV0Oio6do7P08KEBguWmpCSRr4STKrlnpp8UIny7Y3/5cv6DNyuLnYmTzUADAmFEsFVqStRPFjYwjMH3r9GconVVHzmXbr9sa78MJr2XPVEY6t7UmLNAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/course-group-chat-8e940c1-2000.webp" srcset="https://www.better-messages.com/assets/img/course-group-chat-a24a00a-640.webp 640w, https://www.better-messages.com/assets/img/course-group-chat-6b12dab-980.webp 980w, https://www.better-messages.com/assets/img/course-group-chat-cb21af9-1320.webp 1320w, https://www.better-messages.com/assets/img/course-group-chat-d8fc2ca-1660.webp 1660w, https://www.better-messages.com/assets/img/course-group-chat-8e940c1-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="LearnDash Course Group Chat with the course info card header" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The conversation header shows the course thumbnail, title, and instructor name — so students always know which course the discussion belongs to. The card is rendered automatically above the conversation, including on private DMs opened through the <strong>Message Instructor</strong> button.</p>
<p>The enrollment sync is driven by LearnDash's <code>learndash_update_course_access</code> hook, which Better Messages listens to for both adds and removes — including the ones LearnDash performs automatically when a student is enrolled into a course via a LearnDash Group.</p>
<p>To hide the course info card across all LMS conversations, turn off <strong>Better Messages → Settings → Integrations → LMS → Shared Course Settings → Course Info Card</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="learndash-group-chat--cohort-messaging">LearnDash Group Chat — cohort messaging<a href="https://www.better-messages.com/blog/learndash-student-messaging/#learndash-group-chat--cohort-messaging" class="hash-link" aria-label="Direct link to LearnDash Group Chat — cohort messaging" title="Direct link to LearnDash Group Chat — cohort messaging" translate="no">#</a></h2>
<p>LearnDash Groups are cohorts of students sharing access to one or more courses, managed by users with the <strong>Group Leader</strong> role. Better Messages mirrors that organization by creating a dedicated chat for each LearnDash Group.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRlABAABXRUJQVlA4IEQBAABQBwCdASooAB0APi0QhkKhoQ6uZgAMAWJZQDA9uAwUn1/ymIhloq/u6QFfPpFwScj7qJrE998EARMmzJOXT3N/VEgAAP7/j0+AJAiAByX6Ebtraa1PZPP2VpAAZMPxxs2q/jHSjuG2rtnA5yvYC1cc4rH6oHstUgSEH5ly4l+zaO64JEnsFxUwehIQrH/vLuseN9v6E30Y7k0WNdjjJUeDTw+8mfgwsNe6FApdmlwi18+vAZe//iQRAURHiYjhY/48yrpwxDhV3f3Nl59BmbMl0wUH5auhP4+S4iMSpKOwSdGjCHT8WJ3+2yLzJ/DgzUjzIJGglwDICdEw07MaMgoA5eq85NaLsNFMxX9O0umIQob3UP3HHovFhIU8hIwGRCLaI1MDa40Rn3dH0TwA4/NltstHeNO/XejEFSUAdeEUJiCAAAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/learndash-group-chat-4e3bcfc-2000.webp" srcset="https://www.better-messages.com/assets/img/learndash-group-chat-9c7baa8-640.webp 640w, https://www.better-messages.com/assets/img/learndash-group-chat-e38cb15-980.webp 980w, https://www.better-messages.com/assets/img/learndash-group-chat-46c4afb-1320.webp 1320w, https://www.better-messages.com/assets/img/learndash-group-chat-9b91059-1660.webp 1660w, https://www.better-messages.com/assets/img/learndash-group-chat-4e3bcfc-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="LearnDash Group cohort chat with the group info card header" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Group members are kept in sync via LearnDash's <code>ld_added_group_access</code> and <code>ld_removed_group_access</code> hooks, and every Group Leader assigned to the cohort is auto-joined as an instructor of the chat.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="send-message-button-on-the-instructor-role-profile">Send Message button on the Instructor Role profile<a href="https://www.better-messages.com/blog/learndash-student-messaging/#send-message-button-on-the-instructor-role-profile" class="hash-link" aria-label="Direct link to Send Message button on the Instructor Role profile" title="Direct link to Send Message button on the Instructor Role profile" translate="no">#</a></h2>
<p>If you run the paid <strong>LearnDash Instructor Role</strong> add-on, every instructor gets a public profile at <code>/instructor/&lt;username&gt;/</code>. With <strong>Send Message Button on Instructor Profile</strong> enabled, Better Messages adds a <strong>Send Message</strong> button to that profile, right under the instructor's name.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRtwBAABXRUJQVlA4INABAAAQCQCdASooAB0APjEUiEMiISEYCqwAIAMEsgBgfoN+BwAPAr6gHP/6YBvJf7a/sc1ABh9efqTtb9DpZOvSX61NY/Hb4k97nV725TIGWK4vQAAA/v+a4sZfQhoZhEeo23Mh3sKlg//TG/xr/iYnMo2x2NfWqzo/Uq8nN4Eebv3Fx3+3bHf/ls3/TVAxp08nnPqW1hj/xylQhuyc2I6d95fVZ/+lQ+fep//1V4Z8d/S4ddvTK//xub3//6+uo5bP7gXP79p0Hj1/4gQ5XeOv3ncoV2X78eX+Pp/8P4XEAqP/bT0ufzbZq39jN7+5u06h/v1xEP5/4/2XvQdKTI4139Sj/5XcixR/omrzd98B6jWq7za5g9CcRrz6h2eI0jMV7p/jHRST6cln5T/xvol3lmjO5Il4U3/S2CwhDowWIWGzve4xx1f3vIHj+1CCybP8vKv3TN4Ut7KuXA1lQufiESXlSawhGoLpvvjzBvxvwKz79g8v4l/jrdaqfson5YL3Uu/ndFHlhoJShe3s8cDOd1OmFEx0mhBBshlW+Xm6ezjI+OtaVADmvw93zZb883Kzcm734ovSIDqJQ/cKng++RM1PN4nUQaRO1J5t9VXCAAAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/instructor-role-profile-button-345166c-2000.webp" srcset="https://www.better-messages.com/assets/img/instructor-role-profile-button-21a0318-640.webp 640w, https://www.better-messages.com/assets/img/instructor-role-profile-button-713b24b-980.webp 980w, https://www.better-messages.com/assets/img/instructor-role-profile-button-c06dd17-1320.webp 1320w, https://www.better-messages.com/assets/img/instructor-role-profile-button-ed218a8-1660.webp 1660w, https://www.better-messages.com/assets/img/instructor-role-profile-button-345166c-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Send Message button on a LearnDash Instructor Role profile" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Clicking it opens a private DM with that instructor — the same flow as the <strong>Message Instructor</strong> button on a course page, but available anywhere the instructor's profile is linked.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The <strong>LearnDash Instructor Role</strong> add-on is a separate paid LearnDash extension and is not bundled with Better Messages. The toggle is hidden on sites without it.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="courses-widget-for-students">Courses widget for students<a href="https://www.better-messages.com/blog/learndash-student-messaging/#courses-widget-for-students" class="hash-link" aria-label="Direct link to Courses widget for students" title="Direct link to Courses widget for students" translate="no">#</a></h2>
<p>Once Course Group Chat or LearnDash Group Chat is enabled, the user's enrolled courses and LearnDash Group cohorts surface in the dedicated <strong>Courses widget</strong> on the messenger's Mini Widgets bar, Side Panel, and Mobile bar — separate from the social Groups widget so academic chats and friend cohorts do not mix.</p>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRqwBAABXRUJQVlA4IKABAABwCQCdASooAB0APjEUh0KiIQ1VAgAQAYJZQDQJiM94U/XL9M/ZuT23u2+iPRR/03AAGbf/gDYJR8IkZkceiKW9KF0zuNf92Xviym27rtwf9DpvrAAA/v/ehgXzNLjXOmU+nQLMKdrkwwftOBp4Ta/0N/9+QB6S/60//7caETCu4vr8vuk42LFCLvsljpTj+fqfub3gP/m49/6yHXZdmmCzNWge6j/gD3wvz2dn58X4FgnmEfUY91y1Oa382lnffPzVvlmpYR/OsDbqWf/o8//Vz5U23GB7GEJVS6mH0wPujKzMx1tH6u2zu/8Rrj4V+Ru7mOlUQd+GGSyCUkaYU5XmTTmc6d9BCjOmwZ6EYge98M45vPvmOtlCPUMAgG6huUUX+ExDP+Rn1u/7gV14BDt6Uk8fKTKxNJUl4/Odiql1XZ2GHy9HD10YJQLzr8Wep2f0c3PCeh4kgeojmW3f7lsdr6HDvjCNJPHQmuOLvJv8ijjajvGDkXcZ3c3PGeOF9aLa8gDfwrcuzfCUVcvu4GKGthxhY2SvInZX4CfeCUIAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/courses-widget-dcdf9b8-2000.webp" srcset="https://www.better-messages.com/assets/img/courses-widget-0187c30-640.webp 640w, https://www.better-messages.com/assets/img/courses-widget-873544a-980.webp 980w, https://www.better-messages.com/assets/img/courses-widget-f569cb4-1320.webp 1320w, https://www.better-messages.com/assets/img/courses-widget-77cf2c8-1660.webp 1660w, https://www.better-messages.com/assets/img/courses-widget-dcdf9b8-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Courses widget showing LearnDash courses and group cohorts" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The widget icon, role restrictions, and "Hide Tab When Empty" behavior are configurable under <strong>Better Messages → Settings → Widgets → Courses</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="shared-course-settings-apply-to-all-lms-integrations">Shared course settings (apply to all LMS integrations)<a href="https://www.better-messages.com/blog/learndash-student-messaging/#shared-course-settings-apply-to-all-lms-integrations" class="hash-link" aria-label="Direct link to Shared course settings (apply to all LMS integrations)" title="Direct link to Shared course settings (apply to all LMS integrations)" translate="no">#</a></h2>
<p>Three toggles under <strong>Settings → Integrations → LMS → Shared Course Settings</strong> apply to every LMS course conversation across LearnDash, LearnPress, Tutor LMS, MasterStudy LMS, and FluentCommunity Courses:</p>
<ul>
<li class=""><strong>Course Info Card</strong> <em>(on by default)</em> — show the title, image, and instructor name banner above each course conversation, including private DMs opened by <strong>Message Instructor</strong>.</li>
<li class=""><strong>Email Notifications</strong> <em>(on by default)</em> — send the standard new-message email to participants when activity happens in a course chat.</li>
<li class=""><strong>Push Notifications</strong> <em>(off by default, requires WebSocket version)</em> — send browser and mobile push notifications for new course messages.</li>
</ul>
<p>Changing any of these toggles propagates across all four LMS integrations.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-learndash">Installing Better Messages on LearnDash<a href="https://www.better-messages.com/blog/learndash-student-messaging/#installing-better-messages-on-learndash" class="hash-link" aria-label="Direct link to Installing Better Messages on LearnDash" title="Direct link to Installing Better Messages on LearnDash" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → LMS → LearnDash Integration</strong>.</li>
<li class="">Toggle on the features you want: <strong>Message Instructor Button</strong>, <strong>Course Group Chat</strong>, <strong>LearnDash Group Chat</strong>, and (if applicable) <strong>Send Message Button on Instructor Profile</strong>.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-learndash-sites">Free vs WebSocket version for LearnDash sites<a href="https://www.better-messages.com/blog/learndash-student-messaging/#free-vs-websocket-version-for-learndash-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for LearnDash sites" title="Direct link to Free vs WebSocket version for LearnDash sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Message Instructor button on course pages</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Auto-managed Course Group Chat</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>LearnDash Group Chat with auto-joined Group Leaders</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Instructor Role profile Send Message button</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Courses widget on the Mini Widgets bar</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Push notifications for course messages (integration-level real-time push)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside course threads</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls inside course threads (cohort office hours, study sessions)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional per thread)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The WebSocket version turns course threads into something close to a course Discord — instant message delivery, push notifications when an instructor posts an update, and one-click voice / video calls for office hours, all inside the course's own conversation thread.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/learndash-student-messaging/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-students-from-different-courses-end-up-in-the-same-thread">Will students from different courses end up in the same thread?<a href="https://www.better-messages.com/blog/learndash-student-messaging/#will-students-from-different-courses-end-up-in-the-same-thread" class="hash-link" aria-label="Direct link to Will students from different courses end up in the same thread?" title="Direct link to Will students from different courses end up in the same thread?" translate="no">#</a></h3>
<p>No — each course has its own Course Group Chat. Students enrolled in multiple courses see multiple separate threads, one per course.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-students-access-is-revoked">What happens when a student's access is revoked?<a href="https://www.better-messages.com/blog/learndash-student-messaging/#what-happens-when-a-students-access-is-revoked" class="hash-link" aria-label="Direct link to What happens when a student's access is revoked?" title="Direct link to What happens when a student's access is revoked?" translate="no">#</a></h3>
<p>LearnDash fires <code>learndash_update_course_access</code> on revoke, which Better Messages listens to. The student is removed from the Course Group Chat immediately. Their previous messages remain in the thread history.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-learndash-group-leaders-and-assistant-instructors">Does it work with LearnDash group leaders and assistant instructors?<a href="https://www.better-messages.com/blog/learndash-student-messaging/#does-it-work-with-learndash-group-leaders-and-assistant-instructors" class="hash-link" aria-label="Direct link to Does it work with LearnDash group leaders and assistant instructors?" title="Direct link to Does it work with LearnDash group leaders and assistant instructors?" translate="no">#</a></h3>
<p>Yes — Group Leaders are auto-joined as instructors of the LearnDash Group Chat. Assistant instructors on a course can be added to the Course Group Chat manually or through a custom filter.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-students-message-each-other-from-the-course">Can students message each other from the course?<a href="https://www.better-messages.com/blog/learndash-student-messaging/#can-students-message-each-other-from-the-course" class="hash-link" aria-label="Direct link to Can students message each other from the course?" title="Direct link to Can students message each other from the course?" translate="no">#</a></h3>
<p>The Course Group Chat is shared — students can post to each other inside it. For private student-to-student DMs, that depends on whether your site allows the messenger globally. With WordPress role-based access on, you can restrict who can start one-to-one threads.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-alongside-learndash-forums">Does it work alongside LearnDash Forums?<a href="https://www.better-messages.com/blog/learndash-student-messaging/#does-it-work-alongside-learndash-forums" class="hash-link" aria-label="Direct link to Does it work alongside LearnDash Forums?" title="Direct link to Does it work alongside LearnDash Forums?" translate="no">#</a></h3>
<p>Yes — the two surfaces address different intents. Forums are asynchronous and threaded. Better Messages course chats are real-time and one-room-per-course. Many LearnDash sites use both — forums for long-form questions, chats for real-time discussion.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-it-work-with-the-other-lms-plugins-on-the-same-site">Will it work with the other LMS plugins on the same site?<a href="https://www.better-messages.com/blog/learndash-student-messaging/#will-it-work-with-the-other-lms-plugins-on-the-same-site" class="hash-link" aria-label="Direct link to Will it work with the other LMS plugins on the same site?" title="Direct link to Will it work with the other LMS plugins on the same site?" translate="no">#</a></h3>
<p>Yes — Better Messages has matching integrations for LearnPress, Tutor LMS, MasterStudy LMS, and FluentCommunity Courses, and they share the Course Info Card / email / push settings. A site running LearnDash plus another LMS will see Course Group Chats from both, surfaced together in the Courses widget.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/learndash-student-messaging/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/learndash/">LearnDash integration documentation</a> — full setup reference with every option</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/group-conversations/">Group conversations</a> — how group chats work in general</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/mini-widgets/">Mini widgets</a> — including the Courses widget</li>
<li class=""><a class="" href="https://www.better-messages.com/docs/features/realtime-messaging/">Real-time messaging</a> — what changes with the WebSocket version</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>LearnDash</category>
            <category>LMS</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[GeoDirectory Chat: Real-Time Messaging for GeoDirectory Listings]]></title>
            <link>https://www.better-messages.com/blog/geodirectory-listing-chat/</link>
            <guid>https://www.better-messages.com/blog/geodirectory-listing-chat/</guid>
            <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat between GeoDirectory listing owners and visitors — Send Message button on every listing page, with listing info card inside the conversation.]]></description>
            <content:encoded><![CDATA[<p>GeoDirectory is the location-aware directory plugin for WordPress — restaurants, gyms, professionals, real estate, anywhere people search "near me." Each listing has an owner. The visitor's natural next step after finding a listing is to ask a question. Better Messages adds a real-time Send Message button to every GeoDirectory listing page, with the listing's image / title / address / price showing as a context card inside the conversation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-geodirectory">What Better Messages adds to GeoDirectory<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#what-better-messages-adds-to-geodirectory" class="hash-link" aria-label="Direct link to What Better Messages adds to GeoDirectory" title="Direct link to What Better Messages adds to GeoDirectory" translate="no">#</a></h2>
<p>Once Better Messages is installed and the GeoDirectory integration is enabled under <strong>Better Messages → Settings → Integrations → Directories</strong>:</p>
<ul>
<li class=""><strong>Send Message button on the listing page</strong> next to GeoDirectory's author actions.</li>
<li class=""><strong>Listing info card inside the thread</strong> — image, title, address, price.</li>
<li class=""><strong>GeoDirectory author profile links</strong> — clicking the author's name in a conversation opens their GeoDirectory profile, not the default WordPress one.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1771;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/listing-page-678705d-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-page-a5c6ac8-640.webp 640w, https://www.better-messages.com/assets/img/listing-page-a248752-980.webp 980w, https://www.better-messages.com/assets/img/listing-page-eb18a35-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-page-f17824a-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-page-678705d-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Send Message button on a GeoDirectory listing page" width="2000" height="1771" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="listing-info-card-inside-the-conversation">Listing info card inside the conversation<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#listing-info-card-inside-the-conversation" class="hash-link" aria-label="Direct link to Listing info card inside the conversation" title="Direct link to Listing info card inside the conversation" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRuABAABXRUJQVlA4INQBAACwCQCdASooAB0APjEUh0KiIQ1WAgAQAYJZQC4yKtYge+3kAHk6/s78HX7LJIzQu8YFwZ6MUpkQ9JX/SAx0fLD39Ppe7fqk6okB6zcgqmPFeZ2zNu53IAD++Jxfv2t8v77dhUxyZfkis1wFj+eCdanmLQ1l/7TsOPeRJrh9Zi7IRAFWVdHboOX3ypVdPtJfPFs4ucCYxR8nb1II9unMmcNb9HZbNZVTI+uoxXA1OH8XXS+4+hOIMaX+jIjjx8dXfyfF/QAgQAKVuDaGsTGEt9a3as/Av/qnRzYZGAUEC/8La+gshxXQZP/YGic8AoKFq7xwf5szvZW2ddbbenUDqBJ+LLvwm2ERlxSLQiIGCW5YcL842B//HT1I9m8U5LVuZ3f5ci++XaKjcXio+mIk/5E5JfdI+Az8Tp5O0wmcmb3ofyd/u0RCL0CYY7JfY5V8y8VmxYRJ3VPzKrn9pJ8Tk8kOrcwOf3nk5uFMcbcKsu6mXD6bnq+/ffz3+Z3ISvbk3INEusRCiaMkjuyKHyMGBhQ7ZtTqmuss3Zpnf9Qm//YUlkkh9ftA/6zr+EtmKvHH7X1+mLjhwO5mrWD+AFBys88UPq83yyiHgfXz/1UdNHH/G69WQAA=" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/thread-info-70250b0-2000.webp" srcset="https://www.better-messages.com/assets/img/thread-info-5865e5a-640.webp 640w, https://www.better-messages.com/assets/img/thread-info-453899b-980.webp 980w, https://www.better-messages.com/assets/img/thread-info-c974468-1320.webp 1320w, https://www.better-messages.com/assets/img/thread-info-f96e91a-1660.webp 1660w, https://www.better-messages.com/assets/img/thread-info-70250b0-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Conversation with the GeoDirectory listing info card showing image, title, address" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The listing owner sees exactly which listing the visitor is asking about — no "which listing was this?" question. The card is rendered automatically above the conversation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-geodirectory-site">Installing Better Messages on a GeoDirectory site<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#installing-better-messages-on-a-geodirectory-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a GeoDirectory site" title="Direct link to Installing Better Messages on a GeoDirectory site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Make sure GeoDirectory is active.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → Directories → GeoDirectory Integration</strong>.</li>
<li class="">Toggle <strong>Enable GeoDirectory Integration</strong>.</li>
</ol>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1082;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRsQAAABXRUJQVlA4ILgAAABwBQCdASooABYAPjEYikOiIaEStAAgAwS0gGW6CgAI23D/AJpH41F/9nuaAXzMSf3mJwhAAP7/bHlIn1E0ww4FH+JFPzr59k9WfAFNc72bWotEL2/1YKfA8XlgWwpy3p9snsXWGRe90NjbnILfFy1ZQQ842z1/Lgz2sENgmk/+Axeof3owvgMbE1S6JGnKRi9G8fDEUQiAi1b5Q11a+AFrCsQ71EzYRP7PnWl1B82CpvCE9QZ6CLAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/settings-21974f5-2000.webp" srcset="https://www.better-messages.com/assets/img/settings-f15f3e5-640.webp 640w, https://www.better-messages.com/assets/img/settings-f1a7be8-980.webp 980w, https://www.better-messages.com/assets/img/settings-2348481-1320.webp 1320w, https://www.better-messages.com/assets/img/settings-8f36be5-1660.webp 1660w, https://www.better-messages.com/assets/img/settings-21974f5-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="GeoDirectory integration settings" width="2000" height="1082" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>For custom layouts or theme overrides, place the button manually:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_geodirectory_listing_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_geodirectory_listing_button listing_id="123"]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_geodirectory_listing_button text="Contact owner"]</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-geodirectory-sites">Free vs WebSocket version for GeoDirectory sites<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#free-vs-websocket-version-for-geodirectory-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for GeoDirectory sites" title="Direct link to Free vs WebSocket version for GeoDirectory sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Send Message button on listing pages</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Listing info card inside the conversation</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>GeoDirectory author profile links</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mini-widget popup chat</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (e.g. listing owner + assistants)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For GeoDirectory sites running paid listings, the WebSocket version's web push notifications close the response-time gap that paid-listing customers complain about — owners see and reply within minutes even when their dashboard tab is closed.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-geodirectorys-paid-add-ons">Does it work with GeoDirectory's paid add-ons?<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#does-it-work-with-geodirectorys-paid-add-ons" class="hash-link" aria-label="Direct link to Does it work with GeoDirectory's paid add-ons?" title="Direct link to Does it work with GeoDirectory's paid add-ons?" translate="no">#</a></h3>
<p>Yes — the integration uses GeoDirectory's core listing hooks, which paid add-ons extend rather than replace.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-visitors-message-without-an-account">Can visitors message without an account?<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#can-visitors-message-without-an-account" class="hash-link" aria-label="Direct link to Can visitors message without an account?" title="Direct link to Can visitors message without an account?" translate="no">#</a></h3>
<p>Optional. With <strong>Guest Chat</strong> enabled in <strong>Better Messages → Settings → General → Guest Chat</strong>, unregistered visitors can start a thread from a listing.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-listing-is-unpublished">What happens when a listing is unpublished?<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#what-happens-when-a-listing-is-unpublished" class="hash-link" aria-label="Direct link to What happens when a listing is unpublished?" title="Direct link to What happens when a listing is unpublished?" translate="no">#</a></h3>
<p>The Send Message button is hidden when the listing is not published, and existing threads remain readable on both sides.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-it-work-with-custom-geodirectory-theme-layouts">Will it work with custom GeoDirectory theme layouts?<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#will-it-work-with-custom-geodirectory-theme-layouts" class="hash-link" aria-label="Direct link to Will it work with custom GeoDirectory theme layouts?" title="Direct link to Will it work with custom GeoDirectory theme layouts?" translate="no">#</a></h3>
<p>The button auto-renders on standard layouts. For custom themes, the shortcode <code>[better_messages_geodirectory_listing_button]</code> works inside any page builder.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-the-listing-owner-get-notified-by-email">Does the listing owner get notified by email?<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#does-the-listing-owner-get-notified-by-email" class="hash-link" aria-label="Direct link to Does the listing owner get notified by email?" title="Direct link to Does the listing owner get notified by email?" translate="no">#</a></h3>
<p>Yes — Better Messages' standard email-notification system applies. Owners can adjust their per-thread email preferences in their account settings.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/geodirectory-listing-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/geodirectory/">GeoDirectory integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/directorist-listing-chat/">Directorist chat</a> — for Directorist-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/hivepress-listing-chat/">HivePress listing chat</a> — for HivePress-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/classified-listing-chat/">Classified Listing chat</a> — for Classified Listing (RTCL) sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/motors-car-dealer-chat/">Motors car dealer chat</a> — for automotive listing sites</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>GeoDirectory</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[Directorist Chat: Real-Time Messaging for Directory Listings]]></title>
            <link>https://www.better-messages.com/blog/directorist-listing-chat/</link>
            <guid>https://www.better-messages.com/blog/directorist-listing-chat/</guid>
            <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat between Directorist listing owners and visitors — Send Message button on the listing, archive cards, author profile, plus a Messages tab inside the Directorist user dashboard.]]></description>
            <content:encoded><![CDATA[<p>Directorist turns WordPress into a directory site — a YellowPages, a restaurant guide, a coworking-space finder, a marketplace of services. Each listing has an author. The obvious bridge between a visitor and that author is a one-click Send Message button. Better Messages adds a real-time chat layer that hooks into every Directorist surface: the listing page, archive cards, the author profile, and a Messages tab inside the Directorist user dashboard.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-directorist">What Better Messages adds to Directorist<a href="https://www.better-messages.com/blog/directorist-listing-chat/#what-better-messages-adds-to-directorist" class="hash-link" aria-label="Direct link to What Better Messages adds to Directorist" title="Direct link to What Better Messages adds to Directorist" translate="no">#</a></h2>
<p>Once Better Messages is installed and the Directorist integration is enabled under <strong>Better Messages → Settings → Integrations → Directories</strong>:</p>
<ul>
<li class=""><strong>Send Message button on the listing page</strong> inside the Author Info card.</li>
<li class=""><strong>Send Message button on archive listing cards</strong> in the grid and list views (opt-in).</li>
<li class=""><strong>Send Message button on the author profile page</strong>.</li>
<li class=""><strong>Messages tab inside the Directorist user dashboard</strong> next to My Listings, My Profile, Favorite Listings.</li>
<li class=""><strong>Listing info card</strong> — conversations started from a listing show the listing's image, title, price, and address inside the thread.</li>
<li class=""><strong>Author profile links</strong> — clicking the author's name in a conversation opens the Directorist author profile, not the WordPress one.</li>
</ul>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/listing-page-5138343-2000.webp" srcset="https://www.better-messages.com/assets/img/listing-page-45b1740-640.webp 640w, https://www.better-messages.com/assets/img/listing-page-0e0f16c-980.webp 980w, https://www.better-messages.com/assets/img/listing-page-86812d0-1320.webp 1320w, https://www.better-messages.com/assets/img/listing-page-f27978e-1660.webp 1660w, https://www.better-messages.com/assets/img/listing-page-5138343-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Send Message button inside the Directorist listing Author Info card" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-tab-inside-the-user-dashboard">Messages tab inside the user dashboard<a href="https://www.better-messages.com/blog/directorist-listing-chat/#messages-tab-inside-the-user-dashboard" class="hash-link" aria-label="Direct link to Messages tab inside the user dashboard" title="Direct link to Messages tab inside the user dashboard" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRogBAABXRUJQVlA4IHwBAABQBwCdASooAB0APjEUiEKiISEYDVQAIAMEoAHs5IgHIBrSXSlOJKUUlCYSHnPNpi+sFz/Wka9hjREGpwB9UxL02J7gAP7/7ua1Lo0FdRIXxoBoEbahNsiX1MpSxdwacHHN7/wQNf//oSao+1L+f//yr+VyxFCrYYxDPh8Cc3PDSgSbVk7fNb/8QX7syKXur0KvyDCneiJ7CnfcL58LvOsSyqXxUah4H7ladQO+PDtXStpPLaKPAVfyP5RuU7fnXPr02Zhu0M8rnambWTGjbGsCTl3/s7/fJBckH/BG+IGg+SZgOyI2wMUWL/4Xef+jYoGr60IiMQeTO6pxBY0F9/jHwRcDjUMsUij1nYF9c/zmd+tJlzQwBIwDmLbi1n93K0Tok+474rL1BKVbPaQt8WcxgbqkiSyTHJ4EbSP/rQQYASwUuAx0HumKtkjaEmAi88ocDZ8Dik4rbpSSLsTUot8xLq2sYU1UsUWMZhQLKzo2AUbsjW/5RonI+ZQAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/dashboard-tab-a232910-2000.webp" srcset="https://www.better-messages.com/assets/img/dashboard-tab-d9a8610-640.webp 640w, https://www.better-messages.com/assets/img/dashboard-tab-bd1cf41-980.webp 980w, https://www.better-messages.com/assets/img/dashboard-tab-4653268-1320.webp 1320w, https://www.better-messages.com/assets/img/dashboard-tab-3faaf5c-1660.webp 1660w, https://www.better-messages.com/assets/img/dashboard-tab-a232910-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Messages tab inside the Directorist user dashboard" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Visitors and listing owners read and reply to conversations without leaving the Directorist dashboard. Combined with <strong>Messages Location → Show in Directorist Dashboard</strong>, every internal Messages link routes to this tab.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="listing-info-card-inside-the-conversation">Listing info card inside the conversation<a href="https://www.better-messages.com/blog/directorist-listing-chat/#listing-info-card-inside-the-conversation" class="hash-link" aria-label="Direct link to Listing info card inside the conversation" title="Direct link to Listing info card inside the conversation" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRjABAABXRUJQVlA4ICQBAABQBgCdASooAB0APjESh0KiIQwGq1QQAYJZwAdoB5KpNBeMWIfDSSdU9ijf853rYCjiou75BP7s1hQswAD+/6+o/8SsLGlK5v4nx8n9y54CghqfCGVtN9raE7f1L0p/Ph//GnAfUf/w1++6isR+v/qJ9Y7rAqOv4/3laaTajyXFHWoALCS19afRtDf/5O2pntwPn5CeJwDumSS49Yq77LJMZNVRDO8MW2D1L82Cbw3HXyXHsXwZ6T8N5WR/w5/YHeuxFtlGC/xGYHUeNwiZJCJHdjIjzwPAJCP7gKdhLXCT78k7/TuZhPymNyJort6X+G6NGx17OD+uhxNbgqjwtq3igvQpZiPpmnj//IpOfYP54gjsKJJzaE24BP0k6LWlK6L0PAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/thread-info-91bef61-2000.webp" srcset="https://www.better-messages.com/assets/img/thread-info-8dd08b0-640.webp 640w, https://www.better-messages.com/assets/img/thread-info-4f2a49a-980.webp 980w, https://www.better-messages.com/assets/img/thread-info-708ddd5-1320.webp 1320w, https://www.better-messages.com/assets/img/thread-info-ad017ee-1660.webp 1660w, https://www.better-messages.com/assets/img/thread-info-91bef61-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Conversation with the Directorist listing info card showing image, title, price" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>The card removes the "what listing is this about" question — the owner sees exactly which listing the visitor is asking about, with the image and price visible at the top of the thread.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-directorist-site">Installing Better Messages on a Directorist site<a href="https://www.better-messages.com/blog/directorist-listing-chat/#installing-better-messages-on-a-directorist-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a Directorist site" title="Direct link to Installing Better Messages on a Directorist site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Make sure Directorist is active.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → Directories → Directorist Integration</strong>.</li>
<li class="">Toggle <strong>Enable Directorist Integration</strong> and the individual placement toggles you want.</li>
</ol>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1082;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRgYBAABXRUJQVlA4IPoAAAAQBgCdASooABYAPjEYikOiIaEStAAgAwS0gGYUCcFfQEJe40rbPqpudqOSdng5bJK0KvTqObcReAAA/v9seUdCqXZS80X5RGgRMnsxYcMPQXUqWrGCay6zh4yjMfJB0VRvaudz5YwJiV49OW+CE+A1FWFTVaGA7loh1x3uXgQkQ9qatNVeq8naz13A4mQ492fIKh2hY2kp38y3n3/8V5zRkSxamJqlo6cfVLPv4llXKdgh4T6vslJJ5OpBSl71Mv5YABqIAy/7I47pvDArePbc474Af81PzmI1asRyFbLNC2cYKxq0HFvUAuxJqK3hx5kwCgxTRrfkgAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/settings-2d66024-2000.webp" srcset="https://www.better-messages.com/assets/img/settings-43cf4bc-640.webp 640w, https://www.better-messages.com/assets/img/settings-f5230db-980.webp 980w, https://www.better-messages.com/assets/img/settings-f258cef-1320.webp 1320w, https://www.better-messages.com/assets/img/settings-3eba41d-1660.webp 1660w, https://www.better-messages.com/assets/img/settings-2d66024-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Directorist integration settings" width="2000" height="1082" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>For custom layouts, manual placement is supported via shortcodes:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_directorist_listing_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_directorist_author_button]</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-directorist-sites">Free vs WebSocket version for Directorist sites<a href="https://www.better-messages.com/blog/directorist-listing-chat/#free-vs-websocket-version-for-directorist-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for Directorist sites" title="Direct link to Free vs WebSocket version for Directorist sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Send Message buttons on listing, archive cards, author profile</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Messages tab inside the Directorist dashboard</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Listing info card inside the conversation</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Author profile links from Directorist</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>Mini-widget popup chat</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>One-on-one voice and video calls inside the thread</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (e.g. multi-owner business team)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For Directorist sites monetizing paid listings, the WebSocket version's web push notifications mean listing owners see and reply to inquiries within minutes, not hours — the engagement signal that paid-listing customers expect.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/directorist-listing-chat/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-directorist-pro-extensions">Does it work with Directorist Pro extensions?<a href="https://www.better-messages.com/blog/directorist-listing-chat/#does-it-work-with-directorist-pro-extensions" class="hash-link" aria-label="Direct link to Does it work with Directorist Pro extensions?" title="Direct link to Does it work with Directorist Pro extensions?" translate="no">#</a></h3>
<p>Yes — the integration listens to Directorist's core listing and author hooks, which Pro extensions extend rather than replace. Booking, claim-listing, and review extensions all coexist.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-visitors-message-without-registering">Can visitors message without registering?<a href="https://www.better-messages.com/blog/directorist-listing-chat/#can-visitors-message-without-registering" class="hash-link" aria-label="Direct link to Can visitors message without registering?" title="Direct link to Can visitors message without registering?" translate="no">#</a></h3>
<p>Optional. With <strong>Guest Chat</strong> enabled, unregistered visitors can start a thread from a listing by typing a name and email. The thread is preserved if they later register.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-have-a-send-message-button-on-archive-cards-but-not-the-listing-page">Can I have a Send Message button on archive cards but not the listing page?<a href="https://www.better-messages.com/blog/directorist-listing-chat/#can-i-have-a-send-message-button-on-archive-cards-but-not-the-listing-page" class="hash-link" aria-label="Direct link to Can I have a Send Message button on archive cards but not the listing page?" title="Direct link to Can I have a Send Message button on archive cards but not the listing page?" translate="no">#</a></h3>
<p>Yes — each placement has its own toggle in the integration settings. Enable archive cards, disable the listing page button (or vice versa).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-support-multi-directory-sites">Does it support multi-directory sites?<a href="https://www.better-messages.com/blog/directorist-listing-chat/#does-it-support-multi-directory-sites" class="hash-link" aria-label="Direct link to Does it support multi-directory sites?" title="Direct link to Does it support multi-directory sites?" translate="no">#</a></h3>
<p>Yes — Better Messages does not care which Directorist directory a listing belongs to. The button appears for every listing regardless of directory.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-it-work-with-custom-directorist-templates">Will it work with custom Directorist templates?<a href="https://www.better-messages.com/blog/directorist-listing-chat/#will-it-work-with-custom-directorist-templates" class="hash-link" aria-label="Direct link to Will it work with custom Directorist templates?" title="Direct link to Will it work with custom Directorist templates?" translate="no">#</a></h3>
<p>Most Directorist themes use the standard template hooks. The integration auto-renders the buttons. For heavily customized themes, place the buttons manually via shortcode (each placement has a matching shortcode).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/directorist-listing-chat/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/directorist/">Directorist integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/geodirectory-listing-chat/">GeoDirectory chat</a> — for GeoDirectory-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/hivepress-listing-chat/">HivePress listing chat</a> — for HivePress-driven sites</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/classified-listing-chat/">Classified Listing chat</a> — for Classified Listing (RTCL) sites</li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>Directorist</category>
            <category>Guides</category>
        </item>
        <item>
            <title><![CDATA[MasterStudy LMS Student & Instructor Messaging Plugin]]></title>
            <link>https://www.better-messages.com/blog/masterstudy-lms-student-messaging/</link>
            <guid>https://www.better-messages.com/blog/masterstudy-lms-student-messaging/</guid>
            <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Add real-time chat to MasterStudy LMS — Message Instructor button on courses, embedded Messages tab in the MasterStudy account, course group chats. Optionally replace the native MasterStudy chat.]]></description>
            <content:encoded><![CDATA[<p>Better Messages adds a modern real-time messenger to MasterStudy LMS sites. The integration takes over the MasterStudy account Messages tab, adds a Message Instructor button on every course, auto-manages Course Group Chats, and adds Send Message buttons on both the public instructor and student profiles. MasterStudy's built-in chat can be hidden with one toggle so members see only Better Messages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-better-messages-adds-to-masterstudy-lms">What Better Messages adds to MasterStudy LMS<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#what-better-messages-adds-to-masterstudy-lms" class="hash-link" aria-label="Direct link to What Better Messages adds to MasterStudy LMS" title="Direct link to What Better Messages adds to MasterStudy LMS" translate="no">#</a></h2>
<p>Once MasterStudy LMS is detected and the integration is enabled under <strong>Better Messages → Settings → Integrations → LMS</strong>:</p>
<ul>
<li class=""><strong>Message Instructor button</strong> on every MasterStudy course page next to the enrol/buy button.</li>
<li class=""><strong>Send Message button</strong> on the MasterStudy public instructor profile and the public student profile.</li>
<li class=""><strong>Course Group Chat</strong> — auto-created per course, with the instructor and every enrolled student auto-joined.</li>
<li class=""><strong>Messages tab</strong> inside the MasterStudy LMS account sidebar (<code>/account/messages/</code>) embedding the full Better Messages inbox.</li>
<li class=""><strong>Disable MasterStudy Messages</strong> toggle — hide the native MasterStudy Messages tab and the native <strong>Send message</strong> buttons.</li>
<li class=""><strong>Use the MasterStudy account as the primary messages location</strong> — every internal Messages link routes here.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="message-instructor-button-on-course-pages">Message Instructor button on course pages<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#message-instructor-button-on-course-pages" class="hash-link" aria-label="Direct link to Message Instructor button on course pages" title="Direct link to Message Instructor button on course pages" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="https://www.better-messages.com/assets/img/course-page-button-76bbf39-2000.webp" srcset="https://www.better-messages.com/assets/img/course-page-button-687391d-640.webp 640w, https://www.better-messages.com/assets/img/course-page-button-14f6b7f-980.webp 980w, https://www.better-messages.com/assets/img/course-page-button-c139f54-1320.webp 1320w, https://www.better-messages.com/assets/img/course-page-button-9706eb7-1660.webp 1660w, https://www.better-messages.com/assets/img/course-page-button-76bbf39-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="eager" decoding="async" alt="Message Instructor button on a MasterStudy LMS course page" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:1;transition:none"></span>
<p>Sits next to MasterStudy's enrol/buy button so the student can ask before they enrol. Hidden for the instructor on their own course. For custom layouts, use the shortcode:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_masterstudy_course_button]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_masterstudy_course_button course_id="123"]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">[better_messages_masterstudy_course_button text="Ask the instructor"]</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="course-group-chat--auto-managed-enrollment">Course Group Chat — auto-managed enrollment<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#course-group-chat--auto-managed-enrollment" class="hash-link" aria-label="Direct link to Course Group Chat — auto-managed enrollment" title="Direct link to Course Group Chat — auto-managed enrollment" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRl4BAABXRUJQVlA4IFIBAAAwBwCdASooAB0APjEUiEKiISEYDVQAIAMEs4BibTYDrzle/859TdiLbIQ8m7eOeXB9mRvHCeXRiKu3zmWFEiv/EAAA/v+OjemXY7PGK2OGNg/J9RzNvymQILRaWx1Slh9d0EGmt11QiOOofhQUTtMmbpy2pjVE4vwygBMYe9Ht/P8AzfuTuLaD9DvGwpvNgLKKOMX+MEDKA9+M7IeMZ0fxoKOzSJ8ZjyFPszkiLzyx8vFmL+Yk2A/JRratyNZh/jBXP+fd/QX3Fb/gtwhObMVrovOTm9PMNkIps3kAkp2Nfc38RUsg2GTUNWdL9Xtotfe/+jqCkUS8vzUR3Vi5prnau9G3ooTiJULX3Rf77+El731q3QpS7qqPn0juNPO1Acf4lPuAZttV4wWw8+0psBvpLflkN9Y98brwBwASs6fuPHmFS0H+BMjfrwFUyavWgAAAAA==" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/group-thread-4f0a777-2000.webp" srcset="https://www.better-messages.com/assets/img/group-thread-ec79207-640.webp 640w, https://www.better-messages.com/assets/img/group-thread-67547a1-980.webp 980w, https://www.better-messages.com/assets/img/group-thread-19df445-1320.webp 1320w, https://www.better-messages.com/assets/img/group-thread-6ab14ca-1660.webp 1660w, https://www.better-messages.com/assets/img/group-thread-4f0a777-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="MasterStudy Course Group Chat with the course info card header" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>When <strong>Course Group Chat</strong> is enabled, opening a course creates a group conversation. Students are added on enrollment, removed when their enrollment is deleted. The course info card (thumbnail, title, instructor) appears above the conversation and on private DMs opened from the <strong>Message Instructor</strong> button.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="messages-tab-in-the-masterstudy-account">Messages tab in the MasterStudy account<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#messages-tab-in-the-masterstudy-account" class="hash-link" aria-label="Direct link to Messages tab in the MasterStudy account" title="Direct link to Messages tab in the MasterStudy account" translate="no">#</a></h2>
<span class="bm-img" style="display:block;position:relative;width:100%;max-width:2000px;aspect-ratio:2000 / 1429;background-color:#f0f0f1;border-radius:8px;overflow:hidden;margin-bottom:24px"><img src="data:image/webp;base64,UklGRngBAABXRUJQVlA4IGwBAABwBwCdASooAB0APjEUh0KiIQwFV1QQAYJaQDE2dyn3lsvRXtkBgJV6G5tGtH0tzDln2b3XDCoBMsZlx7jvU9cjoYQ0LAD+/5rjMEoWMcldipU+3ZA1Nhq8D7qVt/2q1ttLq1sVEagiAm8oVauflu6UlEQAtAL7I8b+K03RJzEXPws2qsobj9VXH0rWJZEZn5RHe+H7K4i/l9TxTDrVWsRBC20g1DRphcGZuntDUuIP7dpl5XvgpsOjsh2Z+ygBnuvCkeFdiYc+xHu/66LUPyna+sMt+0KjlDmLSvyoNWA7cvmhq4dz7XbBTLOBExDki7xwruuUEq1oQjEvfTlskrjuuRJl1xU61DyPMMbBdfC9COZOP9r7JshmlZ2RG/x/uwqsqswtD9/QpgwP8z0XrNShSrjK6kr55ZrY/qfk+GTf4nazWix4HSg3/ABkISx+PCmxQgrI6RMZ3rWlLb2uAyDoUXranGTEvji4AAAA" alt="" aria-hidden="true" style="position:absolute;inset:0;width:100%;height:100%;filter:blur(20px);transform:scale(1.1);opacity:1;transition:opacity 0.4s ease-in-out;pointer-events:none"><img src="https://www.better-messages.com/assets/img/account-messages-tab-d0ce06e-2000.webp" srcset="https://www.better-messages.com/assets/img/account-messages-tab-8ab8bb8-640.webp 640w, https://www.better-messages.com/assets/img/account-messages-tab-a4f4aba-980.webp 980w, https://www.better-messages.com/assets/img/account-messages-tab-5490892-1320.webp 1320w, https://www.better-messages.com/assets/img/account-messages-tab-9df8b40-1660.webp 1660w, https://www.better-messages.com/assets/img/account-messages-tab-d0ce06e-2000.webp 2000w" sizes="(max-width: 800px) 100vw, 800px" loading="lazy" decoding="async" alt="Better Messages tab inside the MasterStudy LMS account" width="2000" height="1429" style="width:100%;height:100%;display:block;object-fit:cover;position:relative;opacity:0;transition:opacity 0.4s ease-in-out"></span>
<p>Embeds the full Better Messages inbox inside the MasterStudy account sidebar. Combined with <strong>Messages Location → Show in MasterStudy LMS Account</strong>, every internal Messages link routes here.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="replacing-the-native-masterstudy-messages">Replacing the native MasterStudy Messages<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#replacing-the-native-masterstudy-messages" class="hash-link" aria-label="Direct link to Replacing the native MasterStudy Messages" title="Direct link to Replacing the native MasterStudy Messages" translate="no">#</a></h2>
<p>With <strong>Disable MasterStudy Messages</strong> toggled on, MasterStudy's built-in <strong>Messages</strong> entry in the account sidebar and the <strong>Send message</strong> buttons on the public instructor and student profiles are hidden so visitors only see Better Messages. The native page is still reachable at <code>/account/chat/</code> for anyone who has it bookmarked, but nothing in the UI links to it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="shared-lms-settings">Shared LMS settings<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#shared-lms-settings" class="hash-link" aria-label="Direct link to Shared LMS settings" title="Direct link to Shared LMS settings" translate="no">#</a></h2>
<p>Three toggles under <strong>Better Messages → Settings → Integrations → LMS → Shared Course Settings</strong> apply across every LMS integration: <strong>Course Info Card</strong>, <strong>Email Notifications</strong>, and <strong>Push Notifications</strong> (WebSocket version). Changing any propagates across LearnDash, LearnPress, Tutor LMS, MasterStudy LMS, and FluentCommunity Courses.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-better-messages-on-a-masterstudy-lms-site">Installing Better Messages on a MasterStudy LMS site<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#installing-better-messages-on-a-masterstudy-lms-site" class="hash-link" aria-label="Direct link to Installing Better Messages on a MasterStudy LMS site" title="Direct link to Installing Better Messages on a MasterStudy LMS site" translate="no">#</a></h2>
<ol>
<li class="">Install <strong><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class="">Better Messages from WordPress.org</a></strong> and activate it.</li>
<li class="">Open <strong>WP Admin → Better Messages → Settings → Integrations → LMS → MasterStudy LMS Integration</strong>.</li>
<li class="">Toggle on the features you want: <strong>Message Instructor Button</strong>, <strong>Course Group Chat</strong>, <strong>Messages Account Tab</strong>, <strong>Send Message Button on Instructor Profile</strong>, <strong>Send Message Button on Student Profile</strong>, <strong>Disable MasterStudy Messages</strong>.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-vs-websocket-version-for-masterstudy-lms-sites">Free vs WebSocket version for MasterStudy LMS sites<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#free-vs-websocket-version-for-masterstudy-lms-sites" class="hash-link" aria-label="Direct link to Free vs WebSocket version for MasterStudy LMS sites" title="Direct link to Free vs WebSocket version for MasterStudy LMS sites" translate="no">#</a></h2>
<table><thead><tr><th>Feature</th><th style="text-align:center">Free version</th><th style="text-align:center">WebSocket version</th></tr></thead><tbody><tr><td>Message Instructor button on course page</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Auto-managed Course Group Chat</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Messages Account Tab inside MasterStudy</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Send Message buttons on instructor / student profiles</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Disable native MasterStudy Messages</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Courses widget on the Mini Widgets bar</td><td style="text-align:center">yes</td><td style="text-align:center">yes</td></tr><tr><td>Real-time delivery</td><td style="text-align:center">polling</td><td style="text-align:center">instant</td></tr><tr><td>One-on-one voice and video calls inside course threads</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Group voice and video calls (cohort office hours, study sessions)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Web push notifications for new messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Push notifications for course messages</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>Read receipts</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr><tr><td>End-to-end encryption (optional per thread)</td><td style="text-align:center">—</td><td style="text-align:center">yes</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For MasterStudy LMS academies running paid cohorts, the WebSocket version's group calls turn the course chat into a live office-hours room — students drop in for a question, the instructor jumps on a group video call, then drops back to async chat. The MasterStudy account becomes a full learning hub instead of a course library plus a separate Zoom link.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="frequently-asked-questions">Frequently asked questions<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">#</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-i-keep-masterstudy-messages-and-better-messages-side-by-side">Can I keep MasterStudy Messages and Better Messages side by side?<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#can-i-keep-masterstudy-messages-and-better-messages-side-by-side" class="hash-link" aria-label="Direct link to Can I keep MasterStudy Messages and Better Messages side by side?" title="Direct link to Can I keep MasterStudy Messages and Better Messages side by side?" translate="no">#</a></h3>
<p>Yes — the <strong>Disable MasterStudy Messages</strong> toggle is optional. Keep it off to show both, on to show only Better Messages. Most sites pick one to avoid confusing students with two Messages tabs.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-when-a-students-masterstudy-enrollment-is-cancelled">What happens when a student's MasterStudy enrollment is cancelled?<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#what-happens-when-a-students-masterstudy-enrollment-is-cancelled" class="hash-link" aria-label="Direct link to What happens when a student's MasterStudy enrollment is cancelled?" title="Direct link to What happens when a student's MasterStudy enrollment is cancelled?" translate="no">#</a></h3>
<p>MasterStudy fires its standard enrollment hooks. Better Messages listens and removes the student from the Course Group Chat. Their previous messages stay in history.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-with-masterstudy-pro">Does it work with MasterStudy Pro?<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#does-it-work-with-masterstudy-pro" class="hash-link" aria-label="Direct link to Does it work with MasterStudy Pro?" title="Direct link to Does it work with MasterStudy Pro?" translate="no">#</a></h3>
<p>Yes — Better Messages reads MasterStudy's core hooks, which Pro features extend rather than replace. WooCommerce-based enrollments, subscriptions, and certificates are all compatible.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="can-the-native-masterstudy-chat-history-be-migrated">Can the native MasterStudy chat history be migrated?<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#can-the-native-masterstudy-chat-history-be-migrated" class="hash-link" aria-label="Direct link to Can the native MasterStudy chat history be migrated?" title="Direct link to Can the native MasterStudy chat history be migrated?" translate="no">#</a></h3>
<p>Not automatically — the two messengers store data differently. For sites with active history in the native chat, run both side by side for a transition period, then enable <strong>Disable MasterStudy Messages</strong> when students have moved over.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="does-it-work-alongside-other-lms-plugins">Does it work alongside other LMS plugins?<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#does-it-work-alongside-other-lms-plugins" class="hash-link" aria-label="Direct link to Does it work alongside other LMS plugins?" title="Direct link to Does it work alongside other LMS plugins?" translate="no">#</a></h3>
<p>Yes — sites running MasterStudy alongside LearnDash, LearnPress, or Tutor LMS see all course chats together in the Courses widget. Each integration loads independently.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-also">See also<a href="https://www.better-messages.com/blog/masterstudy-lms-student-messaging/#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">#</a></h2>
<ul>
<li class=""><a class="" href="https://www.better-messages.com/docs/integrations/masterstudy-lms/">MasterStudy LMS integration documentation</a> — full setup reference</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/wordpress-lms-chat-plugin/">WordPress LMS chat plugin</a> — comparing every LMS integration</li>
<li class=""><a class="" href="https://www.better-messages.com/blog/learndash-student-messaging/">LearnDash student messaging plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/learnpress-student-messaging/">LearnPress student messaging plugin</a></li>
<li class=""><a class="" href="https://www.better-messages.com/blog/tutor-lms-student-messaging/">Tutor LMS student messaging plugin</a></li>
</ul>
<p><a href="https://wordpress.org/plugins/bp-better-messages/" target="_blank" rel="noopener noreferrer" class=""><strong>Install Better Messages from WordPress.org →</strong></a></p>]]></content:encoded>
            <author>support@better-messages.com (Andrij Tkachenko)</author>
            <category>MasterStudy LMS</category>
            <category>LMS</category>
            <category>Guides</category>
        </item>
    </channel>
</rss>