Bot Marley — User Guide

A friendly, step-by-step guide to setting up your Bot Marley AI chatbot and getting the most out of it. No coding required — if you can edit a WordPress page, you can configure Bot Marley.

This guide is written for site owners. Follow it top to bottom the first time, then use it as a reference whenever you want to tweak something.

Applies to Bot Marley 0.12.0 and newer.

On this page

Welcome to Bot Marley

Bot Marley is a self-hosted AI chatbot that turns your website into a smart assistant. It reads your own pages and posts and answers visitors’ questions using only what’s actually on your site — so it stays accurate and on-topic.

Because it’s self-hosted, your content and conversations stay in your WordPress site, and you connect your own AI provider. There are no per-conversation fees: you only pay your AI provider for what you use.

What it’s great at: answering “how much does X cost?”, “do you ship to…?”, “what’s your return policy?”, guiding shoppers, and capturing leads — 24/7, in the visitor’s own language. With a Pro licence it also powers an AI-driven site search.

What you need before you start

Setting up takes about 10 minutes. Here’s the short checklist so nothing blocks you halfway through.

You’ll get the smoothest experience if you have these ready before you begin.

  • WordPress 7.0 or newer (7.1+ unlocks smarter, meaning-based answers, document indexing, and semantic site search).
  • An AI provider account — OpenAI, Anthropic (Claude), or Google (Gemini) — with billing/credit active. A key without billing is the single most common cause of “the bot won’t answer”. The next section walks you through creating a key for each one.
  • A Privacy Policy page on your site (required before the chat can go live — it powers the consent notice).
  • WooCommerce (optional) — only if you run a shop and want the Pro sales features.
Good to know: Bot Marley never stores your API keys. You connect your provider once in WordPress (Settings → Connectors) and every compatible plugin shares it safely.

Compatibility (needs Bot Marley 0.9.10 or newer):

  • Gutenberg, the Classic editor and ACF (custom fields and ACF Blocks) — fully supported.
  • Elementor — fully supported. Pages built with Elementor are indexed completely, so the bot reads the full text of every page. (Content that lives outside pages — Theme Builder templates and popups — isn’t part of the knowledge base.)
  • Divi, WPBakery and Avada — partially supported. Page text and key content (section titles, button labels, FAQ/accordion items) are indexed; some builder-specific elements may be skipped.
  • Bricks, Oxygen and similar — not fully compatible yet. They store content outside the standard WordPress post, so only page titles reach the knowledge base.

Quick start: go live in 3 steps

If you just want the bot running fast, these are the only three things you must do. Each one has its own detailed section below.

Do them in order — the widget won’t switch on until the first two are done.

  1. Connect your AI in Settings → Connectors.
  2. Build the knowledge base — pick what to index and run the first indexing.
  3. Turn on the widget and match it to your brand.

That’s it — open your site and the chat launcher appears in the corner.

Connect your AI

Bot Marley doesn’t come with its own AI; it uses the provider you choose. This keeps you in control of costs, data location, and which model answers your visitors. You only need one provider.

The process is always the same: create an API key on the provider’s platform, then paste it into WordPress once. Keys are shown only once when you create them — copy the key straight away and store it somewhere safe.

Which one should I pick? If you just want to try it for free, start with Google Gemini (free tier, no card) — but note its free limits are very low, so for a live chatbot plan on enabling billing. For production most people use OpenAI or Anthropic — both need a small prepaid credit but are rock-solid.

Connect Google — Gemini

Google’s free tier works immediately with rate limits and needs no credit card.

  1. Go to Google AI Studio → API keys and sign in with any Google account (no separate registration).
  2. Click Create API key. If you don’t have a Google Cloud project yet, one is created automatically.
  3. Copy the key. It works right away on the free tier; to raise the rate limits later, click Set up billing.

⚠️ The free tier’s limits are very low (a handful of requests per minute, shared quotas that run out fast). It’s fine for trying Bot Marley out, but with real visitors the chatbot will regularly hit the limit and fail to answer. For the chatbot to work correctly we recommend setting up billing and moving to a paid plan — Gemini’s paid usage is inexpensive, and paid traffic also gets priority capacity at peak times.

Official docs: ai.google.dev/gemini-api/docs/api-key

Connect OpenAI — ChatGPT

