AI Ticketing — Self-Hosted Joomla Helpdesk with Human-in-the-Loop AI
Product detail · Joomla 5/6 · Support
A self-hosted helpdesk for Joomla, with AI you actually control.
Tickets, SLA, CSAT and a customer portal built into Joomla — plus an optional, human-in-the-loop AI layer that triages tickets and drafts replies from your knowledge base. One-time price, no per-agent fees, and your ticket data stays on your own server.
The classic helpdesk runs perfectly with zero AI configured. Add a provider only when it suits you, and every AI output is a suggestion an agent reviews before it reaches the customer.
One-time licence
EUR 119
Buy · EUR 119 ← All extensions
Who it is for
Agencies, product companies and service teams that want a support desk they host and control — and, when ready, want AI to triage and draft answers without giving up human oversight.
If you value data control and predictable, self-hosted operation over a per-agent SaaS subscription that grows with every hire, AI Ticketing keeps the whole support workflow — intake, triage, response and resolution — inside your own Joomla install.
Start with a fully functional classic helpdesk today. Switch on automation whenever it suits you — the AI never takes the human out of the decision.
What you replace
- Per-agent, monthly helpdesk subscriptions that never stop
- Ticket data living on a third-party vendor's cloud
- AI auto-replies you can't review before they reach customers
- A separate SaaS silo detached from your CMS users, roles and language setup
What is inside
A complete support operation, from customer submission through triage, response and resolution — with no AI required to run any of it.
Ticketing core
Frontend and backend creation, threaded messages, internal private notes, statuses (including Escalated), five priorities, categories and teams, and public ticket IDs.
Customer portal
Guest-capable submission protected by a honeypot, per-email rate limit and optional CAPTCHA, plus my-tickets and ticket-detail views and Knowledge Base search.
Agent workspace
The full conversation thread, internal notes, quick status changes and team / agent assignment, with similar-tickets and sentiment badges to speed triage.
Admin dashboard
KPIs at a glance — ticket counts, SLA status and average CSAT — plus a filterable list, full CRUD for categories, priorities, statuses, teams, SLA policies and a Knowledge Base.
SLA & CSAT
SLA policies with automatic breach monitoring (ok / near-breach / breached) via the Joomla Task Scheduler, plus a one-click CSAT rating after resolution.
REST API (JSON:API)
Joomla API-token authenticated endpoints for tickets CRUD, messages, AI draft generation and Knowledge-Base reindex — for your own integrations and automation.
Privacy & GDPR
A native privacy (DSR) page to export a subject's data as JSON or anonymise by email, PII redaction in AI logs, an append-only audit log with coarsened IPs and a configurable data-retention task.
Secure attachments
Extension and size validation, finfo MIME-vs-extension checks, a deny-file-protected store with randomized filenames and authorized-only downloads.
Native Joomla ACL & i18n
Agents, teams and customers governed by Joomla's own permission system, shipping with English, Italian and Spanish and respecting your multilingual setup.
Optional AI layer · always human-in-the-loop
The AI drafts. A human approves. It never auto-sends.
AI features activate only when you add a provider. The helpdesk is provider-agnostic with a Null-provider fallback, so nothing changes about your workflow until you decide it should.
Smart classification
Suggests category, priority, language and sentiment for each incoming ticket, with one-click "apply classification" so agents stay in control of what sticks.
Grounded reply drafts
Replies drafted from your Knowledge Base via RAG, with inline citations agents can verify — no invented answers, no rogue auto-replies.
Sentiment & escalation
Detects sentiment and escalates to a human when it is unsure. Every AI output remains a suggestion an agent reviews before it reaches the customer.
Bring your own model
Use a free NVIDIA NIM cloud tier, or point it at any self-hosted OpenAI-compatible endpoint. You provide your own API key; it is never logged, and there are no mandatory AI fees.
Your ticket data never leaves your server — except the AI text you explicitly choose to send to your configured provider. An optional consent gate can require consent before any AI processing runs.
Requirements
- Joomla 5.x or 6.x
- PHP 8.1 or newer
- MySQL 8 or MariaDB 10.6+
- An NVIDIA NIM key (free tier) or any OpenAI-compatible endpoint — only if you enable the AI layer
What's in the package
com_aiticketing— admin component: dashboard, ticket workspace, full CRUD and the customer portalplg_task_aiticketing— Task Scheduler plugin: AI queue processing, SLA breach monitor and retention cleanup- REST web-services plugin (JSON:API) and a native privacy plugin
- EN / IT / ES language packs · SQL schema with an auto-update path
Everything included
117 real capabilities, grouped by area — the full depth of the suite, nothing trimmed.
Ticketing core (helpdesk engine)
- Create tickets from anywhere — customers submit from the public site, agents open them from the backend.
- Threaded conversations — every customer message and agent reply is kept in chronological order on the ticket.
- Internal notes — staff-only private notes on a ticket that the customer never sees.
- Rich status workflow — 8 seeded statuses (New → Open → … → Closed) plus Escalated and Reopened, all editable.
- Five priority levels — Low, Medium, High, Urgent, Critical to triage what matters first.
- Categories — organize tickets by topic (general, billing, technical, account seeded), fully editable.
- Teams & members — route work to Support / Billing / Technical teams with per-user roles.
- Public ticket IDs — every ticket gets a shareable TKT-XXXXXXXX reference safe to send to customers.
- Agent assignment — hand a ticket to a specific agent, who then "owns" it.
- Quick status change — flip a ticket's status in one click from the workspace.
- Configurable workflow transitions — define which status changes are allowed.
- Tags — label tickets for reporting and filtering.
- Customer-reply reopen — a reply on a closed ticket automatically reopens it (Reopened status, clears the closed timestamp) so nothing gets lost.
Customer portal (frontend)
- Public submission form — a clean intake form customers can reach without training.
- Guest tickets (optional) — let visitors raise tickets without creating an account.
- Guest token access — guests get an unguessable "view or reply to your ticket" link to follow up without an account.
- Honeypot spam trap — silently blocks bots without annoying real users.
- IP rate limiting — caps submissions per IP over a configurable window to stop abuse.
- Optional CAPTCHA — adds the site's own CAPTCHA to the guest form when you want it, degrading gracefully if none is installed.
- "My tickets" list — logged-in customers see all their own requests in one place.
- Ticket detail + reply — customers read the full conversation and answer inline.
- File attachments — customers attach files on submit and on every reply.
- Knowledge Base search — customers self-serve answers before opening a ticket.
- One-click satisfaction rating — a no-login CSAT page after resolution.
Admin workspace & operations
- Dashboard KPIs — open/closed volumes and average CSAT at a glance.
- Filterable ticket list — filter by status, priority, category, assignee, SLA state and free-text search.
- Single-ticket workspace — conversation, reply, internal note, assign and status change on one screen.
- AI panel — classify or draft a reply for the open ticket on demand (when AI is on).
- Similar-tickets panel — surfaces related past tickets (reranked, then cosine, then keyword) to reuse solutions.
- Sentiment & extracted-entities badges — see customer mood and key entities pulled from the ticket.
- One-click apply classification — push an AI category/priority/team suggestion onto the ticket in one action.
- Full admin CRUD — manage categories, priorities, statuses, teams, team members, SLA policies, workflow transitions and KB articles.
- Secure attachment review — an Attachments panel with guarded downloads on the ticket edit screen.
Optional AI — triage, auto-reply & escalation
- Master AI switch — the whole helpdesk runs fully with AI off; turn it on when ready.
- Provider choice — NVIDIA NIM, a private AI Gateway (FastAPI/enterprise), or none — behind one interface.
- Auto-classification — incoming tickets get category, priority, team, detected language, sentiment score and a "wants a human" signal.
- Grounded auto-reply — when confident and backed by the KB, the AI posts a public reply, emails the customer and moves the ticket to a pending status.
- Automatic human escalation — hands off to a human on wants-human, negative sentiment, low confidence, no KB match, or model uncertainty — so AI never guesses.
- Confidence threshold — set how sure the AI must be before it answers instead of escalating.
- Sentiment escalation threshold — unhappy customers route straight to a person.
- KB-match threshold — replies only go out when a real KB article grounds them.
- Manual AI-draft tool — agents generate a draft that always requires human approval before sending.
- Async queue processing — AI runs in the background on the scheduler, never blocking the page.
- Duplicate-safe & self-healing queue — atomic job claim stops double-replies; stale jobs requeue; failed jobs retry with back-off.
- Prompt-injection containment — untrusted ticket/KB text is delimited and treated as data, never as instructions; drafts can't promise refunds or legal outcomes.
- Custom classifier endpoint — plug in NeMo/TAO/your own ML model to classify before the LLM path.
- AI cost telemetry — token counts and configurable input/output cost-per-1k recorded per call.
- Bring-your-own key, env-first — your NVIDIA key can live in a server environment variable and is never written to the database.
- Holding message — optionally post a reassuring public note to the customer the moment a ticket escalates.
- Reply-language matching — answers come back in the ticket's own language.
- Escalation routing — escalated tickets auto-assign to a chosen agent with an internal note and staff notification.
Knowledge Base & RAG
- KB article management — create and maintain help articles in the admin.
- Automatic embedding/indexing — articles are chunked and vectorized for semantic search.
- RAG-grounded answers — AI replies cite real KB articles instead of hallucinating.
- Optional rerank stage — an NVIDIA cross-encoder refines the shortlist for sharper answers.
- Frontend KB search — customers search the same knowledge base directly.
- Pluggable vector backend — in-database SQL/cosine by default, PostgreSQL pgvector, or a managed vector DB (Milvus/managed) through the gateway, each with safe fallback.
- KB reindex API — re-embed the whole knowledge base via a REST endpoint.
SLA management
- SLA policies — define first-response and resolution targets (in minutes) per policy.
- Automatic due-date backfill — tickets get first-response/resolution deadlines from the default policy.
- Live SLA state — every open ticket is tracked as ok / near-breach / breached.
- Breach events — a breach fires an event on transition for notifications or downstream automation.
CSAT (customer satisfaction)
- One-click 1–5 rating — a tokenized, no-login rating link after resolution.
- Optional email invite — automatically email the rating request on resolve/close.
- Write-once integrity — a rating and its comment can't be gamed or overwritten.
- Average CSAT on the dashboard — track satisfaction trend at a glance.
Omnichannel intake (Joomla)
- Email-to-ticket — turn inbound email into tickets via IMAP fetch, a spool folder, or an inbound email webhook.
- OAuth2 mailboxes — connect Gmail/Microsoft-style mailboxes with XOAUTH2 (or classic password IMAP).
- Email threading & dedupe — replies attach to the right ticket and duplicates are ignored.
- WhatsApp two-way — receive and send WhatsApp messages via the Meta Graph API, with webhook verification.
- Telegram two-way — receive and send Telegram bot messages, with secret-token verification.
- Voice / ASR ingest — ingest voice-call transcripts as tickets via a voice webhook.
- Seven channels tracked — web, backend, email, WhatsApp, Telegram, voice and API, each with per-event dedupe.
Multi-tenant / SaaS & billing (Joomla)
- Optional multi-tenant mode — isolate data by tenant across all operational tables.
- SaaS tenant registry — plans, tenants, subscriptions and provider-credential metadata (never secret values).
- Stripe billing webhook — signature-verified, with an optional write mode to apply subscription state.
- Stripe Customer Portal — generate a self-serve billing-management session for tenants.
- Plan-change to ticket — subscription changes can surface as tickets for follow-up.
- Affiliate sale reporting — capture a
?ref=referral cookie and credit a referring affiliate on a paid sale, fully isolated from the billing response. - Tenant account view — a front-end account surface for tenant/billing.
- Configurable billing timeouts & return URLs — tune the portal integration to your setup.
Developer, API & integrations
- REST tickets API (JSON:API) — full tickets CRUD over Joomla Web Services (
/api/v1/aitickets/tickets). - Custom REST routes — add a thread message, generate an AI draft, or reindex the KB via dedicated endpoints.
- Filtered & paginated list — the list endpoint honors status, priority, category, assignee, SLA state and search filters with proper pagination metadata.
- Token-authenticated & ACL-gated — API access uses Joomla API tokens and the component's own permissions.
- Plugin events for extension —
onAITicketAfterCreate / AfterReply / StatusChange / SlaBreach / AiSuggestionCreated(WordPress exposes matching action hooks) for CRM, notifications or omnichannel add-ons. - Inbound webhooks — email, WhatsApp, Telegram, voice and billing endpoints, each protected by a token or signature.
- Scheduler task plugin — three headless routines (process AI queue, SLA monitor, retention cleanup) run under Joomla Scheduled Tasks.
- WordPress REST foundation — logged-in ticket creation plus editor/admin ticket listing.
Security, privacy & GDPR
- Granular ACL — per-capability permissions (reply, assign, close, KB manage, SLA manage, AI configure, export, audit view, tenant manage).
- CSRF on every mutation — every state-changing action is token-checked.
- Hardened SQL — parameterized queries throughout; no PHP superglobals, no string-concatenated SQL.
- PII redaction in logs — emails, IBANs, phone numbers and long digit runs are masked in audit/error logs.
- IP coarsening — stored IPs drop their last octet for privacy.
- Append-only audit log — a tamper-resistant record of who did what, that never breaks the user action.
- Configurable retention — auto-purge closed tickets after N days, deleting the physical attachment files too.
- Subject-access export — export a person's data as JSON from the Privacy (DSR) page.
- Anonymize by email — scrub identifying data while keeping operational history.
- Native privacy integration — Joomla privacy-plugin bridge; WordPress Tools → Export/Erase Personal Data exporter & eraser (incl. attachment metadata-only export).
- Optional AI-consent gate — require a consent checkbox on the form before any AI processing runs.
- Secure attachments — extension allowlist, size cap, real MIME sniff (fail-closed), randomized stored names, deny files, and downloads served only to the owner / guest-token holder / agent, always forced as a download (no inline XSS).
- Optional antivirus scan hook — run an AV command against uploads before they're accepted.
- Human-in-the-loop by contract — nothing auto-sends unless you configure it; manual drafts are always review-gated.
Internationalization & compatibility
- Ships EN / IT / ES — English, Italian and Spanish out of the box.
- Multilingual-aware — respects the site's multilingual setup.
- Joomla 5.x & 6.x — native package for both major lines.
- PHP 8.1+ — 8.3+ recommended (required path for Joomla 6).
- MySQL 8 / MariaDB 10.6+ — primary supported databases.
- PostgreSQL-portable — full PostgreSQL install path (with optional pgvector), no hard foreign keys by design.
Trust & licensing
- GNU GPLv2 or later — open-source licensed.
- Self-hosted — tickets and customer data stay on your own site.
- No external service required — the classic helpdesk makes zero outbound AI calls until you add a provider and your own key.
- Licensed one-click updates — automatic update checks (~every 24h) from the GMC / FuerteventuraTV gateway while your licence is active.
- Download Key via email — enter your key on the GMC Licenses screen to unlock updates.
- One-site licence, Solo/Agency tiers — install the single pkg_*.zip package (never the inner zips); only the package version triggers licensed updates.
Joomla & WordPress
- Joomla — the flagship, full suite — SLA engine, RAG-grounded auto-reply + escalation, omnichannel intake (email/WhatsApp/Telegram/voice), multi-tenant/SaaS billing, REST API and scheduler tasks, delivered as one package of four extensions (component + task, web-services and privacy plugins).
- WordPress — the "essential" starter edition — spam-protected ticket intake, per-customer ticket list, per-ticket view/reply (with closed-ticket reopen), guest-token access, secure attachments, a Knowledge Base custom post type with search, admin triage, GDPR export/erase, a REST foundation and self-hosted updates. AI auto-reply, SLA automation, RAG and multichannel intake are on the WordPress roadmap, not yet shipped. Shortcodes: [aiticketing_submit], [aiticketing_my_tickets], [aiticketing_ticket], [aiticketing_kb].
FAQ
- How do I install it — the package zip or the inner zips?
Always install the single
pkg_….zippackage under System → Install → Extensions → Upload Package File. Do not unzip it and do not install the inner component/module/plugin zips one by one — the package installs and keeps every part aligned, and only the package version triggers licensed updates. Install a single inner zip only if support asks you to. - Does it work without AI?
Yes — it's a full classic helpdesk (tickets, categories, priorities, teams, SLA). The AI auto-classify, auto-reply and escalation are optional and switch on only when you configure a provider.
- What does the AI do, and which provider?
With NVIDIA NIM configured, it classifies incoming tickets, drafts and answers from your knowledge base with citations, detects sentiment and escalates to a human when it is unsure — always with a human-in-the-loop option. You provide your own API key.
- Where do I enter the Download Key?
After purchase you receive a Download Key with your licence email. Enter it in the GMC Licenses screen on your site (Components → GMC Licenses, or the licence field the product shows on first run). The key unlocks licensed one-click updates from the GMC / FuerteventuraTV update server; keep it in place and updates keep flowing while your licence is active.
- How do updates arrive?
Updates are automatic. Once installed, the extension checks the GMC / FuerteventuraTV update server on its own (about every 24 hours) and offers the new version under System → Update → Extensions, as long as your licence is active. You can also re-download the latest build from your account at any time.
- Does it track SLA and satisfaction?
Yes — SLA monitoring with near-breach / breached states, plus a one-click CSAT rating after resolution and average CSAT on the dashboard. The Privacy (DSR) page can also export a subject's data as JSON or anonymise by email, and an optional consent gate can require consent before any AI processing runs.
- Is it available in my language?
Yes — it ships with English, Italian and Spanish out of the box and respects your site's multilingual setup.
- What does the licence cover?
The software is released under the GNU GPL. Your purchase gives you the official build, licensed one-click updates and support for one site. Need it on more sites or for client projects? Message us for a volume or agency arrangement.
- How do I get support or a refund?
Reply to your purchase email or message us on WhatsApp at +34 633 168 995 — this line also appears in your licence email. Please include the product name and version, your CMS and PHP version, and a public URL or screenshot (with any keys masked). If the product does not work as described and we cannot fix it for you, you can request a refund within 14 days of purchase. We answer in English, Italian and Spanish.
Why buy from GMC
GPL licence, one site
Released under the GNU GPL (GPL-2.0-or-later). Your purchase covers the official build and support for one production site.
12 months of updates
Licensed one-click updates from the GMC / FuerteventuraTV gateway, delivered straight into the Joomla updater.
Key via email
You receive your Download Key with the licence email right after purchase — paste it once and updates keep flowing.
Self-hosted, your data
Everything runs inside your own Joomla and database. Nothing is locked to a vendor cloud or a per-agent seat.


