=== 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.0
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 widget sitting idle on a live page (fixed position).
2. The SiteStaffr dashboard, with recent conversations and transcript history.
3. Setup wizard flow for quick onboarding and site connection.
4. Widget customization settings (colors, icon, and position).
5. Conversation transcript detail view with the summary and follow-up notes.
6. Inline button widget variant using the `[sitestaffr_button]` shortcode.
7. The widget mid-conversation, while a visitor is speaking to it.

== Changelog ==

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

= 1.28.0 - 2026-06-19 =
* Added: Review and publish Blog Agent posts straight from an email — a secure, expiring link opens a branded review page where you can edit the title, body, SEO fields, and featured image, then Publish or Discard, all with no WordPress login.
* Added: Autopilot delivery choice — publish automatically (with a "published" preview email) or hold each post as a draft and send a review link first.
* Added: A dedicated Blog Agent email recipient list (separate from conversation notifications), a recipient picker for sending review links, and agent-labeled test emails.
* Fixed: JSON-LD schema no longer shows as raw text on the review page; SEO titles/descriptions are trimmed at a word boundary (no trailing "…"); blog emails use a sharper featured image; deleted posts no longer linger in the drafts list.
* Changed: The review page opens as a clean read-only preview with an Edit button (taller resizable editor, live image preview, SEO title editing); notification settings moved under My AI Agent → Voice & Behavior.

= 1.27.2 - 2026-06-18 =
* Changed: The Qualified Leads page now shows your full lead history (newest first) instead of only the current billing cycle, so it's never empty just because a new cycle started.

= 1.27.1 - 2026-06-18 =
* Fixed: The Qualified Leads page now uses your real billing cycle start date instead of the first of the month, and reliably lists leads already collected this cycle.
* Changed: Moved the Qualified Leads link to the Conversations page and removed the reset-link button.

= 1.27.0 - 2026-06-18 =
* New: Qualified leads list — conversations that capture a name plus a phone or email are flagged as leads, and a private "Leads" page (no login needed) shows this billing cycle's leads newest-first with click-to-call/email and a link to the full conversation.
* New: Download your leads as a CSV (Excel-ready) for your spreadsheet or CRM.
* New: The link to your Leads page rides in the footer of the notification emails you already receive — no extra emails are sent.
* New: A "Reset leads link" button in Settings rotates the private link if it's ever shared by mistake.

= 1.26.0 - 2026-06-18 =
* New: The AI Knowledge page flags pages you've edited since their last sync and offers a one-click "Re-sync changed pages", so your AI never answers from outdated content.
* Improved: Blog post counts are now managed entirely on our servers — they stay accurate, can't drift, and we can adjust a site's monthly allowance when needed.
* Fixed: Generating a blog post now uses exactly one post credit, and a misleading "running low on blog credits" notice was removed.
* Changed: The answer "Source" details now appear only in your admin conversation view, not on shareable transcript links or their printed PDFs.

= 1.25.6 - 2026-06-18 =
* Improved: Blog post counts are now managed entirely on our servers, so they stay accurate, can't drift, and we can adjust a site's monthly allowance when needed (for example, to make up for an issue).
* Changed: Removed an internal "Reset Monthly Counters" button from Diagnostics; the read-only blog usage view stays.

= 1.25.5 - 2026-06-17 =
* Fixed: Generating a Blog Agent post now uses exactly one post credit. A single post was sometimes counted as two against your monthly allowance.
* Fixed: Removed a misleading "running low on blog credits" notice (there are no add-on blog credits to buy).
* Changed: The answer "Source" details now appear only in your admin conversation view — they no longer show on the shareable transcript link or its printed PDF.

= 1.25.4 - 2026-06-17 =
* New: The AI Knowledge page now clearly flags pages you've edited since their last sync with a "Changed since sync" badge, a count banner, and a status legend — so you can tell at a glance when the AI is working from outdated content.
* New: One-click "Re-sync changed pages" button re-indexes only the pages that changed, so your AI answers always reflect your latest content.

= 1.25.3 - 2026-06-17 =
* New: Blog Agent — edit an upcoming topic's title and keyword inline before you generate the post. Editing is instant and uses no topic credit.
* Improved: The Upcoming Topics and Generated Posts tables now line up their Keyword columns, and the row action buttons sit in a tidy, properly sized column.

