FuerteventuraTV AI Chatbot — Documentation (WordPress)
FuerteventuraTV AI Chatbot is a floating, multilingual AI chat widget for WordPress. It adds an assistant to your site that answers visitors in English, Italian or Spanish, driven by your own NVIDIA NIM key — kept encrypted on the server, never exposed to the browser — with no per-message fee from us. It is the WordPress companion edition to El Savio (the Joomla version) and is aimed at tourism and editorial sites that receive international visitors asking the same routine questions in several languages.
Requirements: WordPress 6.0 or newer, PHP 8.1 or newer.
Installation
- Download the plugin
.zipfrom your purchase email or your account. Keep it zipped. - In your WordPress dashboard go to Plugins → Add New Plugin → Upload Plugin.
- Choose the
fvtv-chatbotzip file, click Install Now, then Activate. - After activation the plugin's settings screen appears in the admin menu.
Configuration
All settings live on the plugin's own settings screen in the admin menu. The main steps after activation:
- Enter your Download Key. You receive it with your licence email after purchase. Paste it into the key field on the settings screen — this unlocks licensed one-click updates from the GMC / FuerteventuraTV update server.
- Add your NVIDIA NIM key. The chatbot runs on NVIDIA NIM with your own provider key. Enter it in the settings; it is stored encrypted on the server and is never sent to visitors' browsers. There is no per-message fee from us — you only pay your provider.
- Configure the AI profile. Set the assistant's profile so its answers stay on-brand for your site.
- Set up quick replies. Define quick replies to steer visitors toward the most common conversations.
- Configure the local FAQ fallback. Common questions answered by the local FAQ use no AI calls at all, so those replies are instant and cost nothing in provider credits.
- Point the RSS news feed at your content. The assistant can surface your current site content in its answers instead of replying in a vacuum.
Rate limiting on the chat endpoint is built in, protecting it from abuse without extra configuration.
Using the plugin
The floating chat widget
Once configured, the widget appears as a floating chat button on your site's frontend. Visitors can chat in English, Italian or Spanish, with language switching, and the plugin respects your site's multilingual setup. Quick replies appear in the widget to guide visitors to the answers most sites are asked for.
FAQ fallback and AI answers
When a visitor's question matches a local FAQ entry, the answer is served immediately with no AI call — fast, and free of provider usage. Genuinely new questions are sent to NVIDIA NIM using your key. The plugin also works without any AI key at all: in that case it falls back entirely to the local FAQ answers, so the widget still responds to common questions.
REST endpoint
The widget talks to the server through a REST endpoint at fvtvchatbot/v1/chat. Requests to it are rate-limited, and the provider key stays server-side at all times. You do not normally need to touch this endpoint — it exists for the widget itself.
Updates & licence
Updates are automatic. With your Download Key in place on the settings screen, the plugin checks the GMC / FuerteventuraTV update server on its own (about every 12 hours) and offers new versions under Plugins and Dashboard → Updates, like any other plugin, for as long as your licence is active. You can also re-download the latest build from your account at any time.
The software is released under the GNU GPL. Your purchase (EUR 49, one-time) gives you the official build, licensed one-click updates and support for one site. If you need it on more sites or for client projects, contact us for a volume or agency arrangement. The licence covers the fvtv-chatbot WordPress plugin only; the Joomla edition (El Savio) and the ESE-line variant are separate products.
Support
For help, reply to your purchase email or message us on WhatsApp at +34 633 168 995 — the same line shown in your licence email. Please include:
- the product name and version,
- your WordPress and PHP versions,
- a public URL or a screenshot of the issue (with any keys masked).
We answer in English, Italian and Spanish. If the plugin does not work as described and we cannot fix it for you, you can request a refund within 14 days of purchase.
Everything included
79 real features, grouped by area — the full depth of the El Savio AI chatbot, shipped identically for Joomla and WordPress.
AI conversation engine
- Choice of 16 top LLMs out of the box — pick from Meta Llama 3.1/3.2/3.3/4, NVIDIA Nemotron, Mistral/Mixtral, Google Gemma 3, OpenAI GPT-OSS and Qwen 3, all on NVIDIA NIM.
- Tune quality against cost — configurable temperature, max-tokens budget, conversation-history depth and request timeout.
- Complete-answer length control — a token-budget-scaled directive makes the model finish every sentence and list instead of cutting off mid-reply.
- Custom provider endpoint — point the client at any NVIDIA-NIM-compatible chat-completions URL if you self-route.
- Your key never touches the browser — all model calls run server-side, so credentials and prompts stay private.
- Multi-turn memory — recent conversation history is threaded into each request so answers stay in context.
Grounding & knowledge
- Answers grounded in your own content — replies stay on-brand and on-topic instead of generic web knowledge.
- Full custom knowledge base — paste your own facts, policies and details the assistant must know.
- Services / offer list — declare exactly what you sell so the bot promotes real offerings and knows what is off-menu.
- Editable persona — set the assistant's name, role and personality, plus a free-form extra system-prompt block.
- Per-page business context — on a host profile page (e.g. via com_agentize) the widget answers about that specific business, re-sanitised server-side.
- White-label mode — rename the assistant away from the FuerteventuraTV brand; the prompt switches to a neutral, fully option-driven identity with your own contacts and site URL.
- FAQ bypass matcher — configured questions answer instantly with zero AI credits, using contains / exact / regex matching (hardened PCRE limits).
- Works before an AI key is even set — matched FAQs and a localized EN/IT/ES fallback keep the widget responsive with no provider key configured.
- FAQ hit counters — see which canned answers get used most so you can refine them.
Live context (weather, marine & news)
- Live weather in the answer — current temperature, wind and gusts from Open-Meteo (no extra API key), cached and localized.
- Marine conditions — wave height, direction, period and sea level for coastal / surf-oriented sites.
- Automatic tide times — high/low tide events derived from the hourly sea-level series for the next 24 h.
- Configurable location — set latitude, longitude and a human label; defaults to Corralejo, Fuerteventura.
- Summarised RSS news in-prompt — up to three feeds (EN/IT/ES) fetched server-side so the bot can point visitors at your latest content.
- Fresh but cheap — weather and news each have independent, admin-tunable cache TTLs.
Multilingual & localization
- 11 live-context languages — weather, marine and news context rendered in EN, IT, ES, DE, FR, PT, PL, RU, CS, SK, HR.
- In-widget language switcher — visitors change language on the fly without reloading the page.
- Auto-detect visitor language — resolves from the site's language tag (Joomla) or WPML / Polylang / locale (WordPress), with a configurable default and an auto option.
- Localized welcome messages — per-language greeting text (blank keeps the built-in default).
- Per-language quick replies — clickable suggestion chips that steer common conversations, editable per language.
Chat widget & guest experience
- Floating chat button on every page — opens a modal chat panel with a smooth animation.
- Brandable launcher — choose an emoji or a logo image as the avatar, plus primary/secondary colours.
- Placement control — bottom-right or bottom-left corner.
- Rich formatted replies — XSS-safe Markdown rendering (bold, italic, inline code, headings, rules, bullet lists, links) instead of raw asterisks.
- Soft WhatsApp hand-off — for prices, hours or live availability the bot redirects to your configured WhatsApp number instead of inventing details.
- Opt-in conversation memory — chat history can persist in the browser between pages; off by default and cleared when disabled.
- No frontend dependencies — vanilla-JS widget, no jQuery or external libraries, safe on any template.
Lead capture & notifications
- Never miss off-offer demand — the model flags requests for things you don't sell (rental car, hotel, restaurant…) and triggers a notification instead of dead-ending.
- Email alerts — off-offer requests are emailed to an address that pre-fills with the admin's own email, with a configurable subject line.
- Webhook alerts — push the same alert to Slack, a Telegram bot, or any generic JSON endpoint.
- Notification log — read-only admin view of every alert with language, message preview, hashed IP and mail/webhook-sent flags.
- Throttled & non-blocking — notifications are rate-limited and never delay or block the visitor's reply.
Admin & operations
- Backend dashboard — at-a-glance status plus notification counters rolled up in a single query.
- FAQ manager — full create/read/update/delete of canned answers with language and match-type per entry.
- One-click NVIDIA connection test — round-trips the provider and reports latency plus friendly hints for 401/402/403/429/503 errors (with fix links).
- Health endpoint — ACL-gated diagnostic reporting provider-configured and database-schema status without ever leaking the key.
- Admin-assistant mode — opt-in, the widget runs inside the admin backend as a page-aware helper (current screen forwarded, re-validated server-side; blocked on users/installer/editor/options screens).
- Granular permissions — standard Joomla ACL rules on the component.
Visibility & placement controls
- Show-where rules — target by route/path prefix, exact page, or specific navigation menu items.
- Everywhere-or-nowhere control — wildcard default with per-page overrides.
- Vokira conflict guard — automatically hides this chatbot on pages where the premium Vokira concierge add-on renders, so two assistants never stack.
- Hard admin blacklist — the widget is never injected on login, installer, config, user-management or post-install screens.
Security & privacy
- Encrypted API key at rest — stored with XSalsa20-Poly1305 (libsodium), the key derived from the site's own secret/salts so ciphertext is bound to that install.
- Masked key field — the encrypted blob is never rendered in the browser; "leave blank to keep" prevents accidental overwrites.
- CSRF protection — enforced on every write endpoint.
- Atomic per-IP rate limiting — minute + hour windows via a single race-free SQL upsert; fail-open so the site stays up if the DB drops.
- Spoof-resistant IP detection — proxy headers (Cloudflare / nginx) honoured only for whitelisted trusted-proxy CIDRs.
- Injection-safe output — an http/https URL whitelist on model output and RSS links blocks
javascript:/data:payloads. - Hardened XML parsing — the RSS parser drops entity expansion (XXE / billion-laughs mitigation) and enforces no-network.
- Built-in security headers — X-Content-Type-Options, X-Frame-Options, Referrer-Policy and Permissions-Policy on frontend pages (non-destructive, never overwrites server values).
- Full CSP builder — off / report-only / enforce modes, per-directive extra script/style/img/connect sources, optional report URI and an unsafe-inline toggle.
- Manifest access lockdown — the installed
.htaccessdenies HTTP access to plugin XML/INI files. - GDPR-friendly by design — visitors must confirm the privacy notice before the first message; conversation persistence is opt-in; no data is sold or shared with the vendor.
- Custom privacy notice — configurable consent text and privacy-policy link inside the widget, remembered per host so it isn't re-asked every page.
Performance & caching
- Credit-saving FAQ shortcut — common questions resolved with no AI call at all.
- Cached live context — weather and news are cached with independent TTLs to cut upstream calls.
- Single-round-trip dashboard — notification counters aggregated in one SQL statement.
- Web Asset Manager delivery — CSS/JS registered through the CMS asset pipeline with version cache-busting, no duplicate tags.
- Self-cleaning rate table — expired rows are pruned probabilistically, no cron required.
Developer & API
- Public JSON chat endpoint —
chat.send(Joomla task) /POST /wp-json/fvtvchatbot/v1/chat(WordPress). - Public news endpoint —
news.get/GET /wp-json/fvtvchatbot/v1/news, cache-bypass disabled for callers. - Diagnostic health endpoint — ACL-gated status probe on both platforms.
- WordPress render filter —
fvtv_chatbot_should_renderto programmatically hide the widget (e.g. on checkout). - WordPress fallback filter —
fvtv_chatbot_pre_key_fallbackfor white-label sites to override offline FAQ replies. - Unit-tested core — PHPUnit suites cover crypto parity, FAQ matcher, rate limiter, prompt builder and weather compass; CI matrix runs PHP 8.2/8.3/8.4 with phpcs + phpstan.
Trust & licensing
- GPL v2 or later — the code is free / open-source; you keep full GPL rights.
- Self-hosted, no third-party chat service — conversations run through the provider you configure; nothing routes through the vendor.
- Bring your own NVIDIA NIM key — free-tier eligible, so there is no per-message fee from us.
- Licensed one-click updates — new versions install straight from the CMS backend via the GMC / FuerteventuraTV gateway while your licence is active (Joomla checks ~every 24 h, WordPress ~every 12 h).
- Validated update delivery — an update package is only accepted when the gateway returns a valid HTTPS
download_urlon fuerteventuratv.net. - Download Key model — a key from your licence email unlocks updates; re-download the latest build from your account anytime.
- Support & refund — support in EN/IT/ES via email or WhatsApp; 14-day refund if it doesn't work as described and can't be fixed.
- Proven in production — answers real visitors daily on the fuerteventuratv.net tourism portal.
Joomla & WordPress
- Joomla — ships as one
pkg_fvtvchatbotpackage (componentcom_fvtvchatbot+ system pluginplg_system_fvtvchatbot); widget UI available in all 11 languages; requires Joomla 5.1+ / 6.x and PHP 8.2+. Install the single package zip only — never the inner zips. - WordPress — single
fvtv-chatbotplugin; widget UI ships EN/IT/ES with full 11-language system-prompt and UI-pack parity added in 1.0.24; integrates with WPML/Polylang for language auto-detect; API key encrypted from WP salts; requires WordPress 6.2+ and PHP 8.2+. The two builds are maintained in lockstep as feature-parity twins (weather/marine, off-offer notify, FAQ engine, admin-assistant mode, visibility controls and Vokira guard all present on both).


