Title: Attendant &#8211; AI Site Search &amp; Content Finder
Author: sungraizfaryad
Published: <strong>June 19, 2026</strong>
Last modified: June 19, 2026

---

Search plugins

![](https://ps.w.org/attendant/assets/banner-772x250.png?rev=3578672)

![](https://ps.w.org/attendant/assets/icon-256x256.png?rev=3578672)

# Attendant – AI Site Search & Content Finder

 By [sungraizfaryad](https://profiles.wordpress.org/sungraizfaryad/)

[Download](https://downloads.wordpress.org/plugin/attendant.2.0.0.zip)

 * [Details](https://wordpress.org/plugins/attendant/#description)
 * [Reviews](https://wordpress.org/plugins/attendant/#reviews)
 *  [Installation](https://wordpress.org/plugins/attendant/#installation)
 * [Development](https://wordpress.org/plugins/attendant/#developers)

 [Support](https://wordpress.org/support/plugin/attendant/)

## Description

Attendant is an AI-powered site search chatbot that helps your visitors find content
on your website. When someone asks a question in plain language, Attendant searches
your own posts, pages, products, and listings, then answers right in the chat — 
so visitors reach the right page without digging through menus. It combines **conversational
search** with **knowledge Q&A** in one chat widget.

Replies stay short and scannable: the assistant links to matching pages as clickable
buttons, offers tappable choices when the next step is a selection, and guides the
visitor with one question at a time when a search comes up empty. The conversation
is remembered in the visitor’s own browser so it survives page changes and refreshes.
When the assistant genuinely cannot help, you can optionally let it offer a callback
and email the request to your team.

**Mode 1 — Smart Search (for sites with listings)**
 A visitor says: “Find me apartments
in Lisbon under €500K with 3 bedrooms”  Attendant extracts the parameters, searches
your WordPress database, and answers in the chat with clickable buttons to the matching
listings.

**Mode 2 — Knowledge Q&A (for all sites)**
 A visitor says: “What is your return
policy?”  Attendant searches your indexed content and answers the question with 
source citations.

**The AI automatically picks the right mode** based on what the visitor is asking.

#### Key Features

 * **Auto-discovers your site** — scans post types, taxonomies, and custom fields(
   ACF, MetaBox, WooCommerce) automatically
 * **Function calling** — uses OpenAI’s tools API for guaranteed structured search
   parameters, not fragile text guessing
 * **Direct database access** — queries WordPress directly (no HTTP crawling = faster,
   more accurate)
 * **Clickable source buttons** — every answer links to the matching pages as buttons,
   so replies stay short and scannable
 * **Tap-to-answer chips** — when the next step is a choice (refine the search, 
   pick a time), the visitor taps an option instead of typing
 * **Guided help on no results** — when nothing matches, the assistant offers real
   alternatives drawn from your own content and asks one question at a time to narrow
   things down
 * **Conversation history** — the chat is remembered in the visitor’s own browser,
   so it survives page changes and refreshes; a “New chat” button and a “Previous
   chats” list are built in
 * **Callback / lead capture (optional, off by default)** — when the assistant cannot
   help, it can offer a callback, collect the email the visitor provides (and optionally
   a phone number and preferred time), and email the request to you
 * **RAG Q&A** — embeds your content, searches by cosine similarity, answers with
   source links
 * **Custom Q&A pairs** — admins can add specific answers that always take priority
 * **About-this-site context** — a short description you write that helps the assistant
   understand what your site is for
 * **Manual or background indexing** — index on demand with a live activity log,
   or let it run in the background; the widget stays hidden until the first index
   completes so visitors never see half-indexed answers
 * **Bring Your Own Key** — works with your own OpenAI API key, no SaaS subscription
   required
 * **Privacy-first** — conversation logging and lead capture are both OFF by default;
   IP addresses are never stored

#### Who It’s For

 * Real estate directories (find properties by price, bedrooms, location)
 * Job boards (find jobs by type, salary, location, remote)
 * WooCommerce stores (find products by price, category, attributes)
 * Event sites (find events by date, location, category)
 * Doctor/medical directories
 * Any WordPress site with custom post types

#### Requirements

 * PHP 8.0 or higher
 * WordPress 6.0 or higher
 * OpenAI API key

### External services

This plugin connects to the OpenAI API. This is required for the AI chat features:
OpenAI turns a visitor’s natural-language question into a structured search of your
own content and writes the answer.

What is sent, and when: only when a visitor sends a chat message, the plugin sends
that message text plus the titles and short excerpts of the matching content from
your own site to OpenAI. If you enable the optional Semantic Q&A mode, the text 
of your selected content is also sent to OpenAI during indexing to generate embeddings.
Your API key, your full database, and IP addresses are never sent. Nothing is sent
until you add your own OpenAI API key and turn the chat widget on — both are off
by default.

The service is provided by OpenAI, L.L.C. Please review their policies:

 * Terms of Use: https://openai.com/policies/terms-of-use
 * Privacy Policy: https://openai.com/policies/privacy-policy
 * API data usage policies: https://openai.com/policies/api-data-usage-policies

### Privacy

Three features can handle personal data. All are OFF by default and only do anything
once you, the site owner, turn them on.

**Conversation history (in the visitor’s browser).** The chat keeps a copy of the
current conversation in the visitor’s own browser using localStorage so it survives
page changes and refreshes. This data never leaves the visitor’s device except as
the normal chat messages already described above. It is not stored on your server
or in your database. The visitor can clear it at any time with the “New chat” button
or by clearing their browser storage.

**Conversation logging to files (optional, off by default).** When you enable file
logging in Settings, the plugin writes each exchange (the visitor’s message and 
the assistant’s reply) to a dated log file in a protected folder inside your uploads
directory, so you can review how the assistant is used. IP addresses are never stored.
Session identifiers are stored only as short one-way hashes used to group a single
conversation. Logs are kept for 30 days and then deleted automatically, and only
a logged-in administrator can download them. No conversation data is sent anywhere
by this feature; the files stay on your server.

**Callback / lead capture (optional, off by default).** When you enable lead capture
and a visitor explicitly agrees to be contacted, the plugin collects the email address
the visitor provides (and, if they choose, a phone number and a preferred time) 
and emails that request to the address you configure, using your site’s normal email.
It is rate-limited to one request per conversation and a daily maximum. This information
is handled by whatever email service your WordPress site already uses; the plugin
does not store it in a database or send it to any third party of its own.

You are responsible for disclosing these features in your own privacy policy if 
you enable them.

## Screenshots

[⌊Settings page — configure your API key and AI provider⌉⌊Settings page — configure
your API key and AI provider⌉[

Settings page — configure your API key and AI provider

[⌊Chat widget — visitor view with search results and preview cards⌉⌊Chat widget —
visitor view with search results and preview cards⌉[

Chat widget — visitor view with search results and preview cards

[⌊Content indexing — select post types and monitor indexing progress⌉⌊Content indexing—
select post types and monitor indexing progress⌉[

Content indexing — select post types and monitor indexing progress

[⌊Schema review — inspect auto-discovered post types and fields⌉⌊Schema review —
inspect auto-discovered post types and fields⌉[

Schema review — inspect auto-discovered post types and fields

[⌊Q&A Manager — add custom question-answer pairs⌉⌊Q&A Manager — add custom question-
answer pairs⌉[

Q&A Manager — add custom question-answer pairs

## Installation

 1. Upload the `attendant` folder to `/wp-content/plugins/`
 2. Activate the plugin in **Plugins  Installed Plugins**
 3. Go to **Attendant  Settings**
 4. Enter your OpenAI API key and click **Save Settings**
 5. Click **Test Connection** to confirm your key is working
 6. Go to **Attendant  Content Indexing** and click **Start Indexing**
 7. Add the chat widget with the shortcode `[attendant]` or enable the floating widget(
    appears automatically in the footer on every page)

## FAQ

### Do I need an OpenAI account?

Yes. You need an OpenAI API key from platform.openai.com. The plugin uses your key
directly — we never see it.

### How much will it cost to run?

With gpt-4o-mini (our recommended model), each conversation turn costs approximately
$0.005 USD. 1,000 conversations per month ≈ $5–10. Content indexing for a 500-page
site costs approximately $0.025 (one-time).

### Is my data sent to OpenAI?

Only the user’s chat message and relevant content excerpts (for Q&A mode) are sent
to OpenAI. Your full database is never sent. API keys are encrypted before storage
and never leave your server.

### Will it slow down my site?

No. The chat widget JS is less than 10KB gzipped and loads asynchronously. Admin
scripts only load on plugin admin pages. All AI processing happens via REST API 
calls triggered by the visitor — never on page load.

### Does it work with ACF, MetaBox, WooCommerce?

Yes. The schema discovery engine automatically detects custom fields from ACF, MetaBox,
and WooCommerce product attributes.

### Is the chat history saved on my server?

No. The conversation is kept in the visitor’s own browser (localStorage) so it survives
page changes and refreshes. It is not stored on your server or in your database.
The visitor can clear it with the “New chat” button at any time.

### Can the assistant collect leads or callback requests?

Yes, but it is off by default. When you enable lead capture in Settings and a visitor
agrees to be contacted, the assistant collects the email they provide (and optionally
a phone number and preferred time) and emails the request to the address you configure.
It is rate-limited to one request per conversation and a daily maximum, and nothing
is stored in a database. See the Privacy section for details.

### Can I keep a record of the conversations?

Yes, optionally. File logging is off by default. When enabled, each exchange is 
written to a dated file in a protected folder in your uploads directory, kept for
30 days, and downloadable only by an administrator. IP addresses are never stored
and session identifiers are one-way hashed. See the Privacy section.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Attendant – AI Site Search & Content Finder” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ sungraizfaryad ](https://profiles.wordpress.org/sungraizfaryad/)

[Translate “Attendant – AI Site Search & Content Finder” into your language.](https://translate.wordpress.org/projects/wp-plugins/attendant)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/attendant/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/attendant/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/attendant/) by [RSS](https://plugins.trac.wordpress.org/log/attendant/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.0.0

 * Rebuilt as a structured-search-first site assistant.
 * Natural-language queries are translated into a safe WP_Query over your post types,
   taxonomies, and custom fields.
 * Embeddings / semantic Q&A is now optional and off by default.
 * Short, scannable replies with clickable source buttons instead of links pasted
   into the text.
 * Tap-to-answer quick-reply chips for refining a search, choosing a callback time,
   and other selections.
 * Guided help when a search returns nothing: real alternatives from your own content,
   asked one question at a time.
 * Conversation history kept in the visitor’s browser (survives page changes and
   refreshes), with “New chat” and “Previous chats”.
 * Optional callback / lead capture: collects the email a visitor provides and emails
   the request to you, off by default, rate-limited.
 * Optional file-based conversation logging in a protected uploads folder, admin-
   only download, 30-day rotation, off by default.
 * “About this site” context setting to tune the assistant to your site.
 * Manual and background content indexing with a live activity log; the chat widget
   stays hidden until the first index completes.
 * Honest provider scope: OpenAI only in this release.

#### 1.0.0

 * Initial release.
 * Settings page — encrypted API key storage, model selection, widget configuration,
   privacy/GDPR controls.
 * OpenAI provider — chat completion (gpt-4o-mini / gpt-4o) and embeddings (text-
   embedding-3-small).
 * Schema discovery — auto-detects post types, taxonomies, and custom fields (ACF,
   MetaBox, WooCommerce).
 * Content indexing — chunker, embedder, background queue (WP-Cron), auto-sync on
   post save/delete.
 * Chat engine — RAG retrieval (cosine similarity), OpenAI function-calling (search_posts),
   conversation handler with session history and token budgeting.
 * Frontend chat widget — floating launcher, accessible dialog, brand colour + position
   overrides, [attendant] shortcode.
 * Analytics page — monthly API cost history, index health stats, conversation stats(
   when logging enabled).
 * Q&A Manager — admin-configured question/answer pairs matched semantically before
   RAG (threshold 0.92); REST CRUD API.

## Meta

 *  Version **2.0.0**
 *  Last updated **9 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[chatbot](https://wordpress.org/plugins/tags/chatbot/)
   [openai](https://wordpress.org/plugins/tags/openai/)[search](https://wordpress.org/plugins/tags/search/)
   [site search](https://wordpress.org/plugins/tags/site-search/)
 *  [Advanced View](https://wordpress.org/plugins/attendant/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/attendant/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/attendant/reviews/)

## Contributors

 *   [ sungraizfaryad ](https://profiles.wordpress.org/sungraizfaryad/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/attendant/)