Contents
1. Quick start
Most sites can go live in about five minutes. No coding is required, and the floating widget works with standard WordPress themes and page builders.
- Purchase and download: choose a plan, then use the purchase email to receive the plugin ZIP and license key. The same files are available under My account.
- Install: in WordPress open Plugins → Add New → Upload Plugin, upload
wp-ai-chatbot.zip, select Install Now, then Activate. - Activate the license: open AI Chatbot → Settings → License, enter the purchase email and key, then select Activate.
- Run the setup wizard: connect an AI provider, add business details, select the content to learn, choose a widget style, review the generated greeting and starter questions, then go live.
- Verify: open AI Chatbot → Dashboard, run the health checks, ask a realistic question in Try it, and confirm that a test lead reaches its destination.
Installation video
Watch: full install & setup in about 90 seconds, the same steps as written below.
2. Plans and licensing
WPChatbot is sold as an annual subscription in USD. A valid commercial license covers plugin access, the site allowance for the selected plan, product updates and support during the subscription term.
| Plan | Price | Site allowance | Included |
|---|---|---|---|
| Single Site | $49/year | One live WordPress site | Every plugin feature (unlimited chats and visitors, content sync, WooCommerce answers, 15+ languages, lead capture and email alerts) plus email support. |
| Unlimited Sites | $599/year | Unlimited live WordPress sites, including client sites you manage | The same plugin features as Single Site, plus priority email support. |
- No free tier: the plugin ZIP and its updates are only available with an active license, on sites where the key is activated.
- Unlimited chats: plans do not meter genuine visitor conversations, but your own AI provider bill and the safety limits you configure still apply.
- Renewal: renew yearly to keep downloads, product updates and support. If a license lapses, the installed version keeps answering visitors, syncing content and capturing leads; you stop receiving updates and support until you renew.
- Checkout: secure card payment is handled through Polar. A tax invoice and full payment breakdown are provided.
- Refunds: purchases include a 7-day money-back period. Review the refund policy for the current terms.
To move a license, deactivate it on the old WordPress site or release that domain under My account, then activate it on the replacement site.
Client sites and handover
Agencies can configure WPChatbot on a client's site and hand the site over. A Single Site license covers one live client site; Unlimited Sites covers every live site you manage. The license belongs to the purchase email: buy it with an address the client will keep (or one you'll keep while you manage renewals), because that email is needed to sign in to My account, reactivate and renew.
Everything the assistant uses and produces lives in the client's WordPress database: settings, the indexed knowledge base, business facts, conversations and leads. The AI provider key is the client's own account. None of it depends on the license service: if the license expires, or wpchatbot.app is unreachable, the installed version keeps answering, capturing leads and sending handoff alerts. Only activation, downloads and updates need the service. Uninstalling keeps data unless the On uninstall delete option is enabled under Privacy.
Staging and development sites
Staging and development copies don't count toward the plan's live-site allowance. Each license key can also be active on up to 5 of them. You can activate a key on a staging copy, finish testing, then activate the same key on the live site; a Single Site license is enough.
A site is treated as staging when its address is clearly not a live site: a subdomain such as staging., stage., dev., test., qa., uat. or preview. (also as a prefix, for example staging2. or dev-client.), localhost, a private IP address, a .local or .test address, or a host staging domain such as flywheelstaging.com or instawp.xyz. From plugin 5.3.1, a site whose WordPress environment type is set to production always counts as live. A staging copy on an ordinary address, such as client2.example.com, counts toward the allowance, so use a staging subdomain for free testing.
3. Connect an AI provider
Go to AI Chatbot → Settings → AI. Choose a provider, paste its API key, confirm the model, save, then select Test connection. Keys are stored server-side and are never sent to the visitor's browser or to WPChatbot.
| Provider | Default model | Notes |
|---|---|---|
| OpenRouter | openai/gpt-4o-mini | Default choice; one key can access many models. |
| OpenAI | gpt-4o-mini | Uses an OpenAI API key billed by OpenAI. |
| Anthropic | claude-sonnet-4-5 | Uses an Anthropic Console key. |
| Google Gemini | gemini-2.0-flash | Uses a Google AI Studio key. |
| Groq | llama-3.3-70b-versatile | Uses a Groq Console key. |
| Custom | Provider-defined | Enter any OpenAI-compatible base URL, including a self-hosted endpoint. |
Answer controls
- Reply length: Brief, Balanced or Detailed. Brief is recommended for chat.
- Creativity: temperature defaults to
0.4; lower values make wording more repeatable. - Maximum tokens: defaults to
220, which is a hard ceiling rather than a target. - Memory: controls how many recent messages accompany the next question; the default is 12.
- Safer key storage: define
WPAIC_API_KEYinwp-config.phpwhen you do not want the key stored in the WordPress database.
4. Knowledge, citations and unanswered questions
Open AI Chatbot → Knowledge, select the public post types the assistant may use, and choose Index my content now. Pages, posts, documentation, WooCommerce products and public custom post types are split into searchable passages and stored in your WordPress database.
Keep the knowledge base accurate
- Turn on Keep in sync so saving a post re-indexes it. Daily maintenance reconciles updated, deleted, private and excluded content.
- Exclude transactional or private pages by post ID. Cart, checkout and account pages should normally stay out of the knowledge base.
- Add Business facts for information not written on the public site, including pricing rules, hours, policies and services you do not provide.
- Add multilingual synonym groups such as
price | cost | keemat | कीमतso visitor wording maps to your terminology. - Enable semantic search when useful. It adds OpenRouter embedding usage; keyword search continues if embeddings are unavailable.
- Adjust passage size and passages per reply only after testing. More context can improve recall but increases provider tokens.
- Only published WordPress content is indexed, as plain text. PDFs, uploaded files and external URLs are not, and text generated by shortcodes isn't captured; put anything important from them into Business facts. The default selection is Pages, so add Posts, Products or other types you want answered from.
Current page context
With Tell the assistant which page the visitor is reading on (on the Knowledge screen; on by default), the assistant knows which page the visitor is reading: the page title guides the search and a short summary of the page goes into the answer context. On a WooCommerce product page it also receives live price, stock and variations. Page context is used only on single pages whose post type is in the knowledge base.
How answer safety works
The assistant is instructed to answer from approved pages, business facts, locations, contact details and live product data. It declines unrelated questions and records questions it cannot support. This grounding is enforced through instructions to the model, so review answers to important questions on staging before going live.
Turn unanswered questions into knowledge
- Open AI Chatbot → Unanswered questions (called Gaps in older releases).
- Review questions in frequency order and inspect similar wording grouped beneath them.
- Write the approved answer, select Test draft answer, and optionally keep the question as a regression check.
- Select Save answer to add it to Business facts, or Dismiss when the question should not be answered.
5. Widget design, behavior and placement
Use AI Chatbot → Settings → Look & texts to choose a presentation and preview changes before saving.
Concierge
A named pill launcher, greeting preview, prominent brand header and overlapping chat sheet. This is the default.
Side Sheet
A page-edge tab opens a full-height drawer with topic tiles, useful for service and support sites.
Messenger
A round launcher with unread badge, typing preview, timestamps, read ticks, quick replies and a call action.
Branding and behavior
- Set brand, text-on-brand and reply-bubble colors; left or right position; distance from the bottom; font family and text size.
- Use an avatar image or initials, launcher label, assistant name, welcome message and up to four suggested-question chips.
- Choose a tone preset and add one custom behavior rule per line under Extra instructions.
- Open automatically on page load when needed. A visitor who closes it keeps it closed for the rest of that visit.
- Display on every page, only listed page IDs, or every page except listed IDs. The widget can also be hidden from logged-in users.
- The widget runs inside an isolated shadow root so theme CSS does not restyle it and its styles do not leak into the theme.
Embed the assistant
[wp_ai_chatbot][wp_ai_chatbot height="700" mode="full"][wp_ai_chatbot_form title="Request a callback" fields="name,phone" button="Call me back"]- Gutenberg: insert the AI Chatbot block; wide and full alignment are supported.
- Elementor, Divi, Beaver Builder and WPBakery: paste a shortcode into the builder's Shortcode, Text or HTML widget.
- Lead form:
[wp_ai_chatbot_form]uses enabled lead fields and the same storage/integration pipeline without making an AI call. - The floating widget, inline chat and lead forms can appear on the same site.
6. Conversations, analytics and answer quality
- Dashboard: review messages this month, tokens used, indexed passages, total leads, leads today, 7-day and 30-day totals, and the 30-day lead chart.
- Try it: ask realistic visitor questions using live settings and the current knowledge base before enabling the widget.
- Health check: test provider connectivity, indexed knowledge, email delivery and webhook delivery from one screen.
- Conversations: search stored transcripts, see page origin, token use and unanswered messages, then delete a conversation when it is no longer needed.
- Answer quality: the Dashboard's 30-day satisfaction score counts visitor Helpful/Not helpful votes. Widgets from 5.2.0 on don't show those buttons, so on current releases judge quality from Unanswered questions and handoffs instead.
- Usage history: the Limits tab keeps six months of message and token totals plus failed-call counts.
For a useful weekly review, start with Unanswered questions, inspect low-rated or handoff conversations, improve the relevant page or Business facts, re-sync, then repeat the original questions in Try it.
7. Leads and team workflow
Open Settings → Lead capture, turn on contact collection and choose when it appears: after the first visitor message, on quote/booking/callback intent, before the first question, after a few exchanges, or only through forms.
Build the form
- Create text, email, phone, long-text and choice fields. Each field has a key, label, chat question, required toggle and optional CRM field mapping.
- Visitors can skip chat lead collection unless a field is intentionally required. Server-side validation and a honeypot protect submissions.
- Use separate source labels for chat and form leads so reports show where each enquiry began.
Work a lead
- Open AI Chatbot → Leads and filter/search the stored enquiries.
- Move a lead through New, Contacted, Qualified, Converted or Lost.
- Assign a WordPress team member, add internal notes and set the next follow-up interval.
- Export all visible custom fields to CSV when the team needs a spreadsheet or import file.
Keep Store locally enabled unless another destination is the system of record. Delivery failures are queued and retried with backoff so a temporary destination outage does not silently discard an enquiry.
8. Integrations
All lead destinations are configured under AI Chatbot → Settings → Integrations. Save the settings, run the Dashboard health check, and submit a real test lead before launch.
Email and WordPress
Keep each lead in the WordPress database, email each new lead to the chosen address, or use both. Email delivery uses the site's WordPress mail configuration.
Webhook: Zapier, Make, n8n, HubSpot and custom APIs
- Paste the HTTPS webhook URL. WPChatbot sends a JSON POST as soon as a lead arrives.
- Add a signing secret to receive
X-WPAIC-Signature,X-WPAIC-Timestampand signature-version headers. - At the receiver, verify the timestamp and HMAC before processing, make delivery IDs idempotent, and return a 2xx response only after durable acceptance.
Google Sheets
- Create a Google Cloud service account and download its JSON key.
- Share the destination spreadsheet with the service-account email as Editor.
- Enter the spreadsheet ID from the URL, destination tab name, service-account email and the full private key including its BEGIN/END lines.
Zoho CRM
- Select Zoho and the correct data center:
zoho.com,zoho.in,zoho.eu,zoho.com.auorzoho.jp. - Enter the Zoho client ID, client secret and refresh token.
- Map Lead capture field keys to the matching Zoho field API names, then send a test lead.
WhatsApp with Interakt
- Create an approved Interakt template with three body variables in this order: visitor name, business name and message.
- Enter the Interakt API key, exact template name, template language and default country code.
- Choose whether to send on human handoff, on every new lead with a phone number, or both.
Supabase
Select Supabase, then enter the project URL, service key and table name. A service_role key bypasses row-level security for the project and is stored in the WordPress database, so use a dedicated project and prefer a signed webhook when direct database access is unnecessary.
9. Bookings, locations, hours and human handoff
Appointment booking
Under Settings → Business & contact, enable appointment booking and enter one ISO date/time per line with a timezone, for example 2026-10-05T10:00:00+05:30. The assistant offers slots within the next 60 days, collects name and email, and prevents double-booking. Manage or cancel reservations from the team workflow. Alternatively, add a Calendly, Cal.com, Amelia, Bookly or custom booking URL for the assistant to share.
Locations
Open Settings → Locations and add each branch's name, address, Google Maps link, phone, hours and notes. Location intent works with English and Hindi/Hinglish phrasing, and the server appends the correct map link if the model omits it.
Opening hours
Enable Only answer with AI during opening hours and add one schedule rule per line, such as mon-fri 09:00-18:00 and sat 10:00-14:00. Times use the WordPress site timezone. Outside the schedule, the assistant shows the configured off-hours reply and does not spend AI budget.
Talk to a person
Enable handoff, add the alert email and optional Slack incoming-webhook URL. A visitor can request a person directly, and the option can also appear after an unanswered question. The request flags the conversation and sends the reason, last message and transcript link. Handoff is asynchronous follow-up, not live-agent chat. Requests are recognised from phrases such as “talk to a human” or “call me back”, and from the button shown after an unanswered question. The transcript link needs Store chat transcripts turned on under Privacy; with it off, the alert carries only the last message.
10. WooCommerce
- Install and activate WooCommerce, then include the product post type under AI Chatbot → Knowledge and run a sync.
- The assistant retrieves product descriptions and re-checks live price, stock status and SKU for product questions. It can also explain shipping and returns from your indexed policies.
- Enable Settings → WooCommerce → Product cards to show linked products. Simple, in-stock products receive an in-chat Add to cart button; variable products open the product page for option selection.
- The assistant links account/order questions to the store's orders area. WooCommerce cart, checkout and account data remain authoritative.
Abandoned-cart coupon nudges
Enable the recovery nudge, then set the percentage discount (1-90), minimum cart subtotal, coupon lifetime, code prefix and idle delay (minimum 15 seconds). When a shopper becomes idle on cart or checkout, the assistant creates and applies a one-time code. Only one code is created per visit and each code is single-use.
11. Languages, themes and accessibility
- Enable Reply in whatever language the visitor writes in. The assistant detects each visitor's language and can handle mixed-language messages such as Hinglish.
- Accuracy in each language depends on the selected model and the quality of indexed content. Add multilingual pages, facts and synonyms for important terminology.
- Static widget labels use WordPress translations and can be localized through the normal translation workflow.
- The isolated widget works with Astra, GeneratePress, Divi, Elementor, Gutenberg, WPBakery and other standards-based themes/builders.
- Keyboard focus, responsive mobile presentation, reduced-motion preferences and live message announcements are built into the visitor interface.
12. Privacy, security and limits
Privacy settings
- Require consent before collecting contact details, customize the wording and link to the site's privacy policy.
- Turn transcript storage on or off and choose a retention period. A daily job purges expired transcripts, leads and temporary delivery records.
- WordPress Tools → Export Personal Data and Erase Personal Data include matching WPChatbot leads and conversations.
- Visitor IP addresses are never stored in readable form; a salted hash is used for abuse controls.
- Delete all settings, leads and transcripts on uninstall only when the explicit uninstall option is enabled.
What leaves the WordPress site
The selected AI provider receives the visitor message, limited recent history, relevant passages and current-page context needed to answer. Enabled CRM, email, webhook, Sheets, WhatsApp, Slack and database destinations receive the lead or handoff data configured for them. Cloudflare receives a browser challenge only when Turnstile is enabled.
Limits and abuse protection
- Set monthly request and token caps, per-visitor messages per time window, site-wide requests per minute, concurrent AI calls and separate lead/handoff rates.
- Set a fallback message for visitors after a cap is reached; when blank, WPChatbot builds one from the configured phone or email.
- Add Cloudflare Turnstile site and secret keys to reduce automated usage. Update the privacy notice when enabling it.
- Also set a spending limit with the AI provider. Failed calls and timeouts can still consume provider allowance.
Security reviews and reporting vulnerabilities
WPChatbot has not yet had an independent security audit or penetration test, and we don't publish an audit report. Each release is checked with automated regression, widget, browser and WordPress database integration tests covering session authentication, origin checks, rate limits, privacy export/erase and signed updates.
- Visitor chat uses short-lived server-issued credentials, server-held history, same-origin checks, size limits and per-visitor and site-wide rate limits.
- Admin actions require WordPress capabilities and nonces; database queries are prepared and output is escaped.
- The model can't run actions or write to the database, and private or restricted content is excluded from the knowledge base.
- Releases and license responses are Ed25519-signed; WordPress installs an update only when the signature and SHA-256 checksum match.
- AI provider keys are stored in WordPress options. Define
WPAIC_API_KEYinwp-config.phpto keep the key out of the database.
Report a vulnerability privately to manvendra@meraku.in with the WPChatbot version, steps to reproduce and impact. Don't include live API keys or customer data. We confirm receipt, fix confirmed issues in a signed release delivered through Dashboard → Updates, and note security fixes in the release history below.
13. Account, updates and support
My account
Sign in with the purchase email to see plan status, masked key details, renewal date, active domains, receipts and the latest plugin ZIP. Release an old domain before reusing that activation. Use Email me my key when the original purchase email is unavailable.
Updates
Licensed releases appear in WordPress → Dashboard → Updates and on the Plugins screen. Back up the site before a major update, install it on staging for business-critical sites, then clear page/CDN caches and run the WPChatbot health checks. Settings and indexed content are preserved during normal upgrades.
Current version and release history
The current stable release is 5.3.1. Requires WordPress 5.8+ and PHP 7.4+.
- 5.3.1 (October 2026): licence key and purchase-email activation screen, free staging sites, the self-hosted updater (sites on 5.3.0 install 5.3.1 manually once), chat block and shortcodes on block themes, and fixes to lead fields, handover text, chat history, privacy export and IPv6 rate limits.
- 5.3.0 (September 2026): three chat styles (Concierge, Side Sheet, Messenger) chosen in the setup wizard.
- 5.2.0 (September 2026): widget redesign isolated from theme CSS, and the option to ask for name and phone after the visitor's first message.
- 5.1.0 (September 2026): guided setup wizard, lead dashboard, and answers limited to the business's own pages, facts, locations and contact details.
- 5.0.0 (September 2026): server-issued visitor credentials, request and token budgets, rate limits, exact-email privacy handling, staff enquiry workflow, bookings, and signed licence responses and updates.
Support by plan
- Single Site: email support.
- Unlimited Sites: priority email support.
When contacting support, include the WordPress and PHP versions, WPChatbot version, selected provider/model, the failing screen or exact error, and the Dashboard health-check result. Never send a complete AI API key or Supabase service key.
14. Developer reference
The WordPress REST namespace is wp-ai-chatbot/v1. Public message, lead and handoff routes are protected by a WordPress nonce or same-origin check plus rate limits. Admin sync, preview and health-check routes require manage_options.
POST /wp-json/wp-ai-chatbot/v1/messagePOST /wp-json/wp-ai-chatbot/v1/leadPOST /wp-json/wp-ai-chatbot/v1/handoffMain extension points
| Hook | Use |
|---|---|
wpaic_kb_results | Replace or reorder retrieved passages, including a custom vector store. |
wpaic_system_prompt | Append business-specific prompt rules. |
wpaic_reply | Post-process a reply before it reaches the browser. |
wpaic_lead_fields | Change lead fields at runtime. |
wpaic_should_display | Control widget visibility with custom WordPress logic. |
wpaic_client_config | Adjust public widget configuration. Never expose secrets here. |
wpaic_lead_captured | Send a captured lead to a custom service before built-in integrations. |
wpaic_handoff | Create a ticket or notification from a human-handoff request. |
Custom API consumers must preserve the same-origin, consent, validation and rate-limit protections used by the built-in widget. Treat API and integration secrets as server-only data.
15. Troubleshooting
Widget does not appear
Confirm the commercial license is active and Show the assistant to visitors is enabled. Review page include/exclude rules and Hide from logged-in users, then clear WordPress, host and CDN caches. Test in a private browser window.
License is invalid or the site limit is reached
Use the purchase email with the key. Release old production domains in My account, then activate again on the exact current site URL. Staging and development copies don't use the live-site allowance, but each key allows up to 5 of them; release unused ones if you reach that limit.
Assistant says it is still being set up
Open Settings → AI, enter a valid provider key and model, save, then run Test connection. Confirm the host allows outbound HTTPS to the provider.
Answers are wrong or it says it does not know
Check Knowledge source selection, remove thin or duplicate pages, add missing facts and synonyms, and sync again. Review Unanswered questions, save an approved answer, then repeat the question in Dashboard → Try it.
Provider errors, slow replies or budget failures
Check provider balance and status, model access, request/token caps, concurrent request limit and the Limits error count. Reduce memory or passages per reply if requests exceed input limits.
Leads or notifications are missing
Submit a real test lead, confirm Store locally and the destination are enabled, run the Dashboard email/webhook checks, inspect spam, and verify the destination credentials and permissions. Temporary failures should appear in the retry queue.
WooCommerce cards or Add to cart are missing
Confirm WooCommerce is active, products are public and indexed, and Product cards are enabled. Add to cart appears only for simple in-stock products; variable products intentionally link to the product page.
Changes are not visible after saving
Clear the page-cache plugin, server cache and CDN cache. For very old upgrades, deactivate/reactivate the plugin once to run schema updates, then run the health check again.