=== Better Messages - Chat Rooms, Group Chat, Private Messages & AI Chat Bots === Contributors: wordplus Tags: BuddyPress, chat room, video chat, group chat, private message Requires at least: 5.9.0 Tested up to: 7.2 Requires PHP: 7.4 Stable tag: 3.2.2 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html Real-time messaging and chat rooms for WordPress ecosystem: private conversations, public and private chat rooms, video & audio calls, and more. == Description == **Better Messages** is the most feature-rich **realtime private messaging system for WordPress**, with native integrations for **BuddyPress, BuddyBoss Platform, Ultimate Member, PeepSo** and any other WordPress powered websites. Transform your WordPress site into a powerful communication platform with **private messaging**, **chat rooms**, **video and audio calls**, **group video calls with recording**, **AI chat bots**, and **native mobile apps**. Whether you're building a private or public community, social network, intranet, chat-rooms site, marketplace, membership site, dating platform, or creator economy site – Better Messages provides enterprise-level messaging features with an easy-to-use interface. **Try Better Messages:** * **[Live Demo](https://www.wordplus.org/demo.php)** — fully functional demo site * **[Documentation & Knowledge Base](https://www.better-messages.com/docs/getting-started/about/)** — setup guides, features, FAQ * **[All Integrations](https://www.better-messages.com/docs/category/integrations/)** — every supported plugin and theme * **[Pricing](https://www.better-messages.com/docs/pricing/)** — free vs WebSocket version comparison * **[Blog & Tutorials](https://www.better-messages.com/blog/)** — guides, walkthroughs, integration deep-dives **For developers:** * **[REST API Reference](https://www.better-messages.com/rest-api/)** — every endpoint and parameter * **[PHP Hooks](https://www.better-messages.com/hooks/php-actions/)** — actions, filters, helper functions * **[JavaScript Hooks](https://www.better-messages.com/hooks/js-actions/)** — frontend events and customization API * **[Changelog](https://www.better-messages.com/changelog/)** — every release and bug fix * **[Roadmap](https://www.better-messages.com/roadmap/)** — upcoming features and votes **Popular use cases:** * **Private communities** — members-only platforms, cohorts and coaching circles, role-restricted messaging, AI Chat Bots, end-to-end encryption * **Public communities and social networks** — BuddyPress, BuddyBoss, PeepSo and FluentCommunity sites, group conversations, chat rooms, mini chat widgets * **Intranet and corporate websites** — team channels, access by WordPress role, file sharing, calls for remote teams * **Chat rooms websites** — public and private topic rooms, guest access for unregistered visitors * **Dating and matchmaking sites** — private 1-on-1 chat, photos and videos, calls, chat buttons on member directories * **Creator economy and paid DMs** — **paid messaging** per message or call via [GamiPress](https://www.better-messages.com/docs/integrations/gamipress/) or [MyCRED](https://www.better-messages.com/docs/integrations/mycred/), mass messaging to fans * **Coaching and mentorship platforms** — client-to-coach DMs, video calls, voice messages, file sharing * **Online stores ([WooCommerce](https://www.better-messages.com/docs/integrations/woocommerce/))** — pre-sales chat on product pages, order support, inbox in My Account * **Marketplaces, classifieds and real estate** — buyer-to-seller and agent chat on every listing, guest chat for visitors * **Online courses (LMS)** — course chat rooms, instructor-to-student DMs * **Forums and Q&A communities** — Private Message link on every reply * **Live events and webinars** — event lobby chat rooms, guest access, group calls for AMAs * **Booking and appointment platforms** — guest-to-host messaging on listings and bookings * **Crypto and Web3 communities** — token-gated chat rooms, AMA group calls, AI knowledge bots "**Better Messages**" plugin is formerly called "**BP Better Messages**". **[Translate Better Messages to your language](https://www.wordplus.org/bm-translate/)** **Core Messaging Features:** * AJAX or WebSocket powered realtime conversations * Private one-to-one conversations * Group conversations with unlimited participants * Chat Rooms with guest access support * Messages for BuddyPress Groups, PeepSo Groups, Ultimate Member Groups, FluentCommunity Groups * Subjects for conversations * Search across all messages * Mark messages as favorite * Pin important messages to conversation top * Pin favorite conversations to list top * Filter conversations list to show only unread conversations * Reply to specific messages * Edit sent messages (with edit indicator) * Delete messages * Forward messages to other conversations * Mark conversations as unread * Mute conversation notifications, for good or for a set time * Message draft autosave with recovery **AI & Automation:** * AI Chat Bots powered by OpenAI, Anthropic (Claude) and Google Gemini * AI Chat Bots in group conversations with mention-based responses * Conversation summarization and scheduled digests with AI * Token usage and cost tracking, with a price list of the models kept up to date from WordPlus Cloud * Voice message transcription powered by Better Messages Cloud AI or OpenAI * Web Search capability for AI bots * File Search tool for AI bots * Image generation with AI * PDF file support for AI conversations **Media & Content:** * File sharing with resumable uploads and ability to protect files from direct access (images, videos, documents) * [Cloud Storage](https://www.better-messages.com/docs/cloud-storage/) for attachments in Cloudflare R2, Bunny.net Storage, Amazon S3 or any S3-compatible service, with files uploaded straight from the browser * Upload limits for each type of file * Image and video optimization in the browser: format conversion, quality control, metadata stripping * Photo cropping and editing before sending * Location messages with a map picker and nearby place suggestions * Voice messages and video messages (available as addon) * Embedded links with thumbnails and descriptions * oEmbed support for YouTube, Vimeo, Spotify, SoundCloud, Flickr and 20+ services * Emoji selector * Built-in sticker packs with role-based access and per-locale support * GIF integration with GIPHY and Klipy providers * Inline sticker suggestions while typing * Markdown text formatting support **Notifications:** * Email notifications for unread messages (customizable templates) * [Notification levels](https://www.better-messages.com/docs/features/notification-levels/) for group conversations and chat rooms: All messages, Mentions and replies, or Nothing, chosen by each member * Unsubscribe link support in emails * Sound notifications for new messages * On-site toast notifications anywhere on your website **Moderation & Security:** * AI Content Moderation by **Better Messages Moderation AI** (included with the WebSocket license, no API keys) or the free **OpenAI Moderation API** * Custom moderation rules in plain text, and conversation context awareness that catches patterns split across messages * "Flag Only" (recommended) or "Hold for Review" moderation actions * Pre-Moderated Messages - review messages before delivery * Report messages feature * Bad words filter with customizable blacklist * Block user feature * Role-based access control * User whitelist/blacklist for moderation * [Site moderators](https://www.better-messages.com/docs/features/site-moderators/): roles that open the Administration page, with a flag in the messenger while reports or held messages wait * Chat room moderators who mute, ban and remove members, with bans that say until when and system messages that can name the moderator **Engagement Features:** * Reactions to messages * Mentions (@username), and @all to mention everyone in a group conversation or chat room * Mass messaging from WP Admin with scheduling, file attachments, and background processing * Suggested conversations for new users **[Mini Widgets](https://www.better-messages.com/docs/features/mini-widgets/):** * Embed conversation entry points anywhere on your site without using shortcodes * Five widgets: Friends, Groups, Users, AI Bots, Chat Rooms * Two display styles: Classic Bar or Floating Bubble (with chat heads) * Three placement surfaces: bottom bar, side panel, mobile tab bar * Per-widget icon picker, search box, role restrictions, and "Hide Tab When Empty" toggle * Users widget with three display modes (all / by role / hand-picked) and sorting by last activity or registration date * Customizable order of tabs in mini widgets, side panel and mobile view **Customization:** * Modern, fully customizable design * Appearance tab — repaint every part of the messenger, reshape its corners and spacing and tune dark mode, with a live preview * [Custom tabs](https://www.better-messages.com/docs/features/custom-tabs/) on the widget bar, the side panel and the mobile tab bar: a link, a page or shortcode content, and new names for the built-in tabs * Custom notification sounds * RTL layout support * White label solution * Fully translatable * Auto-delete old messages option **Setup and help:** * Get started page that sets up the Messages page, chat with visitors, a chat room on its own page and the plugins on your site, one click each * Better Messages Assistant on the Support page, an AI assistant that answers from the documentation and your settings and prepares setting changes for you to review, free version included **Privacy & GDPR:** * Dedicated Privacy & GDPR settings page * All message data stored on your own server * AI moderation, when enabled, sends message content for analysis — Better Messages Cloud stores none of it * WordPress personal data export and erasure support * Suggested privacy policy text that follows the enabled features * Self-hosted emoji images option — no external CDN requests * Privacy-friendly video embeds — YouTube, Vimeo load only after user clicks * No cookies set, no analytics or tracking scripts * [Privacy & GDPR documentation](https://www.better-messages.com/docs/features/privacy-gdpr/) **This is not a complete list of features** — many smaller features and options are not listed, and new ones come with every release. **Compatible plugins & themes — 35+ native integrations:** Better Messages works on **any** WordPress site out of the box, and plugs straight into the community, LMS, marketplace and directory plugins below, with their members, groups, courses and listings. **Community & Membership Platforms** — replaces the built-in messenger and inherits members, profiles, friends, and groups: * [BuddyPress](https://www.better-messages.com/docs/integrations/buddypress/) * [BuddyBoss Platform](https://www.better-messages.com/docs/integrations/buddyboss/) — including BuddyBoss Theme and ReadyLaunch * [PeepSo](https://www.better-messages.com/docs/integrations/peepso/) * [Ultimate Member](https://www.better-messages.com/docs/integrations/ultimate-member/) * [FluentCommunity](https://www.better-messages.com/docs/integrations/fluentcommunity/) — including Spaces and Courses * [SureDash](https://www.better-messages.com/docs/integrations/suredash/) * [ProfileGrid](https://www.better-messages.com/docs/integrations/profile-grid/) * [UsersWP](https://www.better-messages.com/docs/integrations/userswp/) * [WP User Manager](https://www.better-messages.com/docs/integrations/wp-user-manager/) * Block, Suspend, Report for BuddyPress — its blocks apply to conversations too **Learning Management Systems (LMS)** — course chat rooms, instructor messaging, and student-to-student conversations: * [LearnDash](https://www.better-messages.com/docs/integrations/learndash/) — including Instructor Role add-on * [LearnPress](https://www.better-messages.com/docs/integrations/learnpress/) * [Tutor LMS](https://www.better-messages.com/docs/integrations/tutor-lms/) * [MasterStudy LMS](https://www.better-messages.com/docs/integrations/masterstudy-lms/) * FluentCommunity Courses **E-commerce — WooCommerce** — pre-sales and order support chat for online stores: * [WooCommerce](https://www.better-messages.com/docs/integrations/woocommerce/) — Contact buttons on **product**, **cart**, **checkout** and **order** pages that post the cart or the order into the conversation as a card, product links shown as product cards, and the inbox inside **My Account**. **HPOS-compatible**, works with **guest checkout**, in **both the free and WebSocket versions**. **Marketplaces & Multi-Vendor** — buyer-to-vendor chat on top of WooCommerce, with per-vendor opt-in and contact buttons on vendor stores, product pages, and order details: * [Dokan Marketplace](https://www.better-messages.com/docs/integrations/dokan/) * [MultiVendorX](https://www.better-messages.com/docs/integrations/multivendorx/) * [WCFM](https://www.better-messages.com/docs/integrations/wcfm/) * [WC Vendors](https://www.better-messages.com/docs/integrations/wc-vendors/) **Listings, Directories & Classifieds** — contact buttons on every listing, with per-listing threads: * [HivePress](https://www.better-messages.com/docs/integrations/hivepress/) * [Directorist](https://www.better-messages.com/docs/integrations/directorist/) * [GeoDirectory](https://www.better-messages.com/docs/integrations/geodirectory/) * [Classified Listing](https://www.better-messages.com/docs/integrations/classified-listing/) * [Motors – Car Dealer, Classifieds & Listing](https://www.better-messages.com/docs/integrations/motors/) * [WP Job Manager](https://www.better-messages.com/docs/integrations/wp-job-manager/) **Real Estate Themes** — agent and inquiry messaging on property listings: * [Houzez](https://www.better-messages.com/docs/integrations/houzez/) * [RealHomes](https://www.better-messages.com/docs/integrations/realhomes/) **Forums** — Private Message link on every reply: * [wpForo](https://www.better-messages.com/docs/integrations/wpforo/) * bbPress **Gamification, Points & Paid Access** — charge per message or call with per-role pricing and balance display: * [GamiPress](https://www.better-messages.com/docs/integrations/gamipress/) * [MyCRED](https://www.better-messages.com/docs/integrations/mycred/) **Automation & Page Builders:** * [Uncanny Automator](https://www.better-messages.com/docs/integrations/uncanny-automator/) — triggers and actions for chat events * [AutomatorWP](https://www.better-messages.com/docs/integrations/automatorwp/) — triggers and actions for chat events * [Crocoblock JetEngine Profile Builder](https://www.better-messages.com/docs/integrations/jet-engine/) — profile and chat shortcodes for JetEngine listings **Push & PWA:** * [FluentNotify](https://www.better-messages.com/docs/integrations/fluent-notify/) — web push through your own Firebase project * [OneSignal](https://www.better-messages.com/docs/integrations/onesignal/) — web push notifications * [Progressify PWA](https://www.better-messages.com/docs/integrations/progressify/) — install-to-home-screen prompts on the messenger **Multilingual sites** — the messenger follows the language of the page: * [GTranslate](https://www.better-messages.com/docs/integrations/gtranslate/) * [Weglot](https://www.better-messages.com/docs/integrations/weglot/) **Live streaming** (WebSocket version): * [Live Stream](https://www.better-messages.com/docs/websocket/live-streaming/) — a host streams from the browser or OBS into a chat room, which is the chat of the stream **Universal Shortcode Builder — add chat to anything else:** Don't see your plugin or theme in the list? The [Shortcode Builder](https://www.better-messages.com/docs/shortcodes/better_messages_live_chat_button/) at **WP Admin → Better Messages → Shortcodes** adds a Live Chat Button to any custom post type, listing, profile or page builder block **without writing PHP**: point it at a sample post, choose who receives the messages (the post author, a user ID from post meta or a fixed inbox) and paste the shortcode into Gutenberg, Elementor, Bricks, Divi or a theme template. Every post gets a conversation of its own. [Full list of integrations](https://www.better-messages.com/docs/category/integrations/) **Report any incompatibility or request an integration — it helps improve Better Messages!** **WebSocket version:** The WebSocket version is a paid subscription from [WordPlus Cloud](https://www.wordplus.cloud/), with a free trial. It connects your site and its members through dedicated realtime servers. Messages stay in your database: the servers pass them on encrypted and keep only the last few minutes of each conversation, also encrypted, so pages reload and reconnect at once. **Performance & Reliability:** * **Significantly** reduces the load on your server * **Instant** message delivery in realtime, up to 200x faster than AJAX * Works with any hosting including shared hosting * No limits on concurrent connections or monthly active users **Video & Audio Calls:** * HD one-to-one video and audio calls * [Group video](https://www.better-messages.com/docs/websocket/group-video-chat/) and [group audio](https://www.better-messages.com/docs/websocket/group-audio-chat/) calls with no limit on people in a call: each site includes 32 people on video or 50 on audio at once, plus 5,000 WordPlus Cloud credits every month for more * Screen sharing in one-to-one and group calls * [Call recording](https://www.better-messages.com/docs/websocket/call-recording/) of group calls, with a transcript and captions * [Background blur, virtual backgrounds and AI Noise Removal](https://www.better-messages.com/docs/websocket/video-effects/) * Device settings with a camera preview and microphone and speaker tests * Host Controls: Mute Everyone, Lock Room, Broadcast Mode, End for Everyone, Spotlight for Everyone, and Remove and Ban from Calls * Raised hands, Participants, Auto, Speaker and Tiled layouts, picture in picture and keyboard shortcuts * Optional end-to-end encryption of group calls * Group call alerts by push, email and pop-up when a call starts **Mobile Apps:** * iOS and Android apps under your own name and developer accounts, built from WP Admin * Push notifications for messages and calls, and VoIP notifications for incoming calls * Native call screens for one-to-one and group calls * [Website sign-in](https://www.better-messages.com/docs/mobile-app/sign-in/) through your site's login page, with its two-factor authentication and login plugins * [App lock](https://www.better-messages.com/docs/mobile-app/app-lock/) with Face ID, Touch ID or the fingerprint * Links that open the app, signed-in devices with sign-out, and Delete Account * A login screen in your brand, with a logo for dark mode **Realtime Features:** * Messages Delivery Status (sent, delivered, seen) * Typing, voice recording and file uploading activity indicators * Online/Offline presence indicator * User statuses (Online, Away, Do Not Disturb) * Mini Chats - chat windows anywhere on your site * Mini Conversations widget - list and continue recent threads from any page * Online-only filter and online-first ordering for the Users mini widget **Better Messages Cloud AI:** * Automatic message translation in private and group conversations — 53 languages, auto-detection * AI Content Moderation — 23 categories, custom rules, conversation context awareness * Voice message transcription — 99+ languages with auto-detection * No third-party API keys required — included with WebSocket license at no additional cost **Security & Encryption:** * Optional End-to-End Encryption (E2EE) — can be enabled at the website level and per conversation, messages and files encrypted in users' browsers with AES-256-GCM, server never sees plaintext * Local browser encryption (AES256) for offline message storage * Web Push Notifications (works even when the browser is closed) * All data encrypted in transit, so we can't read it on our servers **Support:** * Priority email support * Regular updates and new features **[WebSocket version pricing](https://www.better-messages.com/docs/pricing/) | [Terms of Use](https://www.wordplus.cloud/terms)** Translate the plugin to your language with Loco Translate or [participate in plugin translation](https://translate.wordpress.org/projects/wp-plugins/bp-better-messages/). == Frequently Asked Questions == = Is Better Messages free? = Yes — install the free version from WordPress.org. It supports private and group conversations, chat rooms, file sharing, oEmbed previews, smart-batched email notifications, role-based access, guest chat, and the standard messenger feature set. The WebSocket version is paid and unlocks instant delivery, one-on-one and group voice / video calls with backgrounds, noise removal and recording, Better Messages Cloud AI (content moderation, message translation and voice message transcription with no API key of your own), web push, end-to-end encryption, and your own iOS and Android apps. = Which WordPress plugins does Better Messages integrate with? = 35+ native integrations across community platforms (BuddyPress, BuddyBoss Platform, PeepSo, Ultimate Member, FluentCommunity, SureDash, ProfileGrid, UsersWP, WP User Manager), LMS (LearnDash, LearnPress, Tutor LMS, MasterStudy LMS), e-commerce (WooCommerce — pre-sales and order support chat with contact buttons on product, cart, checkout, and order pages), multi-vendor marketplaces (Dokan, WCFM, WC Vendors, MultiVendorX), listings and directories (HivePress, Directorist, GeoDirectory, Classified Listing, Motors, WP Job Manager), real estate themes (Houzez, RealHomes), forums (wpForo, bbPress), gamification (GamiPress, MyCRED), automation (Uncanny Automator, AutomatorWP), page builders (Crocoblock JetEngine), push / PWA (FluentNotify, OneSignal, Progressify), and multilingual sites (GTranslate, Weglot). If your plugin isn't listed, the built-in visual Shortcode Builder lets you add a Live Chat Button to any custom post type without writing PHP. See the [full list of integrations](https://www.better-messages.com/docs/category/integrations/). = Does it support group conversations? = Yes — first-class group chats with shared history, mentions, reactions, file uploads, replies, edit / delete / forward, and group voice / video calls (WebSocket version). Group chats can be auto-paired with BuddyPress / BuddyBoss / PeepSo / Ultimate Member / FluentCommunity groups, with members joining and leaving the chat in sync with the source community group. = Can unregistered visitors (guests) chat? = Yes — Guest Chat lets unregistered visitors join chat rooms, message vendors on marketplaces, ask questions on directory listings, or chat with site support. Guests enter a display name (and optionally an email), then participate as a guest user. Their thread history is preserved if they later register. = Does it support voice and video calls on WordPress? = Yes (WebSocket version) — one-on-one and group voice / video calls live inside the messenger thread, not as a separate Zoom / Whereby integration. Hosted media relay is included with the WebSocket license, no separate Twilio account, no Daily / Whereby subscription, no Zoom developer plan. There is no limit on people in a group call: each site includes 32 people on video or 50 on audio at once across its group calls, plus 5,000 WordPlus Cloud credits every month for more. Calls have device settings, background blur and virtual backgrounds, AI noise removal, screen sharing, host controls and picture in picture, and group calls can be recorded with a transcript. = Is Better Messages GDPR-compatible? = Yes. All message data is stored only in your WordPress database. The WebSocket cloud relay is blind to message content — it routes encrypted events and keeps only the last few minutes of each conversation, still encrypted, but cannot read or inspect what passes through. Better Messages also integrates with WordPress's built-in Personal Data Export and Erasure tools. Call recordings, when an administrator turns them on, are kept on your site or in your own cloud storage. For sites with stricter data-sovereignty requirements (GDPR Article 9, HIPAA-adjacent, regulated-data workloads), a self-hosted plan is available — contact support. = Does it have AI features? = Yes. AI Chat Bots (OpenAI, Anthropic Claude, Google Gemini) work in the free version with your own provider API key. They act as full participants in any thread, with custom system prompts and per-bot points charging via GamiPress / MyCRED. Better Messages Cloud AI (WebSocket version) provides AI Content Moderation (23+ categories including spam, scam, doxxing, contact sharing), AI Message Translation (53 languages with auto-detection), and Voice Message Transcription (99+ languages) — all included with the WebSocket license, no third-party API key required. = Does it have native iOS and Android apps? = Yes (WebSocket version) — Better Messages makes native iOS and Android apps for your site, on Capacitor, with push notifications, real-time delivery, native voice / video call screens, website sign-in with your two-factor authentication, an app lock with Face ID or the fingerprint, and the messenger's features. You build your branded app from WP Admin and publish it on the App Store / Play Store under your own developer accounts. = Can I translate the messenger interface to my language? = Yes — Better Messages is fully translatable through standard WordPress translation tools (Loco Translate, WPML, Polylang) using the `bp-better-messages` text domain. Ships with 30+ community translations. Contribute or improve a translation at [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/bp-better-messages/). = Does it support end-to-end encryption? = Yes (WebSocket version). End-to-end encryption is enabled per thread — messages and file attachments are encrypted in the sender's browser with AES-256-GCM before transmission, stay encrypted at rest in the database, and decrypt only in the recipient's browser. The server stores ciphertext only, no admin, host engineer, or attacker with database access can read the message content of an E2E thread. = Where can I find detailed documentation? = The complete documentation, integration guides, REST API reference, hooks reference, video tutorials, and 80+ blog posts are at [www.better-messages.com](https://www.better-messages.com/). = Which external services does Better Messages connect to? = The plugin connects to WordPlus Cloud, the plugin author's service that sells and licenses the WebSocket version, only when an administrator uses one of these features: * **Plans, prices and reviews.** When an administrator opens Better Messages → Upgrade, the site asks WordPlus Cloud (api.wordplus.cloud) for the current plans, prices and customer reviews, and keeps the answer for an hour. No personal data is sent, only the request itself, which WordPress makes with the site's address. The administrator's browser then loads the reviews' photos from WordPlus Cloud. * **Contact form.** When an administrator sends a message from Better Messages → Support, the plugin sends what they wrote, their name and email address, any files they attach, any access details they choose to share, and the site's address and technical details (the WordPress, PHP, database and web server versions, the theme and the active plugins), which the form shows before sending. * **Better Messages Assistant, only after you press Start.** The AI assistant on Better Messages → Support sends nothing until an administrator presses Start under the list of what it sends. Start registers the site with WordPlus Cloud (its address, the plugin version and whether it is the free or the WebSocket version). Then each question goes to WordPlus Cloud's assistant service (rest.wordplus.cloud) with the site's address, the plugin's settings (without keys or passwords), the plugin, WordPress, PHP and theme versions, the active plugins and the administrator's language, and the answer comes back to the page. Questions and answers are stored and read by the plugin's team to improve the assistant. Visitors' data is never sent. "Turn off the assistant" under the chat stops it, and the `wordplus_sdk_assistant_enabled` filter hides it. * **Buying.** Buying happens on the WordPlus Cloud website (www.wordplus.cloud), never inside WordPress. The Upgrade buttons open it with the site's address. After paying, the plugin sends WordPlus Cloud the one-time code it came back with, the site's address, the plugin version and a random identifier of the site, and gets the licence key. * **Installing the WebSocket version, only when asked for.** If the buyer asks for it on the WordPlus Cloud checkout page, WordPlus Cloud contacts the site, and the site downloads the WebSocket version from WordPlus Cloud and installs it. Nothing is installed unless the buyer asks on that page. * **Licence check.** Once a licence key is saved, the site sends the key, its address and the plugin version to WordPlus Cloud once a day to confirm the licence. * **Emoji and sticker downloads, only when an administrator asks.** "Download emoji images to your server", the emoji names in other languages and the sticker packs come from WordPlus Cloud's CDN (cdn.wordplus.cloud), or from WordPlus Cloud (api.wordplus.cloud) when the CDN fails, and the sticker settings ask it for the list of packs when they open. The administrator's browser loads the packs' cover pictures from the same addresses. These requests send the plugin's name and version, and WordPress adds the site's address to every request it makes. * **Usage data, only if you opt in.** After the plugin is first activated, it asks once whether to share usage data, and nothing is sent unless an administrator chooses Allow & Continue. Then the site sends the administrator's name and email address (to tell them about security and feature updates), the site's address, title, language and time zone, the WordPress, PHP and plugin versions and whether the plugin is active, and, unless switched off, which of the plugin's features and settings are in use (on/off values, numbers and short setting values, never your content, addresses or keys, and the size of the site's messaging only as a range) and the names and versions of its plugins and themes. With them goes how far the setup in Get started has come (which of its cards are done or dismissed), and when the free trial notice was shown and which of its buttons was clicked. It sends them once a day when something changed, and when the plugin is activated, deactivated or deleted. The newsletter is a separate choice, off unless switched on. Each choice can be changed, or the sharing stopped, from the Opt out link under the plugin on the Plugins screen. Opting out has WordPlus Cloud erase what was shared. A site that opted in through Freemius in an earlier version stays opted in, and its administrators are told once that its data goes to WordPlus Cloud now. Only the WebSocket version adds the features and settings in use to what such a site shares, unless switched off. The free version shares them only once an administrator switches them on. A site that skipped Freemius's opt-in is not asked again. * **AI model prices, only when an administrator asks, or with a licence.** The AI chat bots count what their answers cost by a price list of the AI models that comes with the plugin. **Check for new prices** in **Settings → Integrations → AI Services** asks WordPlus Cloud for a newer list, from its CDN (cdn.wordplus.cloud) or from WordPlus Cloud (api.wordplus.cloud) when the CDN fails, and a site with an active WebSocket licence asks once a week, after its licence check. The request sends the version of the WordPlus code in the plugin, and WordPress adds the address of the site to every request it makes. Only the list comes back, which the site reads as prices and nothing else. * **Deactivation feedback, only when you send it.** When the plugin is deactivated, it may ask why. The answer is sent to WordPlus Cloud only if the administrator submits it, without their email or the site's address unless they opted in to usage data and left "Anonymous feedback" unticked. The WebSocket version, which WordPlus Cloud sells and which is not on WordPress.org, also connects to WordPlus Cloud for these: * **Realtime delivery and calls.** Messages, typing, online statuses and call signals go through WordPlus Cloud's realtime servers (ws.wordplus.cloud, rest.wordplus.cloud), encrypted with keys only the site gives out, and calls through its call servers (*.rtc.wordplus.cloud). Better Messages Cloud AI, where an administrator switches it on, sends the message or voice message it moderates, translates or transcribes, and keeps nothing. The licence status at the top of the settings shows the WordPlus Cloud credits of the site's account, which group calls above the 32 people a site includes and call recordings use. * **Video effects, only when an administrator downloads them.** **Settings → Calls → Video Effects** downloads the background effects and AI Noise Removal from WordPlus Cloud's CDN (cdn.wordplus.cloud), or from WordPlus Cloud (api.wordplus.cloud) when the CDN fails, and reads its catalog of built-in backgrounds there, downloading the pictures an administrator picks. The administrator's browser loads the catalog's thumbnails from the same addresses. After an update of the plugin, a site that downloaded them gets the newer files the same way. Calls then load the effects and backgrounds from the site itself. WordPress adds the address of the site to every request it makes. * **Call recording, only when an administrator turns it on.** With **Record Group Calls** on, a moderator's Record has WordPlus Cloud's recorder join that group call: it receives the call's sound, video and shared screens, with the names and profile pictures of the people in it, makes the recording and, unless switched off, its transcript, and puts the files into the site's cloud storage, or keeps them until the site downloads them, for seven days at most. Each minute recorded takes a WordPlus Cloud credit. WordPlus Cloud: [terms of service](https://www.wordplus.cloud/terms), [privacy policy](https://www.wordplus.cloud/privacy). = Which other services can Better Messages use? = Besides WordPlus Cloud, the plugin uses these services, each as described: * **Emoji images (jsDelivr).** Emoji show as Apple's images by default, and until the site downloads them, browsers load the image sheet from jsDelivr (cdn.jsdelivr.net), which receives the visitor's IP address. "Download emoji images to your server" in the emoji settings, or the native emoji set, stops it. jsDelivr: [terms of service](https://www.jsdelivr.com/terms), [privacy policy](https://www.jsdelivr.com/terms/privacy-policy-jsdelivr-net). * **Video and media links (YouTube, Vimeo and other oEmbed providers).** With oEmbeds on, which is the default, a link to a provider WordPress's oEmbed support knows makes the site ask that provider for its player, and the player loads from the provider in the conversation. With "Privacy-friendly oEmbeds" on, a video loads only after a click. YouTube: [terms of service](https://www.youtube.com/t/terms), [Google privacy policy](https://policies.google.com/privacy). Vimeo: [terms of service](https://vimeo.com/terms), [privacy policy](https://vimeo.com/privacy). * **GIFs (GIPHY, KLIPY), only with your own API key.** Searches typed in the GIF picker go from the site to the chosen provider, with a random identifier for each member and never their name, and GIFs load in browsers from the provider's servers. GIPHY: [terms of service](https://giphy.com/terms), [privacy policy](https://giphy.com/privacy). KLIPY: [API terms](https://klipy.com/support/api-terms), [privacy policy](https://klipy.com/support/privacy-policy). * **Stipop stickers, only with your own API key.** The sticker store and sticker searches go to Stipop (messenger.stipop.io) with the member's numeric ID on the site and the chosen language, and the stickers load in browsers from img.stipop.io. Stipop: [terms of service](https://stipop.io/en/policies/terms), [privacy policy](https://stipop.io/en/policies/privacy). * **AI chat bots and AI features, only with your own API key.** With an OpenAI, Anthropic or Google Gemini key, the messages of conversations with an AI bot, with the bot's instructions, and the content an AI feature works on (messages it checks, voice messages it transcribes) go to that provider. OpenAI: [terms of use](https://openai.com/policies/terms-of-use), [privacy policy](https://openai.com/policies/privacy-policy). Anthropic: [commercial terms](https://www.anthropic.com/legal/commercial-terms), [privacy policy](https://www.anthropic.com/legal/privacy). Google Gemini: [API terms](https://ai.google.dev/gemini-api/terms), [privacy policy](https://policies.google.com/privacy). * **Location sharing, only when switched on.** Browsers showing a shared place load the map from tile.openstreetmap.org, and the place search and nearby places send the search text or the map's position to nominatim.openstreetmap.org and overpass-api.de. These addresses can be changed in the location settings. OpenStreetMap: [tile usage policy](https://operations.osmfoundation.org/policies/tiles/), [Nominatim usage policy](https://operations.osmfoundation.org/policies/nominatim/), [privacy policy](https://osmfoundation.org/wiki/Privacy_Policy). Overpass API: [terms](https://dev.overpass-api.de/overpass-doc/en/preface/commons.html). * **OneSignal, only with the OneSignal plugin.** When the OneSignal integration is used, the site links each member's push subscription to their numeric ID on the site at OneSignal (api.onesignal.com), so message notifications reach them. OneSignal: [terms of service](https://onesignal.com/tos), [privacy policy](https://onesignal.com/privacy_policy). * **Cloud storage, only when connected.** With a storage provider connected (Amazon S3, Cloudflare R2 or another S3-compatible service), files sent in messages are kept with that provider in the administrator's own account, and browsers upload and download them there. The provider's own terms and privacy policy apply. * **Mobile App, only when an administrator sets one up.** On Better Messages → Mobile App, the Android signing key and its passwords are sent to the plugin author's app builder (builder.better-messages.com) to check or create them, and the Apple and Google keys the administrator enters are checked with Apple (api.appstoreconnect.apple.com) and Google. Apple: [privacy policy](https://www.apple.com/legal/privacy/). Google Firebase: [terms](https://firebase.google.com/terms), [privacy policy](https://policies.google.com/privacy). * **FFmpeg, only when downloaded.** "FFmpeg WASM (~30 MB)" in the media settings downloads the video converter once from better-messages.com to the site, which then serves it to the browsers that convert videos before sending them. == Installation == 1. Upload the plugin files to the `/wp-content/plugins/bp-better-messages` directory, or install the plugin through the WordPress plugins screen directly. 1. Activate the plugin through the 'Plugins' screen in WordPress 1. Use the Settings -> Better Messages to configure the plugin == Screenshots == 1. Group conversation with photo sharing, emoji reactions, replies and @mentions — alongside a conversations list with unread badges, pinned chats, online presence and live typing indicators 2. Embedded video and link previews — YouTube, Vimeo, Spotify, and 20+ oEmbed providers 3. Full-text search across every message, with matches highlighted in the conversations list 4. Start a new conversation — recipient search with live results and online status 5. Mini chat window that follows members across your whole WordPress site 6. On-site toast notifications for new messages — visible anywhere on your WordPress site 7. Dark mode across every surface of the messenger 8. Voice and video messages, with one-tap transcription 9. Read a conversation in your own language — messages arrive translated, with the original one tap away 10. Share a location with a map picker and nearby place suggestions 11. AI chat bots powered by OpenAI, Anthropic (Claude) and Google Gemini 12. Appearance tab — repaint any part of the messenger and watch every change in the live preview 13. Settings — email, browser push and on-site notifications, and 18 more tabs of options 14. Group video calls right beside the conversation, with no fixed number of participants (WebSocket version) 15. One-to-one HD video and audio calls from any conversation (WebSocket version) == Changelog == **Noticed something wrong after updating?** Email [support@better-messages.com](mailto:support@better-messages.com) or open a topic on the [support forum](https://wordpress.org/support/plugin/bp-better-messages/). = 3.2.2 = * Added the [`better_messages_can_add_participant`](https://www.better-messages.com/hooks/php-filters/#better_messages_can_add_participant) filter: it can refuse someone before they join an existing conversation, on every route that adds a person to one and before anything is published * Added the [`better_messages_system_message_should_emit`](https://www.better-messages.com/hooks/php-filters/#better_messages_system_message_should_emit) filter: one conversation can have a system message, such as the group call alert, while they are off for the site * Added `GET /app/bootstrap` and `GET /app/strings` for apps built on a site (WebSocket version): how to sign in, who is asking, how to connect, features and limits, reactions, appearance and translated words, and pages on other origins can now send signed requests * Added picture in picture to group video calls in the mobile app, showing one person as on the web: the spotlight or a pin, a shared screen, or whoever is speaking (with the next app build) * Improved the microphone and camera controls in calls: they spin from the press until the device is on, so one waiting for AI Noise Removal or a background to start no longer reads as a press that did nothing * Improved choosing a camera, microphone or speaker in the device settings of a call: each is now a clear field that opens the native menu of the browser or phone (the mobile app with its next build) * Improved group calls on a slow upload: the microphone gives way to the camera, so the picture freezes less (the mobile app with its next build) * Improved joining a group call where a network blocks the address of the call servers: the browser now tries the other call servers, the nearest first, and starts from the one that worked for the next day * Improved the flag beside Settings on WebSocket sites: a new report or a message held for approval shows on it within seconds, and it goes within seconds of being handled * Improved background blur in calls on a Mac, iPhone or iPad: the device settings suggest Portrait or Background in Control Center, and in Safari Blur pauses by itself while Portrait is on, so the background is not blurred twice * Improved notifications during a call: new message, site notification and group call cards wait until the call ends, so they no longer cover the call or show on a shared screen, and message sounds stay off * Improved the Plugins screen: a WebSocket version update that cannot be installed now says why in its row * Improved **Settings → Calls**: AI Noise Removal has a section of its own, Audio Effects, as it works in audio calls too * Improved sticker suggestions while typing: they open once the typing stops and float over the conversation, so they no longer flash or move it * Improved on-site notifications: they no longer cover the reply area, and step above it as it grows, as the page scrolls or as a conversation opens under them * Fixed on-site notifications standing in the middle of the screen while a conversation stayed docked in the closed floating bubble * Fixed guests on a screen reader or a keyboard being unable to choose their name: the guest sign-up takes them to a labelled Display Name field, and **(Change)** beside their name can be reached and pressed * Fixed the floating bubble, **Restore?** after deleting a conversation and buttons other plugins add to the conversation header not working from a keyboard or a screen reader, and the time unit and group call choices having no name for a screen reader * Fixed the camera in a direct call staying at very low quality on a slow upload, and the microphone now gives way there so the picture freezes less (the mobile app with its next build) * Fixed the microphone in a group call in the iPhone app coming straight back on after being turned off (with the next app build) * Fixed **Video interrupted** covering a camera that was still playing, for as long as it kept playing: a browser no longer decides it from what it decodes itself. Until the WebSocket servers can say when someone's media really stopped, which a later update brings, a stopped camera keeps its last picture in a browser, without the notice * Fixed call microphones opened in stereo going silent moments into a call in Chrome: they now open in mono, and the sound of a shared screen stays in stereo * Fixed error messages being hidden behind a call that fills the window or the screen * Fixed an AI bot renamed on a site with a persistent object cache, such as Redis, keeping its old name: the room puts it right as it opens, and the update puts right a bot renamed before it * Fixed the word in **@all** not being translatable, so a translation can show it as @everyone or in its own language * Fixed words that stayed in English on translated sites: "You:" before your own last message, the name of a group without a subject, the file encryption error, two request errors, and the mobile app error screen and its Android notification channels * Fixed the notice on joining a group call squeezing its words beside its buttons on a wide call * Fixed the Chat Rooms list answering a member signed in from an app as if signed out * Fixed adding someone who cannot join a conversation, such as an AI chat bot to an encrypted one, saying everyone is already in it * Fixed a member logged out while a page stayed open seeing "Cookie check failed" on any page of the site: the messenger now asks to refresh the page, a message not sent goes out by itself after logging in again, and a tab logged back in no longer stays refused * Fixed a returning guest who was deleted from the site seeing "Guest authorization failed", and a chat room that never finished loading for them: the page now opens for them as a new visitor * Fixed WordPress 7.2 compatibility: mentions and @all notified nobody and left no @ marker, AI chat bots did not answer a mention, and a custom email template lost its doctype when saved * Fixed a mention showing as raw code in mobile app notifications, moderation emails, the plain-text part of BuddyPress emails, the personal data export and the Abilities API, where it now reads as the name * Fixed moderation emails showing apostrophes, quotes and signs such as & as code in the message, the report description and the site name * Fixed emails showing empty quotes for a conversation without a visible subject, with a custom or translated email template too * Fixed a link whose address has a parameter named like an HTML entity, such as ©=, opening a different address * Fixed the messenger appearing several times on the Messages page, in the header, the page and the footer, on a site with Avada Layouts * Fixed a blank page on phones after closing the full screen messenger, on a site whose theme shows a loading screen while the page loads * Security improvement: a link, a link preview or an encrypted message can no longer spell markup in character references, so a crafted message can no longer run script on the site * Security improvement: a tag a member writes in a message keeps only what it needs, such as the address of a link, so a message can no longer cover the page or draw a video player of its own * Other minor bugfixes and improvements [See the full changelog](https://www.better-messages.com/changelog/) for every earlier version. == Upgrade Notice == = 3.2.0 = Upgraded video and group calls, with recording, backgrounds and no fixed size, and new mobile app features, which need a new build of the app. The AI keys move to a keychain the WordPlus plugins share, so a site that goes back to 3.1 must enter them again. = 3.1.0 = The Freemius SDK is removed. A site that shared usage data through Freemius shares it with WordPlus Cloud now, and a WebSocket licence saved on the site moves there by itself on the first page load after the update. = 3.0.0 = A full redesign: a rebuilt Appearance tab with live preview, location and video messages, per-conversation translation, and the Mobile App page out of alpha. CSS classes and script filenames changed — update custom CSS and caching exclusion lists. The Customizer is gone, but its colors carry over.