{"id":285488,"date":"2026-04-29T23:08:06","date_gmt":"2026-04-29T23:08:06","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-ai-chatbot\/"},"modified":"2026-05-12T18:41:21","modified_gmt":"2026-05-12T18:41:21","slug":"sansterra-easy-ai-chatbot","status":"publish","type":"plugin","link":"https:\/\/sa.wordpress.org\/plugins\/sansterra-easy-ai-chatbot\/","author":23458769,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.8.1","stable_tag":"1.8.1","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"SansTerra Easy AI Chatbot","header_author":"Sans Terra","header_description":"Add a fully managed AI chat widget to your WordPress site. Train your bot, customize the look, and review every visitor conversation.","assets_banners_color":"fae2d5","last_updated":"2026-05-12 18:41:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/sansterra-easy-ai-chatbot\/","header_author_uri":"https:\/\/easyaichatbot.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":103,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.8.0":{"tag":"1.8.0","author":"sansterra","date":"2026-04-29 23:56:19"},"1.8.1":{"tag":"1.8.1","author":"sansterra","date":"2026-05-12 18:41:21"}},"upgrade_notice":{"1.8.0":"<p>Major cleanup release. Public REST search endpoints now strip private post meta keys at both save-time and search-time. Internal usage-tracking storage was renamed; existing settings are migrated automatically on first load.<\/p>","1.7.6":"<p>Plugin renamed to SansTerra Easy AI Chatbot. Shortcode slugs updated \u2014 please update any existing shortcodes on your site.<\/p>","1.7.5":"<p>WordPress.org compliance pass: i18n fixes, sanitization hardening, opt-in data deletion, and external services disclosure.<\/p>","1.7.4":"<p>Bug fixes and WordPress.org compliance: resolves avatar upload issue, ACF metadata bloat, and inline script\/style violations.<\/p>","1.7.3":"<p>Adds a WordPress content search endpoint, monthly usage counter, conversation notification email, and sortable conversation columns.<\/p>","1.7.2":"<p>Admin UI polish.<\/p>","1.7.1":"<p>Adds consent bar and logo\/header improvements.<\/p>","1.7.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3520482,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3520482,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3520485,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3520482,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.0","1.8.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The floating chat widget on a live site, showing the chat bubble, message thread, and typing indicator.","2":"The plugin settings page with tabbed navigation (Getting Started, Settings, Design, Training, Training Tools, Shortcodes, Conversations).","3":"The Training tab showing the Knowledge Base editor and word count validation.","4":"The Conversations tab displaying the statistics dashboard and conversation log.","5":"The Design tab showing color pickers, avatar upload, and widget position controls."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,14160,2364,2369,2379],"plugin_category":[],"plugin_contributors":[261463],"plugin_business_model":[],"class_list":["post-285488","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chat-widget","plugin_tags-chatbot","plugin_tags-customer-support","plugin_tags-live-chat","plugin_contributors-sansterra","plugin_committers-sansterra"],"banners":{"banner":"https:\/\/ps.w.org\/sansterra-easy-ai-chatbot\/assets\/banner-772x250.png?rev=3520482","banner_2x":"https:\/\/ps.w.org\/sansterra-easy-ai-chatbot\/assets\/banner-1544x500.png?rev=3520485","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sansterra-easy-ai-chatbot\/assets\/icon-128x128.png?rev=3520482","icon_2x":"https:\/\/ps.w.org\/sansterra-easy-ai-chatbot\/assets\/icon-256x256.png?rev=3520482","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SansTerra Easy AI Chatbot adds a fully managed AI chat widget to your WordPress site. No third-party accounts, no workflow setup, and no technical configuration required. Install the plugin, request a Free API key, train your bot with your business content, and you are ready to go.<\/p>\n\n<p><strong>Core Widget Types<\/strong><\/p>\n\n<ul>\n<li><strong>Floating Widget<\/strong> \u2014 A sticky chat bubble in the corner of every page, with optional detach-to-sidebar docking.<\/li>\n<li><strong>Button Trigger<\/strong> \u2014 Use <code>[sansterra-easy-ai-chatbot-button]<\/code> to create a button that opens the widget with a pre-filled or auto-sent question.<\/li>\n<\/ul>\n\n<p><strong>Train Your Bot<\/strong><\/p>\n\n<p>Give your chatbot a personality and business context through the Training tab:<\/p>\n\n<ul>\n<li>Business Summary<\/li>\n<li>Personality &amp; Purpose<\/li>\n<li>Rules and guidelines<\/li>\n<li>Knowledge Base (text editor, up to 500 words)<\/li>\n<\/ul>\n\n<p><strong>Design &amp; Appearance<\/strong><\/p>\n\n<p>Fully customizable to match your brand:<\/p>\n\n<ul>\n<li>Primary, secondary, background, and font colors<\/li>\n<li>Widget position (left or right)<\/li>\n<li>Avatar upload via WordPress media library (circle or original shape)<\/li>\n<li>Optional consent\/disclaimer screen before the chat opens<\/li>\n<li>Optional \"Got a question?\" prompt bubble<\/li>\n<li>Custom CSS for advanced styling<\/li>\n<\/ul>\n\n<p><strong>Conversation Logging<\/strong><\/p>\n\n<p>Conversation logs are stored directly in your WordPress database. You own your conversation history and it remains on your site. Message text is transmitted to the Easy AI Chatbot API to generate AI responses, but is not retained on external servers beyond what is needed to produce a reply. Review conversations anytime from the Conversations tab in your plugin dashboard:<\/p>\n\n<ul>\n<li>Statistics dashboard with message counts, error rates, and activity<\/li>\n<li>Filter by widget type (floating, embedded)<\/li>\n<li>Filter for error-only sessions<\/li>\n<li>Search by session ID<\/li>\n<li>Full message history with timestamps and sender type<\/li>\n<li>Manually delete individual conversations or purge all at once<\/li>\n<li>Export all conversations for analysis<\/li>\n<\/ul>\n\n<p><strong>Content Sources<\/strong><\/p>\n\n<p>Give your AI access to your WordPress content so it can answer questions using real information from your site.<\/p>\n\n<ul>\n<li><strong>WordPress Search<\/strong> \u2014 Your AI can search your site using the built-in WordPress search function. It reads titles and excerpts from search results and can link visitors to relevant pages.<\/li>\n<li><strong>Content Source<\/strong> \u2014 Point your AI at a specific page on your site to use as training context. One content source is included.<\/li>\n<\/ul>\n\n<p><strong>Shortcodes<\/strong><\/p>\n\n<pre><code>[sansterra-easy-ai-chatbot-button] \u2014 Add a button that opens the floating widget.\n<\/code><\/pre>\n\n<p>Attributes:\n* <code>text<\/code> \u2014 Button label (default: <code>Chat with us<\/code>)\n* <code>question<\/code> \u2014 Question to auto-send when clicked<\/p>\n\n<p>Dynamic placeholders supported in the <code>question<\/code> attribute:\n* <code>{{post_title}}<\/code> \u2014 Current post or page title\n* <code>{{post_url}}<\/code> \u2014 Current post or page URL\n* <code>{{site_name}}<\/code> \u2014 Your WordPress site name<\/p>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<p>This plugin transmits chat messages to the Easy AI Chatbot API for AI processing. Message text is used only to generate a response and is not retained on Easy AI Chatbot servers after the response is delivered. Conversation logs, including full message history, are stored in your WordPress database only. Visitor IP addresses and browser user agents are also stored in your WordPress database. For full details, see the <a href=\"https:\/\/easyaichatbot.ai\/privacy-policy\/\">Easy AI Chatbot Privacy Policy<\/a>.<\/p>\n\n<p><strong>Compliance<\/strong><\/p>\n\n<p>Site owners are responsible for ensuring their use of this plugin complies with applicable laws and regulations, including privacy laws and any industry-specific requirements. The plugin's built-in consent screen can be used to display your own terms or disclaimer to visitors before the chat opens.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the Easy AI Chatbot service hosted at vps.sansterra.com to process chat messages and register your site. This connection is required for the plugin to function. No data is sold to third parties.<\/p>\n\n<h4>Chat message processing<\/h4>\n\n<p>Each time a visitor sends a chat message, the following data is transmitted to easyaichatbot.ai:<\/p>\n\n<ul>\n<li>The visitor's message text \u2014 used to generate the AI response<\/li>\n<li>A randomly generated session ID \u2014 used to maintain conversation context within a session; not linked to any WordPress user account<\/li>\n<li>Your site's domain name \u2014 used to identify your account<\/li>\n<li>Your chatbot's configured name, personality, rules, and knowledge base text \u2014 used to inform the AI response<\/li>\n<li>Your API key \u2014 used to authenticate the request<\/li>\n<\/ul>\n\n<p>Message text is used solely to produce a reply and is not retained on Easy AI Chatbot servers after the response is delivered. Conversation history, including the full message thread, is stored in your own WordPress database only.<\/p>\n\n<p>The Easy AI Chatbot service returns usage counters (messages used this month, monthly message limit) with each response. These values are stored in your WordPress database for display in the Conversations tab.<\/p>\n\n<h4>Site registration<\/h4>\n\n<p>When you request an API key through the plugin, the following data is transmitted to vps.sansterra.com:<\/p>\n\n<ul>\n<li>Your site name and email address \u2014 used to create your account and deliver your API key<\/li>\n<li>Your site's domain name \u2014 used to associate the key with your site<\/li>\n<\/ul>\n\n<p>Easy AI Chatbot Privacy Policy: https:\/\/easyaichatbot.ai\/privacy-policy\/\nEasy AI Chatbot Terms of Service: https:\/\/easyaichatbot.ai\/terms-of-service\/<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20set%20up%20any%20ai%20services%20or%20accounts%3F\"><h3>Do I need to set up any AI services or accounts?<\/h3><\/dt>\n<dd><p>No. The AI is fully managed by Easy AI Chatbot. There is nothing to configure on your end beyond installing the plugin and requesting an API key.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20an%20api%20key%3F\"><h3>How do I get an API key?<\/h3><\/dt>\n<dd><p>Open the plugin settings page and go to the Get Started tab. Click the \"Request API Key\" button and fill out the short form. Your key will be emailed to you and can be entered directly on that same tab.<\/p><\/dd>\n<dt id=\"where%20are%20conversations%20stored%3F\"><h3>Where are conversations stored?<\/h3><\/dt>\n<dd><p>Conversation logs are stored in your own WordPress database. Message text is transmitted to the Easy AI Chatbot API to generate AI responses, but is not retained on external servers after the response is delivered. Your conversation history stays on your site.<\/p><\/dd>\n<dt id=\"how%20do%20i%20access%20my%20conversations%3F\"><h3>How do I access my conversations?<\/h3><\/dt>\n<dd><p>Open the plugin settings page and click the Conversations tab. You will see a full log of every chat session, including message history, timestamps, and error flags. You can click into any conversation to read the full thread.<\/p><\/dd>\n<dt id=\"are%20conversations%20ever%20deleted%20automatically%3F\"><h3>Are conversations ever deleted automatically?<\/h3><\/dt>\n<dd><p>No. Conversations remain in your database until you choose to remove them. You can delete individual conversations or purge all of them at once from the Conversations tab.<\/p><\/dd>\n<dt id=\"can%20i%20train%20my%20bot%20on%20my%20website%27s%20content%3F\"><h3>Can I train my bot on my website's content?<\/h3><\/dt>\n<dd><p>Yes. Use the Knowledge Base field in the Training tab to provide context your bot should know. You can also configure a Content Source so the AI can search your WordPress posts and pages in real time when answering questions.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20privacy%20or%20consent%20notice%20before%20the%20chat%20opens%3F\"><h3>Can I show a privacy or consent notice before the chat opens?<\/h3><\/dt>\n<dd><p>Yes. In the Design tab, you can enable a consent\/disclaimer screen that users must acknowledge before the chat interface is revealed.<\/p><\/dd>\n<dt id=\"are%20shortcodes%20available%3F\"><h3>Are shortcodes available?<\/h3><\/dt>\n<dd><p>The <code>[sansterra-easy-ai-chatbot-button]<\/code> shortcode is included \u2014 it opens the floating widget and supports pre-filled questions.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20button%20shortcode%20to%20open%20the%20chat%20with%20a%20specific%20question%3F\"><h3>Can I use the button shortcode to open the chat with a specific question?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>question<\/code> attribute to pre-fill or auto-send a message when the button is clicked. Dynamic placeholders like <code>{{post_title}}<\/code> are supported so the message can reference the current page.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20suitable%20for%20healthcare%2C%20legal%2C%20financial%2C%20or%20other%20regulated%20industries%3F\"><h3>Is this plugin suitable for healthcare, legal, financial, or other regulated industries?<\/h3><\/dt>\n<dd><p>Site owners are responsible for ensuring their chatbot content and deployment comply with any regulations applicable to their industry, jurisdiction, or use case. The plugin's consent screen feature lets you display a custom disclaimer to visitors before the chat opens. For questions about compliance requirements specific to your situation, consult a qualified professional.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fixed \"Export All Conversations\" silently failing (wrong object method called)<\/li>\n<li>Added CSV export option alongside JSON for both bulk and per-conversation exports<\/li>\n<li>Mobile widget: hide detach and dock buttons on small screens (already fullscreen)<\/li>\n<li>Pass conversation notification email through to chatbot metadata payload<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Simplified content source handling to a single configurable slot<\/li>\n<li>Hardened public REST search endpoints \u2014 private post meta keys (those starting with an underscore) are stripped at both save-time and search-time so they cannot be exposed by misconfiguration<\/li>\n<li>Removed extension hooks that had no in-tree consumers<\/li>\n<li>Removed admin notice and tip-jar plan-conditional checks; tip jar is now shown to all users<\/li>\n<li>Renamed internal usage-tracking storage from a 'subscription' option key to a 'usage' key (one-time silent migration runs on first load)<\/li>\n<\/ul>\n\n<h4>1.7.8<\/h4>\n\n<ul>\n<li>Hardened REST API endpoints with permission callbacks and schema validation<\/li>\n<li>Added rel=\"noopener noreferrer\" to all external links<\/li>\n<li>Archived old release bundles<\/li>\n<\/ul>\n\n<h4>1.7.7<\/h4>\n\n<ul>\n<li>Renamed Content Sources tab to Training Tools<\/li>\n<li>Fixed WordPress Search enable\/disable checkbox label not updating on toggle<\/li>\n<li>Fixed post picker (specific posts\/pages search) ignoring selected Content Types filter<\/li>\n<li>Fixed endpoint URLs missing from webhook payload \u2014 added dedicated wpSearchTool field<\/li>\n<li>Fixed duplicate wp-search entry in endpointTools payload array<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>Updated plugin name to SansTerra Easy AI Chatbot<\/li>\n<li>Updated shortcode slugs to sansterra-easy-ai-chatbot and sansterra-easy-ai-chatbot-button<\/li>\n<li>Renamed Custom Endpoints tab to Content Sources<\/li>\n<li>Updated Content Sources tab layout<\/li>\n<li>Updated Chat Notification Email field to support multiple addresses<\/li>\n<li>Updated API key modal to pre-fill site name and switch Cancel to Close after key delivery<\/li>\n<li>Fixed floating widget defaulting to enabled on fresh install<\/li>\n<li>Fixed word limit warning message accuracy<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>WordPress.org compliance pass \u2014 i18n, sanitization, and security hardening<\/li>\n<li>Added External Services disclosure to readme per WordPress.org guidelines<\/li>\n<li>Added opt-in data deletion setting (Danger Zone)<\/li>\n<li>Improved over-limit hints in training fields<\/li>\n<li>Fixed missing translators comments on placeholder strings<\/li>\n<li>Fixed unslash\/sanitize handling on dynamic POST keys<\/li>\n<li>Fixed SQL identifier escaping in conversation manager and logger<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>Fixed wp.media avatar upload error on Design tab when navigating from a plugin subpage<\/li>\n<li>Fixed ACF attachment metadata bloating custom endpoint responses sent to N8N<\/li>\n<li>Fixed i18n ordered placeholders and added translator comments in endpoints class<\/li>\n<li>Moved all inline styles and scripts to external files for WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Added WordPress content search REST endpoint (<code>\/wp-search<\/code>)<\/li>\n<li>Added monthly usage counter: conversations tab shows the authoritative usage figure from the chatbot service<\/li>\n<li>Added conversation notification email field<\/li>\n<li>Added sortable conversation columns (Messages, Started, Last Activity)<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Admin UI polish<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Added GDPR\/privacy consent bar with configurable message, link, and dismissal<\/li>\n<li>Added logo display and improved header button styling<\/li>\n<li>Fixed avatar visibility on Design tab<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Initial release on WordPress.org.<\/li>\n<\/ul>","raw_excerpt":"Add a fully managed AI chat widget to your WordPress site. Train your bot, customize the look, and review visitor conversations.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/285488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=285488"}],"author":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sansterra"}],"wp:attachment":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=285488"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=285488"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=285488"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=285488"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=285488"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=285488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}