=== Botermin – AI Chatbot & Appointment Booking ===
Contributors: markusgeretshauser
Tags: chatbot, ai, appointment booking, booking, chat
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.8.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

An AI chatbot that answers questions about your business from your own pages and books appointments in the conversation.

== Description ==

Visitors ask, the bot answers — with the texts from your own pages, not with invented ones. And when someone wants an appointment, they get it in the same conversation: the bot names the free slots, takes the booking and sends the confirmation by email.

You bring the API key of an AI provider of your choice. The plugin does not sell tokens and does not put itself between you and the provider.

= What it does =

* Chat window on the website, appearance fully configurable
* Answers from your own pages — the bot reads them and stays up to date on its own when you change the text. As many pages as you like.
* Appointment booking in the conversation: opening hours, breaks, buffers, lead time, booking window, blocked days
* As many services as you like, each with its own duration and price
* Workstations: lifts, chairs, rooms or staff, so several appointments can run at the same time
* Confirmation email to the customer and notification to the business, configurable per event
* Reminder email before the appointment and a review request afterwards
* The bot answers in the language of the visitor, with your own texts per language
* Ten AI providers to choose from, including ones that process in the EU, with automatic failover between them
* Cost cap per day and per month, so an API key cannot run away with you
* Statistics on conversations, topics, providers and costs; appointments exportable as CSV
* Consent before the first message, configurable retention periods, deletion and export of chat data on request
* Everything stays on your own installation: no account with us, no relay server, no licence key

There is no trial period and nothing is switched off after a while. What is in this package works, without a limit and without an upgrade.

= Which AI providers =

Anthropic Claude, Mistral AI, OpenAI, Google Gemini, Groq, DeepSeek, OpenRouter and xAI Grok — plus any provider that speaks the OpenAI protocol, a local Ollama or LM Studio included. Each provider is marked in the interface for where it processes data, so you can see at a glance what fits your privacy policy.

= What is not in this plugin =

The following parts are a separate paid plugin by the same developer and are not contained in this package:

* Google Calendar, Apple/CalDAV, ICS subscription feed
* Deposit via Stripe, PayPal or bank transfer
* Telegram, WhatsApp, Instagram and Facebook Messenger
* Callback requests when the bot cannot answer
* Waiting list with automatic move-up
* Customers reschedule and cancel their appointment themselves
* Client management for agencies

You can install that plugin over this one at any time. Settings, appointments and conversations are kept.

== External services ==

This plugin talks to exactly one kind of external service: the AI provider **you** choose and configure with your own API key. Until you store a key, nothing leaves your server.

**What is sent, and when.** Every time a visitor sends a message in the chat, the plugin sends to the provider you selected: that message, the previous messages of the same conversation, the text of the pages you picked for the knowledge base, the business information you entered, and your list of services and free appointment slots. It does not send the visitor's name, email address, IP address or any WordPress user data. The provider's answer comes back and is shown in the chat.

**Which provider.** You pick one in the settings. Each is used only if you enter its key:

* Anthropic Claude — api.anthropic.com — [Terms](https://www.anthropic.com/legal/commercial-terms) · [Privacy](https://www.anthropic.com/legal/privacy)
* Mistral AI — api.mistral.ai — [Terms](https://mistral.ai/terms) · [Privacy](https://mistral.ai/terms#privacy-policy)
* OpenAI — api.openai.com — [Terms](https://openai.com/policies/terms-of-use/) · [Privacy](https://openai.com/policies/privacy-policy/)
* Google Gemini — generativelanguage.googleapis.com — [Terms](https://ai.google.dev/gemini-api/terms) · [Privacy](https://policies.google.com/privacy)
* Groq — api.groq.com — [Terms](https://groq.com/terms-of-use/) · [Privacy](https://groq.com/privacy-policy/)
* DeepSeek — api.deepseek.com — [Terms](https://cdn.deepseek.com/policies/en-US/deepseek-terms-of-use.html) · [Privacy](https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html)
* OpenRouter — openrouter.ai — [Terms](https://openrouter.ai/terms) · [Privacy](https://openrouter.ai/privacy)
* xAI Grok — api.x.ai — [Terms](https://x.ai/legal/terms-of-service) · [Privacy](https://x.ai/legal/privacy-policy)
* Ollama / LM Studio or any other OpenAI-compatible endpoint — the address is yours; with a local model nothing leaves your network at all.

**Nothing else.** The plugin does not contact the developer. There is no telemetry, no licence check, no update server of its own, no external fonts and no external scripts.

== Privacy ==

Before the first message the visitor has to agree. How long conversations are kept is up to you, and the plugin answers WordPress's own requests for exporting and erasing personal data.

Which provider processes the data — and where — is your decision and belongs in your privacy policy. The interface tells you the location for every provider.

The chat window shows no credit and no link to the developer unless you switch that on yourself under *Appearance*. It is off when you install the plugin and stays off until you tick the box.

== Installation ==

1. Install and activate the plugin.
2. Open *Botermin → Settings* and enter the API key of a provider under *AI providers*.
3. Under *General*, select the pages whose text the bot should use for its answers.
4. Under *Appointment booking*, set your services, and under *Opening hours* set your times.
5. Save. The chat window is now on the website.

Nothing is sent anywhere until an API key is stored.

== Frequently Asked Questions ==

= Do I need an account with you? =

No. The plugin runs entirely on your installation. You need an API key from an AI provider — that is a contract between you and that provider.

= What does it cost to run? =

Only what your AI provider charges. A short conversation is a fraction of a cent with most providers. The plugin has a cost cap per day and per month; when it is reached, the bot stops answering rather than running up a bill.

= Can I use a local model? =

Yes. Anything that speaks the OpenAI protocol works, including Ollama and LM Studio on your own machine. Then nothing leaves your network at all.

= Does the bot invent answers? =

It answers from the pages you selected and is instructed to say that it does not know rather than to guess.

= Does the appointment booking work without an external calendar? =

Yes. The plugin has its own calendar and decides availability itself.

= Is there a limit on services, pages or appointments? =

No. There is no limit anywhere in this plugin, and no trial period.

= Is it GDPR compliant? =

The plugin brings what it needs for that: consent before the first message, retention periods you set, export and erasure. Whether the whole thing is compliant depends on which provider you choose and what is in your privacy policy. The interface marks every provider by where it processes.

== Screenshots ==

1. The chat window on the website: the bot answers and offers free slots
2. The appointments in the backend
3. Settings: AI providers, each marked with where it processes data
4. Settings: services, time grid and blocked days
5. Statistics: conversations, topics and cost per provider
6. Appearance, including the credit notice that is off until you switch it on

== Changelog ==

= 1.8.3 =
* First release in the directory.
