Documentation — MxChat Multi-Bot Manager

Version 1.0.6 · Updated 1 week ago

MxChat Multi-Bot Manager

Run unlimited specialized chatbots from one WordPress install. Spin up a support bot, a sales bot, and a technical bot — each with its own knowledge base, personality, model, and trigger pages.

Overview

A single chatbot has to be a generalist. Multi-Bot Manager removes that constraint: every bot you create is its own entity with a dedicated knowledge base (Pinecone index or OpenAI vector store), its own system prompt, its own welcome message and quick questions, and optionally its own model and rate limits. You decide which bot loads on which page via a meta box, a shortcode, or a Gutenberg block — so the same visitor can talk to "Sales Sam" on /pricing and "Tech Tina" on /docs without any knowledge bleeding between them.

This is a premium add-on built for teams that already outgrew a single bot — agencies running multiple client personas off one install, businesses with distinct support and sales journeys, and documentation-heavy sites that need separate KBs for separate products.

Setup

1. Install MxChat (mxchat-basic) and activate your MxChat Pro license first.
2. Upload mxchat-multi-bot.zip via Plugins → Add New → Upload, or install through the MxChat Add-Ons Gallery.
3. Activate via Plugins → Installed Plugins.
4. Go to MxChat → Multi-Bot Manager in the admin sidebar.
5. Click Add New Bot, enter a unique Bot ID (lowercase letters, numbers, underscores), a friendly Bot Name, and save.
6. Open the new bot's edit screen and configure its knowledge base, system prompt, welcome message, and any per-bot model or rate-limit overrides.
7. Assign the bot to a page by either:
- Editing the page and using the MxChat Settings meta box to pick the bot, or
- Pasting [mxchat_chatbot bot_id="your_bot_id" floating="yes"] into the page content.

Settings

Bot ID

The internal identifier used in shortcodes and the REST layer. Lowercase letters, numbers, and underscores only. Cannot be changed after creation — duplicate the bot if you need a different ID.

Bot Name

Human-readable name shown in admin dropdowns, the bot list, and (optionally) the chat top bar. Editable any time.

Top Bar Title & Welcome (Intro) Message

Per-bot overrides for the chat header text and the first message the visitor sees. Leave blank to inherit the global MxChat defaults.

System Prompt Instructions

The personality and behavior brief for this specific bot. Overrides the global system prompt entirely when set. Use it to scope the bot ("you are a customer support assistant for Acme, only answer questions about returns and order status").

Knowledge Base — Pinecone Host

The Pinecone host URL for this bot's index. The Pinecone API key is shared from the core Pinecone add-on; only the host (and therefore the index) is per-bot. Leave blank if this bot uses an OpenAI vector store instead.

Knowledge Base — OpenAI Vector Store IDs

Comma-separated list of OpenAI vector store IDs for this bot. Added in 1.0.3 — gives you an alternative to Pinecone if you're already invested in OpenAI's vector storage.

Similarity Threshold

Per-bot retrieval threshold (default 75). Raise it for a tightly-scoped FAQ bot, lower it for an exploratory knowledge bot.

Model & Streaming Override

Each bot can pick its own model (e.g. gpt-4o for support, gpt-4o-mini for a lightweight FAQ bot) and toggle streaming independently. Leave the model field empty to inherit the global setting.

Quick Questions

Up to 3 primary quick questions plus an unlimited list of additional ones — defined per bot so each specialization surfaces relevant prompts.

Quick Question Routing — Menu Bots

Added in 1.0.6. Next to every quick question on the bot create and edit screens there is a route to dropdown. Leave it on — No routing (send as a message) — and the question behaves exactly as it always has: clicking it sends the text to the current bot as a chat message.

Pick another bot instead, and that question becomes a handoff. When a visitor clicks it, the chat switches to the bot you chose — with that bot's own knowledge base, system prompt, welcome message, and quick questions. This turns any bot into a menu or router: a front-desk bot whose quick questions are "Billing question", "Technical problem", "Talk to sales", each handing off to the specialist that owns it.

Notes on how it behaves:

  • A bot cannot route to itself — it won't appear in its own dropdown.
  • The handoff reloads the page, then reopens the chat on the target bot. The visitor sees the specialist's welcome message, not the menu bot's thread.
  • Each routed question is stored against its exact question text. If you edit a quick question's wording, re-check its route to dropdown.
  • If no bot on the site routes anything, the routing script isn't loaded at all — sites that don't use menu bots pay nothing for the feature.

Back to Menu

Added in 1.0.6. After a menu bot hands a visitor off, a ← Back to menu button appears at the top of the specialist bot's quick-questions area. Clicking it returns the visitor to the menu bot in one click, instead of reloading the page by hand.

The button only appears when a menu bot actually routed the visitor there. A visitor who lands on the specialist directly — because it's the bot assigned to that page — sees no button, which is correct: there's no menu to go back to.

Routing history is a single hop. The button returns to the bot that routed the visitor; it is not a breadcrumb trail through a chain of handoffs. Returning to the menu ends the route.

One behavior worth knowing before you design a deep menu: the handoff is carried by short-lived cookies that are cleared as soon as the target bot opens. A manual page refresh therefore renders whichever bot the page is normally configured with — typically the menu bot — and starts a fresh thread rather than restoring the specialist. The ← Back to menu button is the supported way back.

The button's label is translatable via the mxchat-multi-bot text domain.

Rate Limits Override

Optional. Tick Use Custom Rate Limits and configure per-bot caps that override the global limits.

Page-Specific Bot Assignment

Every page and post editor gets an MxChat Settings meta box: pick which bot displays on that page and whether it should float or embed. Page-level wins over global.

