Title: NiroHelp – AI-Native Helpdesk for Knowledge Base, Tickets, AI Chatbot, AI Ticket Responder and more
Author: EasyCommerce
Published: <strong>September 13, 2026</strong>
Last modified: September 17, 2026

---

Search plugins

![](https://ps.w.org/nirohelp/assets/banner-772x250.png?rev=3699861)

![](https://ps.w.org/nirohelp/assets/icon-256x256.png?rev=3699861)

# NiroHelp – AI-Native Helpdesk for Knowledge Base, Tickets, AI Chatbot, AI Ticket Responder and more

 By [EasyCommerce](https://profiles.wordpress.org/easycommerce/)

[Download](https://downloads.wordpress.org/plugin/nirohelp.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/nirohelp/#description)
 * [Reviews](https://wordpress.org/plugins/nirohelp/#reviews)
 *  [Installation](https://wordpress.org/plugins/nirohelp/#installation)
 * [Development](https://wordpress.org/plugins/nirohelp/#developers)

 [Support](https://wordpress.org/support/plugin/nirohelp/)

## Description

[Website](https://nirohelp.com/) | [All features](https://nirohelp.com/features/)
| [Pricing](https://nirohelp.com/pricing/) | [Documentation](https://nirohelp.com/docs/)
| [FAQ](https://nirohelp.com/faq/) | [Migration](https://nirohelp.com/migrate/) 
| [Roadmap](https://nirohelp.com/docs/roadmap/) | [Blog](https://nirohelp.com/blog/)

**Let your documentation do the answering.**

NiroHelp is a WordPress help desk with three things in one place: a **knowledge 
base** for your documentation, a **support ticket system** for your customers, and**
AI** that answers tickets and chat questions from the docs you publish.

The AI stays quiet when it should: it replies only above a confidence threshold 
you set, after a delay you choose. Otherwise it posts nothing and the ticket waits
for your team, as if the AI were not there.

The help desk itself (docs, tickets, emails, dashboard and migration) works on its
own, with no account and no external service. AI features are optional and run on
NiroHelp Cloud. See _External services_ below.

#### How the AI answers a ticket

 1. **A customer writes in.** A new ticket or client reply schedules one AI reply.
 2. **The AI searches the docs you synced** for a real answer.
 3. **Above your threshold, it replies,** after your response delay (5 minutes by default).
    Each new client message restarts the delay.
 4. **Below it, a human takes over.** Nothing is posted, the attempt is logged, and
    the ticket stays in your queue. An agent reply cancels the pending one.

Raise the threshold and the AI speaks only when sure; lower it and it handles more.
It runs from 0 to 100%, default 70%.

#### Why teams choose NiroHelp

Answers grounded in your own docs and instructions, spoken only above a threshold
and delay you control. An agent reply always wins. No OpenAI or other model key,
and no second AI vendor. Unlimited agents and tickets on every plan, no seat pricing.
One admin menu, one settings screen and one product list instead of three plugins.

#### Built for

 * **Product companies** answering the same questions daily, whose docs can carry
   the load.
 * **Support teams** needing real ticketing without per-agent pricing.
 * **Agencies** running support for client sites, with a chatbot branded for each
   one.

#### Explore each feature

📚 [Knowledge base](https://nirohelp.com/features/knowledge-base/) · 🎫 [Support ticket system](https://nirohelp.com/features/support-tickets/)·
💬 [AI chatbot](https://nirohelp.com/features/ai-chatbot/) · 🤖 [AI auto-responder](https://nirohelp.com/features/ai-auto-responder/)·
📊 [Dashboard and copilot](https://nirohelp.com/features/dashboard/) · 🔄 [Migration](https://nirohelp.com/migrate/)

#### Knowledge base

 * **Native WordPress docs:** a standard post with a featured image, written in 
   the editor. Drafts stay drafts, private docs stay private.
 * **Topics and products.** Nested topics, plus product tags shared with tickets,
   and drag-and-drop ordering for both. See [topics and products](https://nirohelp.com/docs/knowledge-base/topics-and-products/).
 * **Archive with search.** `[nirohelp_docs]` renders topic cards and a search box
   answering in place, without a reload; limit it to one product with the `product`
   attribute.
 * **Doc voting.** “Was this doc helpful?” Yes and No, counts only: no IP address,
   no visitor identity. Totals appear in the admin list and dashboard. See [doc voting](https://nirohelp.com/docs/knowledge-base/doc-voting/).
 * **Nine URL structures** from your docs page, topic and product, with or without
   the docs base, to keep your old plugin’s shape. See [doc URLs](https://nirohelp.com/docs/knowledge-base/doc-urls/).
 * **Reader navigation:** sidebar, breadcrumbs, previous and next links, rating 
   buttons and comments, each switchable on its own.
 * **Archive sizing:** docs per page, and how many show under a topic before “View
   all”.
 * **Code and images.** Highlighted code with `[nirohelp_code lang="php"]` (Prism.
   js) and click-to-zoom images (Fancybox). See [code blocks and images](https://nirohelp.com/docs/knowledge-base/code-blocks-and-images/).
 * **Fast at scale.** Doc lists cached in your object cache (Redis, Memcached) or
   transients for a lifetime you set, cleared when a doc changes.
 * **Content insights.** Views, votes and failed searches feed the dashboard’s most-
   read, never-read, unhelpful, not-updated-in-a-year and missing-docs panels.

#### Support ticket system

 * **Front-end ticket form.** `[nirohelp_new_ticket]`, so customers never touch 
   wp-admin.
 * **Form builder.** Show, hide, reorder and require the built-in fields (subject,
   description, product, topic, urgency, order ID), and add custom text, number,
   email, textarea or select fields. See [ticket form fields](https://nirohelp.com/docs/ticket-management/ticket-form-fields/).
 * **File attachments.** Images, PDFs and ZIPs (10 MB by default) on tickets and
   replies, kept outside the media library in a protected folder, served only to
   people allowed to see the ticket.
 * **Eight ticket statuses,** changing automatically when the client or an agent
   replies (see below), each change noted in the thread with who made it.
 * **Urgency and reasons.** Four [urgency levels](https://nirohelp.com/docs/ticket-management/urgency-levels/)(
   Low, Medium, High, Severe) and a [reasons taxonomy](https://nirohelp.com/docs/ticket-management/reasons/)
   showing why customers contact you.
 * **Agent queue.** `[nirohelp_all_tickets]`: status tabs, search, filters (agent,
   product, reason, urgency, date), quick edit and a rich-text reply box.
 * **Client portal.** `[nirohelp_tickets]`: each customer’s own tickets and conversations.
 * **Automatic assignment:** random, round-robin or least-loaded, with a per-agent
   ticket cap, or off to assign by hand. See [auto-assigning agents](https://nirohelp.com/docs/workflows-automation/auto-assigning-agents/).
 * **Agents page.** Each agent’s open and total tickets, an “At capacity” badge 
   and a link to their queue.
 * **Roles:** NiroHelp Manager, NiroHelp Agent and a minimal NiroHelp User for customers,
   alongside Administrators. See [roles and permissions](https://nirohelp.com/docs/setup-configuration/roles-and-permissions/).
 * **Embeddable ticket widget:** a theme-free “Need Help?” button and form for other
   sites, served from `/nirohelp/tickets/embed/`. See [embedding the ticket UI](https://nirohelp.com/docs/developers/embedding-the-ticket-ui/).

#### Ticket statuses

Eight statuses, rarely set by hand:

 * **Open**: submitted, not picked up yet.
 * **Waiting**: the client replied; your team’s turn.
 * **In Progress**: an agent replied; the client’s turn.
 * **On Hold**: parked, usually pending something outside support.
 * **Resolved**: answered; the auto-responder leaves it alone.
 * **Reopened**: the client came back after a resolution.
 * **Cancelled**: withdrawn or no longer relevant.
 * **Closed**: finished and archived out of the queue.

Client replies move a ticket to Waiting, agent replies to In Progress; Resolved,
Cancelled and Closed are left alone. Turn **Auto-transition status on reply** off
under **Settings  Tickets  Behaviour** to set them by hand. Each change fires an
action hook and sends the matching email. More in [ticket statuses](https://nirohelp.com/docs/workflows-automation/ticket-statuses/).

#### Passwordless client login

Customers sign in without a password by default. Pick the method under **Settings
Tickets  Submission**:

 * **Verification code**: a 6-digit code by email (default).
 * **Magic link**: one-click sign-in, valid for 5 minutes.
 * **Password**: a standard login, with email-verified sign-up.

Passwords run through WordPress’s own authentication, so login security plugins 
such as brute-force limiters keep working. Guest submission is optional: visitors
file a ticket with their name and email and get a sign-in link. More in [client login](https://nirohelp.com/docs/ticket-management/client-login/).

#### Email notifications

 * Seven notifications: login code, magic link, new ticket (to the client and to
   the agent), agent reply, client reply, ticket resolved.
 * Edit each one’s header, subject and body, with placeholders such as `##client_name##`,`##
   ticket_subject##` and `##ticket_link##` (a one-click sign-in link to the ticket).
 * Shared branding (logo, footer text, brand colour, background and content width),
   set once for all of them.
 * Sent through `wp_mail`, so any SMTP plugin works. More in [notification emails](https://nirohelp.com/docs/email-notifications/notification-emails/).

#### AI chatbot

 * **One snippet, any website:** a single `<script>` tag, or a mini plugin to download
   for WordPress sites. See [embedding the chatbot](https://nirohelp.com/docs/ai-assistance/embedding-the-chatbot/).
 * **Answers from your docs,** once synced, following your AI instructions.
 * **Conversation memory.** Follow-ups keep context, and the thread survives a page
   change.
 * **Your brand:** agent name, avatar, accent colour, position, welcome message,
   suggested questions, input placeholder, launcher label, panel size (400 × 620
   by default, capped to small screens) and the “Powered by NiroHelp” footer, on
   or off. See [customizing the chatbot](https://nirohelp.com/docs/ai-assistance/customizing-the-chatbot/).
 * **Auto-open triggers:** after a delay, at a scroll depth or on exit intent, at
   most once per visit.
 * **Page targeting.** Show or hide it on URL paths such as `/docs/*` or `/checkout/*`.
   Hide rules win.
 * **Business hours** like `mon-fri:9-17` in the visitor’s local time; outside them,
   show an offline message or hide the widget.
 * **Route to a human:** a support email and ticket page it shares when a visitor
   needs one.
 * **Optional lead capture.** Ask for a name and email early on, matching known 
   addresses to their WordPress account. Off by default.
 * **Live preview** before copying the code, which is built server-side from the
   widget’s own rules, omitting values left at their default.
 * **Private by design.** Conversations live in the visitor’s browser session and
   clear when the tab closes. See [chatbot conversation storage](https://nirohelp.com/docs/ai-assistance/chatbot-conversation-storage/).

#### AI auto-responder

 * Answers new tickets and client replies from your synced docs, after a delay set
   in minutes, hours or days.
 * Withheld answers are logged with their score and the reason it held back.
 * Cancels when an agent replies or the ticket is resolved, closed or cancelled,
   so it never answers stale context.
 * One attempt per client message: it never replies to itself and never sends twice
   for the same message.
 * Posts under an author name you choose (“Support Bot” by default), and can move
   the ticket to In Progress.
 * Context sent with the question: ticket title, client name and email, order ID,
   products, urgency and the full Client/Agent transcript.

More in [the auto-responder guide](https://nirohelp.com/docs/workflows-automation/ai-auto-responder/).

#### Ticket sentiment

 * Every ticket is labelled **positive**, **neutral** or **negative**, with a note
   on what is blocking the customer.
 * Classified about two minutes after a new ticket or client reply, with an hourly
   catch-up, so nobody waits on an AI call to file a ticket.
 * Terminal tickets too: an angry message on a resolved ticket is the strongest 
   reopen signal a desk gets.
 * An agent can override the label or re-analyse on demand from the ticket screen,
   and a manual label is never overwritten.
 * Feeds the dashboard’s mood split and the risk ranking behind **Needs attention**;
   a ticket it has not reached reads as undecided, not a guess.

#### AI tools for your team

 * **Generate response with AI.** Agents draft a reply from your docs in one click,
   then edit before sending.
 * **AI instructions:** standing guidance on tone and scope for the chatbot and 
   auto-responder. See [custom instructions](https://nirohelp.com/docs/ai-assistance/custom-instructions/).
 * **Ask NiroHelp.** Administrators ask plain-language questions about tickets, 
   agents, chatbot activity and doc gaps. Answers cite their basis, and say “not
   enough history yet” rather than inventing a number. It can propose creating a
   ticket, changing a status or adding an internal note, acting only once you confirm.
   See [Ask NiroHelp](https://nirohelp.com/docs/reports-analytics/ask-nirohelp/).
 * **Logs:** separate feeds for chatbot answers, auto-responder replies and Ask 
   NiroHelp questions, with the relevance score behind each attempt; auto-responder
   entries link back to their ticket.
 * **Usage:** chatbot responses, auto-responder replies and plan credits left, with
   the renewal date.
 * **Connect and disconnect from one screen.** Register the site, sync docs, and
   disconnect whenever you like, clearing the stored credentials on this site only.
   See [registering for AI](https://nirohelp.com/docs/ai-assistance/registering-for-ai/)
   and [syncing docs](https://nirohelp.com/docs/ai-assistance/syncing-docs/).

#### Support dashboard

A 360° view of the desk, over the last 7, 30 or 90 days, this week or this month:

 * **Key numbers,** each against the previous period: open tickets, waiting on your
   team, average first reply, resolved, AI deflection, AI replies sent, docs published
   and doc helpfulness.
 * **Work queues: Needs attention** (ranked by risk: wait time, follow-up count,
   urgency and how the thread reads, reopened tickets first), **Needs reply** (oldest
   first) and **New tickets**.
 * **Daily briefing** written each morning; plain figures when AI is off.
 * **Customer sentiment** split across recent tickets.
 * **AI performance:** replies sent, deflection, answers withheld below the threshold,
   and how often and how quickly a human took over.
 * **Chatbot outcomes:** questions asked and most asked, sessions that ended in 
   an answer, were handed to a ticket, or were abandoned.
 * **Agent workload:** per-agent first reply and resolution times, the AI’s share
   of their tickets, and how work is spread across the team.
 * **Busiest hours** heatmap for tickets, agent replies and chatbot questions.
 * **Doc insights:** most read, never read, read only once, marked unhelpful, untouched
   for a year, searches that found nothing, and ticket subjects your docs do not
   cover.
 * **Activity feed** across tickets, docs and AI, plus **Rescan** to re-classify
   sentiment and regenerate the briefing.

More in [the dashboard guide](https://nirohelp.com/docs/reports-analytics/the-dashboard/).

#### Migrate from other help desk and knowledge base plugins

Import in the background, in batches, from:

 * **[BetterDocs](https://nirohelp.com/migrate/betterdocs/)**: docs, categories 
   and votes.
 * **[weDocs](https://nirohelp.com/migrate/wedocs/)**: parent pages become topics,
   articles become docs, votes included.
 * **[Echo Knowledge Base](https://nirohelp.com/migrate/echo-knowledge-base/)**:
   articles and categories from every knowledge base.
 * **[BasePress](https://nirohelp.com/migrate/basepress/)**: articles, knowledge
   bases, sections and votes.
 * **[Awesome Support](https://nirohelp.com/migrate/awesome-support/)**: tickets,
   replies, attachments, assigned agents, products and departments.
 * **[SupportCandy](https://nirohelp.com/migrate/supportcandy/)**: tickets, threads,
   customers, agents, categories, priorities, tags, custom fields and attachments.
 * **[JS Help Desk](https://nirohelp.com/migrate/js-help-desk/)**: tickets, replies,
   departments, products, priorities, custom fields and attachments.

Each button stays disabled until that plugin is detected, so keep the old one active
while you import. Re-running skips what is already imported. Once you have checked
the result, **Clean** permanently deletes the migrated data from the old plugin;
it asks first, and there is no undo. Every [migration guide](https://nirohelp.com/migrate/)
lists what comes across and what stays behind.

#### Your data, your site

 * **Stored in WordPress.** Docs and tickets are posts, replies are comments, attachments
   sit in your uploads folder. No custom tables.
 * **Modular.** Turn the knowledge base or ticketing off at any time; that hides
   it and deletes nothing. See [enabling modules](https://nirohelp.com/docs/getting-started/enabling-modules/).
 * **Nothing lost on uninstall.** Deleting the plugin leaves your docs, tickets 
   and settings in the database.
 * **Translation-ready.** Every string uses the `nirohelp` text domain, and a `.
   pot` file is included. See [translating NiroHelp](https://nirohelp.com/docs/developers/translating-nirohelp/).

#### Shortcodes

 * `[nirohelp_docs]`: knowledge base archive with search.
 * `[nirohelp_new_ticket]`: ticket submission form.
 * `[nirohelp_tickets]`: the signed-in customer’s tickets.
 * `[nirohelp_all_tickets]`: the agent ticket queue.
 * `[nirohelp_login_form]`: customer sign-in form.
 * `[nirohelp_code lang="php"]`: highlighted code block.

#### For developers

 * REST API under `/wp-json/nirohelp/v1/` for docs, tickets, comments, attachments,
   settings, migration, AI and the dashboard. See the [REST API reference](https://nirohelp.com/docs/developers/rest-api-reference/).
 * Ticket lifecycle actions, including `nirohelp-tickets-ticket_created`, `nirohelp-
   tickets-client_commented`, `nirohelp-tickets-agent_commented`, `nirohelp-tickets-
   agent_changed` and `nirohelp-tickets-ticket_status_changed`. See [action hooks](https://nirohelp.com/docs/developers/action-hooks/).
 * Filters, including `nirohelp_settings_menus`, `nirohelp_product_post_types`, `
   nirohelp_auto_status_transition_on_comment`, `nirohelp_can_register_users`, `
   nirohelp_attachment_types` and `nirohelp_attachment_max_bytes`. See [filter hooks](https://nirohelp.com/docs/developers/filter-hooks/).
 * A theme-free ticket portal for an iframe on any site: [embedding the ticket UI](https://nirohelp.com/docs/developers/embedding-the-ticket-ui/).
 * PSR-4 autoloading, a PHP 7.4 floor and a WordPress 6.0 minimum.
 * Point the AI features at another NiroHelp Cloud server with the `NIROHELP_CLOUD_SITE`
   constant.
 * Full guide in the [developer documentation](https://nirohelp.com/docs/doc-topic/developers/),
   and every setting in the [settings reference](https://nirohelp.com/docs/setup-configuration/settings-reference/).

#### Plans, credits and pricing

The knowledge base, ticket system, emails, dashboard and migration tools are free,
with no limits on agents, tickets or docs. AI features run on NiroHelp Cloud and
need a paid NiroHelp plan: **Starter** (1 site), **Growth** (5 sites) and **Agency**(
10 sites), all with unlimited agents and a 30-day money-back guarantee.

One credit is one AI answer (a chatbot reply, an auto-responder reply or an Ask 
NiroHelp question), whatever its length. The allowance covers every connected site
and renews monthly; when it runs out the AI pauses and everything else keeps working.
The **Usage** panel shows what is left and when it renews. See [NiroHelp pricing](https://nirohelp.com/pricing/).

### External services

The knowledge base, tickets, emails, dashboard and migration tools do not contact
any external service.

The …

## Screenshots

[⌊The support dashboard: a daily briefing written from the week's own tickets, customer
sentiment, deflection and reply-time figures, work queues ranked by risk, and a 
live activity feed.⌉⌊The support dashboard: a daily briefing written from the week's
own tickets, customer sentiment, deflection and reply-time figures, work queues 
ranked by risk, and a live activity feed.⌉[

The support dashboard: a daily briefing written from the week’s own tickets, customer
sentiment, deflection and reply-time figures, work queues ranked by risk, and a 
live activity feed.

[⌊Chatbot setup — agent name, avatar, colour and launcher corner — with a live preview
beside the form. View Code or Download Plugin embeds it on any site.⌉⌊Chatbot setup—
agent name, avatar, colour and launcher corner — with a live preview beside the 
form. View Code or Download Plugin embeds it on any site.⌉[

Chatbot setup — agent name, avatar, colour and launcher corner — with a live preview
beside the form. View Code or Download Plugin embeds it on any site.

[⌊The AI auto-responder: the confidence threshold it must clear before it posts,
the delay before it replies, the name it posts under, and whether it moves the ticket
to In progress.⌉⌊The AI auto-responder: the confidence threshold it must clear before
it posts, the delay before it replies, the name it posts under, and whether it moves
the ticket to In progress.⌉[

The AI auto-responder: the confidence threshold it must clear before it posts, the
delay before it replies, the name it posts under, and whether it moves the ticket
to In progress.

[⌊Ask NiroHelp answers plain-language questions about your help desk — why first
reply time moved, who is at capacity, which docs are missing. It reads your help
desk only and never messages a customer.⌉⌊Ask NiroHelp answers plain-language questions
about your help desk — why first reply time moved, who is at capacity, which docs
are missing. It reads your help desk only and never messages a customer.⌉[

Ask NiroHelp answers plain-language questions about your help desk — why first reply
time moved, who is at capacity, which docs are missing. It reads your help desk 
only and never messages a customer.

[⌊The agent queue, with status tabs, search, and filters by agent, product, reason,
urgency and date. "Support Bot" on a last reply marks a ticket the AI answered.⌉⌊
The agent queue, with status tabs, search, and filters by agent, product, reason,
urgency and date. "Support Bot" on a last reply marks a ticket the AI answered.⌉[

The agent queue, with status tabs, search, and filters by agent, product, reason,
urgency and date. “Support Bot” on a last reply marks a ticket the AI answered.

[⌊The customer's portal: every ticket they have opened, with its status, the agent
on it and when it last moved.⌉⌊The customer's portal: every ticket they have opened,
with its status, the agent on it and when it last moved.⌉[

The customer’s portal: every ticket they have opened, with its status, the agent
on it and when it last moved.

[⌊The AI chatbot answering a shopper on the storefront, from the documentation you
published.⌉⌊The AI chatbot answering a shopper on the storefront, from the documentation
you published.⌉[

The AI chatbot answering a shopper on the storefront, from the documentation you
published.

[⌊Email branding — logo, footer text, brand colour, background and content width,
applied to every ticket notification email.⌉⌊Email branding — logo, footer text,
brand colour, background and content width, applied to every ticket notification
email.⌉[

Email branding — logo, footer text, brand colour, background and content width, 
applied to every ticket notification email.

[⌊Import from BetterDocs, weDocs, Echo Knowledge Base, BasePress, Awesome Support,
SupportCandy and JS Help Desk. Each button stays disabled until that plugin is detected.⌉⌊
Import from BetterDocs, weDocs, Echo Knowledge Base, BasePress, Awesome Support,
SupportCandy and JS Help Desk. Each button stays disabled until that plugin is detected
.⌉[

Import from BetterDocs, weDocs, Echo Knowledge Base, BasePress, Awesome Support,
SupportCandy and JS Help Desk. Each button stays disabled until that plugin is detected.

[⌊The new-ticket form: show, require, relabel and reorder the built-in fields, or
add custom ones of your own.⌉⌊The new-ticket form: show, require, relabel and reorder
the built-in fields, or add custom ones of your own.⌉[

The new-ticket form: show, require, relabel and reorder the built-in fields, or 
add custom ones of your own.

[⌊AI logs — every question the chatbot and the auto-responder answered, with the
answer that was given, newest first.⌉⌊AI logs — every question the chatbot and the
auto-responder answered, with the answer that was given, newest first.⌉[

AI logs — every question the chatbot and the auto-responder answered, with the answer
that was given, newest first.

## Installation

#### Automatic installation

 1. In your WordPress admin, go to **Plugins  Add New Plugin** and search for **NiroHelp**.
 2. Click **Install Now**, then **Activate**.

#### Manual installation

 1. Download the plugin ZIP file from [nirohelp.com](https://nirohelp.com/).
 2. Go to **Plugins  Add New Plugin  Upload Plugin**, choose the file and click **Install
    Now**.
 3. Activate **NiroHelp**.

Step by step, with screenshots: [installing NiroHelp](https://nirohelp.com/docs/getting-started/installing-nirohelp/).

#### After activation

NiroHelp creates three pages and links them in its settings: **Docs** (`[nirohelp_docs]`),**
My Tickets** (`[nirohelp_tickets]`) and **Submit a Ticket** (`[nirohelp_new_ticket]`).
Existing pages that already hold those shortcodes are reused, so activating again
never creates duplicates.

 1. Add the new pages to your site menu.
 2. Choose the modules you need under **NiroHelp  Settings  General**.
 3. Publish a few docs, so your knowledge base and your AI have something to answer
    from.
 4. Optional: create an **All Tickets** page with `[nirohelp_all_tickets]` for your
    agents and select it under **Settings  Tickets  Pages**.
 5. Optional: moving from another plugin? Keep it active and open **NiroHelp  Settings
    Migration**.
 6. Optional, AI: open **NiroHelp  AI**, register with your name and email, enter the
    key you receive and click **Sync Docs**. Then set your confidence threshold and
    response delay under **Auto Responder**, and get your embed code under **Chatbot**.

The [first-run setup guide](https://nirohelp.com/docs/getting-started/first-run-setup/)
walks through the same steps, and the rest of the manual is in the [NiroHelp documentation](https://nirohelp.com/docs/).

## FAQ

### What is NiroHelp?

NiroHelp is a WordPress help desk plugin that combines a knowledge base, a support
ticket system and optional AI. The AI chatbot and auto-responder answer customers
from the documentation you publish, and leave the conversation to your team when
they are not confident. See [what it does](https://nirohelp.com/features/) on nirohelp.
com.

### Is NiroHelp free?

Yes. The knowledge base, ticketing, email notifications, dashboard and migration
tools are free, with unlimited agents, tickets and docs. AI features are optional
and need a paid NiroHelp plan. See [NiroHelp pricing](https://nirohelp.com/pricing/).

### What do the paid plans add?

The AI: the chatbot, the ticket auto-responder, AI reply drafts, sentiment, the 
daily briefing and the Ask NiroHelp copilot. Starter covers one site, Growth five
and Agency ten, each with a monthly allowance of AI answers and unlimited agents.
Everything else — docs, tickets, assignment, roles, emails, the dashboard’s free
panels and all seven importers — is in the free plugin.

### What is an AI credit, and what happens when I run out?

One credit is one AI answer: a chatbot reply, an auto-responder reply or an Ask 
NiroHelp question. Length makes no difference. The allowance is shared across every
connected site and renews monthly. If it runs out, the AI pauses until it renews
and nothing else changes — tickets keep arriving, your team keeps answering, the
knowledge base keeps working. The **Usage** panel on the AI screen shows what is
left and the renewal date.

### How does the AI decide when to answer a ticket?

It searches your synced docs and scores how well they answer the question. If the
score clears your confidence threshold, the reply is posted after your response 
delay. If it does not, nothing is posted and the ticket waits for an agent.

### Can I control how confident the AI has to be?

Yes. Set the confidence threshold from 0 to 100% (default 70%) and the response 
delay in minutes, hours or days (default 5 minutes) under **NiroHelp  AI  Auto Responder**.
The [AI auto-responder page](https://nirohelp.com/features/ai-auto-responder/) walks
through both settings.

### What happens when the AI is not confident enough?

It stays silent. No reply is posted, the attempt is recorded in the AI logs with
its score and the reason it held back, and the ticket stays in your queue for a 
human agent. The customer sees nothing unusual.

### Will the auto-responder reply over my agents?

No. Each client message schedules at most one AI reply, and a new client message
restarts the delay. Any agent reply, or resolving, closing or cancelling the ticket,
cancels the pending AI reply.

### Do I need an OpenAI API key?

No. There is no OpenAI, Anthropic or other model key to set up. You connect your
site to NiroHelp Cloud once, from inside WordPress.

### How does the AI learn my documentation?

Click **Sync Docs** under **NiroHelp  AI**. NiroHelp Cloud reads your published,
publicly visible docs and indexes them. Syncing is manual, so unfinished drafts 
never reach answers, and NiroHelp reminds you to sync after you edit or publish 
a doc. See [syncing docs](https://nirohelp.com/docs/ai-assistance/syncing-docs/).

### How do I disconnect a site from the AI?

Open **NiroHelp  AI** and use **Disconnect** on the connection card. It clears the
stored credentials on that site only, and you can connect again whenever you like—
see [disconnecting and reconnecting AI](https://nirohelp.com/docs/ai-assistance/disconnecting-and-reconnecting-ai/).

### What does the dashboard show?

Key numbers for the range you pick (7, 30 or 90 days, this week or this month), 
three work queues, a busiest-hours heatmap, agent workload, doc insights and an 
activity feed. With AI connected it adds the daily briefing, the customer sentiment
split, AI performance and chatbot outcomes. More on the [dashboard page](https://nirohelp.com/features/dashboard/).

### How does a ticket end up in “Needs attention”?

By risk rather than by date: how long the customer has waited, whether anyone has
replied at all, the urgency on the ticket and how the recent replies read. Reopened
tickets lead the queue. Tickets rise when several of those line up badly.

### How is sentiment worked out?

The AI service labels each ticket positive, neutral or negative and notes what is
blocking the customer, about two minutes after the latest message, with an hourly
catch-up. A ticket it has not reached yet is shown as undecided rather than guessed
at, and an agent can override the label or re-analyse the ticket from the ticket
screen.

### Can I use only the knowledge base, or only ticketing?

Yes. Switch either module off under **NiroHelp  Settings  General**. At least one
must stay on, and turning a module off deletes nothing.

### Do customers need a WordPress account?

Customers never use wp-admin and do not need a password. The first time someone 
submits a ticket, NiroHelp creates a minimal NiroHelp User account for them, and
they sign in with an emailed code or magic link. New accounts are only created when
your site allows it: either WordPress’s “Anyone can register” setting or NiroHelp’s“
Create accounts for new clients” setting must be on.

### Can visitors submit tickets without logging in?

Yes. Turn on guest submissions under **Settings  Tickets  Submission**. Visitors
enter their name and email with the ticket and receive a sign-in link by email.

### Can customers attach files to tickets?

Yes. Customers and agents can attach PNG, JPG, PDF and ZIP files, up to 10 MB by
default, to tickets and replies. They never go through the media library: NiroHelp
writes them into a protected folder and serves them through a route that checks 
who is asking, so the customer role needs no WordPress upload permission. Developers
can change the allowed types and size with the `nirohelp_attachment_types` and `
nirohelp_attachment_max_bytes` filters.

### How do ticket statuses change on their own?

A client reply moves the ticket to **Waiting** (your team’s turn) and an agent reply
moves it to **In Progress** (the client’s turn). Resolved, Cancelled and Closed 
tickets are left alone. Switch the behaviour off under **Settings  Tickets  Behaviour**,
or filter it per ticket with `nirohelp_auto_status_transition_on_comment`. See [ticket statuses](https://nirohelp.com/docs/workflows-automation/ticket-statuses/).

### Can I add the AI chatbot to a site that isn’t WordPress?

Yes. The chatbot is a single `<script>` tag that works on any website. For another
WordPress site, **Download Plugin** gives you a tiny plugin that adds the widget
without touching code. See the [AI chatbot page](https://nirohelp.com/features/ai-chatbot/).

### Can I show the chatbot only on certain pages?

Yes. List the URL paths to show or hide it on, with `*` wildcards such as `/docs/*`.
Only the path is matched, not the query string, and hide rules win when a page matches
both lists.

### Can I customize how the chatbot looks?

Yes. Set the agent name, avatar, accent colour, position, welcome message, suggested
questions, input placeholder, launcher label, panel size and business hours, switch
the “Powered by NiroHelp” footer off, and preview the result before copying the 
code. Agencies can brand it separately for each client site — see [customizing the chatbot](https://nirohelp.com/docs/ai-assistance/customizing-the-chatbot/).

### Can the chatbot collect a visitor’s name and email?

Optionally. Turn on lead collection and the bot asks for them early in the conversation,
matching a known address to its WordPress account. It is off by default, and the
widget works without it.

### How are tickets assigned to agents?

New tickets are assigned automatically with random, round-robin or least-loaded 
assignment, skipping agents who have reached their ticket cap. You can also turn
auto-assignment off and assign tickets by hand.

### How many agents can I add?

As many as you like. NiroHelp has no per-agent limits and no seat pricing.

### Can I customize the ticket form?

Yes. Under **Settings  Tickets  Form fields**, show, hide and reorder the built-
in fields, mark fields as required, and add custom text, number, email, textarea
or select fields.

### Can I customize the notification emails?

Yes. Each of the seven emails has an editable header, subject and body with placeholders,
plus a shared logo, footer, brand colour, background and content width. Emails are
sent through `wp_mail`, so they work with any SMTP plugin.

### Can customers open tickets by email?

Not in this version. Tickets are created from the ticket form, the embeddable ticket
widget or the REST API, and notification emails bring customers back to their ticket
with a one-click sign-in link. [Email piping](https://nirohelp.com/features/email-piping/)—
piping a support mailbox into the queue over IMAP or POP3 — is on the [roadmap](https://nirohelp.com/docs/roadmap/).

### How do I migrate from BetterDocs, weDocs, Echo Knowledge Base, BasePress, Awesome Support, SupportCandy or JS Help Desk?

Keep the old plugin active, open **NiroHelp  Settings  Migration** and click **Migrate**
next to it. Each button stays disabled until that plugin is detected. The import
runs in the background and is safe to run again. Use **Clean** only after checking
the result: it permanently deletes the migrated data from the old plugin, and there
is no undo. Each source has its own guide under [Migrate](https://nirohelp.com/migrate/).

### Should I try a migration on a staging site first?

Yes, especially for tickets. An import behaves like real activity: assigned agents
can be notified, statuses can change, and the auto-responder — if it is on — treats
imported tickets as new work. A staging copy shows exactly what lands before your
team or your customers see it. See [migrating from other plugins](https://nirohelp.com/docs/migration/migrating-from-other-plugins/).

### Where is my support data stored?

In your WordPress database. Docs and tickets are posts, replies are comments, and
attachments are in your uploads folder. The AI features send only the data listed
under _External services_ to NiroHelp Cloud.

### What happens to my data if I disable a module or uninstall the plugin?

Nothing is deleted. Disabling a module hides its screens and shortcodes. Uninstalling
NiroHelp leaves your docs, tickets, replies and settings in the database.

### Does NiroHelp work with my theme?

Yes. Docs and ticket screens appear inside regular pages through shortcodes, so 
they work with classic and block themes.

### Is NiroHelp translation-ready?

Yes. Every string uses the `nirohelp` text domain, and a `.pot` template is included
in the `languages` folder.

### Where can I ask a question that isn’t answered here?

More answers are on the [NiroHelp FAQ](https://nirohelp.com/faq/), common issues
are in [troubleshooting](https://nirohelp.com/docs/troubleshooting-support/common-problems/),
and the full manual is at [nirohelp.com/docs](https://nirohelp.com/docs/).

### Is there a REST API?

Yes. The `/wp-json/nirohelp/v1/` namespace covers docs, tickets, comments, attachments,
settings, migration, AI and the dashboard, and action and filter hooks cover the
ticket lifecycle. Routes and hooks are listed in the [REST API reference](https://nirohelp.com/docs/developers/rest-api-reference/).

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“NiroHelp – AI-Native Helpdesk for Knowledge Base, Tickets, AI Chatbot, AI Ticket
Responder and more” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ EasyCommerce ](https://profiles.wordpress.org/easycommerce/)

[Translate “NiroHelp – AI-Native Helpdesk for Knowledge Base, Tickets, AI Chatbot, AI Ticket Responder and more” into your language.](https://translate.wordpress.org/projects/wp-plugins/nirohelp)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/nirohelp/), check out
the [SVN repository](https://plugins.svn.wordpress.org/nirohelp/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/nirohelp/) by [RSS](https://plugins.trac.wordpress.org/log/nirohelp/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1 – 2026-09-17

**Fixed**

 * PHP strings are translated at last. `languages/nirohelp.pot` has carried over
   a thousand of them all along, but nothing on the PHP side ever loaded a translation
   from the `languages` folder, so a `.mo` file dropped in there translated the 
   admin app and left every PHP string in English.
 * An imported ticket reply is attributed to the customer who wrote it, not to the
   administrator running the import. Every migrated customer message was filed as
   an agent reply, which emailed that customer to say their ticket had been answered—
   once per imported comment — and forced the ticket to In Progress over the status
   the old help desk recorded.

**Changed**

 * The dashboard’s daily briefing ends on its own prose. The three links beneath
   it, and the note explaining them, are gone.
 * `languages/easyhelp.pot` is removed, 8 KB left behind by an earlier name. Nothing
   read it; translations are built from `nirohelp.pot`.

#### 1.0.0 – 2026-09-17

A rebuild rather than a point release. The admin is now a React application, every
browser request goes through the plugin’s own REST API, and the help desk gained
a dashboard, ticket sentiment, AI reply drafts, attachments and an assistant that
answers questions about your own support data. Docs, tickets, settings, agents and
emails carry over from 0.8.1 untouched — there is no migration step.

**Added — the support dashboard**

 * A daily briefing written from the period’s own tickets, searches and docs, naming
   the knowledge gaps behind them.
 * A KPI band: open tickets, waiting on us, average first reply, resolved, docs 
   published, doc helpfulness, AI deflection and AI replies sent, each against the
   previous period.
 * Work queues ranked by risk — needs attention, needs reply and new tickets — with
   what is blocking each row on the row itself.
 * Customer sentiment, AI performance, chatbot outcomes, an agent workload table,
   busiest-hours heatmaps, doc insights and an activity feed.
 * Date ranges that govern every figure on the screen: this week, this month, and
   the last 7, 30 or 90 days, each with its comparison window. Rescan re-reads the
   period on demand.
 * A section whose module is switched off says so, in place of figures that would
   read as zero.

**Added — Ask NiroHelp**

 * Plain-language questions about your own help desk: why first reply time moved,
   who is at capacity, which docs are missing. It cites the tickets it used.
 * It reads your help desk only and never messages a customer.
 * It can propose a change to a ticket, held until you confirm or decline it.
 * Every turn is logged under its own tab, with the rest of the AI logs.

**Added — tickets**

 * Sentiment on every ticket, classified by the AI service and recorded with where
   it came from. An agent can overrule it or re-read one on demand, and a site can
   refuse to send ticket text to the classifier at all.
 * AI reply drafts for agents, offered in the reply box and never posted on their
   own.
 * File attachments on tickets and replies: uploaded before the reply is posted,
   listed beneath it in the thread, inline images served through a signed link, 
   and unposted uploads pruned.
 * Internal notes, drawn in the agent’s thread and kept out of the client’s.
 * A ticket is now a route addressed by its slug, not a page addressed by its ID,
   with a redirect from the old permalink. Non-Latin titles produce a usable slug.

**Added — AI**

 * A logs screen covering the chatbot, the auto responder and Ask NiroHelp, paginated,
   with the answer that was given.
 * Plan credits and usage on the Connectivity screen, including when the credits
   run out.
 * A warning when the service has nothing indexed, instead of an AI that quietly
   answers nothing.
 * The auto responder keeps the reason it declined to answer, and reports it.
 * The chatbot files the ticket itself, carrying the conversation onto it, and replies
   inside the visitor’s existing open ticket rather than opening a second one.
 * A chatbot embed can be scoped to chosen products, and a ticket’s products travel
   with its question.

**Rebuilt**

 * Dashboard, AI and Settings are one React application on a single admin page, 
   with loading skeletons, notices drawn inside the app, and redirects from the 
   old query-string URLs onto the new routes.
 * The public screens are React too: the ticket queue, the single ticket, the new-
   ticket form and the sign-in screen.
 * Notification emails have a new template and branding controls — logo, footer 
   text, brand colour, background and content width — read when a notification is
   sent rather than on every request.
 * Settings renders every field type the schema declares, edits email bodies in 
   the classic WordPress editor, and draws each permalink structure as the URL it
   produces.
 * The migration screen moved off admin-ajax, and both destructive actions now confirm
   in a dialog before they run.

**Changed**

 * All browser-to-server traffic goes through REST routes under `nirohelp/v1`, each
   with a real permission callback. No `wp_ajax_*` actions remain in the plugin.
 * Encryption is handled by mukto90/ncrypt.
 * The admin application’s strings are extracted and translatable; they were silently
   absent from the POT before.
 * The PHP test suite runs against a real WordPress install rather than stubs.

**Fixed**

 * The plugin’s namespaces are plural (`Traits`, `Interfaces`, `Abstracts`). The
   singular forms are PHP reserved words before 8.0 and made most of the plugin 
   unloadable on the PHP 7.4 floor it advertises.
 * Notification emails no longer send blank on a site that has not configured them,
   and an empty placeholder no longer leaves its punctuation behind.
 * Doc content renders inline, the docs feed paginates, and turning a module off
   no longer leaves its screens half-drawn.
 * Orphaned auto-responder cron events are cancelled with the ticket they belonged
   to.
 * The chatbot no longer cross-links the same ticket twice.

**Security**

 * The ticket comment routes are authorized per ticket. They were authorized as “
   any logged-in member”, which is the role every client holds, so a client could
   read another client’s thread.
 * Every superglobal read is unslashed and sanitized at the boundary.
 * An anonymous ticket submission can no longer rename an existing account: `POST/
   tickets` is public so the widget can file tickets, and it named whichever account
   the supplied address resolved to.
 * Guest ticket submission creates an account only where account creation is actually
   allowed.
 * Values substituted into notification emails are escaped, and a notification with
   no recipient is no longer sent to nobody.

#### 0.8.1 – 2026-09-13

 * Update assets.

#### 0.8 – 2026-09-13

 * First submission: knowledge base, tickets, emails, migration, AI chatbot and 
   AI auto responder.

## Meta

 *  Version **1.0.1**
 *  Last updated **5 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [AI Chatbot](https://wordpress.org/plugins/tags/ai-chatbot/)[customer support](https://wordpress.org/plugins/tags/customer-support/)
   [helpdesk](https://wordpress.org/plugins/tags/helpdesk/)[knowledge base](https://wordpress.org/plugins/tags/knowledge-base/)
   [Support Ticket](https://wordpress.org/plugins/tags/support-ticket/)
 *  [Advanced View](https://wordpress.org/plugins/nirohelp/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/nirohelp/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/nirohelp/reviews/)

## Contributors

 *   [ EasyCommerce ](https://profiles.wordpress.org/easycommerce/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/nirohelp/)