
AI House answers customer questions using your own website content, with two answer branches:
On shared hosting the scarce resource is PHP workers, and a chat request that holds one
for several seconds is a real cost. This plugin is built around that limit: every outbound
call has a hard timeout, a circuit breaker, an answer cache, and a quota guard.
Measured cost per chat request: 3 database queries, 1-3 outbound HTTP calls, and zero writes to wp_options.
[mybot] shortcode, light and dark themesAI House has no server of its own. It sends nothing to the plugin authors, and it collects no analytics. It does call services that you configure, with your own accounts, and this section lists every one of them, what is sent, and where to read their terms.
The plugin does nothing until you enter a key. With no key configured there is no outbound request of any kind, other than the two self-tests you can press yourself.
What is sent: the visitor’s question, the recent turns of that conversation, your system prompt for the current language, and — when the knowledge base has a match — the retrieved text chunks. What is not sent: the visitor’s IP address, any WordPress user data, your other plugin settings, or anything from your admin screens.
The same three providers can supply embeddings (OpenAI, Google and OpenRouter). What is sent: the text of the content you chose to index, split into chunks. This happens only when you press Index knowledge, which you do yourself; nothing is indexed in the background without it.
What is sent: the text chunks and their vectors, plus the question’s vector when a search runs, so the nearest chunks can be returned. If you turn on the optional conversation mirror, the conversation text is copied there too.
If you paste a webhook URL (n8n, Zapier, Make, your own endpoint) and switch on the hand-over form, AI House POSTs the visitor’s question and the contact details they typed — name, email, phone and their note — to that URL. You choose the destination; the plugin has no default and sends nothing when the field is empty.
You are the data controller for your visitors’ conversations. Before enabling a provider, read its terms, and tell your visitors what you do with their messages in your own privacy policy. WordPress’s own guidance on this is at https://wordpress.org/documentation/article/privacy/.
Two shortcodes, for two different kinds of page.
[mybot] — the chat widget, inline. Put it on a support page when you want the conversation itself to be the page.
`
[mybot title=”Support” height=”480″ theme=”light” lang=”en”]
`
Attribute
Default
What it does
title
the bot’s name
The heading above the chat. Set by you, so the script leaves it alone.
height
480
Height in pixels of the inline widget.
theme
light
light or dark.
mode
auto
auto (the plugin decides), quick (always the model) or deep (always your content).
lang
the site’s chat language
Which language the chat opens in, when it is one of the twelve.
[mybot_help] — a help-centre block: search over your own pages, then a way to reach a person. This is the shape of a support front page: a heading, a large search box, results as the visitor types, topic links you choose, and a button that opens the assistant. It searches your published pages and posts only — never the knowledge base you imported, which is private on purpose.
`
[mybot_help title=”How can we help?” subtitle=”Search the guides, or ask the assistant.” placeholder=”Search the help pages” button=”Search” ask=”Ask the assistant instead” topics=”Getting started|/getting-started, Billing|/billing”]
`
Attribute
Default
What it does
title
“How can we help?”
The heading.
subtitle
empty
One line under the heading.
placeholder
“Search the help pages”
Text inside the search field.
button
“Search”
The submit button’s label.
label
“Search the help pages”
What a screen reader announces for the field.
ask
“Ask the assistant instead”
The button that opens the chat.
topics
empty
Comma-separated label and URL pairs, drawn as chips under the box. A refused URL scheme is dropped.
Every visible word is an attribute, so the page can be written in your visitors’ language without touching the plugin. No template is needed: paste the shortcode into an ordinary Page and it renders.