The ERPat Helpdesk Module
Helpdesk is ERPat's unified Help Center umbrella — a single, self-contained module that brings five support pillars (Tickets, Knowledge Base, Internal Wiki, Web Pages, and the AkbAI-powered Company Handbook) plus two public surfaces under one roof, gated by one master toggle and the same role permissions you already use everywhere else in ERPat.
What the Helpdesk module is
Support in ERPat used to be scattered: tickets lived in the app, the wiki and knowledge base were separate features, web pages were their own thing, and the company handbook was a brand-new AkbAI experiment. The Helpdesk module (modules/Helpdesk/) consolidates all of that into one cohesive Help Center capability — a self-contained module that owns its own controllers, models, views, config, migrations, cron jobs, language, permissions, and APIs.
Rather than a single “hub” screen, the Help Center presents its pillars directly in the staff sidebar’s Help Center group. Each pillar is a first-class destination with its own route, its own permission gate, and its own workflows. The umbrella is what ties them together: one master module toggle, one shared permission surface, one documentation set, and a consistent brand and behaviour across all five.
helpdeskhelpdeskfa-life-ring0.1.0Modules\Helpdeskmodule_helpdeskThe pillars & public surfaces
Helpdesk is organised into five support pillars and two public-facing surfaces. Each card below links to its dedicated documentation page.
Two public surfaces
Beyond the staff-facing pillars, Helpdesk exposes content to logged-out visitors through two guest surfaces. Both are documented in depth on their respective pages.
- Public Knowledge Base — when
module_knowledge_baseis enabled, active (published) KB categories and articles are readable by anonymous visitors. TheKnowledge_basecontroller usesApp\Guards\OptionalAuthGuardso a guest is not bounced to sign-in; guests are limited to active content and cannot reach the management tab-panels or read drafts. See Knowledge Base. - Public Help Center landing — the CMS-themed front door at
/help-center, rendered by the flathelp_centercontroller. It soft-depends on the Content (CMS) module for its theme chrome and fails safe with a plain shell when CMS is unavailable. See Web Pages & Help Center. - Public page renderer — individual published web pages are served to guests at
/about/{slug}by theAboutcontroller. See Web Pages & Help Center.
Architecture at a glance
You don’t need to be a developer to use Helpdesk, but a quick mental model helps. Helpdesk is a self-contained HMVC-compatibility module: everything it needs lives under modules/Helpdesk/, and ERPat loads it at runtime the same way it loads any other module.
Controllers, models, views, config, language, migrations, cron jobs, helpers, libraries, and API route fragments all live under modules/Helpdesk/. Nothing pillar-specific is hardcoded in the core app (a few coordinated cutover items are documented as known risks).
Each pillar controller extends the right base class for its audience — staff-only tickets/wiki, the guest-tolerant public KB (OptionalAuthGuard), and the employees-only handbook reader. You never wire up authentication by hand; the base controller does it.
ERPat runs one database per tenant. Helpdesk’s pillar tables are per-tenant, so one company’s tickets, KB, handbook, and pages never touch another’s. Public short-links (owned by the Tools module) encode an encrypted tenant key so the right tenant DB loads before rendering.
The Handbook pillar creates three per-tenant tables (handbook_imports, handbook_categories, handbook_articles) via php erpat migrate:modules, tracked in migrations_helpdesk. The ticket, help, and page tables ship in the base install schema.
Owned database tables
| Pillar | Tables |
|---|---|
| Tickets | tickets, ticket_comments, ticket_types, ticket_groups, ticket_templates, ticket_logs |
| Knowledge Base + Internal Wiki | help_articles, help_categories (discriminated by article type) |
| Web Pages | pages |
| Company Handbook | handbook_imports, handbook_categories, handbook_articles |
The gating model: toggle + sub-toggle + permit
Whether a user sees a pillar is decided by three gates, evaluated together. A pillar only surfaces when the tenant has enabled it and the user’s role grants the matching permit.
1. Master toggle — module_helpdesk
The single umbrella switch for the whole Help Center, seeded on by a core migration (because settings is a shared per-tenant table). Turn this off and the entire Helpdesk surface disappears.
2. Per-pillar sub-toggles
Each pillar keeps its own independent toggle so you can run some pillars and not others: module_ticket, module_help (Internal Wiki), module_knowledge_base, and module_page. Manage these in Settings → Manage Modules.
3. RBAC permit
The user’s role must grant the pillar’s permission (for example ticket, help, knowledge_base, page, or handbook). These keys are module-owned and surface in the Roles editor only when module_helpdesk is enabled.
404 to hide the resource’s existence rather than a “forbidden” message. See the full mapping on the Permissions Reference.| Pillar | Sub-toggle | Primary permit | Route |
|---|---|---|---|
| Tickets | module_ticket | ticket / ticket_staff | /tickets |
| Knowledge Base | module_knowledge_base | knowledge_base | /knowledge_base |
| Internal Wiki | module_help | help | /help |
| Web Pages | module_page | page | /pages |
| Company Handbook | (under module_helpdesk) | handbook | /handbook |
Who uses Helpdesk
Helpdesk serves several distinct audiences. Knowing which one you are helps you find the right pillar and the right doc page.
| Persona | What they do | Pillars they touch |
|---|---|---|
| Employee / Requester | Opens support tickets, replies to agents, searches the KB and handbook for answers. | Tickets, Knowledge Base, Company Handbook |
| Support Agent | Works the ticket queue: comments, changes status, uses templates and canned KB content, adds labels. | Tickets, Internal Wiki, Knowledge Base |
| Ticket Manager | Configures ticket types, groups, and templates; manages assignment and collaborators; oversees SLAs. | Tickets |
| HR Admin | Uploads the handbook PDF, reviews AkbAI drafts, and publishes the employees-only reader. | Company Handbook, Web Pages |
| KB / Wiki Author | Writes and categorises public KB articles and internal wiki articles. | Knowledge Base, Internal Wiki |
| Developer | Integrates via the read-only help API and the End-User API for tickets and help articles. | Developer APIs |
| Guest / Anonymous visitor | Reads the public KB, the CMS-themed Help Center landing, and published web pages — no login required. | Public Knowledge Base, Help Center landing, page renderer |
How to use these docs
This documentation set is built for fast lookup. Everything you need is one of three places away.
The left sidebar groups every page into Getting Started, Support Pillars, and Reference. On a narrow screen, tap the menu button in the top bar to open it. Start with Getting Started & Setup if you are enabling Helpdesk for the first time.
Use the search box in the top bar to jump to any page or heading. Press / anywhere to focus it instantly. The moon / sun button beside it toggles dark mode, which is remembered across pages.
On wider screens, the “On this page” table of contents on the right auto-builds from the headings of the page you are reading, so you can hop between sections without scrolling.
Status & badge legend
Throughout these docs you’ll see coloured badges representing the real states each pillar uses. The most common are the ticket lifecycle statuses and the handbook / article publication states.
These are the actual tickets.status values (new, open, client_replied, on_hold, closed) and the handbook article states (draft / published). For the complete legend — including every handbook import state, permission action, and terminology term — see the Glossary & Legends.
Where to go next
Pick the path that matches what you’re here to do.
Enable & set up
Turn on module_helpdesk, pick your sub-toggles, and grant role permissions.
Run support
Learn the ticket lifecycle, types, groups, templates, and collaborators.
Configure access
The full RBAC permit reference for every Helpdesk pillar.
Get unstuck
Common questions and troubleshooting across all pillars.