=== JS Help Desk – AI-Powered Support & Ticketing System ===
Contributors: rabilal
Tags: helpdesk, support ticket, ticketing system, customer support, knowledge base
Requires at least: 5.5
Tested up to: 7.1
Stable tag: 5.0.0
Requires PHP: 7.4
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

A complete help desk in WordPress: unlimited tickets and agents, a customer portal, AI reply help, and 12 features that used to be paid.

== Description ==

**JS Help Desk turns your WordPress site into a complete customer support desk.** Customers open tickets from your website - signed in or as guests - and your team answers them from one clear queue. Tickets, replies, attachments and customer details stay in your own WordPress database.

There are no limits on tickets, agents or departments, no per-agent monthly fee and no outside service to sign up for. Install it, add a support page, and start answering.

**Trusted since 2014** - nearly 700,000 downloads and more than 7,000 sites answering their customers with JS Help Desk.

= New: JS Help Desk 5.0 =

5.0 is the biggest release in the plugin's history.

* **12 paid features are now free, for good.** Ticket history, internal notes, canned responses, help topics, email ban, auto cleanup, ticket limits, export, dashboard widgets, user options, ticket actions and AI Powered Reply moved from paid add-ons into the free plugin.
* **An AI Agent that answers from what you have already written** (add-on). It reads your knowledge base, FAQs and past replies, shows its sources, says how sure it is, and hands over to a person whenever it should. You choose how far to trust it - suggestions only, drafts for an agent to approve, or answering on its own - and whether it runs on your server, on your own model or with a hosted provider.
* **Live chat** (add-on, beta). A chat window on your site that answers from your approved content and brings in an agent the moment the customer asks.
* **Nine add-ons instead of more than thirty.** Grouped by the job you want done, and every paid plan includes all nine.
* **Companies are free.** Group customers by organisation and email domain.
* **The help desk speaks your language.** Translated into 17 languages, and the right translation installs itself.
* **A cleaner admin.** Menus grouped by subject, better keyboard and screen-reader support, and a block for every portal screen.
* **Upgrading is safe.** Tickets, settings and your old add-ons keep working, and nothing new is switched on for your visitors until you choose.

= Who it is for =

* **Online shops** that want order questions, returns and complaints in one place instead of an overflowing inbox.
* **Software, plugin and theme sellers** who support customers by product, licence or purchase code.
* **Agencies and freelancers** looking after many clients, each with their own tickets.
* **Schools, clubs and internal teams** - IT, HR or facilities - who need requests tracked and answered, not lost in email.

= Why JS Help Desk =

* **Your data stays yours.** Everything lives in your own WordPress database, not on someone else's servers.
* **Free means free.** Unlimited tickets, agents and departments in the free plugin. No trial, no time limit.
* **Made for WordPress.** Shortcodes and blocks, WordPress roles for your agents, the WordPress privacy tools, and it works with your theme.
* **Grows with you.** Start free. Add service levels, email piping, a knowledge base, an AI agent or WooCommerce support when you need them.

= Useful links =