OpenAI’s API needs prepaid credit; without it, requests fail even with a valid key.

  1. Sign up or log in at platform.openai.com (new accounts need email and phone verification).
  2. Add a payment method and prepay credits (minimum $5) under Settings → Billing — the API does not work without credit.
  3. Open Dashboard → API keys and click Create new secret key. Copy it immediately.

Connect Anthropic — Claude

  1. Sign up at platform.claude.com (this is the current Anthropic Console — the old console.anthropic.com redirects here).
  2. New accounts get about $5 of trial credits; after that, add prepaid credits under Settings → Billing. A key with no billing is the most common cause of errors.
  3. Open API Keys in the left sidebar and click Create Key. Copy it immediately.

Official docs: platform.claude.com/docs

Add the key to WordPress

Now hand the key to WordPress — you only do this once.

  1. Go to Settings → Connectors in WordPress.
  2. You’ll see a card for each featured provider (Anthropic, Google, OpenAI). Click the card for your provider — WordPress installs the small official provider plugin if needed.
  3. Paste your API key and save. WordPress validates the key against the provider before accepting it, so a wrong or unbilled key is caught right here.

Back in Bot Marley → Settings, the Status line confirms the AI Client is detected. You can optionally pin a specific provider there, or leave it on Site default and let WordPress choose. The model is always chosen by the provider — there are no stale model lists to maintain.

Tip: Prefer to keep data in a specific region (for example the EU)? Choose a provider that offers it — you control which one Bot Marley talks to.

Build your knowledge base

The knowledge base is everything the bot is allowed to know. Bot Marley reads the content you select and uses only that to answer — so a good knowledge base means good answers.

Spend a couple of minutes here and you’ll dramatically cut the questions that reach your inbox. This is all on the Bot Marley → Knowledge page.

Choose what to index

Pick which content feeds the bot. Posts and pages are included by default; add custom post types, and — on WP 7.1+ — uploaded PDFs and documents.

  • Auto-sync content changes — keep this ON so new and edited pages are picked up automatically (checked hourly). Set it and forget it.
  • Reindex All Content — run this after big changes to rebuild everything from scratch.
  • Reviews and comments are never indexed — on purpose, for your safety, since anyone could post text there to trick the bot.
  • WooCommerce cart, checkout and account pages are excluded automatically — in every language — so the bot never treats them as content.

Add your contact details

Fill in your company name, email, WhatsApp number, phone, and address here. When set, the contact details override anything found in your content, so the bot always shares the right, up-to-date contacts and never an old number buried in an old post.

  • The Company name personalises the initial AI notice above the chat: instead of the generic “…you agree we and [provider] may process this chat…”, visitors read “…you agree [Your Company]…” — properly phrased in each of the 15 widget languages. Leave it empty to keep the generic wording.
  • The WhatsApp number is special: in chat it appears as a tidy WhatsApp button, and the number itself is never shown in clear text. Include the international prefix (e.g. +39…).

The bot is also deliberately restrained about when it brings contacts up: it shares them when the visitor asks how to reach you, when it genuinely can’t answer, or when you’ve set an objective like Lead visitors to the contact page. It does not tack a “contact us” invitation onto every reply — a good answer about a product stays about the product.

Point to your important pages

Tell the bot where your Contact, Booking, Login, Cart, FAQ, Return Policy, Terms, and Privacy Policy pages live. A handy “pick page” button lets you select them instead of typing URLs.

The Privacy Policy is special: it’s required, and it’s the link shown in the consent notice above the chat.

Keep pages out (Excluded URLs)

Paste one rule per line to remove pages from the knowledge base. You can match an exact URL, contains:/word/, or starts:/path/. Matching pages are dropped from the index and never cited.

Turn on and style the widget

The widget is the chat bubble your visitors see. Here you switch it on and make it feel like part of your brand. Everything is on the Bot Marley → Widget page.

Take a minute to match your colours and welcome message — a personalised widget gets far more use than a generic one.

Switch it on

  • Show on frontend — the master on/off. (It needs your Privacy Policy URL first.)
  • Preview on site — opens your site with the widget forced on, so you can test before going live.
  • Hide on device — show or hide it independently on mobile, tablet, and desktop.
  • Open automatically — tick Enable auto opening and the chat panel pops open on its own after a delay you set in seconds (default 8.5s; you can use decimals like 4.5, or 0 to open immediately). It’s a gentle nudge, not a pop-up that follows people around. If you’ve hidden the widget on a device, auto-open respects that and stays shut there.
