Skip to Content

Chatbot Pilot

Chatbot Pilot is een AI customer support chatbot voor WordPress. Hij komt als een floating chat widget op de frontend en een volledige administratie- omgeving in Instellingen → Chatbot Pilot. De plugin biedt twee operating modes:

  • n8n mode — de widget stuurt elk bezoekersbericht via webhook door naar een externe n8n  workflow. Gebruik dit wanneer je al automations, custom logic of third-party integraties buiten WordPress draait.
  • Native RAG mode — de plugin indexeert je eigen site-content (posts, pages, custom post types) in chunks die in een lokale SQLite-database worden opgeslagen, haalt de meest relevante passages op tijdens query time en genereert een antwoord met de LLM-provider van jouw keuze (OpenAI, Anthropic Claude, Google Gemini, DeepSeek of een self-hosted Ollama-instance).

Beide modes delen dezelfde widget, hetzelfde conversation log en dezelfde feedback-/export-tools, dus je kunt op elk moment van backend wisselen zonder de bezoeker-facing ervaring te verliezen.

Chat widget
Chat widget gerenderd op de frontend.

Voordelen

  • Dual backend: n8n-webhook of volledig native Retrieval-Augmented Generation.
  • Multi-provider LLM-ondersteuning: OpenAI, Anthropic Claude, Google Gemini, DeepSeek, Ollama (lokaal).
  • Native RAG-engine met SQLite-storage, configureerbare chunk size en top-K retrieval.
  • Background indexing via WordPress cron, zodat re-indexeren nooit de admin UI blokkeert.
  • Customizable widget: positie, primary/background/text colors, user- en bot-bubble-colors, dimensies, border radius, typografie.
  • Bewerkbare teksten voor welkomstbericht, subtitle, input-placeholder, loading-state en error-message.
  • Conversation log met per-message feedback (thumbs up / thumbs down) en CSV-export.
  • Ingebouwde health check die provider-connectivity, index-status en webhook-bereikbaarheid verifieert.
  • Multilingual ready via Polyglot — widget-teksten en knowledge base kunnen per taal worden geserveerd.

Vereisten

De plugin is self-contained en vereist in Native RAG mode geen externe service buiten de LLM-API van jouw keuze. De meegeleverde vector store gebruikt SQLite, dat in elke standaard PHP-build beschikbaar is.

ComponentAanbevolen
WordPress6.2 of nieuwer (getest tot 7.0)
PHP7.4 of nieuwer (8.x aanbevolen)
DatabaseMySQL/MariaDB voor WordPress-data, SQLite voor de vector-index
HTTPSVereist voor webhook- en provider-calls
Outbound networkVereist om de geselecteerde LLM-provider te bereiken

