About this plugin
Turn shopper questions into orders. Ninhle AI Sales Assistant is an AI chatbot and shopping assistant for WooCommerce. It answers from your real catalog, adds products to the cart right in the chat, tracks orders, and shows you why shoppers ask but don’t buy.
Shoppers ask the same things all day: Is it in stock? How much is shipping? Where is my order?
This WooCommerce chatbot answers from live lookups in your store, and says so when it does not know.
Get started in three steps
- Connect an AI provider. Paste your own API key from OpenAI, Anthropic (Claude) or Google (Gemini), or use the AI connection built into WordPress 7.0 and later. You pay the provider directly. Or start in local-only mode with no key at all.
- Sync your catalog. One click, or wp ninhle-ai-sales-assistant sync-products, and the assistant knows your products, prices and stock.
- Go live. The chat appears on your store with your name, logo, colour and suggested questions.
Add to cart in the chat
Product answers come with product cards: photo, current price, stock and rating, read from WooCommerce when the reply is shown. Shoppers tap Add to cart without leaving the chat. WooCommerce updates the cart in the shopper’s own browser, so your prices, stock rules and discounts apply as usual.
In the free version, products with options link to the product page. The Starter plan lets shoppers pick options, change quantities and apply the discount codes you allow, right on the card.
Shipping and total before checkout
Asked about shipping or the total, the assistant shows an order summary calculated by WooCommerce: shipping options for the shopper’s address, tax, total and your payment methods. Payment happens on your checkout page through your gateway (Stripe, PayPal or any other); the chat never takes card details. A payment link opens the same items on another device.
Answers from your real catalog
Product facts come from your WooCommerce store: prices, stock, product details, store policies and your own pages. When a search finds nothing, the assistant suggests the nearest categories and asks one question instead of guessing. It never invents prices or stock, and products you hide from the catalog are never shown.
Order tracking in the chat
” gets an order card in the chat: status, items, total and tracking number with a Track link (from WooCommerce Shipment Tracking, Advanced Shipment Tracking with TrackShip, AfterShip, ParcelPanel, Trakoo, YITH Order Tracking or an order field you choose), with the delivery status when your shipping plugin reports it. Logged-in customers see their recent orders straight away; guests give the order number with the email or phone number used for it. Without that proof, nothing is revealed.
Replies in the shopper’s language
The assistant detects the language of each message (15 languages, without an AI call) and answers in it, keeping product names, prices and order numbers exactly as in your store. You can keep every reply in your store’s language instead.
Sales Insights: why shoppers don’t buy
The Sales Insights tab lists the questions the assistant could not answer, grouped and ranked; type your answer there and the assistant uses it from the next reply. It also shows what shoppers searched for but could not find, and which products they wanted while out of stock. Contact details are hidden.
In the Starter plan, an AI labels each night why chats did not lead to an order (price, shipping, size, stock and more), with quotes and an optional weekly email.
A person is one tap away
“Talk to a person” is always visible, and the assistant hands off complaints, explicit requests and questions your store data cannot answer. Your team replies from the Inbox in WP Admin, and a badge on the minimized chat button shows new replies. In the Starter plan, the Inbox shows a customer card with orders and total spent.
See the orders the chatbot helped close
The AI Value & Performance tab shows what the AI cost, how many orders followed a chat and how conversations ended, each with its sample size, from the day you install.
Ready for AI agents (MCP)
9 and later, turn on “AI agents” in Settings to register read-only abilities with the WordPress Abilities API: search products, product details and store policies. The MCP Adapter plugin can offer them to MCP clients. Only published, visible products and your store policies are shared, never orders, carts or customer data.
Off by default, limited to 60 requests per hour per IP address.
Your key, your data, no per-conversation fee
0+ (Settings > Connectors). There is no middleman server and no per-chat fee from us. Greetings, store policies, cart questions and order status are answered from store data without an AI call when the store has the answer, and AI replies run in the background so a slow provider does not hold up your pages.
Everything in the free WooCommerce chatbot
- Store tools: product search and details, order status for the order’s owner, digital downloads, store policies and site content.
- Sales playbook and rules: persona, qualifying questions, objection handling, closing and keyword rules.
- Lead capture in the chat, stored in your database and exportable to CSV.
- Human handoff and Inbox: a clear status for visitors, a new-replies badge, take over and hand back, an optional webhook.
- AI Value & Performance: AI cost per request, AI-assisted orders and conversation outcomes.
- Voice input (optional, off by default).
- Your brand: name, logo, colour, font and suggested questions, with a live preview.
- Local-only mode: answers from store data without any AI provider.
- Light, private and translation-ready: the chat loads only when needed; personal-data export and erasure; HPOS and Cart and Checkout blocks supported.
Optional paid plans
Ninhle AI Sales Assistant is free to install and use. Optional paid plans add extra code to the
plugin; nothing in the free version is locked or time-limited.
Starter — cash-on-delivery and bank-transfer orders in the chat; “payment received”
messages, with payment checks for your team when a shopper says they paid; VietQR for
Vietnamese dong; orders your team creates in the Inbox with a payment link; shipment updates in
the chat (off by default); options, quantities and allowed discount codes on product cards;
nightly AI labels of why shoppers did not buy, with a weekly email summary; a customer card in
the Inbox; product variations with per-variation add-to-cart links; Telegram notifications for
new leads and handoffs; a sales dashboard; cached answers for repeated questions; the
revenue of orders that followed a chat, per currency, on the AI Value & Performance tab; and
signed webhooks with automatic retries (Standard Webhooks) for n8n, Make, Zapier and CRMs.
Pro — everything in Starter, plus coupon validation, automatic failover to a
second AI provider, daily and monthly AI budget caps, rule-based lead scoring with
advanced analytics, price-output verification, payment method order by country or customer
group in the chat, and sales abilities for your own AI agent (conversations, leads, orders
after chats, checkout links and draft replies that your team reviews in the Inbox).
AI usage is never included: OpenAI, Anthropic and Google bill you directly for
your own API key, on every plan including Free.
External services
The plugin connects to the services below. Except for the AI provider you configure,
each one is used only when you turn the related setting on.
AI provider (the one you configure) — receives the visitor’s chat messages, recent
conversation history, your sales playbook and business information, and product data from
your own store, each time a visitor sends a message. Nothing is sent in local-only mode.
0+), the same data goes through WordPress
to the provider you connected in Settings > Connectors, under that provider’s terms.
- Anthropic (Claude) — https://www.anthropic.com/legal/privacy — https://www.anthropic.com/legal/consumer-terms
- OpenAI — https://openai.com/policies/privacy-policy — https://openai.com/policies/terms-of-use
- Google (Gemini) — https://policies.google.com/privacy — https://ai.google.dev/gemini-api/terms
Sales Insights AI labeling (Starter plan only, optional, off by default) — the free
version contains no code for this. If you turn it on, once a night the text of finished chats
that did not lead to an order is sent to your AI provider, with email addresses and phone
numbers replaced by placeholders, so the AI can label why the shopper did not buy. A monthly
spending limit you set stops the job.
Link reading (optional, off by default) — when you enable “Let the bot read links
ai to fetch its
ai/legal/). com instead, to get the
com/privacy,
com/t/terms). Leave this off if visitors might paste private links.
Google Fonts (optional) — only if you pick a Google font for the widget in the
settings. com
com/privacy). The default font loads nothing from Google.
Voice input (optional, off by default) — only if you turn on “Let visitors speak their
message”. The microphone button uses the speech recognition built into the visitor’s own browser
(Web Speech API). Depending on the browser, the audio may be sent to the browser maker’s speech
com/privacy), Apple
com/legal/privacy/) or Microsoft for Edge
com/privacystatement). The plugin never receives, records or stores
audio; it only receives the text the visitor chooses to send.
Handoff webhook (optional) — only if you enter a webhook URL. On a handoff the plugin
sends the conversation ID, contact ID and handoff level to that URL, which you control.
Telegram (paid plans only, optional) — the free version contains no Telegram code. In
the Starter and Pro plans, if you enter a Telegram bot token and chat ID, new leads (name,
email, phone) and handoff requests (priority, issue, summary, conversation number) are sent
org/tos).
Automation webhooks (Starter and Pro plans, optional) — the free version contains no code
for this. If you enter a webhook URL, the events you choose are posted to that URL, which you
control, signed with your secret: leads and handoffs, and, if you turn them on, cart, checkout
and order events. Order events cover orders placed after a chat and include the buyer’s name,
email and phone number, the items and the total.
Freemius (licensing, upgrades and affiliate program) — the plugin bundles the Freemius
SDK. Nothing is sent to Freemius from your storefront. The plugin contacts Freemius only
when an administrator does one of the following:
- Opts in to usage data: the WordPress user’s name and email, site URL and title, WordPress,
PHP and plugin versions, site language, and whether the plugin is active or uninstalled.
The list of plugins and themes is sent only if that permission is left on.
- Opens the Upgrade (pricing) page, starts a trial, buys a plan or activates a license. With
an active license, the paid version then checks Freemius for updates and license status.
- Opens the Affiliation page in the plugin menu: the affiliate program terms are loaded from
Freemius.
- Submits the affiliate application form: the name, email, PayPal email, website domains and
promotion details entered in the form are sent to Freemius. If the site is not connected
to Freemius yet, it is connected with the email entered, with usage tracking off.
- Clicks “Contact Us”: the Freemius contact form opens in a new browser tab.
com/privacy/ —
com/plugin/39395/ninhle-ai-sales-assistant/legal/affiliate-program/
Security
API keys are stored server-side and never sent to the browser; the settings screen
shows only a masked value. Every provider call is made from your server through the
WordPress REST API.
Database queries use $wpdb->prepare(). Every REST route declares a real
permission_callback, and the endpoints the AI uses as tools are internal-only –
they cannot be reached from outside the site. Visitor sessions use hashed tokens
and chat messages are rate limited per session. When a background AI reply is started
through a loopback request, that request is signed and expires after 60 seconds.
The plugin server never changes a shopper’s cart: “Add to cart” in the chat calls
the WooCommerce Store API from the shopper’s own browser. The AI can only propose
products that come from your catalog, and the card always reads the current price
and stock from WooCommerce.
Chat messages are rendered as DOM elements rather than injected HTML, and only
http and https links are ever made clickable, so content returned by the AI cannot
inject markup.
Please report security issues privately to the author rather than in a public forum.
Privacy
Conversations, contacts and leads are stored in your own WordPress database. The
plugin registers with Tools > Export Personal Data and Tools > Erase Personal Data,
so you can answer data-subject requests from WordPress itself. Message attachments
are purged on a configurable retention schedule. No data is sent anywhere except the
services listed under External services.
To count orders that followed a chat, the conversation number is saved in the
visitor’s WooCommerce shopping session when the assistant shows products or the
visitor clicks a product or cart link in the chat. An order placed within the
attribution window you choose (24 hours by default) is linked to that conversation.
”, are included
in the personal-data export and removed by the eraser. The plugin adds a suggested
paragraph about this to Settings > Privacy.
Sales Insights stores the questions the assistant could not answer, with email addresses
and phone numbers hidden, and in the Starter plan the reason a chat did not lead to an
order with a short quote. When a logged-in customer chats, or a customer proves they own
an order, the conversation records that account or order number, so your team can see
the customer card (Starter plan). The language of each conversation is stored to reply in
it. All of this is included in the personal-data export and removed by the eraser.
Orders placed in the chat (Starter) are normal WooCommerce orders; the plugin also records
consent to the notice under the phone field as a fingerprint of the text shown. Shipment updates
(Starter, off by default) go only to the chat of that order and, if enabled, by email to shoppers
who agreed, with a stop link. AI agents use their own WordPress user and application password.
In the visitor’s browser, the chat keeps its session token and, for the new-replies badge,
the conversation number, the last message seen and when it was seen (localStorage). No
message text is stored there.