Finding the right delay: too short feels pushy, too long and nobody sees it. Around 6–10 seconds is a good default — enough time for the visitor to start reading before the bot says hello.

Make it yours

  • Position & margins — bottom-right or bottom-left, with pixel-perfect spacing.
  • Chatbot window title & welcome message — the first thing visitors read. The title defaults to “Ask me about [your site name]”; the credit line “powered by Bot Marley” sits just beneath it. Leave the welcome empty to use a ready-made one in the widget’s language.
  • Theme colours — a primary colour (header, buttons, launcher) and a secondary colour for text on top of it. With WooCommerce you can also set the Add to Cart button colour.
  • Launcher icon — the friendly Bot Marley face or a classic chat bubble.
  • Footer text — a small line under the input (supports bold, italics, links).
  • Custom CSS (advanced) — a box at the bottom of the page for your own CSS. It’s printed after every plugin stylesheet, so your rules always win. Class names are stable (botmarley- for the chat, bm-search- for search) — safe to target, no Shadow DOM.

Control where it appears

  • Show sources — display the pages each answer came from, so visitors can double-check.
  • Hide on URLs / post types — keep the widget off specific pages (like checkout) or entire content types.
Pro: a Pro licence adds an option to hide the “powered by Bot Marley” credit from both the chat widget and the search.

Shaping how the bot talks

The Behaviour page sets your bot’s personality and its do’s and don’ts. It’s how you make the assistant sound like your brand while staying accurate.

Whatever tone you pick, the golden rule never changes: the bot answers only from your content and never makes things up. Find it under Bot Marley → Behaviour.

Personality

Choose the voice that fits your brand:

  • Professional — formal, precise, no emoji.
  • Neutral — clear and balanced.
  • Friendly — warm and conversational.
  • Witty — light, a touch of humour, the occasional emoji.

The tone changes how the bot phrases things — never what it’s allowed to say. Grounding always wins, so even the Witty bot won’t invent facts.

Objectives — steering what the bot tries to do

Objectives are the heart of the Behaviour page. It’s a simple grid where each goal has three states:

  • Green (✓ do this) — actively pursue this goal. Green objectives become the bot’s primary objectives in every answer.
  • Red (🚫 never do this) — a hard restriction the bot must always respect.
  • Grey (no instruction) — the bot neither chases nor avoids it; it just answers normally.

The goals you can steer include leading visitors to the contact page, to WhatsApp, or to the booking page; providing information about services; answering FAQs; customer support and troubleshooting; collecting and qualifying leads; sharing opening hours and location; and helping schedule appointments.

With WooCommerce, the Bot Marley → WooCommerce page adds a second, sales-focused grid: provide detailed product info, share pricing and variants, guide the purchase, upsell, promote offers, explain shipping/returns, share stock, help track orders, compare products, and reduce cart abandonment.

If an activated objective can’t work with your current setup, the grid tells you. The moment you flag a goal green, a ⚠️ appears before it and a small yellow note explains what’s missing — for example Lead visitors via WhatsApp without a WhatsApp number, Collect leads with the lead form switched off, or (on the WooCommerce page) Help track orders with Order tracking disabled. Objectives left grey or blocked never nag you — the one exception is Promote offers set to red while coupons are enabled, which warns you that the block also switches coupon suggestions off. Toggle the objective off (or fix the missing piece) and the warning disappears.

Keep it focused — max 3 green goals per page. A bot told to do ten things at once does none of them well: every extra “always pursue this” waters the others down. Each page (Behaviour and WooCommerce) caps you at 3 active green goals, warning you when you hit the limit. Red “never” rules have no limit — restrictions stack up cleanly.

A good starter combo for a service business: green on Answer FAQs, Lead visitors to the contact page, and Collect leads; red on anything you never want mentioned. For a shop: green on Provide detailed product information, Guide the purchase, and Reduce cart abandonment.

Fallback message

What the bot says when the answer genuinely isn’t on your site. Leave it empty for a polished default (in the widget’s language) that gracefully invites the visitor to get in touch, or write your own.

Built-in safety rules (always on)

