=== SiteStaffr – AI Chatbot and Voice Agent for WordPress ===
Contributors: sitestaffr
Tags: chatbot, ai chatbot, live chat, lead generation, voice agent
Requires at least: 6.2
Tested up to: 7.0
Stable tag: 1.53.16
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AI chatbot and voice agent for your site. It answers visitors day or night, captures their name and email or phone, and emails you the lead.

== Description ==

SiteStaffr adds an AI agent to your WordPress site. Visitors can type their question or speak it, and your agent answers 24/7 using what it knows from your own website pages. Every conversation is saved with a full transcript, an AI summary, and suggested follow-up, so nothing gets lost.

Text chat is unlimited on every paid plan, with no per-conversation fees. Voice is included on every plan too, so a visitor who would rather speak can do that on your website instead of calling. When a visitor leaves their name and their email or phone, the lead lands in your inbox.

No phone lines. No code. Install in minutes. Free for 30 days.

**AI Text Chat**

* Unlimited AI text chat on every paid plan, with no per-conversation fees
* A chat widget on every page, for the visitors who would rather type than call
* Answers drawn straight from your own website content
* Takes down a visitor's name and their email or phone without sending them to a form

**Voice Agent**

* Visitors can talk to your agent without leaving your website
* No phone call to place, no number to set up, nothing for them to install
* 10 AI voices to match how your business sounds
* Contact details are captured mid-conversation, the same as in chat

**AI Knowledge Base**

* Sync your website pages so your agent answers from your own content
* Finds the right page even when a visitor asks in their own words
* Your agent learns your business, so there is nothing to script

**Built for Business**

* 57+ languages, so visitors get answers in the language they use
* Full conversation transcripts stored in WordPress
* An AI summary and suggested follow-up after every conversation
* Email alerts with one-click access to the transcript
* A usage dashboard showing conversations, leads, and voice minutes
* Change how the widget looks: colors, position, border styles, and icon

**Also Included**

* Blog Agent writes SEO blog posts for your site, grounded in your business, ready for you to review before they publish
* AI Visibility checks whether ChatGPT, Perplexity, and Gemini mention your business when people ask about your field

**Two Widget Styles**

* Fixed-position widget with text chat and voice
* Inline button variant via `[sitestaffr_button]` shortcode

**Great For**

* Dental practices
* Medical practices
* Med spas and aesthetics
* Chiropractic and physical therapy
* Veterinary clinics
* Law firms
* Accounting and tax
* Insurance agencies
* Real estate
* Home services
* HVAC and plumbing
* Pest control
* Auto repair shops
* Salons and barbershops
* Fitness studios
* Any WordPress business that wants its website answering 24/7

== Installation ==

1. Upload the plugin files to `/wp-content/plugins/sitestaffr/`
2. Activate the plugin through the Plugins screen in WordPress
3. Go to `SiteStaffr` in wp-admin
4. Complete setup and connect your site
5. Add the widget shortcode to a page and test a conversation

== External Services ==

This plugin relies on SiteStaffr cloud services and third-party infrastructure providers to deliver chat, voice, AI, and billing features.

**SiteStaffr Cloud Service (Required)**
* Purpose: Site registration, authenticated chat and voice session orchestration, post-conversation processing, automatic daily indexing of new and updated pages so the AI can answer from them, and AI blog content generation (manual and scheduled Autopilot posts, including topic suggestions)
* Data sent: Site URL, installation identifier, business context/settings, transcript text, and usage metadata required to deliver service features. For blog generation: the post topic/keyword, your business name and description, titles/URLs/short excerpts of your published pages and the internal link targets of your recent generated posts, drafts included (for internal linking and link variety), and your site's category/tag names. Generated posts are delivered directly back to your site and are not stored on SiteStaffr servers. For knowledge indexing: the text of published pages selected for indexing, sent when you run an update from Settings, during setup, and automatically once a day for pages that are new or have changed since they were last read. The daily pass reads pages only; it does not rewrite your saved business text unless you turn that on in Settings. It can be disabled entirely with the `sitestaffr_auto_index_enabled` filter.
* Privacy Policy: https://sitestaffr.com/privacy
* Terms of Service: https://sitestaffr.com/terms

**OpenAI (Required via SiteStaffr service)**
* Purpose: Text chat replies, real-time voice conversation, AI-generated summaries, and AI blog content/image generation
* Data sent: Chat messages, voice audio during active sessions, transcript text, and prompt context needed to generate responses/summaries; for blog posts, the topic and business context needed to research and write the article
* Provider Policy: https://openai.com/policies/privacy-policy

**Stripe (Required for paid plans and add-ons)**
* Purpose: Subscription billing, checkout, and payment management
* Data sent: Billing identifiers, plan/add-on selection, and payment-related metadata
* Provider Policy: https://stripe.com/privacy

**Google Cloud (Required infrastructure)**
* Purpose: Hosting and secure operation of SiteStaffr cloud services
* Data sent: Service requests and operational metadata required to process authenticated plugin requests
* Provider Policy: https://cloud.google.com/privacy

**Data Handling**
* Transcripts and conversation metadata are stored in your WordPress database
* Configuration/auth metadata is stored for service operation
* Audio recordings are not persisted by this plugin

By using this plugin, you acknowledge relevant conversation and session data is transmitted to SiteStaffr cloud services to provide functionality.

== Privacy ==

SiteStaffr processes visitor conversation data to provide chat and voice agent functionality.

Data may include:
* Visitor contact details (if provided)
* Transcript text
* Session timing and usage metrics
* Business configuration you enter in settings

SiteStaffr does not use your data for advertising.

== Frequently Asked Questions ==

= How does SiteStaffr work? =

Visitors click the widget on your site and start a text or voice conversation. SiteStaffr's AI uses your synced website content to answer their questions. After each conversation, you get a transcript, a summary, and suggested follow-up in your WordPress admin.

= Is this a chatbot or a voice agent? =

Both, in one widget. Most visitors type, so text chat is unlimited on every paid plan with no per-conversation fees. Anyone who would rather talk can do that on your site, using the voice minutes your plan includes.

= Will I be charged per conversation? =

No. Text chat is unlimited on every paid plan and is never billed per conversation. Voice is the part that varies by plan, and it is measured in voice minutes.

= Do I need a phone number or any other accounts? =

No. Visitors talk to your agent on your own website, so there is no call to place and no number to set up. You do not need your own OpenAI account either, because the AI is included in your plan.

= How does the AI know about my business? =

Setup reads your website, and after that SiteStaffr keeps up on its own: new and updated pages are read once a day, so the AI can answer questions about your services, pricing, hours, and more. You can trigger a read yourself from Settings, and review everything it has learned on the AI Knowledge page.

= What languages does it support? =

SiteStaffr supports 57+ languages for both text and voice conversations. Visitors can type or speak in their preferred language.

= Can I customize the widget appearance? =

Yes. You can change colors, position, border styles, icon, and choose between a fixed widget or an inline button. There are also 10 different AI voices to match your brand.

= Is audio recorded? =

No. Audio is not stored by this plugin. Conversation transcripts are saved in your WordPress database for your records.

= Does the widget show SiteStaffr branding? =

No. The widget does not display any SiteStaffr branding text.

= Is there a free trial? =

