=== 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.41.1
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, 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.
* 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? =

You sync your website pages from the AI Knowledge page in wp-admin. SiteStaffr learns your content so the AI can answer questions about your services, pricing, hours, and more.

= 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.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.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.
