Skip to main content

FluentBooking Chat and Video Calls

Compatibility
This feature compatible with Better Messages 3.3.0 or higher

The FluentBooking integration gives every booking its own private conversation between the guest and the host. The guest reaches it from the booking page or from a link in the booking emails, even without an account on the site. The host finds it in the Better Messages inbox like any other conversation. With the WebSocket version the conversation also has video and audio calls, and its call can be the location of a FluentBooking event, named Video call, so the call link lands in every place FluentBooking shows a meeting link.

REQUIREMENTS

To install the plugin ensure that your website running:

  • WordPress 5.9 or newer
  • PHP 7.4 or newer

What the integration does#

  • One conversation per booking. The guest and the host of the booking are its members. It is created the first time one of them opens it, so bookings nobody writes about leave nothing behind.
  • A card with the booking at the top. The day of the booking as a calendar leaf, the event with its status, the time from start to end in the time zone of the viewer, the host and the place (or "Online"). The guest also gets a Manage booking button to the FluentBooking page of the booking.
  • Messages about changes. When a booking moves to another time or is cancelled, the conversation gets a system message about it. A cancelled or rejected booking keeps its conversation readable, with replies and calls closed.
  • Guests without an account. A guest who booked with only a name and an email gets a signed link in their emails. Opening it signs the browser in as that guest and opens the conversation, even when guest chat is off for the rest of the site.
  • Group and collective events get a group conversation, and a recurring or multi-slot booking shares one conversation for all its dates.
  • Calls around the time slot in the WebSocket version: the guest can call from a few minutes before the start until the end, the host at any time.

Chats work in the free and the WebSocket versions. Calls need the WebSocket version.

Setup#

  1. Install and activate FluentBooking and Better Messages.
  2. Open Better Messages → Settings → Integrations → Bookings.
  3. In the FluentBooking Integration card, turn on Booking Conversations.
  4. Make sure the site has a Messages page (Messages Location in General, or a guest page). Guests who booked without an account read their messages there, and the panel shows a warning when there is no such page.
Better Messages settings, Integrations, Bookings tab with the shared Bookings card and the FluentBooking Integration card, Booking Conversations turned on

The Bookings card at the top holds the settings every booking plugin shares:

SettingWhat it does
Support UserTakes part in the conversation for a staff member with no WordPress account and is shown under their name. FluentBooking hosts are always WordPress users, so a FluentBooking site needs it only when other booking plugins run beside it.
Group ChatsCreates one group conversation for each group slot and event, with its staff and every booked customer. People join when they book and leave when they cancel. On by default.
Calls Before the StartHow many minutes before the start the guest can call (10 by default, from 0 to 1440). The guest can call until the booking ends, the host at any time. WebSocket version.
Group Video Calls / Group Audio CallsCalls in the group conversations of group slots and events. Off by default. WebSocket version.

The FluentBooking Integration card lists the two email placeholders, explains what makes a group conversation in FluentBooking and where to pick the video meeting. Cards for Amelia, LatePoint and Simply Schedule Appointments follow it.

Video call as the event location#

The call of the booking conversation is one of the locations of FluentBooking, named Video call, in the Conferencing group next to Google Meet, MS Teams and Zoom. The name carries no plugin name, so guests see it as a call of the site itself. Open the event in FluentBooking → Calendars, go to Event Details and choose Video call under Location.

FluentBooking event details with the Location list open and Video call ringed under Conferencing

Every booking of that event then carries the call link as its online meeting. FluentBooking shows it as "Video call" with a Join Meeting link in all its usual places:

  • The booking confirmation and the attendee page
  • The booking emails, through {{booking.location_details_html}}
  • The Add to calendar links and the .ics file

The guest sees their own signed link on the attendee page and in their emails, so Join Meeting signs them in and starts the call even when they have no account. The host emails, the host view of the booking and the .ics file carry the plain link, which opens the conversation for the signed-in host.

The location is written only for events where Video call is chosen. A booking with any other location keeps it as FluentBooking wrote it.

Two placeholders work in every FluentBooking email template:

PlaceholderWhat it prints
%bm_chat_url%The link to the conversation of the booking
%bm_call_url%The link that opens the conversation and starts its video call

Open the event, go to Email Notification and click Edit on a template, for example Booking Confirmation Email to Attendee. Both placeholders are listed under Add Shortcodes, in the booking group. Put them in a link, as in the Code view below.

FluentBooking email template editor in Code view with the paragraph that links %bm_chat_url% and %bm_call_url% ringed
<p><strong>Questions before the meeting?</strong></p>
<p><a href="%bm_chat_url%">Message your host</a> or <a href="%bm_call_url%">join the video call</a></p>

Each recipient gets the link that fits them:

  • The guest without an account gets a signed link that signs the browser in as that guest.
  • The guest with an account and the host get the plain link. A signed-out visitor goes through the login page first.
  • Additional guests named on a booking get a copy of their own with the plain link, so a link signed for the person who booked never reaches anyone else.
  • On a site without calls (the free version, or video calls turned off), %bm_call_url% prints the conversation link, so a template never holds a dead call link.

This is the confirmation the guest of the event above receives. The location line carries the call link of the event, and the paragraph from the template carries the chat and call links.

Booking confirmation email to the guest with the Video call Join Meeting link and the Message your host and join the video call links ringed

Message button on the booking page#