= 1.25.0 - 2026-06-16 =
* New: Source attribution in conversation transcripts. Each AI answer (in the admin detail view and the magic-link viewer) can reveal its top knowledge source as a collapsible "Source" disclosure — with a friendly match: high/medium/low relevance band and a "Jump to this section" link that takes you to the exact spot on the source page.

= 1.24.3 - 2026-06-14 =
* Fixed: Saved voice call transcripts no longer show an internal control word (like "end_session") in the agent's closing line. These are now removed so your call logs, transcript links, and report emails read cleanly.

= 1.24.2 - 2026-06-13 =
* Fixed: Blog Agent now always appears under My AI Agent. It was hidden behind a leftover development flag, so it only showed on sites that manually enabled it. Blog Agent is now permanently on for all plans.

= 1.24.1 - 2026-06-13 =
* Changed: Blog post credits now reset on your billing renewal date instead of the 1st of the month. Trials include one post for the whole trial, and upgrading gives you a fresh allowance right away.
* Improved: The Blog Agent page shows your real reset date instead of "this month".

= 1.24.0 - 2026-06-12 =
* New: Blog Agent — your website's AI content writer. Generates SEO-optimized blog posts grounded in your business: research, writing, metadata, categories/tags that reuse your site's taxonomy, internal links to your real pages, FAQ sections, and a brand-colored featured image.
* New: Suggested topic queue with one-click Generate and Skip, plus a Suggest Topic button on the New Post form.
* New: Autopilot — scheduled, hands-off post generation on your chosen weekly cadence, publishing automatically or landing as drafts for review.
* New: Monthly post allowances follow your plan — Starter 2, Business 4, Pro 8 (trial 1) — enforced by the SiteStaffr service.
* Improved: Posts are delivered server-to-server with signed requests; your browser doesn't need to stay open.
* Improved: Generated posts always receive a real category, never name competitors, and never store your business content on SiteStaffr servers.

= 1.23.19 - 2026-06-10 =
* Improved: Deleting a Blog Agent entry now moves its WordPress post to the Trash (recoverable for 30 days) instead of deleting it permanently.
* New: Ready drafts have a Publish button right in the drafts list — no need to open the preview.

= 1.23.18 - 2026-06-10 =
* Changed: The Autopilot section appears in Blog Agent settings on plans that include it.

= 1.23.17 - 2026-06-10 =
* Changed: Autopilot is available to all plans — your plan's monthly post allowance is the only limit, applied by the SiteStaffr service.
* Improved: Generated posts always receive a category — no more Uncategorized posts.
* Improved: Blog posts never name or recommend competing products; your business is always the recommendation.

= 1.23.16 - 2026-06-10 =
* New: Blog Agent monthly post limits now follow your plan — Starter 2, Business 4, Pro 8 (trial 1), with topic suggestions at double your post limit.
* New: Autopilot scheduled generation is available on the Business and Pro plans.
* Improved: Clear, plan-aware messages when a monthly limit is reached.

= 1.23.15 - 2026-06-10 =
* Improved: Publish times now display consistently as "ET" (Eastern Time) everywhere, on one line, instead of mixing EST/EDT.
* Improved: With Autopilot enabled, the empty drafts message now says your next post is on the way instead of pointing to the New Post tab.

= 1.23.14 - 2026-06-10 =
* New: Skipping a topic now brings in a fresh replacement right away — the queue stays topped up at 8 upcoming topics (while monthly topic credits last).
* Improved: Published posts now show "Published" instead of "Ready" in the drafts list.
* Changed: Removed the topic-approval toggle — every suggested topic is scheduled automatically, and Skip is how you reject one.

= 1.23.13 - 2026-06-10 =
* New: Upcoming topics now show the date and time each post will publish (Eastern Time).
* Improved: Featured images now use a keyword-rich filename and a descriptive media title, and echo your widget's brand color in their palette.
* Improved: Blog posts no longer link to competing businesses — external citations are restricted to neutral, non-commercial sources.
* Removed: Image Upload Smoke Test section.