Regardless of your settings, the bot always follows a few non-negotiable rules you can’t switch off: no legal/medical/financial advice, never reveals or asks for passwords, credentials or payment details (whoever asks, however it’s framed), never collects personal data in the chat itself (it points visitors to the contact page or lead form instead), never mentions or compares with competitors, and never negotiates prices. These show as locked red rows at the top of the grid.

Capturing leads

Bot Marley can turn a conversation into a contact. When the bot suggests getting in touch, a short form appears right inside the chat — no extra plugin needed.

Every submission is emailed to you with the conversation, so you have full context to follow up. You configure this on the Widget page.

  • Lead capture — switch the in-chat form on.
  • Show form after — wait for a couple of messages before offering it, so it never feels pushy. It also stays out of the way whenever a reply already gave the visitor something concrete — a product card, a coupon code, or product information: a purchase-in-progress is never interrupted by a contact form.
  • Notification email — where new leads land. Leave it empty and it falls back to your WordPress admin email (shown as a placeholder so you always know where they’ll go).
  • Form fields — decide which of name, company, email, and phone are required, optional, or off.
  • Transcript consent — the form includes a pre-ticked box asking the visitor to allow saving and sending the chat transcript (translated into all 15 languages). If they untick it, the transcript is neither sent nor stored — only the contact details they typed reach you.
  • Title & thank-you message — personalise both, with per-language versions if you serve multiple languages.

Speaking your visitors’ language

Bot Marley is multilingual out of the box, and it works on two levels that are worth understanding separately.

1. The AI’s answers. The bot reads the visitor’s message, detects its language, and replies in that same language — even if your site is only written in one. A German visitor asking a question in German gets a German answer built from your (say, Italian) content. This happens automatically for every conversation, with no configuration.

2. The widget’s fixed texts. The buttons, the consent notice, the lead-form labels, the placeholder — these are the interface, not the answers. They come from a built-in dictionary and are set by the Widget language option:

  • Site language (auto-detect) — the interface follows your site’s language. On multilingual sites (WPML, Polylang, TranslatePress, Weglot) it follows the language the visitor is currently browsing, with no extra work.
  • Pin one language — force the interface into a specific language regardless of the site.

15 languages ship for the interface: English, Italian, Spanish, French, German, Portuguese, Dutch, Polish, Russian, Turkish, Arabic, Chinese, Japanese, Korean, and Greek. Right-to-left languages (Arabic) are laid out correctly.

Customising the wording. The welcome message, fallback message, and lead-form title/thank-you can be tailored per language: next to each of those fields is an Edit translations link that opens a small editor with a box for every language. Fill in only the ones you care about — any language you leave blank falls back to that language’s own clean default, never to another language.

Multilingual sites: WPML users get an extra bonus — your custom widget strings are registered with WPML String Translation, so your translators can manage them in the usual place.

Selling with WooCommerce (Pro)

If you run a shop, the Pro WooCommerce integration turns Bot Marley into a sales assistant that actually helps close the sale — the deepest shop integration of any self-hosted WordPress chatbot. Everything below lives under Bot Marley → WooCommerce and needs WooCommerce plus a Pro licence.

Cart awareness

Tick “Let the AI see the visitor’s current cart” (on by default) and the bot reads the live cart while it talks. It can answer “what’s in my cart?”, nudge toward free-shipping thresholds (“you’re €12 away from free delivery”), and help the visitor finish an order they’ve already started — using what’s actually in the cart right now.

Product cards

Whenever the bot mentions a specific product it shows a tidy product card with the image, price, and an Add to Cart button (plus a link to the product page). Everything is pulled live from WooCommerce, so prices and availability are always current, and the visitor can buy without leaving the chat.

Smart coupons

Turn on “Let the AI know about active coupons and suggest them” (off by default), then build a short list of coupon rules — while the switch is off, the push level and rules grey out (your rules are kept, just inactive). Each rule points at a real WooCommerce coupon and gives it a condition — when the bot may offer it:

  • Always available — offered any time.
  • Cart total above an amount — only once the cart passes a threshold you set.
  • Cart contains a specific product — only when one of the products you pick is in the cart.
  • Cart contains a product from a category — only when the cart holds something from those categories.