Voor n8n mode heb je daarnaast een bereikbare n8n-instance nodig met een Webhook-node geconfigureerd om POST-requests te accepteren. Voor Ollama heb je een draaiende Ollama-server nodig die bereikbaar is vanaf de WordPress-host (meestal http://localhost:11434).

Installatie

  1. Open Plugins → Nieuwe plugin → Plugin uploaden in de WordPress-admin en upload het Chatbot Pilot ZIP-bestand.
  2. Activeer Chatbot Pilot.
  3. Open Instellingen → Chatbot Pilot. De plugin maakt zijn database- tabellen en default-opties aan bij de eerste load.
  4. Kies de backend mode (n8n of Native RAG) en rond de provider- configuratie hieronder af.
  5. Klik in Native RAG mode minstens één keer op Reindex om de knowledge base te vullen voordat je de widget aan bezoekers blootstelt.
  6. Bezoek een willekeurige publieke pagina op de frontend om te bevestigen dat de widget op de geconfigureerde positie verschijnt.

De widget wordt automatisch op elke pagina ge-enqueued zodra de plugin geconfigureerd is; geen shortcode of theme-edit nodig.

Configuratie

Het settings-scherm staat onder Instellingen → Chatbot Pilot en is verdeeld over zes tabs — General, AI / RAG, Appearance, Icons, Texts en Feedback. Alle waarden worden per site opgeslagen (of per network-site op multisite) en kunnen gewijzigd worden zonder opnieuw te indexeren, behalve de indexing-parameters zelf.

General

Chatbot Pilot — Settings, General-tab
General-tab — License, hoofdschakelaar Enable Chatbot, per-URL Visibility-lijst en de Balloon Notification-kaart met zijn delay.

De General-tab bevat drie kaarten:

  • License — plak je PILOT-XXXX-XXXX-XXXX-XXXX-key en druk op Verify & Save om automatische plugin-updates te activeren.
  • General → Enable Chatbot — hoofdschakelaar om de widget op de site te tonen.
  • Visibility → Hidden on these URLs — comma- of newline-separated lijst van paden waarop de widget verborgen moet blijven (prefix-matches: /login verbergt ook /login/).
  • Balloon Notification — popt een balloon-style hint naast de chat-bubble na een configureerbare delay (Show After in seconden, 0 = direct) om aandacht te trekken.

Backend mode

Kies precies één backend. De keuze bepaalt welke volgende velden zichtbaar zijn.

  • n8n webhook — de widget POST het bezoekersbericht, conversation ID en huidige page URL naar de webhook die je opgeeft. De verwachte response is een JSON-payload met een reply-string die naar de gebruiker wordt terug gerenderd.
  • Native RAG — het request wordt in-process afgehandeld. De plugin haalt de top-K meest relevante chunks uit de lokale index, bouwt een prompt en roept de geconfigureerde LLM-provider aan.

n8n-instellingen

Alleen zichtbaar wanneer de backend mode is ingesteld op n8n webhook.

  • Webhook URL — volledige HTTPS-URL van je n8n Webhook-node.
  • Authentication header (optioneel) — naam en waarde van een header die bij elke request wordt meegestuurd, handig voor shared-secret- protected webhooks.
  • Timeout — maximale tijd, in seconden, om op een reply te wachten voordat de errormelding aan de gebruiker wordt getoond.

AI provider (Native RAG)

Alleen zichtbaar wanneer de backend mode is ingesteld op Native RAG.

AI provider settings
AI provider settings

Selecteer één provider en vul de bijbehorende velden in:

ProviderNotities
OpenAIBeste overall kwaliteit met de GPT-4-familie. Vereist een API key van platform.openai.com.
Anthropic ClaudeSterke reasoning en tone control. Vereist een API key van console.anthropic.com.
Google GeminiSnelle responses tegen competitieve prijzen. Vereist een key van Google AI Studio.
DeepSeekBudget-vriendelijke optie met sterke performance op technische content.
OllamaDraait lokaal. Configureer de base URL (default http://localhost:11434) en de modelnaam. Geen API key nodig.

Elke provider toont dezelfde drie velden:

  • API key (of base URL voor Ollama) — opgeslagen in de WordPress options-tabel; nooit aan de frontend blootgesteld.
  • Model — de specifieke model-identifier om aan te roepen (bijvoorbeeld gpt-4o-mini, claude-3-5-sonnet, gemini-1.5-flash, deepseek-chat, llama3.1:8b).
  • Test connection — stuurt een minimale ping naar de provider en rapporteert success of de verbatim error die door de API is teruggegeven. Draai dit altijd na het wijzigen van de key of het model.

Knowledge base

Regelt hoe de Native RAG-index gebouwd en bevraagd wordt. Wijzigingen aan de chunking-parameters worden effectief bij de volgende reindex.

  • Source path — comma-separated lijst van post types (of een root URL) om te ingesten. Laat op de default post,page staan om de hele site te indexeren, of beperk tot een specifiek knowledge-base CPT.
  • Chunk size — token count van elke chunk geschreven naar de index. Default 500. Kleinere chunks verbeteren retrieval-precisie; grotere chunks behouden meer surrounding context.
  • Top-K — aantal chunks dat per bezoekersvraag wordt opgehaald en als context aan de LLM wordt doorgegeven. Default 5.
  • Reindex — plant een volledige rebuild via WP-Cron. De progress bar toont het aantal documents queued, processed en skipped. Terwijl de job draait blijft de bestaande index queries servicen.
  • Clear index — drop elke rij uit de vector-tabel. Gebruik dit voordat je het embedding-model wisselt.

Appearance

Elk visueel aspect van de widget is bewerkbaar vanuit deze tab. De live preview rechts update meteen wanneer je waarden wijzigt.

Appearance settings
Appearance settings

Positie

  • Bottom-right (default)
  • Bottom-left

Colors

  • Primary color — header background, send button, focus rings.
  • Background color — achtergrond van het chat-venster.
  • Text color — basis tekstkleur binnen het venster.
  • User message color — bubble-achtergrond voor de bezoeker.
  • Bot message color — bubble-achtergrond voor de assistant.

Dimensies

  • Window width en window height — in pixels.
  • Launcher button size — diameter van de floating button.
  • Border radius — toegepast op het venster, de bubbles en de launcher.

Typografie

  • Font family — erft standaard van het theme; kan overschreven worden met elke CSS font stack.
  • Base font size — toegepast op de chat-body.

Icons

Chatbot Pilot — Icons-tab
Icons-tab — kies het launcher-icoon (chat-bubble, message, robot, support, sparkle), het close-icoon en het send-icoon, of upload je eigen SVG/PNG.

De Icons-tab koppelt branding los van de Appearance-tab, zodat je de launcher-, close- en send-iconen kunt wisselen zonder kleuren of maten aan te raken. De meegeleverde set dekt de meest voorkomende chat-patronen; het veld Custom URL accepteert elke publiekelijk bereikbare SVG of PNG.

Texts

Chatbot Pilot — Texts-tab
Texts-tab — elke bezoeker-facing string op één plek: header title en subtitle, welkomstbericht, input-placeholder, loading- en error-tekst, feedback prompt en balloon notification copy.

Elke bezoeker-facing string staat op de Texts-tab, zodat je de widget kunt vertalen of herformuleren zonder het visuele theme aan te raken:

  • Welcome message — eerste bericht dat getoond wordt zodra een bezoeker de widget opent.
  • Subtitle — kleine tekst onder de title in de header.
  • Input placeholder — tekst getoond in het lege input-veld.
  • Loading text — getoond tijdens het wachten op de assistant reply.
  • Error message — getoond wanneer de backend-call faalt of timeout geeft.
  • Feedback prompt — tekst getoond boven de thumbs-up- / thumbs-down- controls (wanneer feedback ingeschakeld is).
  • Balloon Notification text — tekst getoond in de balloon-hint.

Visibility-regels

  • Show on — kies tussen All pages, Only on selected pages of Everywhere except selected pages. Page IDs worden als comma-separated lijst ingevoerd.
  • Hide for logged-in users — toggelt de widget uit voor geauthenticeerde sessies.
  • Mobile breakpoint — viewport-breedte waaronder de widget naar een compacte layout inklapt.

Feedback & analytics

  • Enable feedback buttons — voegt thumbs-up- / thumbs-down-controls onder elk assistant-bericht toe.
  • Store conversations — bewaart het volledige transcript in de tabel wp_chatbotpilot_conversations voor review en export.
  • Retention period — aantal dagen waarna opgeslagen conversations door de daily cron-job worden gewist. Zet op 0 om voor altijd te bewaren.

Health check

Het health-check-panel is altijd zichtbaar bovenaan het settings-scherm. Het runt drie probes en toont een gekleurde status-pill voor elke:

  • Provider reachability — roept de LLM-API aan met een one-token-ping.
  • Index status — telt chunks in de SQLite-store en rapporteert de timestamp van de laatste succesvolle reindex.
  • Webhook reachability (n8n mode) — stuurt een OPTIONS-request naar de geconfigureerde webhook-URL.

Elke niet-groene status is klikbaar en klapt uit naar de verbatim error die door de onderliggende call is teruggegeven, wat meestal genoeg is om het probleem te diagnosticeren.

Gebruik

Voor bezoekers

De widget verschijnt op elke pagina waar de visibility-regels gelden. De bezoeker klikt op de launcher-knop om het venster te openen, leest het welkomstbericht en typt een vraag in het input-veld. Het indrukken van Enter of de send-knop verstuurt het bericht; de widget toont de loading-tekst en rendert vervolgens de assistant reply met markdown- formatting (bold, links, ordered en unordered lists, code blocks).

Zijn de feedback-knoppen ingeschakeld, dan kan de bezoeker elk assistant- bericht beoordelen. De rating wordt opgeslagen tegen de message ID, zodat hetzelfde antwoord later in het admin-paneel kan worden gereviewd.

Voor beheerders

Dagelijkse administratie gebeurt op twee plekken:

  • Instellingen → Chatbot Pilot voor configuratie en het health-check- panel.
  • Chatbot Pilot → Conversations voor het conversation log en de feedback-export.
Feedback en conversation log
Feedback en conversation log

Het conversation log lijst elke sessie met de datum, de originating page, het aantal berichten en de aggregate feedback. Elke rij kan uitgeklapt worden om het volledige transcript te tonen, inclusief de retrieved context passages in Native RAG mode. De knop Export CSV bovenaan de lijst produceert een UTF-8 CSV met één rij per bericht; hij respecteert elk actief date- of rating-filter.

Reindexen na content-wijzigingen

De native index update zichzelf niet in real time. Trigger een reindex wanneer:

  • Je een batch posts publiceert of substantieel bewerkt.
  • Je de chunk size, de source path of het embedding-model wijzigt.
  • Het health-check-panel stale of empty index-status rapporteert.

Voor incrementele updates reindexeert de plugin ook een enkele post bij save wanneer de optie Auto-reindex on save is ingeschakeld in de Knowledge Base-tab. Dit voegt een kleine overhead toe aan elke post-save maar houdt de knowledge base zonder handmatige interventie in sync.

Backends wisselen

Je kunt op elk moment tussen n8n en Native RAG wisselen. De widget, het conversation log en de feedback-store worden over modes gedeeld. Bij het voor het eerst overstappen op Native RAG: vergeet niet Reindex te draaien voordat de widget vragen kan beantwoorden.

Screenshots

De screenshots hieronder corresponderen met de vier hoofd-gebieden van de admin-interface en de frontend widget.

Frontend chat widget

Chat widget gerenderd op een pagina
Chat widget gerenderd op een pagina

AI provider configuratie

Provider-selectie, API key, model en connection test
Provider-selectie, API key, model en connection test

Widget appearance editor

Live preview met positie, kleuren, dimensies en teksten
Live preview met positie, kleuren, dimensies en teksten

Conversation log en feedback-export

Conversation-lijst met feedback-indicatoren
Conversation-lijst met feedback-indicatoren

FAQ

Welke backend moet ik kiezen?

Gebruik Native RAG wanneer het je doel is om vragen te beantwoorden over je eigen site-content en je een self-contained oplossing wilt die alleen een LLM API key nodig heeft. Gebruik n8n wanneer je de chatbot wilt combineren met externe tools (CRM-lookups, ticketing, custom routing), of wanneer de conversation acties buiten WordPress moet triggeren.

Moet ik n8n installeren om de plugin te gebruiken?

Nee. n8n is alleen nodig wanneer je n8n als backend mode selecteert. Native RAG mode is volledig self-contained.

Wordt mijn data naar een derde partij gestuurd?

In Native RAG mode worden elke prompt en de retrieved context naar de LLM-provider gestuurd die je geselecteerd hebt. Is dit onaanvaardbaar, draai de plugin dan tegen een lokale Ollama-instance — er verlaat dan geen data de server. In n8n mode wordt elk bericht naar je eigen n8n-endpoint gestuurd; wat daarna gebeurt hangt af van de workflow die je bouwt.

Waar wordt de index opgeslagen?

De vector-index is een SQLite-bestand in wp-content/uploads/chatbot-pilot/. De WordPress options-tabel houdt de chatbot-configuratie, en de tabel wp_chatbotpilot_conversations houdt het conversation log.

Kan ik het op een meertalige site gebruiken?

Ja. Met Polyglot geïnstalleerd ingest de indexer de vertaalde versies van elke post en wordt de widget-tekst per taal geserveerd. Zonder Polyglot kun je nog steeds één widget per taal draaien door de source path te beperken tot taal-specifieke categorieën.

Ondersteunt het custom post types?

Ja. Voeg de CPT-slugs toe aan het veld Source path, comma-separated, en reindex.

Kan ik conversations exporteren?

Ja. De knop Export CSV op het Conversations-scherm produceert een UTF-8 CSV-bestand met één rij per bericht, inclusief de rating, de timestamp, de originating page en de volledige berichttekst.

Hoe verwijder ik de data van een bezoeker?

Open Chatbot Pilot → Conversations, filter op session ID of op IP en gebruik de Delete-actie op de matchende rijen. De conversation en zijn feedback-entries worden meteen verwijderd.

Werkt de widget zonder JavaScript?

Nee. De widget is een JavaScript single-page component; hij valt niet gracieus terug op een noscript-fallback.

Troubleshooting

De widget verschijnt niet op de frontend

  • Verifieer dat de backend mode is ingesteld en dat de relevante credentials (API key of webhook URL) zijn opgeslagen.
  • Check de visibility-regels — de pagina kan uitgesloten zijn.
  • Inspecteer de browser console: een 4xx-response van admin-ajax.php duidt meestal op een permissions- of nonce-probleem veroorzaakt door een agressieve cache-plugin.

De assistant antwoordt met de errormelding

Open het health-check-panel en klik op de rode status-pill om de provider-error verbatim te lezen. Veel voorkomende oorzaken:

  • Verlopen of ingetrokken API key.
  • Het geselecteerde model is niet beschikbaar voor je account of regio.
  • Rate limit overschreden — wacht of upgrade het provider-plan.
  • De webhook-URL geeft een non-2xx-status terug.

Reindexen lijkt vast te zitten

WordPress cron vuurt alleen wanneer de site verkeer ontvangt. Trigger een handmatige page hit, of roep wp cron event run --due-now aan vanuit WP-CLI. De progress bar ververst elke paar seconden terwijl de job draait.

Antwoorden zijn off-topic of gehallucineerd

  • Reindex na recente content-edits.
  • Verhoog Top-K om het model meer context te geven.
  • Verlaag Chunk size voor finer-grained retrieval, daarna reindexen.
  • Probeer een sterker model (bijvoorbeeld overschakelen van GPT-4o-mini naar GPT-4o, of van Gemini Flash naar Gemini Pro).

Ollama-replies zijn erg traag

Lokale inference-snelheid hangt volledig af van de host. Gebruik een quantized model (:q4_K_M of vergelijkbaar), zorg dat GPU-acceleratie ingeschakeld is en houd de chunk size en top-K bescheiden.

Conversations worden niet opgeslagen

Bevestig dat Store conversations ingeschakeld is in de tab Feedback & analytics en dat de tabel wp_chatbotpilot_conversations bestaat. De plugin deactiveren en heractiveren maakt ontbrekende tabellen opnieuw aan.

Last updated on