= 1.23.12 - 2026-06-10 =
* New: Blog Agent Autopilot now runs entirely on your own site — the schedule (WP-Cron), topic queue, and monthly budgets all live in your WordPress database. No business or content data is stored on SiteStaffr servers.
* Improved: Upcoming topics are suggested on demand and stored locally; approve or skip them right from the Blog Agent page.
* Fixed: Site categories and tags are now actually sent with generation requests so the AI reuses your existing taxonomy.

= 1.23.11 - 2026-06-09 =
* Improved: Blog Agent FAQ sections now render with proper spacing between questions and answers, on the published post and in the preview window.
* Improved: Blog Agent sends a short excerpt for each existing page so generated posts choose internal links that match the blog topic and the section they appear in.

= 1.23.10 - 2026-06-09 =
* Changed: Bumped the Blog Agent Phase 1 staging/dev handoff version after the merged admin styling and preview Publish updates so WordPress recognizes the refreshed test zip as newer.

= 1.23.9 - 2026-06-09 =
* New: Blog Agent manual post preview now has a primary Publish button, with Open in Editor and Close as secondary actions.
* Improved: Blog Agent now reuses existing categories and tags more conservatively during generated-post publishing.
* Improved: Blog Agent admin tab and card styling now has scoped fallbacks so the Generate Blog Post tab remains polished if shared CSS load order changes.

= 1.23.6 - 2026-06-07 =
* New: Google Tag Manager / dataLayer conversion tracking — the widget pushes open, conversation-start, lead-captured, qualified-lead, and conversation-end events (with engagement-depth metadata) so you can trigger GA4, Facebook, or any tag-manager tags without extra setup. The Widget & Button settings page includes an event reference table and a full step-by-step Google Analytics 4 setup guide.

= 1.22.18 - 2026-06-05 =
* Improved: AI knowledge responses now automatically protect sensitive contact information in retrieved content.
* Improved: WordPress 7.0 compatibility fixes for admin button styling.
* Improved: SEO metadata compatibility with RankMath and sites without an SEO plugin.

= 1.18.0 - 2026-04-29 =
* New: My AI Agent page — centralized voice and behavior settings with voice selector, custom greeting, and AI instruction controls.
* New: AI instruction toggles for contact collection and personal information handling.
* Improved: Knowledge search accuracy with hybrid vector + keyword retrieval.
* Improved: Text chat response speed — knowledge answers now arrive faster.
* Improved: Text chat contact collection is significantly faster.

= 1.15.0 - 2026-04-22 =
* Improved: Voice and text chat now use the same hybrid search for consistent, accurate knowledge answers.
* Improved: Better handling of similar content (e.g., multiple pricing tiers on the same page).

= 1.12.0 - 2026-03-27 =
* Improved: Widget settings redesigned with tabbed layout (Appearance / Behavior).
* New: Border style controls (solid, dashed, dotted, double, none) for both widget types.
* Improved: Mobile-friendly transcript and session detail views.

= 1.11.0 - 2026-03-25 =
* Improved: AI business description generator now produces more accurate, structured descriptions.

= 1.7.0 - 2026-03-21 =
* New: AI Knowledge page — sync your website pages so the AI can answer questions about your business.
* New: Knowledge-powered voice and text chat sessions.

= 1.4.0 - 2026-03-17 =
* New: Persona support — use `[sitestaffr_button persona=”sales”]` and `[sitestaffr_widget persona=”support”]` for role-specific AI behavior.
* New: Inline button widget variant with customizable appearance.

= 1.2.0 - 2026-03-06 =
* New: One-click transcript viewer — access full conversation details directly from email notifications.
* New: Per-corner border radius controls for widget customization.
* Improved: Setup wizard with AI-powered business description generator.

= 1.0.0 - 2026-03-02 =
* First public release.
* Browser-based AI voice agent widget with WebRTC.
* Text chat widget for visitors who prefer typing.
* Conversation transcripts, AI-generated summaries, and follow-up notes.
* Admin dashboard with usage metrics and conversation history.
* Setup wizard for quick onboarding.
* Widget customization (colors, position, icon, border styles).
* Email notifications for new conversations.

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