Conditional rules are checked against the live cart in real time, so a coupon only comes up when it genuinely applies — conditional coupons are always presented in the context of the cart that earned them, never as generic promotions. The discount wording is read straight from the real coupon, and in chat the code appears as a small label in your brand colour with a one-tap copy button next to it. Expired, deleted, or fully-redeemed coupons are skipped automatically.

Two settings quietly take precedence, so your configuration can never contradict itself:

  • If the objective “Promote offers” is set to red (never), coupons are not offered at all — the restriction wins over the coupon list.
  • If Cart awareness is off, the cart-based conditions can’t be checked, so only “always available” rules keep working — and a ⚠️ note appears right next to the Cart awareness field.

A single Push level slider (1–5) sets how forward the bot is about coupons:

LevelBehaviour
1Almost never — only if the visitor explicitly asks about discounts
2Rarely — only on clear price hesitation
3Balanced — when relevant to the conversation (default)
4Often — proactively when the rules match
5Always — mention it in every conversation

When several coupons match, the bot picks the single best one for the visitor, ranked by how specifically it fits the cart (product in cart → category in cart → cart total → always available), instead of dumping a list — unless the visitor explicitly asks for all available discounts.

Product suggestions — steer, or hide

Rules that quietly shape which products the bot pushes (visitors are never told these rules exist). Each targets one product or a whole category, in four modes:

  • ⬆️ Promote more — recommended first when it genuinely fits what the visitor asked.
  • ⬇️ Promote less — never brought up on its own, but answered about normally when asked.
  • 🚫 Don’t promote — no suggestions, upsells or product card; but if the visitor asks for it by name the bot still answers (stays findable).
  • 🙈 Hide — the strongest option: the product is treated as if it doesn’t exist.

Hiding also affects search. A hidden product is removed before the bot ever sees it — and because the chatbot and the Pro AI Site Search share one index, it also drops out of site search (no result cards, no autocomplete). Use Hide to make a product invisible everywhere; use Don’t promote to stop pushing it while keeping it searchable.

The one exception: the visitor’s own cart. If a hidden product is already in the cart, the bot treats it completely normally — names it, states its price, and helps with quantities, totals, shipping and checkout. Denying what the visitor can plainly see in their own cart would make no sense.

Order tracking (BETA — limited)

Tick “Let the AI read the logged-in customer’s recent orders” (off by default) so shoppers can ask “where’s my order?”. It’s an early BETA, deliberately cautious:

  • Logged-in customers only — anyone not signed in is invited to log in first; order details are never shown to an unauthenticated visitor.
  • It reads the customer’s 5 most recent orders and shares each one’s number, date, status and total.
  • Tracking numbers appear only with a supported shipment-tracking plugin (WooCommerce Shipment Tracking, Advanced Shipment Tracking by Zorem, AfterShip…); otherwise the bot reports status only.
  • Read-only — it can’t change, cancel, refund or re-ship orders, and only sees orders on the logged-in account.

Because it’s BETA, test it on your own store (place an order, log in, ask about it) before pointing customers at it.

Sales objectives

The WooCommerce page has its own objectives grid (green/red/grey, same 3 active goals limit as Behaviour): reduce cart abandonment, upsell related products, share pricing and variants, promote offers, guide the purchase, and more — shaping the bot’s sales intent on top of everything above.

⚠️ This feature is in a phased rollout and is not switched on yet. For now, the Bot Marley → Search page shows a short preview of what’s coming; there’s nothing to configure. The rest of this section describes how it will work once it lands — come back when it’s live.

The same knowledge base that powers the chatbot can power your site search. Instead of WordPress’s basic keyword search, visitors get instant suggestions and meaning-based results (semantic on WP 7.1+, keyword on 7.0). It’s all on the Bot Marley → Search page and needs a Pro licence.

Nothing changes on your site until you set it up — so you’re always in control of where search appears.

Turn it on and choose a results page

  • Enable AI search — the master switch (on by default). Turn it off and native searches stop being redirected and the menu widget disappears, while your settings and any shortcode pages stay exactly as they are.
  • Search results page — create a page, drop in the shortcode, and point this field at it. Once set, normal WordPress searches (theme search boxes, ?s= URLs) are redirected here — WooCommerce product searches stay scoped to products.

Place a search widget

A compact search box can go anywhere, in two styles you set as the default on the Search page:

  • Input field — a search bar. You choose its width, height, corner radius, and colour.
  • Magnifier icon — a small lens that opens a full-screen search popup.