Yes. SiteStaffr includes a free 30-day trial so you can test it on your site before committing to a plan. Visit [sitestaffr.com](https://sitestaffr.com) for pricing details.

== Plans & Free Trial ==

SiteStaffr includes a **30-day free trial** so you can try every feature before you pick a plan.

After your trial, choose the plan that fits your site:

* **Free Trial**: full access for 30 days
* **Starter**: unlimited text chat plus everyday voice, for smaller sites
* **Business**: unlimited text chat plus more voice minutes, for growing sites
* **Pro**: unlimited text chat plus our most voice minutes, for busy sites

Every paid plan includes unlimited AI text chat with no per-conversation fees. What changes between plans is the voice minutes they include. Optional add-ons can add more voice minutes and more knowledge pages.

Visit [sitestaffr.com](https://sitestaffr.com) for current pricing and plan details.

== Screenshots ==

1. The chat widget open on a live page, ready for a visitor to type.
2. Your dashboard opens with the leads captured this billing cycle, and who still needs a reply.
3. Every conversation in one list, with lead badges, channel and duration.
4. Usage and Billing shows your leads, how many conversations arrived while you were closed, and which pages start them.
5. Widget and Button settings, including style presets and your own brand color.
6. Settings, where your business profile tells your agent what you do.
7. One conversation in full: the recap, the captured lead, and the transcript.

== Changelog ==

= 1.53.16 - 2026-09-10 =
* Changed: You now choose which of your brand colors leads a blog featured image, instead of it being whichever swatch you typed first. Each color swatch has a "Dominant" option, and a "Balanced" option leaves no single color leading. Before, the first swatch in the list was the dominant one and the rest were accents, which was only mentioned on the "Use my brand colors" switch and could not be changed without deleting every swatch and entering them again in a different order. Your choice is saved as the color itself rather than its position, so adding or removing a swatch never moves it, and recoloring the swatch you marked keeps it marked. If you have not set this, nothing changes: your first swatch stays dominant, and the screen now shows you that.

= 1.53.15 - 2026-09-07 =
* Fixed: If a reply fails to come back, the chat now says so and invites you to send the message again. Before, a turn that came back empty looked exactly like a finished one: the typing indicator simply disappeared and nothing arrived, with no way to tell that anything had gone wrong. On one conversation a visitor gave their phone number, saw no reply, and left, and the enquiry was never recorded as a lead.

= 1.53.14 - 2026-09-07 =
* Fixed: On voice calls the agent stays in the language the visitor is speaking, English included. A reminder attached to every knowledge lookup and every internal step was worded in a way that told the agent English was not its reply language, so an English speaking visitor could get answers in Spanish or French and had to keep asking for English.

= 1.53.13 - 2026-09-06 =
* Added: The voice widget now says "Connecting to AI Assistant..." while a call connects, so visitors are told they are speaking to an AI even on sites that have renamed or hidden the tooltip.

= 1.53.12 - 2026-09-06 =
* Added: The chat panel header now carries an "AI assistant" line beneath your business name, so visitors can see what they are talking to.

= 1.53.11 - 2026-09-01 =
* Fixed: "Check again" on the Updates screen now really does check for a new SiteStaffr version. It was only ever consulting a copy of the release details that is kept for twelve hours, so if your site happened to refresh that copy shortly before a release came out, the update stayed hidden until the next day and there was no way to ask for it sooner.

= 1.53.10 - 2026-08-31 =
* Fixed: Once the agent has taken a visitor's details, it stops asking for them. On a voice call it had taken a name, a phone number and an email, confirmed all three, and then asked for contact details three more times, at one point offering a choice of "phone or email" while already holding the phone. Details it has are now treated as settled and closed for the rest of the conversation, and when a visitor asks for a follow-up on something new the agent simply notes it rather than starting to collect all over again.

= 1.53.9 - 2026-08-30 =
* Fixed: On voice calls, any extra field your button collects beyond a name, phone and email now saves and appears on screen. A business name or a website address was being asked for, answered, and then quietly discarded. Text chat was never affected.

= 1.53.8 - 2026-08-30 =
* Fixed: A detail the agent has already heard is no longer lost if the visitor hangs up before confirming it. When a conversation ends with fields still empty, the transcript is checked once for anything the visitor actually said.
* Changed: On voice calls the agent now only reads back a phone number or an email address. Names, business names and other details are taken down and acknowledged as you go, which makes the conversation shorter and removes the moment where an answer could be lost.

= 1.53.7 - 2026-08-30 =
* Maintenance: packaging release, with no functional change since 1.53.6.

= 1.53.6 - 2026-08-30 =
* Changed: A button that collects details now opens by asking its first question straight away, instead of saying it is about to ask. The question is built from the first field you declared.

= 1.53.5 - 2026-08-30 =
* Added: A button that starts by collecting details now has a sensible opening message of its own, so it no longer opens by asking how it can help when it is there to take a few details. Write your own under Widget & Button to name what the form is for.

= 1.53.4 - 2026-08-30 =
* Fixed: completes the 1.53.3 voice fix. The browser was not being told which stage the conversation started in, so a collecting button's voice call still behaved as though it were just greeting.

= 1.53.3 - 2026-08-30 =
* Fixed: A button set to start by collecting details now does that on voice calls too, not only in text chat, and it speaks its own opening message instead of your site's general greeting.

= 1.53.2 - 2026-08-30 =
* Fixed: A button placed with the older `persona="..."` spelling of the shortcode now uses that button's settings in the browser too. It was reaching the AI correctly but falling back to your default button on the page itself, so any extra fields it collects and its own opening message were ignored.

= 1.53.1 - 2026-08-30 =
* Added: A button can now start the conversation by collecting the details it asks for, instead of waiting for the visitor to ask a question first. Turn it on under Widget & Button, in "What this button collects".
* Added: A button can have its own opening message, so a button built for one job no longer opens with your site's general greeting.
* Fixed: A button that collects details beyond a name, phone and email now tells the AI about all of them on every turn. Extra fields such as a business name or a website address were being captured but left out of the list the AI works from.
* Fixed: "Interested in" on the Conversation Details screen no longer runs a label and a value together, for example showing a visitor's name where a short summary belongs.

= 1.53.0 - 2026-08-30 =
* Fixed: On a phone, opening the keyboard to type no longer pushes the chat header and greeting off the top of the screen. The panel now fits the space the keyboard leaves, and the conversation scrolls under a header that stays where it is.
* Fixed: Voice conversations stay in the visitor's language after the agent looks something up. Searching the website used to switch the agent to English mid-conversation, because the information it found is written in English.
* Fixed: The same language slip could happen when the agent moved between answering questions, taking a visitor's details, and saying goodbye. All three now keep the visitor's language.

= 1.52.17 - 2026-08-29 =
* Maintenance: packaging release, with no functional change since 1.52.15.

= 1.52.15 - 2026-08-29 =
* Fixed: When a visitor tells the voice agent they would rather not give an email or a phone number, that answer is now remembered and the agent never asks for it again, including after it moves between answering questions and taking their details.
* Fixed: The voice agent no longer asks a visitor for their availability or how they prefer to be contacted, neither of which it can save.

= 1.52.14 - 2026-08-29 =
* Maintenance: packaging release, with no functional change since 1.52.13.

= 1.52.13 - 2026-08-29 =
* Added: You can choose a different image style for a single post when you generate it, without changing your saved default.

= 1.52.12 - 2026-08-29 =
* Added: Hovering an image style now tells you what that style is best suited for, so you can pick by the kind of business you run rather than by the name of the art style.

= 1.52.11 - 2026-08-29 =
* Changed: The image style samples now show the SiteStaffr robot as it actually looks, and the Clean 3D Render sample is brighter so it is easy to tell apart from Cinematic.

= 1.52.10 - 2026-08-29 =
* Fixed: The large image-style preview now appears in the same place for every style, instead of shifting position and, on one of them, sitting partly outside the panel.

= 1.52.9 - 2026-08-29 =
* Fixed: The Cinematic style sample is brighter and framed like the others, so the samples now look like a consistent set.

= 1.52.8 - 2026-08-29 =
* Changed: The image styles now all describe the look of the image. "Warm Lifestyle" has been removed — it described who was in the picture rather than how it looks, so it was impossible to tell apart from Photographic. Use the Image direction box for that, e.g. "Always include a person".

= 1.52.7 - 2026-08-28 =
* Added: A sixth image style, Cinematic — moodier and more dramatic than the bright, clean Photographic look.
* Fixed: The Abstract Minimal sample now shows what that style really produces, instead of looking almost the same as Editorial Illustration.

= 1.52.6 - 2026-08-28 =
* Changed: The image style samples now use one consistent colour scheme, so the only difference you see between them is the art style itself.

= 1.52.5 - 2026-08-28 =
* Fixed: The image style samples refresh properly after an update instead of showing cached older versions.

= 1.52.4 - 2026-08-28 =
* Changed: The image settings now appear only when "Generate featured images" is switched on.
* Changed: Hover an image style to see a large preview — the small samples were hard to judge.
* Changed: The style samples now show the same character drawn in each style, so you can see what each one actually does.

= 1.52.3 - 2026-08-28 =
* Fixed: Scheduled blog posts no longer fail when "Use my logo" is switched on. Generating a post from the Blog Agent screen always worked; only Autopilot's scheduled runs were affected.

= 1.52.2 - 2026-08-28 =
* Changed: Internal build update. No changes to how the plugin works.

= 1.52.1 - 2026-08-28 =
* Changed: Internal build update. No changes to how the plugin works.

= 1.52.0 - 2026-08-28 =
* Added: Choose how your blog post images look. Blog Agent → Settings now has an image style (Photographic, Warm Lifestyle, Editorial Illustration, Clean 3D Render or Abstract Minimal), with example thumbnails so you can see each one before you pick.
* Added: Choose the shape of your featured images. Wide 16:9 is the new default, with landscape, square, tall and portrait also available.
* Added: Use your logo in generated images. Your real logo is handed to the image generator as a reference, so it appears as it actually is rather than being redrawn from a description. It is found automatically from your site logo or site icon, and you can pick a different one.
* Added: Use your brand colors in generated images. Add up to five swatches; the first is used as the dominant color and the rest as accents.
* Added: An Image direction box for anything else you always want, or never want, in your images.
* Changed: Featured images are no longer square. They were 1024x1024, which most themes then crop to a wide banner — cutting apart whatever had been composed. New posts default to 16:9.
* Fixed: Generated images no longer contain invented, garbled brand names or made-up signage.

= 1.51.0 - 2026-08-27 =
* Fixed: The fields a button collects now reach the visitor's screen, the recap and your dashboard. They were asked for, answered, and then quietly dropped.
* Fixed: The details card a visitor sees while answering follows the fields that button collects, instead of a fixed list.
* Fixed: A captured lead counts as a lead whatever you named the button. Conversations from a button named "onboarding" were being left out of your dashboard.
* Fixed: Leaving the website question unanswered no longer records a website of "https://".

= 1.50.1 - 2026-08-27 =
* Fixed: A button named "onboarding" opened its chat with SiteStaffr's own greeting instead of yours. It now uses your greeting, like every other button.

= 1.50.0 - 2026-08-27 =
* Added: A button can declare what it collects. Under "What this button tells the AI", list the fields you want — their business name, their website, whatever the button is for — and the AI can capture them. Leave it empty and the button collects the usual name, phone and email. Telling the AI to ask for something in the instructions is not enough on its own: it can only save an answer to a field named here.

= 1.49.1 - 2026-08-27 =
* Fixed: A button's shape is its own. Choosing a preset with a border radius (Pill, Rounded, Square) changed the shape of your other buttons instead of that one — the radius was never saved onto the button, so it fell back to your site-wide setting.
* Fixed: Opening a button now refills the corner radius boxes with that button's values. They used to keep showing the last button you looked at.

= 1.49.0 - 2026-08-27 =
* Added: "Edit these", under a button's "From your business" list, opens your site-wide instructions in a dialog instead of sending you to My AI Agent and losing the button you were configuring. Same editor, either way. With no global instructions yet, the control is disabled and says so.
* Fixed: A button's style preset no longer reverts to the Default button's look. The change saved, but the screen kept the pre-save copy, so reopening the button re-displayed the old style and wrote it back over the edit.
* Fixed: An edit made a moment before switching buttons now lands on the button it was made on, not the one just opened.
* Fixed: Collapsing a button's card can no longer repaint the Default button.

= 1.48.0 - 2026-08-27 =
* Added: A button can now differ from your business-wide instructions. Each button lists them under "From your business" with a switch on each — turn one off and it stops applying to that button only.
* Added: Collect contact details and Ignore sensitive info can each be set per button, or left to follow your site setting.
* Changed: One instruction can be up to 2,000 characters and is never split.
* Fixed: A button's style preset is its own. Setting Neon on one button used to skin every button on the page.

= 1.47.1 - 2026-08-26 =
* Added: Buttons you can create, style and instruct. Widget &amp; Button → Button is now a list: it starts with your Default button, and "Add a Button" adds as many more as you need. Each keeps its own look and its own instructions to the AI. Drop one on a page with [sitestaffr_button preset="agency-inquiries"].
* Added: Instructions are a list of directives, each with its own on/off switch, the same way Custom Instructions work on the My AI Agent screen. Buttons start collapsed; open the one you want to edit.
* Fixed: The Neon preset made the button's label and icon near-black, because both took the background color — which under Neon is the dark tube itself. They now follow your Icon color, matching what Neon has always rendered on the live site.
* Added: A button can collect its own contact fields, and can send its recaps to its own address.
* Added: Duplicate a button, or copy just the appearance from another one and leave its instructions alone.
* Added: Google Analytics now tells you which button produced a lead, via a new sitestaffr_button_key dataLayer variable on every event.
* Changed: Every conversation event now carries the page URL and title. The two lead events previously carried neither.
* Note: Nothing changes on upgrade. Existing shortcodes keep rendering exactly as before, and a shortcode naming a deleted button falls back to the Default button rather than breaking the page.

= 1.45.1 - 2026-08-23 =
* Added: Four new widget icons — a typing bubble, a speech bubble, an AI sparkle and a voice waveform. They take your Icon color like the others.
* Changed: New installs now use the typing bubble by default, so the widget says "type to us" at a glance. If you have already picked an icon, yours is untouched.
* Changed: The icon list now starts with the text ones and ends with the SiteStaffr logo.
* Changed: The Neon preset now uses the Soft shape instead of a circle.
* Removed: The Headset icon is no longer offered — it suggested a phone channel we do not have. If you are using it, it keeps working exactly as before.

= 1.44.1 - 2026-08-22 =
* Fixed: With the Neon preset, the icon showed as black and changing the Icon color had no effect. The Icon color now works, and the glow color is used only when you have not set one.
* Fixed: The Brand color box no longer picks up Neon's dark background, which could turn your glow black the next time you applied the preset.

= 1.44.0 - 2026-08-22 =
* Added: A "Neon" style preset for your widget and your button, alongside Round, Soft, Rounded, Square and Outline — a glowing edge around a solid surface.
* Added: Glow color and glow strength controls under Advanced customization, so you can tune the effect rather than take it as-is.
* Added: Neon uses your own background color. It fills in a dark one to start with, and you can change it to anything — including a light color, which now gets dark text automatically so it stays readable.
* Changed: The Phone icon is no longer offered. SiteStaffr has no phone channel and the icon suggested visitors could call you. If you are already using it, it keeps working and is labelled "Phone (retired)".
* Fixed: The icon no longer disappears when you hover the widget. Choosing Outline and then another preset left a hover color behind that matched the new background exactly.
* Fixed: Saving your Button settings no longer changes your Fixed Widget's style, or the other way around.


= 1.42.17 - 2026-08-18 =
* Changed: Your Detailed Business Profile moved to My AI Agent → Blog Agent → Profile, on its own tab. Only the Blog Agent and AI Visibility ever read it, so it now lives with them instead of on the Settings screen.
* Changed: Settings keeps the Agent Summary — the short text your voice and chat agent reads in every conversation — and is a shorter screen for it.
* Changed: The Agent Summary box now fills the space the Detailed Profile left behind, instead of sitting above a large empty area.
* Changed: The Detailed Profile and everything around it use the full width of the screen.
* Changed: Each box is updated from its own screen. Settings updates your Agent Summary; Blog Agent -> Profile updates your Detailed Profile, with its own button and automatic option. Neither one touches the other.
* Changed: If you had automatic updates switched on, both boxes stay switched on after upgrading.
* Changed: Every settings screen now saves as you change it — six Save buttons are gone. Your Detailed Profile, Blog Agent settings, tracked prompts, voice greeting and both Widget & Button sections all save on their own, the way Settings already did.
* Changed: Adding manual knowledge, adding a custom instruction and the last step of setup still have a button, because those create something rather than change a setting.
* Fixed: Saving Business Information can no longer wipe your Detailed Profile.

= 1.42.13 - 2026-08-17 =
* Fixed: Content edited inside a page builder no longer shows as up to date when it is not. Builders that store their content outside the page itself, such as Slider Revolution, never change the page's modified date, and that date was the only thing deciding whether your agent had read the latest version. Knowledge kept saying Synced while the live page drifted.
* Fixed: Your agent now re-reads a few pages each update to confirm they still match what it indexed, so a change made inside a builder gets picked up. Pages already indexed are not re-read all at once when you update the plugin.

= 1.42.12 - 2026-08-17 =
* Added: Settings now has an Email Notifications section — one place for every email SiteStaffr sends, with an on/off switch per event, grouped by who reads them. Any event can be pointed at its own address with "Send elsewhere".
* Added: The AI visibility report and the "your agent stopped answering" alert can now be configured at all. The report previously used the Blog Agent's recipients without saying so, and went nowhere if no blog email was set; the alert went to your WordPress admin address, which on an agency-built site is the developer.
* Changed: Email addresses are edited in one place instead of three. The Voice & Text and Blog Agent screens now link to Settings.
* Changed: Blog posts ready to review and blog posts published can go to different people.
* Changed: Nothing changes destination when you upgrade. If you never set a blog email, those notifications start switched off — which is what they already did — and one click turns them on.

= 1.42.11 - 2026-08-17 =
* Changed: Settings saves as you change it. The "Update Business Information" button is gone — your name, phone, hours and profile text all save on their own, and the card tells you when it saved.
* Changed: Business Profile now has one control instead of three. An "Update automatically" toggle and an "Update now" button sit side by side below your profile text, running the same thing. The separate rewrite link and checkbox are gone.
* Changed: Updating asks before it replaces wording you have written. Empty boxes are written straight away.
* Changed: Nothing reads your site on a schedule any more. With the toggle on, an update runs a few minutes after you publish or edit a page, and a burst of edits produces one update rather than one per save.
* Fixed: A setting changed and then abandoned is no longer lost silently.
* Fixed: The update button rendered without its styling.

= 1.42.10 - 2026-08-17 =
* Added: One action for keeping your agent current — "Update what my agent knows" reads your new and updated pages so the AI can answer from them. Previously the only button that did this in the right order was inside the setup wizard, which you cannot get back to once setup is done.
* Added: Automatic daily indexing, so new and edited pages are read without anyone pressing anything. Note that content edited inside a page builder does not always update the page's modified date, and changes like that cannot be detected this way.
* Added: An opt-in for automatic profile updates, off by default. Ticked, it also rewrites your Summary and Detailed Profile from your website content whenever it changes. Left alone, nothing ever rewrites what you wrote there.
* Changed: The Business Profile notice now counts pages your agent has not read yet and points at the action that reads them. It previously counted pages published since the profile was written and told you to regenerate the profile — which rewrote your text and indexed nothing.
* Changed: "Generate Profile" is now an advanced control, "Rewrite profile from current knowledge", with copy saying it does not read anything new.
* Fixed: The knowledge figure on the dashboard counted a re-synced page as out of date, and counted page-directory entries as if the page had been read. It now matches what the plugin actually indexes.

= 1.42.9 - 2026-08-15 =
* Fixed: Your agent now learns from the pages visitors actually ask about. On a new site, the job that picks which pages the agent reads was sharing a page list with the job that writes your business description — and that list deliberately skips testimonials, reviews, success stories, case studies, before-and-after and results pages. That is right for a description, which should not read like marketing copy, and exactly backwards for the agent's knowledge, where those are the pages visitors ask about most. The two now use separate lists.
* Fixed: Raised the page limit for knowledge from 20 to 100. Seeding stopped at 20 pages regardless of how big the site was, which left larger sites with a small fraction of their content indexed.

= 1.42.8 - 2026-08-15 =
* Fixed: The AI could name a page and then refuse to link to it, most visibly while it was taking a visitor's contact details. Sites that had not indexed any content yet were telling the AI they had no page links available, so it named pages in plain words even when a working link was available for that same answer.
* Fixed: An empty page list is no longer remembered for an hour. A single empty result could silently disable every page link on the site until it expired, with nothing reporting it.

= 1.42.7 - 2026-08-15 =
* Changed: Build and packaging changes only. No functional change for sites installed from WordPress.org.

= 1.42.6 - 2026-08-14 =
* Fixed: Voice now checks an email address before saving it. A spoken email could be stored with no @ in it at all and reach your team inside a recap that read like a qualified lead. Visitors are also no longer asked for an email more than twice — being asked repeatedly is what produced the unusable values.
* Fixed: Links in an AI chat message now open in a new tab, and following one no longer ends the conversation. Previously a visitor who had just agreed to be contacted could click a link and the conversation would end before their details were collected, so your team received a follow-up request with no way to follow up.

= 1.42.5 - 2026-08-14 =
* Fixed: Pages built with a page builder can now be described and linked properly. The agent had only the page title to work with, so it could name the page but not say anything useful about it — even when the page's real text had already been indexed.

= 1.42.4 - 2026-08-13 =
* Fixed: Pages built with a page builder now get a proper directory entry. Their text is stored outside the usual place, which made the agent much less likely to offer the page as a link. It now reads what a visitor actually sees on the page.

= 1.42.3 - 2026-08-13 =
* Fixed: The agent could offer a link to something that was not a real page. Testimonial sliders and similar building blocks are stored as their own hidden records and were being treated as pages a visitor could visit. Anything without a real web address is now left out, and any entries created under the old rule are cleaned up automatically when you update.

= 1.42.2 - 2026-08-13 =
* Fixed: The page directory's progress read "Building… 38 of 38 done" and stayed there while it was still working. It now counts what is left to do.

= 1.42.1 - 2026-08-13 =
* Fixed: The page directory now builds itself and tells you how it is going. An existing site got nothing until someone found the "Build page directory" button, and clicking it said "38 pages queued" and then went silent. The first build now starts on its own and the progress keeps counting.
* Fixed: A page published without a title is now filed under its web address instead of being rejected, so the agent can still match it by meaning rather than only by an exact word.

= 1.42.0 - 2026-08-13 =
* Added: Page directory. Every published page gets a one-line entry your agent can use to send a visitor straight to that page with a working link — including pages the agent has never read in full, such as a photo gallery, which is exactly where it was failing before. Build it from Knowledge → Build page directory; after that it keeps itself current as you publish, edit and delete pages.
* Fixed: A routine content re-sync no longer wipes a page's directory entry, which would leave the page indexed but unlinkable.

= 1.41.1 - 2026-08-13 =
* Fixed: The voice minute add-on now shows its current price of $20 for 60 minutes. wp-admin had kept advertising $10 for 50 minutes, so the buy window quoted less than you would actually be charged. The running total as you change the quantity was affected too, not just the first line.

= 1.41.0 - 2026-08-12 =
* Added: After-hours conversations on Usage & Billing — the share of conversations that arrived while you were closed, including how many of them were qualified leads.
* Added: Top pages on Usage & Billing — which pages start conversations, and which ones produce qualified leads.
* Added: Both appear in your shareable usage report, so you can hand the proof to your team or agency without giving them a login.
* Fixed: Plan prices and included voice minutes in wp-admin now match current pricing — Starter $29 (100 voice minutes), Business $69 (300), Pro $129 (600), each with unlimited AI text chat. The Usage & Billing page and the setup wizard had kept showing the old figures.

= 1.40.3 - 2026-08-11 =
* Fixed: Cancelling no longer sends you an email saying a payment failed. If you cancel a site on purpose, nothing has gone wrong and there is nothing to fix — so you now hear nothing. That email is only sent when a payment genuinely fails and your agent stops because of it.
* Fixed: Sites on a complimentary plan are no longer told their agent has paused when it is answering normally.

= 1.40.2 - 2026-08-10 =
* Fixed: Voice conversations are no longer over-counted when a visitor leaves the page open. If someone started a voice chat, switched to another tab and closed their browser hours later, all of that idle time could be counted against your minutes. Only the conversation itself counts now.

= 1.40.1 - 2026-08-10 =
* Fixed: A blog post that fails partway through writing no longer loses its topic. The topic returns to your Upcoming Topics list and is written on the next run, instead of disappearing.

= 1.40.0 - 2026-08-10 =
* Security: Links to conversation transcripts now expire. The "view conversation" link in your notification emails used to work forever, for anyone who had it — so a forwarded email or an old mailbox left a private conversation readable indefinitely. New links last 30 days, and the share link on a conversation lasts 14 days. Every email sends a fresh one.
* Security: If a transcript link is ever shared somewhere it shouldn't have been, every outstanding link can now be switched off at once — including your leads page link, which previously could not be switched off at all. Ask SiteStaffr support to do this; there is no button for it yet. Your leads link changes when they do, and the new one arrives in your next lead notification email.
* New: You'll now be emailed if your agent stops answering visitors. If a payment fails, a trial ends, or you run out of minutes, your agent pauses — and until now the only place that showed was the WordPress dashboard. It's easy to miss, because a paused agent doesn't look broken: visitors still see your contact form and you still get their messages, they just don't get answers. You now get one email telling you exactly what happened and a button to fix it without logging in, and another when your agent is answering again. One email per problem, not a daily nag.
* New: You can now choose what you get emailed about. Under My Agent → Notifications, "Email Me About" lets you pick every conversation (the default, unchanged) or qualified leads only — conversations where the visitor left a name plus a phone number or email. Either way every conversation still appears in your dashboard; this only changes what lands in your inbox.
* Security: Transcript links sent to Salesforce now expire after 30 days instead of 90, matching the links in your own emails.
* Fixed: You can now re-sync a lead that already reached Salesforce. Previously only failed leads could be retried, so if the conversation link in a Salesforce record ever stopped working there was no way to refresh it.
* Note: Links in emails sent before this update keep working until 30 September 2026, so nothing breaks in your inbox today. After that they show a short page explaining that the link has expired and where to find the conversation instead.

= 1.39.3 - 2026-08-08 =
* Fixed: Your AI is much more likely to get a caller's email address right. Once someone had given a name and a phone number, the AI treated the message as finished — so if they offered an email later in the call, it was taken down without being spelled back or confirmed. Callers who carefully spelled their address out could still end up in your inbox with it wrong by a letter, and the AI would keep re-checking details it already had instead of noting the new questions they'd asked. It now returns to taking details properly whenever something is still missing.
* Fixed: On a call, the AI no longer reads the dashes in a phone number out loud when it repeats it back to a caller.
* Fixed: A trial that runs out mid-visit no longer leaves the chat window silently doing nothing. Visitors now see the contact form straight away instead of waiting on a widget that had stopped responding.

= 1.39.2 - 2026-08-06 =
* Fixed: Your AI is less likely to finish taking a message before it has a phone number or email. Behind the scenes it is given a running note of which of a visitor's details it has collected so far — but when it had none yet, that note was left out altogether instead of saying "nothing yet". A voice agent could read the silence as "everything is already on file" and wrap up early, leaving you a lead with a name and no way to reach the person. It now says so plainly.

= 1.39.1 - 2026-08-04 =
* Fixed: Chat answers can no longer show broken link text. If the AI didn't have a real page URL to work from, it could still write link markup — which reached visitors as raw brackets like "[Patient Images](#)" rather than anything clickable. That now renders as ordinary text, and the AI is no longer asked for a link when your site hasn't given it one to use.
* Changed: Links in chat answers open in the same tab instead of a new one.
* Added: When a visitor follows a link from the chat, the conversation record now reads "Visitor clicked a link" instead of "Visitor left" — so you can tell someone who took up a suggestion apart from someone who simply left.

= 1.39.0 - 2026-07-29 =
* Added: Your AI can now answer "where can I find that?" with a real link. When a visitor asks where something lives on your site — a gallery, a form, a service page — the chat replies with a clickable link to the actual page instead of describing where to look. Links come only from your site's own pages; the AI can never invent a URL.

= 1.38.0 - 2026-07-28 =
* Added: Your Business Profile now tells you when it has fallen behind your site. Publish a new page — a new location, a new service, a new product — and Settings shows a note next to Generate Profile saying how many new pages your profile hasn't seen yet. Regenerating stays your call; nothing is ever overwritten automatically. Blog posts deliberately don't trigger it, so a site running Blog Agent on autopilot isn't nagged every week.
* Fixed: Pages built from a theme template can now be linked to by the Blog Agent. Pages whose content lives in a PHP template — typical for landing and feature pages — report no words to WordPress, so the Blog Agent read them as empty stubs and would never link to them. They now carry the text already stored in your knowledge base, falling back to the page's SEO description.
* Fixed: The Blog Agent gathers link candidates as recent posts and recent pages separately, so on a site that publishes frequently your evergreen pages no longer age out of the list within weeks.
* Fixed: Hand-editing your Business Profile now records when it changed. Previously only AI generation did, which would have made every manually written profile look permanently out of date to the new note above.

= 1.37.0 - 2026-07-27 =
* Added: Native Salesforce integration — connect your org once from Settings → Integrations and every qualified lead your AI captures is pushed to Salesforce automatically, with name, contact details, what they wanted, and a link back to the conversation. No Zapier or middleman service required.
* Added: Per-lead sync status on the Conversation Details → Captured Lead card, with a Retry action for any lead that didn't make it across.
* Changed: The integration stays completely inert until a site connects — no extra work for sites that don't use Salesforce. Disconnecting is one click and stops the push immediately.
* Fixed: A blip from the Salesforce status endpoint no longer causes a lead to be silently dropped.
* Note: Salesforce shows a "Security Warning" on its consent screen for any app distributed outside AppExchange. This is expected, and the Connect card explains it beforehand.

= 1.36.4 - 2026-07-24 =
* Fixed: Blog Agent — a post delivered via the pull fallback no longer reports as a failed generation. When a host's bot protection refused the signed push, you were shown a raw "Delivery failed" error even though the pickup cron imported the finished post minutes later. The job now waits for the pickup instead of reporting failure.

= 1.36.3 - 2026-07-24 =
* Fixed: Voice — the AI no longer talks over visitors who are dictating contact details. Turn-taking sensitivity is now lower while collecting contact info (visitors pause mid-recall when giving digits or spelling an email address) and unchanged everywhere else.

= 1.36.2 - 2026-07-23 =
* Added: AI Visibility "Suggest prompts" — proposes fresh prompts to track, targeted at the queries where competitors are beating you (based on your latest check's misses and competitor list). Review and add the ones you want.

= 1.36.1 - 2026-07-23 =
* Changed: Redesigned the AI Visibility tab into a compact analytics console — a score + per-engine stat band over a two-column "By prompt" table and "Who's beating you" list, then your editable prompts. Cleaner, denser, and consistent with the rest of the admin. New sites get a "Run first check" button instead of a blank card.

= 1.36.0 - 2026-07-22 =
* Added: AI Visibility tracker (Blog Agent) — see whether Perplexity, ChatGPT, and Gemini cite or mention your business when people ask about you. A new "AI Visibility" tab shows a "Visible in X of N AI answers" score with a month-over-month trend, a per-engine breakdown, a per-prompt drill-down, and a "Who's beating you" competitor roll-up.
* Added: Tracked prompts are auto-seeded from your business profile (branded + local/unbranded) and are fully editable, up to 10.
* Added: Monthly no-login email report — headline score, trend, per-engine breakdown, top competitors, and your biggest gap — plus an "Email me this report" button to send it on demand.
* Added: Visibility checks run automatically once a month, with on-demand checks available from the dashboard.

= 1.35.0 - 2026-07-20 =
* Added: New-lead notification emails lead with a contact card — the visitor's name, what they wanted, and one-tap Call and Email buttons — so you can follow up right from your inbox.
* Added: Qualified leads stand out with a "Qualified Lead" badge and a "New Lead" subject line; ordinary conversation emails drop the redundant "New Conversation" badge.
* Added: The public Qualified Leads sheet now has a per-lead handled/follow-up state with All / Follow-up / Handled filter tabs and a one-tap "Mark handled" — work your leads from your phone, no WordPress login. CSV export gains a Handled column.
* Changed: The Usage & Billing conversations card now breaks down by Voice vs Text; spam/low-quality conversations the system screened out move to a secondary count.
* Changed: The dashboard "Followed up" control and the public sheet now share one follow-up state, so they stay in sync — and opening a conversation to read it no longer clears a lead that still needs a reply.

= 1.34.11 - 2026-07-15 =
* Fixed: Conversation recaps show the divider and highlighted callout before the "Suggested follow-up" again, in both the dashboard and the shared conversation link.
* Fixed: Short conversations where a visitor asked one question and got one answer now get a real recap instead of "no details collected."
* Changed: A "Suggested follow-up" is only added when the visitor left a phone number or email — no more follow-up prompts you can't act on.
* Changed: Text-conversation duration now measures the actual back-and-forth (it starts when the visitor sends their first message, not when the chat opens).
* Changed: Notification emails no longer repeat how the conversation ended — that detail stays on the conversation transcript.
* Changed: Usage & Billing counts voice minutes only; text conversations no longer draw down your minute balance.

= 1.34.9 - 2026-07-14 =
* Changed: Follow-ups replaces "Needs your attention" — only unread conversations where the visitor left contact info, shown as message slips with the visitor's name, a recap of what they wanted, tap-to-call and tap-to-email, a View conversation link, and a Followed up button.
* Changed: Brief, no-message conversations collapse into one expandable "N brief conversations — no message left" line per day, so real leads aren't buried.
* Changed: The two duplicate conversation lists are now one Activity feed, grouped by day with voice/text icons; unread conversations are tinted to stand out.
* Added: Agent Health panel — at-a-glance status for the agent, the widget's visibility on your site, knowledge freshness (with one-click re-sync), and the live service connection.
* Changed: The AI Minutes tile gains a balance ring, and the Conversations and AI Minutes tiles link straight to Usage & Billing.

= 1.34.0 - 2026-07-14 =
* Added: Dashboard now leads with leads captured — change vs. the same point last cycle, a trend line, a minutes-health pill, an attention list, and a first-run checklist.
* Added: My AI Agent is one hub, with Knowledge as a shared section that powers every agent (search, filters, recommended sync mode, most-used sections).
* Added: "What your agent knows" — see the three sources your agent answers from (business identity, your synced website content, facts you add by hand), what is set, what is missing, and how it decides.
* Added: Conversations gain Lead and Channel columns and filters, tab counts, mark-all-read, and a detail view that opens with a click-to-copy lead card, previous/next navigation, and the page the visitor was on.
* Added: Usage & Billing shows leads first, with a burn-rate projection and a heads-up when the cycle will run short, a conversations/minutes chart toggle, and a shareable, print-ready report.
* Added: Settings gains an Account & Connection panel — connection status, copyable account ID, one-click connection test, and version info.
* Added: The Setup Wizard now learns your website on your site, not in your browser — reload, close the tab or quit, and your agent keeps learning.
* Added: Print / Download on Usage & Billing and any conversation produces a clean branded report.
* Changed: Widget & Button move to top tabs with five style presets and a brand-color fan-out; size and label stay out of Advanced, and Reset restores the stock look in one click.
* Changed: The Setup Wizard shows all four plans side by side (free trial first), makes the phone number optional, and explains what the generated Business Identity actually is.
* Changed: One vocabulary throughout — conversations and visitors — and every admin page now works on a phone.
* Fixed: The Usage screen and the shareable report could report different minutes for the same billing cycle. They now share one definition of the cycle and of minutes used, and the daily table adds up to the total above it.
* Fixed: The chat widget no longer appears on, or prints into, your shared usage and leads reports.
* Fixed: A shared or printed conversation now shows how it ended, matching the admin view.
* Fixed: Your voice agent can now give out your phone number when a visitor explicitly asks — as Settings has always promised. It still never volunteers it, and a booking request still captures the lead.
* Security: hardened an admin script against a blog topic or error message containing a quote character; a test-mode link can no longer mark a real conversation as a test; the "started on page" link is constrained to your own site.

= 1.33.17 - 2026-07-12 =
* Changed: Admin experience rebuilt around what owners actually do. The Dashboard now leads with leads captured (with change-vs-last-cycle and a trend line), a minutes-health pill, an attention list, real action buttons, and a first-run checklist.
* Changed: My AI Agent is now a single hub — Knowledge is a shared "Powers all your agents" section with search, filters, a recommended sync mode, and top matched sections; agents are reachable by deep link.
* Changed: Conversations gain Lead and Channel columns and filters, tab counts, mark-all-read, and a detail view that leads with a click-to-copy lead card plus previous/next navigation, Move to Trash, copy transcript, and source-page capture.
* Changed: Widget & Button settings move to top tabs (Fixed / Button / Analytics) with five style presets, brand-color fan-out and reset, a backdrop toggle, and an Advanced accordion grouped by intent.
* Added: Usage & Billing burn-rate metric with a "you'll run short" heads-up, a conversations⇆minutes chart toggle, and a shareable, print-ready usage report you can send via a secure link.
* Added: Settings now include an Account & Connection panel — connection status, copyable account ID, a one-click connection test, and version info.
* Changed: Blog Agent defaults to the Pipeline view with a clear Published / Ready-for-review / Failed lifecycle (failure reasons and one-click retry) and the next scheduled topic up front.
* Changed: Setup Wizard makes the phone number optional (international supported), leads with the free trial, scans your website in the background after the first step, and ends on a "meet your agent" screen with a test link.
* Added: Conversations started from a test link are flagged as tests and skip the notification email.

= 1.33.0 - 2026-07-09 =
* Added: Blog Agent internal-link variety — consecutive generated posts no longer reuse the same few internal pages; links rotate across your site's content and only appear where they fit naturally.
* Changed: Replacement blog topics now always append to the end of the Upcoming Topics list, keeping the visible order stable.
* Fixed: Topic suggestions no longer run dry mid-cycle — the queue refills promptly whenever it can't show a full slate.
* Fixed: Blog posts stuck on "Generating…" now time out to Failed after 30 minutes instead of hanging forever; a post that still arrives later completes normally.

= 1.32.0 - 2026-07-07 =
* Added: Blog Agent pull-delivery — finished posts now always arrive, even when your host's bot protection blocks incoming delivery. A background poller picks up parked posts within about 5 minutes.
* Added: Blog Agent topic reservoir — upcoming topics are planned as one strategic batch that covers all of your business's offerings (not just the most prominent one), with more variety in titles and angles. Skipping or generating swaps in the next topic instantly instead of after a long wait.
* Changed: Topic suggestions are now unmetered — the topic-credit counter and its monthly limits are gone for every plan. Post credits are unchanged.
* Fixed: Pull-delivered posts on sites without an SEO plugin no longer show raw schema code at the end of the post body.

= 1.31.0 - 2026-07-03 =
* Added: Report an Issue can include a secure conversation link — a pre-checked consent checkbox attaches an expiring (14-day) view link served directly from your own website so SiteStaffr support can see exactly what the AI did. Conversation content never leaves your site; uncheck the box to send the report without it.
* Added: Welcome email — completing the setup wizard sends a one-time "you're live" email with what to expect next and quick links to your dashboard, settings, and leads.
* Fixed: Privacy hardening — visitor contact details, transcripts, and AI summaries are no longer included in any data sent to SiteStaffr's servers for notifications or issue reports.
* Fixed: More reliable lead capture — final contact updates save on additional exit paths, with recovery for previously missed leads.
* Fixed: Cleaner lead data — AI-captured names are title-cased and phone numbers normalized to XXX-XXX-XXXX; existing leads are backfilled on upgrade.
* Fixed: Leads page can no longer be served stale by page caches (explicit no-cache contract, including LiteSpeed hosts).
* Fixed: Leads page Actions / Download-PDF button stays visible on desktop and tablet.
* Changed: Qualified Leads PDF prints the visitor's name above the date.

= 1.29.4 - 2026-06-25 =
* Added: Blog Agent now indexes your whole site — including custom post types (e.g. a clinic's procedures) — so topic suggestions are de-duplicated against, and can link to, all of your published content instead of just standard posts and pages. Fewer near-duplicate topics and smarter internal links on established sites.
* Added: Smarter topic strategy — the planner can now target broader high-demand educational and comparison questions in your field and funnel them to your real services, with a strict accuracy guardrail so it never claims you offer something you don't.
* Added: Skipping an upcoming topic now shows a "Skipping…" spinner while a fresh replacement is generated.

= 1.29.3 - 2026-06-24 =
* Fixed: Blog Agent Upcoming Topics now self-heal — if the list ever dropped below your plan's slate (e.g. after the rapid-skip glitch fixed in 1.29.2) it could stay stuck short for the rest of the cycle; it now tops back up to a full slate whenever it's short and you still have topic budget, while staying one-for-one and capped at your monthly limit.

= 1.29.2 - 2026-06-24 =
* Fixed: Blog Agent Upcoming Topics no longer collapse when you skip several topics quickly — skips now process one at a time, so the list stays full and each skip is replaced one-for-one.
* Fixed: View All Leads — the visitor's name now has a dark header on mobile cards, and "View Conversation" is a plain text link instead of a button.

= 1.29.1 - 2026-06-24 =
* Fixed: Blog Agent topic credits now count one-for-one — skipping a topic (or turning one into a post) replaces it with exactly one fresh suggestion, instead of re-filling the whole list and spending several credits at once. Your monthly topic ideas (3x your post limit) last as long as they should and stop cleanly at the limit until the next billing cycle.
* Fixed: View All Leads page — removed the highlighted left border on mobile lead cards; on phones the "View" link is now a full-width "View Conversation" button; Print / Download PDF now lays each lead out as a clean stacked block that fits the page instead of a wide table that ran off the right edge.

= 1.29.0 - 2026-06-24 =
* Added: Your Business Information now writes itself — click Generate Profile and SiteStaffr turns your synced website content into a polished, confident business description (not a hedged summary). It's one editable document: a highlighted Summary your AI receptionist uses on every conversation, plus a Detailed Profile your Blog Agent uses to write posts grounded in your business. The Business Information screen is redesigned into a cleaner two-column layout with full-width, character-counted editors.
* Added: Blog Agent topic credits are now managed on our servers (like post credits); sites we exempt show "Unlimited", and the Blog Agent page refreshes your post and topic budget the moment it loads.
* Changed: Better, more varied blog topic suggestions — grounded in live search research, genuinely different angles (no near-duplicates), proper Title Case, and no past-year references. Drafts table polish: the title reflects the post's current title after an edit, the Created column drops the year, and "Email Review Link" is now a compact envelope icon.
* Fixed: The public "View All Leads" page lays out cleanly on mobile (each lead becomes a labeled card) instead of overflowing the screen. Text chat no longer leaves a visitor on an endless typing indicator if a request stalls.
* Removed: The dev-only "Diagnose" button on the AI Knowledge page.

= 1.28.1 - 2026-06-19 =
* Fixed: Text chat now aborts a hung or stalled request after 30 seconds with a clear "please try again" message, instead of leaving the visitor staring at a typing indicator. Re-armed on each streamed chunk, so slow-but-alive responses are never cut off.

== Upgrade Notice ==

= 1.42.11 =
Business Profile now has one control: an "Update automatically" toggle and an "Update now" button, side by side, doing the same thing. The separate rewrite link, the checkbox and the Save button are gone — Settings saves as you change it. Updating asks before it replaces wording you have written, and with the toggle on it runs a few minutes after you publish or edit a page instead of on a fixed schedule. Recommended for all sites.

= 1.42.10 =
Adds one action — "Update what my agent knows" — that reads your new and updated pages, plus automatic daily indexing so the agent keeps up without anyone pressing anything. The Business Profile notice now points at the action that actually indexes, instead of the one that rewrote your profile and indexed nothing. Nothing rewrites your Summary or Detailed Profile unless you tick the new opt-in. Recommended for all sites.

= 1.41.0 =
Adds after-hours conversations and top pages to Usage & Billing, so you can see what share of conversations arrived while you were closed, how many were qualified leads, and which pages produce them. Both also appear in your shareable usage report. Also corrects the plan prices and voice minutes shown in wp-admin. Recommended for all sites.

= 1.39.1 =
Fixes chat answers showing broken link text such as "[Patient Images](#)" instead of a clickable link. Chat links now open in the same tab, and a visitor following one is recorded as "Visitor clicked a link" rather than "Visitor left". Recommended for all sites, especially any still on 1.38.x or earlier.

= 1.37.0 =
Adds a native Salesforce integration: connect your org once and qualified leads flow straight into Salesforce, with per-lead sync status and Retry. Also fixes a Blog Agent false "delivery failed" error and stops the voice AI talking over visitors who are dictating contact details. Recommended for all sites.

= 1.34.0 =
The admin is rebuilt around leads and answers: a leads-first Dashboard, a unified My AI Agent hub that shows exactly what your agent knows, richer Conversations, a shareable usage report, and a Setup Wizard that keeps learning your site even if you close the tab. Fixes a billing-cycle mismatch where the usage report and the Usage screen could show different minutes. Recommended for all sites.

= 1.33.17 =
Admin experience rebuilt around leads and answers: a leads-first Dashboard with burn-rate and attention list, a unified My AI Agent hub with shared Knowledge, richer Conversations with lead cards and source-page capture, tabbed Widget settings with presets, a shareable usage report, an Account & Connection panel, a clearer Blog Agent pipeline, and a friendlier Setup Wizard. Recommended for all sites.

= 1.33.0 =
Blog Agent polish: internal links rotate across your content instead of repeating the same pages, the topic queue never runs dry mid-cycle, and stuck generations recover automatically. Recommended for all sites using the Blog Agent.

= 1.32.0 =
Blog Agent reliability and quality: posts always arrive even behind host bot-protection (pull-delivery), upcoming topics are planned strategically across all your offerings with instant skips, and topic limits are gone for every plan. Recommended for all sites using the Blog Agent.

= 1.31.0 =
Privacy hardening (no conversation content or contact details sent to SiteStaffr servers), more reliable and cleaner lead capture, actionable issue reports via a secure expiring conversation link (with consent), and a welcome email on setup completion. Recommended for all sites.

= 1.29.4 =
Blog Agent now sees your whole site — including custom post types — for smarter, less-duplicative topic suggestions and internal links, plus a broader-but-accurate topic strategy. Recommended for all sites using the Blog Agent.

= 1.29.3 =
Fixes Blog Agent Upcoming Topics getting stuck showing fewer topics — the list now self-heals back to a full slate. Recommended for all sites on 1.29.x.

= 1.29.2 =
Fixes Blog Agent topics disappearing when you skip several quickly, plus small View All Leads styling tweaks. Recommended for all sites on 1.29.x.

= 1.29.1 =
Fixes Blog Agent topic-credit counting so credits drain one-for-one (no over-charge) and polishes the View All Leads page (cleaner mobile layout and a proper print/PDF). Recommended for all sites on 1.29.x.

= 1.29.0 =
Business Information can now generate itself: click Generate Profile to turn your synced website content into a polished business description your AI receptionist and Blog Agent both use. Blog topic credits are now server-managed (exempt sites show "Unlimited"). Recommended for all sites.

= 1.27.2 =
The Qualified Leads page now shows your full lead history instead of just the current billing cycle. Recommended for all sites on 1.27.x.

= 1.27.1 =
Fixes the Qualified Leads page to use your real billing cycle and reliably list leads already captured this cycle. Recommended for all sites on 1.27.0.

= 1.27.0 =
Adds a private Leads page and CSV export for the qualified leads your AI captures, linked from your notification emails. Recommended for all sites.

= 1.25.4 =
The AI Knowledge page now shows which synced pages have changed since their last sync and lets you re-sync them in one click. Recommended for all sites.

= 1.24.3 =
Cleans up an internal control word that could appear in saved voice transcripts. Recommended for all sites.

= 1.24.2 =
Fixes Blog Agent not appearing under My AI Agent. Recommended for all sites.

= 1.24.1 =
Blog post credits now reset on your billing renewal date and the Blog Agent page shows your real reset date. Safe to update.

= 1.24.0 =
Major new feature: the Blog Agent writes SEO blog posts for your site, with topic suggestions, scheduling, and plan-based monthly allowances. Safe to update.

= 1.23.12 =
Blog Agent Autopilot now runs fully on your own site with zero business data stored on SiteStaffr servers. Safe to update.

= 1.23.11 =
Blog Agent link-quality and FAQ spacing improvements for the Phase 1 test build. Safe to update.

= 1.23.10 =
Refreshed Blog Agent Phase 1 staging/dev build with a version bump so WordPress recognizes the newly updated zip. Safe to update.

= 1.23.6 =
New Google Tag Manager / Google Analytics 4 conversion tracking with a built-in setup guide on the Widget & Button settings page. Safe to update.

= 1.22.18 =
Knowledge privacy improvements and WordPress 7.0 compatibility. Safe to update.

= 1.18.0 =
New My AI Agent page with centralized voice settings, faster text chat, and improved knowledge search accuracy.

= 1.15.0 =
More accurate knowledge answers for both voice and text chat conversations.

= 1.7.0 =
Major feature: AI Knowledge page lets your agent answer questions using your actual website content.

= 1.0.0 =
First public release of SiteStaffr — AI voice and text agent for WordPress.