The attendee page of FluentBooking, which the guest sees after booking and reaches from the links in their emails, gets a row at its foot with a Message button. For a one-to-one booking it names the host, as in "Message Hanna Kovalenko". The button opens the conversation, creating it on the first click, and signs a guest without an account in.

FluentBooking attendee page with the Video call Join Meeting link and the Message Hanna Kovalenko button ringed

The host view of a booking, in wp-admin and in the Frontend Portal of FluentBooking Pro, gets a Messages card with a link to the conversation. It shows only for the hosts of the booking, not for an admin who is not one of them.

The conversation#

The guest side#

A guest who opened a signed link is signed in as a guest with the name and the email of the booking ("Chatting as" at the bottom). Their inbox holds the conversations of their bookings.

The card at the top of the conversation shows:

  • The day of the booking as a calendar leaf, with the month and the day
  • The event and its status, as an icon and a word in its colour: Confirmed (a check), Pending (an hourglass), Cancelled or Rejected (a red cross), Completed or No show (a grey dash)
  • The time from start to end in the time zone of the viewer, for example "Mon, Nov 16 · 14:00 – 14:30"
  • "With" and the name of the host, and Online or the place
  • For a series, the number of dates

The Manage booking button opens the FluentBooking page of the booking, where the guest can reschedule or cancel it. Only the guest of the booking sees it. The call buttons stay greyed until the call window opens, and hovering one says when the guest can call.

The conversation of a booking on the guest side, with the booking card showing the Nov 16 calendar leaf, Video consultation Confirmed, Mon, Nov 16 · 14:00 – 14:30, With Hanna Kovalenko, Online and a Manage booking button, and the greyed video call button saying You can call from Nov 16, 2026, 13:50

The guest keeps using the same guest across bookings made with the same email, so all their booking conversations stay in one inbox.

The host side#

The host finds the conversation in the inbox like any other conversation, with the same booking card at the top but without the Manage booking button, which belongs to the guest. The host manages the booking in FluentBooking as usual. The call buttons work at any time for the host.

The same conversation on the host side, with the booking card showing Video consultation Confirmed and no Manage booking button, and the audio and video call buttons ringed

Rescheduled and cancelled bookings#

When the booking moves, the conversation gets "This booking moved to" with the new date and time, and the card shows the new day and time. When it is cancelled, the conversation gets "This booking was cancelled". The card shows Cancelled in red with the time struck through and the calendar leaf greyed, the call buttons go away and the reply box says "This booking was cancelled, so replies are closed." The messages stay readable for both sides. A rejected booking closes the same way, with "This booking was rejected, so replies are closed."

A conversation that is open at that moment updates by itself, the card, the call buttons and the reply box included. Nobody has to reload the page.

A cancelled booking conversation with the system messages This booking moved to Nov 18, 2026, 11:00 and This booking was cancelled, the card marked Cancelled in red with the time struck through, no call buttons and replies closed

Calls around the booking#

Compatibility
This feature compatible with Better Messages 3.3.0 or higher

Calls need the WebSocket version and video or audio calls turned on in Better Messages → Settings → Calls.

  • The guest can call from the number of minutes set in Calls Before the Start before the booking starts (10 by default) until the booking ends. Outside that window the call buttons stay greyed with the reason, and they light up the minute the window opens, without a reload. The server refuses a call outside the window too.
  • The host can call at any time.
  • A cancelled or rejected booking has no calls.
  • The call link (%bm_call_url%, or Join Meeting of the Video call location) opens the conversation and starts a video call. Opened before the window, it shows when the guest can call instead.

Group conversations of group and collective events use the group calls of Better Messages, turned on with Group Video Calls and Group Audio Calls in the Bookings card. They have no time window.

Group events, collective events and series#

FluentBooking bookingConversation
One-to-one eventA private conversation between the host and the guest, one per booking
Group event (several guests at one time)One group conversation for each time slot, with the host and every guest booked on it. Guests join when they book and leave when they cancel or move to another time
Collective event (several hosts)One group conversation for each booking, with every host of the team and the guest
Round robin eventA private conversation with the host the booking was given. When a reschedule moves the booking to another host, the conversation follows
Recurring or multi-slot bookingOne conversation for the whole series. The card, the call window and the email links follow the current date of the series, and the card shows the number of dates, and each date that moves or is cancelled gets its own system message

Group conversations need Group Chats on in the Bookings card. With it off, group bookings have no conversation. The card of a group conversation shows no status and no Manage booking button, as each guest in it has a booking of their own.

Frequently asked questions#

Does the guest need an account?#

No. A guest who booked with only a name and an email opens the conversation from the Message button on the booking page or from %bm_chat_url% in their email. The signed link works even when guest chat is off for the rest of the site, and it opens only the conversations of that email. While guest chat is off, such a guest gets the messenger on the Messages page and wherever it is placed with a shortcode, but not the mini widgets, the mini chats or the floating chat button on the other pages.

Does it work in the free version?#

Yes, the conversations, the card, the system messages, the email links and the Message button all work in the free version. Calls, including the Video call location, need the WebSocket version.

The link stays the same, because it points at the conversation of the booking. FluentBooking sends its reschedule emails with the same link.

Can the host and the guest talk before the booking?#

Yes, the conversation is open from the moment the booking is made until it is cancelled or rejected. Only calls from the guest wait for the call window.

Who sees the conversation of a group event?#

The host and every guest booked on that time slot. A guest who cancels leaves the conversation.

See also#