The quickest way to place one is the menu:

  • Add to navigation menu — pick one or more menu locations and a side (left/right); the widget slots into your menu and auto-centres against the other items on any theme. (Classic menus only — block-theme Navigation blocks don’t support this, so use a shortcode there.)

For anywhere else — a page, a sidebar, a footer, a block — you use shortcodes.

Placing search with shortcodes

Everything is the one shortcode

. A single attribute, display, decides its shape:

ShapeShortcodeWhat the visitor sees
Full search (default) A search bar with inline results on the same page. This is the one that goes on your results page.
Compact bar Just an input bar. Submitting sends the visitor to your results page.
Icon + popup Just a magnifier icon; clicking it opens the search popup.

Two more attributes fine-tune any of them:

AttributeValuesWhat it does
typea post-type slug — product, post, page…Restricts the search to that one content type. Omit it to search everything.
widthsmall · medium · wide · full · or a custom 80% / 900pxOverrides the page-wide Results width for the full search.

Worked examples:

			
			                 → full search (everything)
			
			  → full search, products only
			
			    → full search, wider layout
		
		   → a search bar (e.g. sidebar)
			
			  → a magnifier + popup (e.g. header)

How the pieces connect:

  • Set the “Search results page” first. The compact bar and icon are ordinary search forms: on submit they navigate to the results page you configured. If you haven’t set one yet, the bar falls back to your theme’s native WordPress search.
  • Clicking a suggestion skips the results page — the visitor jumps straight to that post.
  • Page settings are the defaults; shortcode attributes are the exception. The Search page controls the default style, colour, autocomplete, card fields, layout and width; a shortcode attribute overrides those for that single placement.

Typical setup: create a page “Search results”, put

on it, set it as the Search results page, then drop in your header (or add the widget to a menu). Visitors search from the icon anywhere and always land on your formatted results page.

Autocomplete

  • Switch suggestions on/off. They never call the AI provider — they’re instant and free.
  • Post titles are always searched; you can additionally include meta descriptions (Rank Math, Yoast, All in One SEO, SEOPress) and excerpts.
  • Suggestions start after the visitor types 4 characters.

Results display

  • Result cards show — tick what each result includes: title, summary, featured image, categories, tags, post-type name, publish date. You can also upload a fallback image for results with no featured image.
  • WooCommerce products get a richer card: short description, regular price struck through next to the sale price, availability, and SKU.
  • Layout — rows (1–2 columns) or a grid (2/3/4/6 columns).
  • Width — Small / Medium / Wide / Full, with optional side margins.
  • Result count — show or hide “X results found”.
  • Accent colour — the search colour also tints result titles, category/tag badges and card borders.
  • Documents (BETA) — uploaded Knowledge files (PDF, DOCX…) are excluded from results by default; tick the option to include them.

Results always follow the active site language (WPML/Polylang), and the results-page link is translated for you (WPML, Polylang, TranslatePress).

Fine-tuning answers & limits

Most sites never need to touch these, but a few knobs let you balance answer quality against cost. They’re on the Bot Marley → Settings page.

Start with the defaults — they’re sensible — and adjust only if you have a reason to.

SettingWhat it doesSuggested
Retrieved chunks (top-k)How much of your content the bot reads per question. Higher = more thorough, but costs more.Default 5
TemperatureHow creative the wording is. Lower = more factual and on-brand.Default 0.2
Max messages per sessionCaps messages per visitor to prevent abuse. 0 = unlimited. Sessions reset after 24h of inactivity.Set a limit on busy sites
Max message lengthLongest single message a visitor can send (50–2000).Default 280
Site behind proxy / CDNEnables correct per-visitor rate limiting when you’re behind Cloudflare or similar. Only turn on if you actually are.Off unless behind a proxy
Watching costs? Lower top-k, set a max messages per session, and keep temperature low. These three together keep your AI bill predictable.

Measuring results (Statistics, Pro)

The Statistics dashboard shows how your chatbot and search are performing, so you can see what’s working and where visitors get stuck. It’s available with a Pro licence under Bot Marley → Statistics, with a date-range picker for the last 7 / 30 / 90 days.

