{"id":374346,"date":"2026-09-25T08:37:49","date_gmt":"2026-09-25T08:37:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/askora\/"},"modified":"2026-09-25T09:52:45","modified_gmt":"2026-09-25T09:52:45","slug":"dotance-chat","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/dotance-chat\/","author":23562247,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.3.1","stable_tag":"3.3.1","tested":"7.1.2","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Dotance Chat","header_author":"Usman","header_description":"An AI chatbot that answers visitors only from your own pages, links the sources it used, captures leads, and shows what your site cannot answer.","assets_banners_color":"1f442f","last_updated":"2026-09-25 09:52:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/dotance.com\/plugins\/dotance-chat\/","header_author_uri":"https:\/\/dotance.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":64,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.3.0":{"tag":"3.3.0","author":"dotance","date":"2026-09-25 08:37:32","revision":3712680},"3.3.1":{"tag":"3.3.1","author":"dotance","date":"2026-09-25 09:52:45","revision":3712791}},"upgrade_notice":{"3.3.1":"<p>Wording only: the setup steps and the key test are written in plain sentences.<\/p>","3.3.0":"<p>The plugin has been renamed to Dotance Chat. Your index, conversations, leads and settings are carried over automatically.<\/p>","3.1.1":"<p>The chat no longer shows a &quot;Dotance Chat&quot; credit to visitors unless you turn it on.<\/p>","3.1.0":"<p>Adds the Conversations screen, automatic deletion of old records, and support for WordPress personal-data export and erasure.<\/p>","3.0.0":"<p>First WordPress.org release. The design customiser, webhooks, CSV export, custom endpoints and drafted answers have moved to the Dotance Chat Pro add-on.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3712678,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3712678,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3712678,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3712678,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.3.0","3.3.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3712678,"resolution":"1","location":"assets","locale":"","width":1280,"height":860},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3712678,"resolution":"2","location":"assets","locale":"","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3712678,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3712678,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3712678,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3712678,"resolution":"6","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"The chat answering a visitor, with the pages the answer came from.","2":"Lead capture inside the chat.","3":"The Questions report: what your content could not answer.","4":"Pinned answers.","5":"Building the index.","6":"Settings."}},"plugin_section":[],"plugin_tags":[148285,90336,191735,14090,11463],"plugin_category":[],"plugin_contributors":[280364],"plugin_business_model":[],"class_list":["post-374346","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-assistant","plugin_tags-ai-chat","plugin_tags-ai-chatbot","plugin_tags-knowledge-base","plugin_tags-lead-capture","plugin_contributors-dotance","plugin_committers-dotance"],"banners":{"banner":"https:\/\/ps.w.org\/dotance-chat\/assets\/banner-772x250.png?rev=3712678","banner_2x":"https:\/\/ps.w.org\/dotance-chat\/assets\/banner-1544x500.png?rev=3712678","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dotance-chat\/assets\/icon-128x128.png?rev=3712678","icon_2x":"https:\/\/ps.w.org\/dotance-chat\/assets\/icon-256x256.png?rev=3712678","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dotance-chat\/assets\/screenshot-1.png?rev=3712678","caption":"The chat answering a visitor, with the pages the answer came from."},{"src":"https:\/\/ps.w.org\/dotance-chat\/assets\/screenshot-2.png?rev=3712678","caption":"Lead capture inside the chat."},{"src":"https:\/\/ps.w.org\/dotance-chat\/assets\/screenshot-3.png?rev=3712678","caption":"The Questions report: what your content could not answer."},{"src":"https:\/\/ps.w.org\/dotance-chat\/assets\/screenshot-4.png?rev=3712678","caption":"Pinned answers."},{"src":"https:\/\/ps.w.org\/dotance-chat\/assets\/screenshot-5.png?rev=3712678","caption":"Building the index."},{"src":"https:\/\/ps.w.org\/dotance-chat\/assets\/screenshot-6.png?rev=3712678","caption":"Settings."}],"raw_content":"<!--section=description-->\n<p>Most AI chatbots put a general-purpose model behind a chat box. Ask one about your prices and it will happily make a number up, because it has never read your pricing page.<\/p>\n\n<p>Dotance Chat reads the pages you have already published and answers visitors from those pages alone. Every answer lists the pages it came from, so a visitor \u2014 and you \u2014 can check it. If nothing on your site answers the question, Dotance Chat says so instead of guessing.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Answers from your own content.<\/strong> Posts, pages and any other public post type you choose are split into passages and indexed once. A question is matched against those passages, and only the ones that actually match are given to the AI.<\/li>\n<li><strong>Shows its sources.<\/strong> Each answer carries links to the pages it was built from.<\/li>\n<li><strong>Pinned answers.<\/strong> Prices, refund terms, opening hours \u2014 pin the exact wording and Dotance Chat gives it back verbatim, before any AI is asked. Instant, and free to serve.<\/li>\n<li><strong>Lead capture.<\/strong> When a conversation turns into buying intent, Dotance Chat asks for a name and email inside the chat and emails the lead to you.<\/li>\n<li><strong>The Questions report.<\/strong> Every question your content could not answer, grouped and counted. It is a list of the pages your visitors wish you had written.<\/li>\n<li><strong>The conversation log.<\/strong> Every question and answer, searchable, with one visitor's whole conversation on one screen. Records can delete themselves after a number of days you choose.<\/li>\n<li><strong>Privacy tools.<\/strong> Dotance Chat answers WordPress's own personal-data export and erasure requests, and suggests wording for your privacy policy.<\/li>\n<li><strong>A spend guard.<\/strong> Set a monthly token budget and the chat stops rather than running up a bill.<\/li>\n<li><strong>Your own AI key.<\/strong> Google Gemini, OpenAI or Anthropic. A free Gemini key is enough for a small site.<\/li>\n<li><strong>Built for ordinary hosting.<\/strong> No Node, no vector database, no background workers. The chat widget is vanilla JavaScript in a shadow root, so your theme cannot break it and it cannot break your theme.<\/li>\n<\/ul>\n\n<h4>Dotance Chat Pro<\/h4>\n\n<p><a href=\"https:\/\/dotance.com\/plugins\/dotance-chat\/\">Dotance Chat Pro<\/a> is a separate add-on for sites that want more:<\/p>\n\n<ul>\n<li><strong>The content-gap loop:<\/strong> pick any question from the Questions report and Dotance Chat Pro drafts the answer from your own content, ready to pin or save as a draft post.<\/li>\n<li>A full design customiser with a live preview.<\/li>\n<li>Lead webhooks for your CRM, Zapier or Make.<\/li>\n<li>CSV export of the Questions report.<\/li>\n<li>Custom AI endpoints \u2014 OpenRouter, Groq, or a model on your own server.<\/li>\n<\/ul>\n\n<p>Everything listed under \"What it does\" above is in this free plugin, with no limits.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Dotance Chat connects to the AI provider you select on its <strong>Settings<\/strong> screen, using the API key you enter there. It connects to one provider for answering and one for indexing (they can be the same). Nothing is sent until you have entered a key.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li><strong>When you build or update the index:<\/strong> the text of each published page or post that is indexed, in passages, to the indexing provider.<\/li>\n<li><strong>When you save a pinned answer:<\/strong> the pinned question, to the indexing provider, so similar questions can match it.<\/li>\n<li><strong>When a visitor asks a question:<\/strong> the question goes to the indexing provider to find matching passages. If any match, the question, those passages and the earlier messages from that visitor's current conversation go to the answering provider. A question that matches a pinned answer word for word is answered without contacting any provider.<\/li>\n<li><strong>When you press \"Test keys\" or save a new key:<\/strong> a request that lists the provider's models, to check the key works. No content is sent.<\/li>\n<\/ul>\n\n<p>The lead form's name, email and phone fields, and visitors' IP addresses, are never sent to an AI provider. Anything a visitor types into a question is sent as part of that question.<\/p>\n\n<p><strong>Google Gemini API<\/strong> (generativelanguage.googleapis.com), provided by Google.\n<a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">Terms of service<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy policy<\/a><\/p>\n\n<p><strong>OpenAI API<\/strong> (api.openai.com), provided by OpenAI.\n<a href=\"https:\/\/openai.com\/policies\/terms-of-use\">Terms of use<\/a> \u00b7 <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">Privacy policy<\/a><\/p>\n\n<p><strong>Anthropic API<\/strong> (api.anthropic.com), provided by Anthropic.\n<a href=\"https:\/\/www.anthropic.com\/legal\/commercial-terms\">Commercial terms<\/a> \u00b7 <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">Privacy policy<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Dotance Chat from the Plugins screen, under Add New.<\/li>\n<li>Open the <strong>Setup guide<\/strong> under Dotance Chat in your admin menu. It walks through the four steps below and links to each screen as you go.<\/li>\n<li>Open <strong>Settings<\/strong> under Dotance Chat and paste an API key. A free Google Gemini key from Google AI Studio covers both indexing and answering.<\/li>\n<li>Open <strong>Index<\/strong> under Dotance Chat and build the index.<\/li>\n<li>Ask a question in the \"Try a question\" box to see what visitors will get.<\/li>\n<li>Back in <strong>Settings<\/strong>, tick \"Show the chat widget to visitors\".<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20make%20answers%20up%3F\"><h3>Does it make answers up?<\/h3><\/dt>\n<dd><p>Dotance Chat only gives the AI the passages from your own site that match the question, with an instruction to answer from them or say it does not know. When nothing on your site matches closely enough, no answer is generated at all and the visitor gets your fallback message. For answers that must never vary, use Pinned answers.<\/p><\/dd>\n<dt id=\"what%20does%20it%20cost%20to%20run%3F\"><h3>What does it cost to run?<\/h3><\/dt>\n<dd><p>The plugin is free. Answers cost whatever your AI provider charges your own account. Google Gemini's free tier covers a small site. Indexing is a one-off cost per page, repeated only when that page changes.<\/p><\/dd>\n<dt id=\"which%20ai%20providers%20can%20i%20use%3F\"><h3>Which AI providers can I use?<\/h3><\/dt>\n<dd><p>Google Gemini, OpenAI and Anthropic. Building the index needs a provider that produces embeddings \u2014 Gemini or OpenAI. Anthropic can write answers but cannot build the index.<\/p><\/dd>\n<dt id=\"where%20is%20my%20api%20key%20stored%3F\"><h3>Where is my API key stored?<\/h3><\/dt>\n<dd><p>In your WordPress database, encrypted with AES-256-CBC using a key derived from your site's salts. If the salts are ever changed, the stored key can no longer be read and you are asked to enter it again.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20my%20site%20down%3F\"><h3>Will it slow my site down?<\/h3><\/dt>\n<dd><p>The widget script is small and loads in the footer, and its stylesheet is only fetched once the widget starts. No AI provider is contacted on a page view \u2014 only when a visitor actually asks a question.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20visitors%27%20data%3F\"><h3>What happens to my visitors' data?<\/h3><\/dt>\n<dd><p>Conversations and leads are stored in your own database. You can switch the conversation log off in Settings. See \"External services\" below for exactly what is sent to the AI provider you choose.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.3.1<\/h4>\n\n<ul>\n<li>The setup steps read as plain sentences now, in the readme and on the Setup guide screen: menu paths are written out instead of drawn with arrows, and the key test says what happened in words rather than with a tick or a cross.<\/li>\n<\/ul>\n\n<h4>3.3.0<\/h4>\n\n<ul>\n<li>The plugin is now called Dotance Chat. Nothing about how it works has changed: existing installs keep their index, conversations, leads, pinned answers and settings, and everything is carried over on update.<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>An earlier rename, away from a name that collided with other plugins and with an unrelated company.<\/li>\n<li>Fixed: on MySQL older than 8.0.13 the tables could fail to be created, because a BLOB column was declared with an explicit default. The installer also no longer records the database as installed unless every table really exists, so a failure like that can correct itself.<\/li>\n<\/ul>\n\n<h4>3.1.3<\/h4>\n\n<ul>\n<li>A Setup guide screen inside the plugin: the four steps in order, where to get a free key, what each screen is for, and what to do when the chat says it cannot answer.<\/li>\n<\/ul>\n\n<h4>3.1.2<\/h4>\n\n<ul>\n<li>When the chat credit is switched on it now links to the plugin's page, opening in a new tab. The link is nofollow, so it cannot affect anyone's search ranking.<\/li>\n<\/ul>\n\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>The small \"Dotance Chat\" line at the foot of the chat is now off unless you switch it on in Settings. Visitors see nothing about Dotance Chat by default.<\/li>\n<li>The chat and lead endpoints check their session token in the REST permission callback rather than inside the handler.<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>A new Conversations screen: every question a visitor asked and the answer they got, with search, an intent filter and a period filter. The Questions screen only ever showed the failures \u2014 this shows everything.<\/li>\n<li>Follow one visitor's whole conversation from any row.<\/li>\n<li>Records can now delete themselves. Set \"Keep records for\" in Settings and anything older is removed once a day. 0 keeps them for ever, which stays the default.<\/li>\n<li>A button to delete every recorded question at once, leaving leads and pinned answers alone.<\/li>\n<li>Dotance Chat now answers WordPress's own Export and Erase Personal Data requests, matching on the email address a visitor left in the chat, and offers wording for your privacy policy.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<li>The chat, indexing, pinned answers, lead capture by email, the Questions report and the spend guard are all included, with no limits.<\/li>\n<li>The design customiser, lead webhooks, CSV export, custom AI endpoints and AI-drafted answers now live in the separate Dotance Chat Pro add-on.<\/li>\n<li>The widget theme (light, dark, or matching the visitor's device) is now set in Settings.<\/li>\n<li>Uninstalling now also removes the pinned answers table.<\/li>\n<\/ul>","raw_excerpt":"An AI chatbot that answers visitors only from your own pages, links the sources it used, captures leads, and shows what your site cannot answer.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/374346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=374346"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dotance"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=374346"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=374346"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=374346"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=374346"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=374346"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=374346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}