Chat
v1.1.37A floating chat bubble with four channels — WhatsApp (with an optional intake form), call-me-back, an embedded contact form and real-time live chat — plus a tap-to-answer FAQ, fully translatable and spam-proof, all from one WPStack panel with no third-party chat service.
Overview
The Chat module adds a single floating bubble to your site that opens a popup of the channels you enable.
One button, four ways to reach you. Turn on any mix of WhatsApp, call-me-back, an embedded contact form and live chat; each becomes a labelled option inside the popup. Everything runs on your own WordPress site — there is no external chat SaaS and no per-agent fee.
- WhatsApp — one tap opens a chat with your number (optional pre-filled message)
- WhatsApp form — optionally ask a few questions first; the answers pre-fill the WhatsApp message
- Call me back — visitors leave a number; requests are saved and emailed to you
- Contact form — open any Stack Form right inside the bubble
- Live chat — real-time visitor to team messaging, saved to your database
- Instant FAQ — tappable questions that answer in the bubble, each with an optional button
- A booking-style inbox for callbacks and live chats
- Every visible word is a translatable label, with one-click language presets
- A honeypot and rate-limit keep spam out automatically
Requirements & compatibility
It runs on any WordPress site; the form channel needs the Forms module.
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 6.0 | 6.5 or newer |
| PHP | 7.4 | 8.1 or newer |
| Forms module | Only for the form channel | Enabled if you want the embedded form |
| A phone number | A business number visitors can reach |
Installation & activation
Chat ships inside WPStack — switch it on, pick your channels, and save.
Activate the module
In WPStack → Modules, flip Chat on. A Chat Bubble item appears in the WPStack menu.
Enable your channels
Under Settings, turn on WhatsApp, call-me-back, a form and/or live chat and set each button’s label and sub-label.
Style & save
Choose the bubble colour, accent and position (bottom-left or bottom-right), then save. The bubble is live on your site.
Send visitors straight into a WhatsApp conversation with you.
Enter your number in international format (no “+” or spaces) and, optionally, a message to pre-fill. The button builds a wa.me link, so tapping it opens a chat with you in the visitor’s WhatsApp — mobile or WhatsApp Web.
32478123456, not +32 478 12 34 56.Optional intake form
Instead of opening WhatsApp straight away, you can ask a few questions first. In the WhatsApp settings card, add text fields and a multiple-choice checklist (like “What do you need?”); when the visitor taps Send via WhatsApp, their answers are composed into the message and WhatsApp opens pre-filled.
Call me back
Capture a phone number and call the visitor back on your own time.
The visitor leaves their number (and optional name). The request is saved to a Callbacks inbox and an email is sent to your admin address instantly, with the source page recorded. Mark a request as called, call again, or delete it.
| Phone | Status | Received | |
|---|---|---|---|
| +32 478 12 34 56 | New | May 26, 2026 08:52 | ✓ Mark called |
| +32 471 98 76 54 | Called | May 25, 2026 21:19 | Call again |
| +31 6 1122 3344 | New | May 22, 2026 11:28 | ✓ Mark called |
Contact form
Open one of your Stack Forms right inside the bubble.
Pick any form built with the Forms module and it opens in the bubble’s panel — no page change. Submissions use the form’s own validation and notifications and are stored in the same entries table. The channel appears only when the Forms module is active.
Live chat
Real-time messaging between visitors and your team, saved for later.
A visitor starts a conversation (optionally leaving a name and email) and messages stream to your WordPress inbox. Reply from a clean, booking-style screen; every message is stored, so you can close a chat and re-open it any time. Messages poll in near real time — no websockets to configure.
| Visitor | Page | Status | Updated | |
|---|---|---|---|---|
Emma Do you deliver on weekends? | / | Open | 3 min ago | View |
Liam Thanks, that answered it! | / | Closed | 2 hours ago | View |
Noah Is the spa open on Monday? | / | Closed | Yesterday | View |
Visitor — | / | Closed | 2 days ago | View |
Instant FAQ
Let visitors self-serve the most common questions — right in the bubble.
On the FAQ tab, write question & answer pairs (each answer can add a button with a link). The questions show as tappable chips in the popup; tapping one plays the answer as a chat reply, with the optional button beneath. It is entirely client-side — no AI and no external service — and the bubble shows even if the FAQ is your only feature.
- Each answer can hold safe HTML plus an optional button + link
- Managed on its own FAQ screen, separate from Settings
- Fully client-side — instant, with no server round-trip
Translations
Every word in the bubble is a label you control.
Under Settings → Labels you can edit every visible string — buttons, prompts, placeholders and the “How can we help?” title. The Fill all labels language picker prefills Dutch, French, German or Spanish in one click (including the channel buttons), then you can tweak any field. Leave a field blank to keep the English default.
Anti-spam
Bots are stopped automatically — no CAPTCHA for real visitors.
- A hidden honeypot field silently drops bot submissions
- A 15-requests-per-minute per-IP rate limit blocks floods
- Offending IPs are blocked automatically and listed under Security
- Clear any block with one click
Settings reference
The main options on the Chat settings screen.
| Setting | Type | Default | What it does |
|---|---|---|---|
| Enable bubble | toggle | Off | Show the chat bubble on all front-end pages. |
| Position | select | Bottom right | Bottom-left or bottom-right corner. |
| Bubble colour | colour | #25d366 | The floating button colour. |
| Panel accent | colour | #0891b2 | Accent for the panel buttons. |
| Channels | toggles | WhatsApp on | Enable WhatsApp, call-me-back, form and/or live chat, each with its own labels. |
| WhatsApp form | toggle + fields | Off | Ask text / multiple-choice questions that pre-fill the WhatsApp message. |
| FAQ | toggle + Q&A | Off | Tap-to-answer questions shown in the bubble, each with an optional button. |
| Labels | text | English | Every front-end string, with one-click language presets. |
Webhooks & integrations
Send new chats, visitor messages and callback requests to Make, Zapier or your own CRM as they happen.
With the Connect module enabled, every conversation and call-me-back request can be posted to any address you give it. Set it up under WPStack → App Connect → Integrations: paste the URL your tool generated, pick Chat & callbacks from the module list, tick the events, and press Send test.
Events you can subscribe to
| Event | Sent when |
|---|---|
chat.started | A visitor opens a new live chat, with their name, email and the page they were on. |
chat.message | A visitor sends a message. Your own replies do not fire this. |
chat.closed | A chat is closed or reopened — from wp-admin or the mobile app. Carries the previous status. |
callback.created | A visitor asks to be called back. |
callback.status_changed | You mark a callback as called, or back to new. |
callback.deleted | A callback is removed. The full record is included. |
callback.created at Slack and your team sees the number before the visitor has closed the tab.chat.message. Replies you send from wp-admin or the mobile app are deliberately excluded — otherwise every answer you typed would loop straight back out to your automation.X-WPStack-Signature header your receiver can verify.For developers
Every event is also a standard WordPress action, so you can handle it in a plugin or your theme without Connect. Note the wpsc_ prefix: it is the module’s own, and predates the wpstack_ naming used by Booking and Events. The status hooks fire from the database layer, so they run whether the change came from wp-admin or the mobile app.
| Hook | Type | Description |
|---|---|---|
| wpsc_chat_session_started | action | $session_id, $session — a visitor opened a new chat. |
| wpsc_new_chat_message | action | $session_id, $message, $sender, $session — a visitor message. Agent replies do not fire this. |
| wpsc_chat_session_status_changed | action | $session_id, $new, $old — only on a real change. |
| wpsc_callback_created | action | $callback_id, $phone |
| wpsc_callback_status_changed | action | $callback_id, $new, $old — only on a real change. |
| wpsc_callback_deleted | action | $callback_id, $callback — fires just before the row is removed. |
add_action( 'wpsc_callback_created', function ( $callback_id, $phone ) {
$callback = WPSC_DB::get_callback( $callback_id );
// $callback->name, ->phone, ->page_url, ->created_at
// …send an SMS, open a task, ring a desk phone…
}, 10, 2 );add_action() is how many arguments your callback receives. Leave it off and WordPress hands you only the first.FAQ
No. WhatsApp opens the visitor’s own app and live chat runs on your WordPress site, storing messages in your database. There is no external SaaS and no per-agent fee.
Into an admin inbox under the Chat menu. Callbacks also email your admin address, and live-chat conversations are saved so you can reply later.
Yes — the form channel embeds any Stack Form, reusing its fields, validation, notifications and entries table.
Completely. Every string is an editable label, and a one-click preset fills Dutch, French, German or Spanish — including the channel buttons and popup title.
A hidden honeypot drops bots and a 15-per-minute rate limit blocks floods, with automatic IP blocking you can clear from the Security tab.
Yes — add an FAQ and each question becomes a tappable chip that answers inline as a chat reply, with an optional button. It is client-side, with no AI or external service.
Turn on the WhatsApp form and add a few questions; the visitor’s answers pre-fill the WhatsApp message when they tap send.