Per-Bot Action Controls

Under MxChat → Actions, every action can be toggled on/off per bot. A sales bot can have product cards enabled, a support bot can have ticket creation enabled, and they won't trip over each other.

Features

  • Menu bots (quick-question routing): Turn any bot into a router. Set a route to bot next to a quick question and clicking it hands the visitor off to that specialist — its own knowledge base, prompt, and welcome message (added in 1.0.6).
  • Back to menu: After a routed handoff, a ← Back to menu button in the specialist's widget returns the visitor to the menu bot in one click (added in 1.0.6).
  • Unlimited bot creation: Spin up as many specialized chatbots as you need, each with its own configuration, knowledge base, and personality.
  • Dedicated knowledge bases: Connect each bot to its own Pinecone index or OpenAI vector store, with per-bot similarity thresholds so retrieval stays accurate for each scope.
  • Per-bot personality, welcome message, and quick questions: Define distinct AI behavior for support, sales, technical, HR, or any specialization — visitors see a different greeting and different prompts depending on which bot they hit.
  • Per-bot model and rate limits: Run a premium model on your sales bot and a cheaper one on FAQ, with independent rate caps so one chatty bot doesn't burn the whole budget.
  • Page-specific bot assignment: A meta box on every post/page lets you pick which bot displays where, overriding global settings without touching shortcodes.
  • Shortcode deployment: Drop [mxchat_chatbot bot_id="support" floating="yes"] anywhere — posts, pages, widgets, page builders — and mix bots by content context.
  • One-click bot duplication: Clone an existing bot and tweak for rapid deployment of variants (e.g. "Support – English", "Support – Spanish").
  • Per-bot action controls: Enable or disable specific MxChat actions per bot from the Actions page for granular capability tuning.
  • Integrated knowledge management: Bot dropdown selector in the Knowledge Base section so you can view, add, delete, or search records for each bot individually.
  • Unlimited bots on a single page: With MxChat Core 3.0.1+, load any number of bots on the same page without conflicts (added in 1.0.3).

API & Integration

Shortcode

[mxchat_chatbot bot_id="support" floating="yes"]
[mxchat_chatbot bot_id="sales" floating="no"]

bot_id defaults to default (the global MxChat bot) if omitted or unrecognized. floating="yes" renders as the corner widget; floating="no" embeds inline.

Gutenberg Block

The MxChat block exposes a bot dropdown in the block sidebar — pick the bot from the same list used by the Multi-Bot Manager admin.

WordPress Filters

The add-on hooks into MxChat core via several filters, all keyed by bot_id:

  • mxchat_get_bot_options — returns the merged options array for a bot (model, streaming, prompts, etc.).
  • mxchat_get_bot_pinecone_config — returns Pinecone host + API key for a bot.
  • mxchat_get_bot_vectorstore_config — returns OpenAI vector store IDs for a bot.
  • mxchat_shortcode_atts — validates bot_id in shortcode attributes, falls back to default if the bot doesn't exist.
  • mxchat_knowledge_bot_filter — scopes knowledge base queries to a single bot.

REST Scoping

MxChat's chat REST endpoints accept a bot_id parameter — the multi-bot manager intercepts the request, swaps in the bot's options, prompt, and knowledge base, and returns a response scoped to that bot.

Requirements

  • MxChat (mxchat-basic): Required. Latest stable release recommended; some 1.0.3 features (e.g. unlimited bots on a page) require MxChat Core 3.0.1+.
  • MxChat Pro License: Required — features are gated and the bot list page won't load without an active Pro license. See pricing.
  • WordPress: 5.0 or newer.
  • PHP: 7.4 or newer.
  • Vector storage: A Pinecone account (configured via the MxChat Pinecone add-on) or OpenAI vector store IDs — at least one is needed if you want per-bot knowledge bases.

Troubleshooting

Bot not appearing on a page

Check, in order:
1. The shortcode bot_id matches an existing bot ID exactly (case-sensitive).
2. The bot was saved — open it in the admin and re-save if unsure.
3. MxChat Pro license shows active at MxChat → License Activation.
4. If you're using the page meta box, confirm the page was updated after picking the bot.
5. If multiple bots should appear on one page, confirm you're on MxChat Core 3.0.1+.

Knowledge bleed-through between bots

If a bot is answering with another bot's content, the bots are sharing a Pinecone index or vector store. Fix: give each bot its own Pinecone host (separate index) or a distinct set of OpenAI vector store IDs. Same-index, different-namespace setups also work but require disciplined ingestion.

"Database issue detected" admin notice

The wp_mxchat_multi_bots table didn't get created on activation. Deactivate the add-on, reactivate it, and the notice should clear. If it persists, check that the WP database user has CREATE TABLE permissions.

Bot Not Responding Correctly

Verify the Pinecone host (or vector store IDs) is set, the knowledge base actually has content for that bot, the similarity threshold isn't set so high that nothing passes, and the system prompt isn't restricting the bot more than you intended.

A quick question sends a message instead of routing

Its route to dropdown is on No routing, or the question's wording was edited after the route was set. Routes are stored against the exact question text — reopen the bot, re-pick the target bot next to that question, and save.

The "← Back to menu" button doesn't appear

Expected in two cases: the visitor reached the specialist bot directly rather than through a menu bot's routed quick question, or the page was refreshed after the handoff (which clears the route and renders the page's normally-configured bot). The button is only shown to a visitor a menu bot actually routed. If it's missing right after a routed click, confirm the target still exists as a bot and that the menu bot isn't routing to itself.


Last reviewed by Sage on 2026-07-16. Spotted an issue? Open a ticket and we'll patch the doc.