* [Try the live demo](http://demo.jshelpdesk.com)
* [Documentation](https://jshelpdesk.com/docs/)
* [Plugin website](https://jshelpdesk.com/)
* [Video tutorials](https://youtu.be/HxSBUoMSKs8)

= Everything in the free plugin =

**Tickets and the queue**

* **Unlimited** tickets, agents and departments.
* **Customer portal**: customers open, follow and reply to their tickets on your site, without ever seeing the WordPress dashboard.
* **Guest tickets**: let visitors write in without creating an account.
* **Priorities, statuses and custom fields** on the ticket form, so you ask exactly what you need to know.
* **Waiting on Agent / Waiting on Customer** queues, worked out from who replied last.
* **Find anything fast**: search across subjects, messages, customers and ticket numbers; tags; saved views; keyboard shortcuts.

**Answering faster**

* **Canned responses** for the answers you write every week.
* **Internal notes** your customers never see.
* **AI Powered Reply** suggests answers from replies your team has already written - no AI account needed.
* **AI Copilot** drafts replies, summarises long threads, pulls out the details and translates, with your own Zywrap key.
* **Instant answers**: matching help appears while the customer is still typing, so simple questions are solved before a ticket is filed.
* **No double replies**: see who else is viewing or typing on a ticket, and drafts are saved as you write.
* **Help topics** that route each ticket to the right department and priority.
* **Email notifications** with editable HTML templates.

**Your team**

* **Two agent levels on ordinary WordPress roles**: Help Desk Agent for full queue work, and Help Desk Light Agent, who can read tickets and write internal notes but never reply to the customer.
* **Agent Access**: one screen showing who can reach the help desk, and why.
* **Companies** for customers who belong to an organisation.

**Keeping it tidy**

* **Ticket history and an activity timeline** for every ticket.
* **Reports** by agent, department, priority and status, plus dashboard widgets.
* **CSV export**, filtered the way you need.
* **Auto cleanup** of old tickets, with a preview before anything is deleted.
* **Email ban** for addresses or whole domains, and **ticket limits** per customer.
* **Setup checklist, Email Health and System Status** screens that tell you what to fix - including whether your email is actually being sent.

**Trust and privacy**

* **GDPR tools**: works with WordPress's own Export and Erase Personal Data.
* **Spam protection** that needs no outside service, or Cloudflare Turnstile, hCaptcha or Google reCAPTCHA if you prefer, plus submission rate limits.
* **Safe attachments**: checked by their content, and never reachable by a public link.
* **Terms and conditions** checkboxes on the ticket form.

**Fits your site**

* **Colour themes** to match your brand.
* **17 languages**, installed automatically, and full right-to-left support.
* **Shortcodes and blocks** for every portal screen.
* **Moving from another help desk?** Import from SupportCandy, Awesome Support and Fluent Support.

= Add-ons: nine packs, all in every plan =

When you need more, the paid plans add nine packs. **Every plan includes all nine** - plans differ only by the number of sites: Pro (1 site, $99 a year), Business (5 sites, $149) and Agency (25 sites, $249). Every plan comes with a 14-day refund. [Compare plans](https://jshelpdesk.com/pricing/).

* [Agents & Teams](https://jshelpdesk.com/product/agents/) - Roles and permissions, teams, automatic assignment, collaboration, time tracking and a credential vault.
* [Service Levels & Automation](https://jshelpdesk.com/product/servicelevels/) - Response and resolution targets with business hours, escalation, automation rules, auto close and recurring tickets.
* [Email](https://jshelpdesk.com/product/emailsuite/) - Turn incoming email into tickets, CC, Gmail and Microsoft sign-in, and templates in every language.
* [Knowledge & Self-Service](https://jshelpdesk.com/product/knowledge/) - Knowledge base, FAQs, downloads and announcements, so customers help themselves.
* [AI Agent](https://jshelpdesk.com/product/aiagent/) - Answers from your own content with sources and confidence, a review mode, a master switch, and usage and cost limits.
* [Customer Experience](https://jshelpdesk.com/product/experience/) - Multiple ticket forms, live chat, satisfaction surveys, your own branding and an installable portal.
* [Commerce](https://jshelpdesk.com/product/commerce/) - WooCommerce and Easy Digital Downloads orders in the ticket, Envato purchase codes, paid support and support credits.
* [Integrations](https://jshelpdesk.com/product/integrations/) - REST API, webhooks, Slack, Microsoft Teams, Google Chat, Telegram, Discord and browser notifications.
* [Reporting & Compliance](https://jshelpdesk.com/product/reporting/) - Analytics, scheduled Excel and PDF exports, retention rules and legal holds.

Already running the older individual add-ons? They keep working after the update. When your license includes the pack that replaces them, License & Add-ons > Finish upgrade installs it and switches the old ones off. Nothing is deleted, and your settings are kept.

= Shortcodes and blocks =

Each of these is available as a shortcode and as a block in the "JS Help Desk" block category:

* `[jssupportticket]` - the whole customer portal
* `[jssupportticket_addticket]` - the ticket form on its own
* `[jssupportticket_mytickets]` - the customer's own tickets

Knowledge base, FAQs and Announcements blocks appear when the Knowledge & Self-Service pack is installed.

== Installation ==

1. In your WordPress dashboard, go to Plugins > Add New, search for "JS Help Desk" and click Install Now, then Activate.
2. Open **Help Desk** in the admin menu. The setup checklist walks you through the rest: your support page, a sending address and your first agent.
3. Send yourself a test ticket - the checklist confirms that email really leaves your site.

To install by hand, upload the plugin folder to `/wp-content/plugins/` and activate it on the Plugins screen.

== Frequently Asked Questions ==

= Is JS Help Desk really free? =
Yes. The free plugin is a complete help desk with no limit on tickets, agents or departments, and no time limit. The paid plans add nine packs for bigger teams and more advanced needs - see "Add-ons" above.

= What is new in 5.0? =
Twelve features that used to be paid are now free, the add-ons are regrouped into nine packs that every plan includes, and there is a new AI Agent and live chat. The full list is in the changelog.

= Is it safe to update from 4.x? =
Yes. Your tickets, settings and old add-ons keep working, and nothing new is switched on for your visitors by the update. If your license includes the new packs, License & Add-ons > Finish upgrade moves you over in one step. As with any major update, take a backup first.

= I already run some of the older individual add-ons. Do I have to change anything? =
No. They keep working after the update. When your license includes the pack that replaces them, License & Add-ons > Finish upgrade installs it and switches the old ones off. Their settings are kept.

= Can customers open tickets without an account? =
Yes. Guest tickets are part of the free plugin, and customers can follow and reply to their tickets from your site.

= Can customers reply by email? =
Every ticket sends email notifications in the free plugin, and customers reply from your site. With the Email pack, customers can also open tickets and reply simply by answering the email - from Gmail, Microsoft 365 or any IMAP mailbox.

= Can agents work without access to wp-admin? =
Yes, with the Agents & Teams pack, which adds a staff panel on the front end of your site. In the free plugin, agents work from a simple tickets-only menu in wp-admin.

= Do I need an account with an outside service? =
No. The help desk runs entirely on your own site. Outside services are used only for features you switch on yourself - see the Privacy section below.

= What is the difference between the AI Copilot and the AI Agent? =
The Copilot writes: it drafts a reply, summarises a long thread, pulls out the details or translates, and the agent decides what to send. It is free and works with your own Zywrap key. The AI Agent (a paid pack) answers from what you have already written - your knowledge base, FAQs and past replies - and can suggest, draft or answer on its own, depending on how far you choose to trust it.

= Is it GDPR compliant? =
JS Help Desk works with WordPress's own Export and Erase Personal Data tools, keeps every ticket in your own database, and adds a privacy policy section for you. Cleanup rules delete old tickets on a schedule you choose, with a preview first.

= Which languages does it support? =
The plugin is translated into 17 languages, and the translation for your site's language installs itself. Right-to-left languages such as Arabic and Hebrew are fully supported. You can download or edit any translation from Help Desk > Configurations > Translations.

= Can I move my tickets from another help desk? =
Yes. You can import from SupportCandy, Awesome Support and Fluent Support, with a preview of what will be imported first.

= Does it work with WooCommerce? =
Yes. With the Commerce pack, an agent sees the customer's WooCommerce or Easy Digital Downloads orders inside the ticket, and you can sell paid support or support credits.

= Will it work with my theme? =
Yes. The portal takes its fonts, colours and widths from your theme, and you can set the help desk's own colours to match your brand.

= Can I put the ticket form in the block editor? =
Yes. The portal, the ticket form and the customer's ticket list are blocks as well as shortcodes, in a "JS Help Desk" category of the inserter.

= Can I try the paid plans risk-free? =
Yes. Every plan comes with a 14-day refund, and the free plugin keeps working whatever you decide.

= Where do I get help? =
The [documentation](https://jshelpdesk.com/docs/) covers setup and every add-on, and there is a [demo](http://demo.jshelpdesk.com) you can try first. Free-plugin questions are answered in the WordPress.org support forum; paid plans include priority support on [jshelpdesk.com](https://jshelpdesk.com/support/).

== Screenshots ==

1. The Help Desk dashboard: today's tickets at a glance, with quick actions.
2. The ticket queue: Open, Waiting on Agent and Waiting on Customer, search, tags and bulk actions.
3. A ticket: the conversation, internal notes, the customer's company and their other tickets.
4. The ticket form on your site suggests an answer while the customer is still typing.
5. Customer portal: customers follow all their tickets on your site, without wp-admin.
6. Customer portal: the conversation as the customer sees it.
7. Customer portal home: open tickets, ticket stats and a quick way to ask for help.
8. Choose what the ticket form asks, in what order, and what is required.
9. Canned responses, filed by department, for the answers you write every week.
10. Editable HTML email templates for every notification.
11. Reports by status, department and priority.
12. The setup checklist checks your site and tells you what is left to do.
13. Email Health shows whether your notifications are really being sent.
14. Colour themes for the customer portal.

== Changelog ==

= 5.0.0 =
The biggest release in JS Help Desk's history.

**Highlights**
* 12 features that used to be paid are now in the free plugin: ticket history, internal notes, canned responses, help topics, email ban, auto cleanup, ticket limits, export, dashboard widgets, user options, ticket actions and AI Powered Reply.
* New AI Agent (pack): answers from your knowledge base, FAQs and past replies, with sources, confidence, a review mode and a master switch.
* New live chat (pack, beta) that answers from approved content and hands over to an agent.
* The paid add-ons are regrouped into nine packs, and every paid plan includes all nine.
* Companies are now free.
* 17 languages, installed automatically.
* A regrouped admin menu, accessibility improvements and blocks for every portal screen.
* Safe to update: tickets, settings and old add-ons keep working, and nothing new is switched on for your visitors.

**New in the packs**
* Agents & Teams: teams with working hours, time off and cover, roles that decide what each agent sees, four ways to assign tickets automatically, @mentions, a notification centre, and a credential vault encrypted with a key kept outside the database.
* Service Levels & Automation: response and resolution targets on business hours, warnings before a breach, an escalation ladder, and automation rules that start in a safe rehearsal mode.
* Email: Gmail and Microsoft sign-in for mailboxes (beta), smarter threading, emails in each customer's own language, and mail loops, out-of-office replies and bounces kept out of your queue.
* Integrations: a REST API and signed webhooks (beta).
* Reporting & Compliance: analytics, scheduled Excel and PDF exports, legal holds and approved deletions.
* Commerce: the customer's WooCommerce orders inside the ticket, support credits and quotas.

**Improved**
* Easier-to-read status and priority colours.
* Better keyboard and screen-reader support, and a customer portal that works well on phones.
* The download is about 12 MB smaller: translations now install themselves from jshelpdesk.com.

**Fixed**
* A department-restricted agent could see every ticket in the wp-admin queue.
* Several screens that could stop with an error - the ticket page when a stored credential could not be decrypted, and the WooCommerce order panel - now work.

[Full technical changelog](https://plugins.trac.wordpress.org/browser/js-support-ticket/trunk/changelog.txt)

= 4.0.0 =
* See who else is viewing or replying to a ticket, and drafts that save themselves as you type.
* Setup checklist, Email Health and System Status screens that tell you what needs fixing.
* Ticket tags, saved views, Waiting on Agent and Waiting on Customer queues, better search and keyboard shortcuts.
* Help topics nested up to three levels, routing each ticket to the right department and priority.
* Became free: help topics, ticket actions, canned responses, internal notes, ticket history, CSV export, dashboard widgets, email ban, ticket limits and auto cleanup.
* Two agent levels on ordinary WordPress roles: Help Desk Agent and Help Desk Light Agent.
* Invisible spam protection with no outside service, plus Cloudflare Turnstile, hCaptcha and reCAPTCHA, and submission rate limits.
* Attachments are checked by their content and can no longer be opened by a public link; WordPress's privacy tools are supported.

= Earlier versions =
See the [full changelog](https://plugins.trac.wordpress.org/browser/js-support-ticket/trunk/changelog.txt).

== Upgrade Notice ==

= 5.0.0 =
A major release: 12 paid features become free, add-ons regroup into nine packs, and an AI Agent arrives. Tickets, settings and old add-ons keep working. As with any major update, take a backup first.

== Privacy & Third-Party Service Disclosure ==

JS Help Desk runs on your own site. The services below are the only ones it ever contacts, and each one only in the situation described.

= Translations (jshelpdesk.com) =
JS Help Desk does not ship its translations inside the plugin. When your site uses a language other than English, the plugin downloads that language's translation from jshelpdesk.com and saves it in wp-content/languages/plugins/, the folder WordPress uses for plugin translations.

* **When:** when the plugin is installed or updated, when the site language changes or WordPress installs a new language, and once a day to check for an improved translation.
* **What is requested:** a list of available translations (https://jshelpdesk.com/translations/v5/index.json) and, when one is needed, a .zip file containing a .po and a .mo file. These are translation data, never code.
* **What is sent:** nothing about your site. The requests are plain downloads, and the user agent does not include your site address.
* **Turning it off:** add `define('JSST_TRANSLATIONS_AUTO', false);` to wp-config.php. You can then install a language yourself from Help Desk > Configurations > Translations, or download the files there and upload them to wp-content/languages/plugins/.
* [jshelpdesk.com Privacy Policy](https://jshelpdesk.com/privacy-policy/), [Terms](https://jshelpdesk.com/terms/)

= License and add-on updates (jshelpdesk.com) =
Only when an administrator enters a license key for the paid add-ons, the plugin contacts jshelpdesk.com to activate the license, check it, and download and update the add-ons it includes.

* **What is sent:** the license key, your site's address, and the WordPress, PHP and JS Help Desk versions and site language. No tickets, customers or other content.
* **Without a key** nothing is sent. The free plugin never needs a license.
* [jshelpdesk.com Privacy Policy](https://jshelpdesk.com/privacy-policy/), [Terms](https://jshelpdesk.com/terms/)

= AI services (Zywrap, Anthropic) =
The AI features that write text can use an outside AI service. All of them are off until an administrator turns them on and enters their own API key.

* **AI Copilot (Zywrap):** when an agent clicks an AI action such as "Generate Reply", "Summarize", "Extract Details" or "Translate", the text of that ticket thread is sent to the Zywrap API (api.zywrap.com) to produce the result. [Zywrap Privacy Policy](https://zywrap.com/privacy)
* **Hosted AI engine (Anthropic):** if an administrator chooses Anthropic as the AI engine and enters their own key, the question and the passages needed to answer it are sent to api.anthropic.com. Credentials stored in the help desk are never sent, and outgoing text can be redacted further in the AI settings. [Anthropic Privacy Policy](https://www.anthropic.com/legal/privacy)
* **On your own server:** the AI engine can instead run without any outside service, or on a model you host yourself (for example Ollama or LM Studio), in which case nothing leaves your infrastructure.
* AI Powered Reply, in the free plugin, searches replies already written on your site and contacts no one.

= Marketing consent (Mailchimp) =
If an administrator connects a Mailchimp account and a customer ticks the newsletter consent box, that customer's name and email address are sent to the administrator's own Mailchimp list (api.mailchimp.com). Nothing is sent without the customer's consent or without a Mailchimp key. [Mailchimp Privacy Policy](https://www.intuit.com/privacy/statement/)

= Spam Protection (CAPTCHA) =
JS Help Desk can verify that a ticket submission was made by a person. It ships with a **self-hosted** verification method, and optionally supports four third-party CAPTCHA services.

* **The default makes no external requests.** Out of the box the plugin uses its built-in check - a honeypot field, submission timing, and a small proof of work performed in the visitor's browser. Nothing is loaded from a third party and no data leaves your site.
* **Third-party services are opt-in.** Cloudflare Turnstile, hCaptcha, Google reCAPTCHA v3 and Google reCAPTCHA v2 are offered as alternatives. One is used only after an administrator selects it **and** enters the site key and secret key of their own account with that provider. If either key is missing, the plugin falls back to the built-in check rather than blocking submissions.
* **Why the provider's own domain is used.** A CAPTCHA is an anti-abuse service that issues a token at its own edge and validates that token against its own records. The challenge script therefore cannot be served from your site, and the response cannot be verified locally - both requests are required for the feature to function. When a provider is selected, its script is loaded on the ticket form and the visitor's response is verified server-to-server:
    * Cloudflare Turnstile - challenges.cloudflare.com ([Terms](https://www.cloudflare.com/website-terms/), [Privacy Policy](https://www.cloudflare.com/privacypolicy/))
    * hCaptcha - js.hcaptcha.com, api.hcaptcha.com ([Terms](https://www.hcaptcha.com/terms), [Privacy Policy](https://www.hcaptcha.com/privacy))
    * Google reCAPTCHA v2 and v3 - www.google.com/recaptcha ([Terms](https://policies.google.com/terms), [Privacy Policy](https://policies.google.com/privacy))
* **What is transmitted.** Only the challenge token generated in the visitor's browser, your secret key, and the visitor's IP address are sent to the selected provider's verification endpoint. Ticket content, subjects, names and e-mail addresses are never sent to a CAPTCHA provider.
* **Choosing none of them.** Administrators who do not want any third-party request can leave the built-in provider selected, or turn verification off entirely.