Use it to spot the questions you should answer better on your site — and, if you run a shop, to see what the bot earned.

  • Shop impact (WooCommerce, shown first) — add-to-cart from chat, orders and revenue after a chat interaction, coupons shared, and top suggested/mentioned products.
  • Chatbot — total conversations, widget opens, engagement rate, average duration and messages, fallback rate, leads shown/captured, daily activity, peak hours, and top pages.
  • Search — total searches, no-result searches (with their share), the top searched keywords, and a dedicated content-gap list of searches that found nothing — a goldmine for what to add to your site.
  • Error log — at the bottom of the page (the blue LOGS link next to the period buttons jumps straight to it): date, time and technical detail of any AI provider error. Visitors only ever see a generic “can’t answer right now” message — the real error is kept here, so if you contact support you can show exactly what happened.

Keeping the data light

Statistics live in three small tables in your own database and are cleaned up automatically every day, so they never grow unbounded. Two controls keep them as light as you like:

  • Retention — choose to keep data for 7, 30, or 90 days (default 90). Lowering it purges the older rows straight away, and the date-range buttons follow your choice.
  • Clear all statistics — a one-click button (with a confirmation) empties every stat immediately, resetting the dashboard to zero.

⚠️ Automatic heads-up: if the data ever gets heavy, Bot Marley shows a gentle notice — on the Statistics page and across your WordPress admin — telling you the current size and offering to clear it or shorten retention right there. Nothing is deleted without your click.

Your data & privacy

Bot Marley is built to keep you in control of your data. Your knowledge base and chat history stay in your own WordPress database — there’s no third-party chatbot company holding your information.

The only thing sent outside your site is the AI request itself (the visitor’s question plus the relevant snippets of your content), which goes to the AI provider you chose and control.

  • Your keys stay in WordPress, never in the plugin.
  • Answers are grounded in your content — the bot won’t wander off into outside knowledge.
  • Visitors are informed — a consent notice (linking your Privacy Policy) tells them they’re chatting with an AI.
  • Transcripts are opt-in for leads — the lead form asks permission before the conversation is emailed to you.
  • Choose a compliant provider — for stricter needs (e.g. EU data residency), pick an AI provider that offers it and sign your agreement with them directly.

Troubleshooting (self-help)

Before you contact support, check here — the vast majority of setup hiccups are one of these, and each has a quick fix.

Work through the symptom that matches, and you’ll usually be back up and running in under a minute.

“The AI Client is not available.” You’re either below WordPress 7.0 or haven’t connected a provider yet. Add a valid key under Settings → Connectors.

The bot gives empty answers or always uses the fallback. Two usual causes: indexing hasn’t run (open Knowledge and check there’s a content count), or your AI account has no active billing/credit. Fix both and re-test.

The bot sometimes can’t answer (“I’m sorry, but I can’t answer right now.”). That generic line appears when your AI provider momentarily fails — an overloaded model (Gemini’s 503 at peak times), an exhausted free-tier quota (429), or similar. Visitors never see the raw technical error: Bot Marley retries automatically — up to twice, with a short pause — and only then shows that translated generic message. The real error is kept for you in Statistics → Error log (the LOGS link) and in the server’s PHP error log. When the connector keeps hitting its limits, WordPress also shows a warning at the top of every admin page with the 7-day count and links to check your provider plan or switch AI service. If it happens often: add billing/credit to your provider account (free tiers have tight per-minute quotas; paid traffic gets priority), or switch provider in Bot Marley → Settings.

The widget won’t switch on. Set a Privacy Policy URL on the Knowledge page — it’s required before the chat can go live.

I updated a page but the bot doesn’t know. Turn on Auto-sync content changes, or click Reindex All Content after major edits.

The bot gave an old phone number or email. Fill in the Contact Information fields on the Knowledge page — they override anything in your content.

A lead came in but no email arrived. Check the Notification email on the Widget page (empty = your admin email), and that the visitor didn’t untick the transcript-consent box. If emails generally struggle to leave your site, that’s a hosting/deliverability matter (SPF/DKIM), not the plugin.

Search results look cramped or too narrow. On the Search page, raise the Results width (Small → Medium/Wide/Full) — the default is deliberately narrow.

My AI bill is higher than expected. Lower top-k, set a max messages per session, and keep temperature low.

Still stuck after all this? That’s exactly what support is for — reach out from your customer portal and we’ll help.