"One Desk, Every Asset, Every Request." Here's how SupportCentral grew, newest first.
v2.34.0
Current release
Allocate assets to former employees + untagged assets stay reachable
- Assets can now be held without a tag (waiting on vendor-issued numbers) without disappearing from the interface: the asset list gained Open / Edit actions on every row, the serial number is a link, and a blank tag shows a clear “(untagged)” placeholder.
- Asset links on ticket, employee and employee-360 pages now fall back to the serial number instead of rendering an empty, unclickable link.
- Asset allocation now lists former employees as well as current staff (grouped separately and clearly marked), so historic holdings can be recorded and an asset investigation can show who last held each machine.
v2.33.0
Earlier release
Assets can be registered without a tag
- The asset tag is now optional and editable, so equipment can be recorded immediately and labelled later when the vendor issues its numbers. Tags remain unique, blank tags auto-generate on create, and a clashing tag is reported as a clear form error.
v2.32.0
Earlier release
Refreshed public helpdesk home + IT/HR desk switch
- The public portal home page was rebuilt around announcements, common requests and popular help articles, with the organisation logo in the portal header and footer.
- A proper IT | HR desk switch replaced the one-way link, and the chat launcher now names the assistant. Switching desks returns you to the page you were on.
v2.31.0
Earlier release
Clearer guidance when you're in the wrong helpdesk view
- Staff viewing the other side's helpdesk used to find menus silently missing. The app now explains the situation and offers a one-click switch back to their own desk, both on the access-denied page and in the sidebar.
v2.30.0
Earlier release
Live chat is scoped to your department
- IT agents see only IT chats and HR agents only HR chats, while owners and administrators see both — matching how tickets and reports already work. Chat handling was extended to IT and HR agents.
v2.29.0
Earlier release
Live chat reports
- Three new reports: an IT vs HR summary (volume, self-served, escalated, ticketed, deflection rate, average first response and duration), per-agent performance, and daily volume with the deflection split. Each filters by period and helpdesk, and exports like every other report.
v2.28.0
Earlier release
Live chat console: live queue with Attend, Transfer and Reject
- The agent console now refreshes the waiting queue automatically instead of only updating the counts, and every waiting chat can be attended, transferred to the other helpdesk, or declined with a courteous message.
v2.25.0
Earlier release
HERA — the HR helpdesk assistant
- The chat assistant now has two faces from one engine: the IT assistant on the IT helpdesk and HERA on the HR helpdesk, each with its own name, greeting, colour and starter topics.
- HERA answers from an HR-only knowledge base — 25 articles built from the policy handbook and real HR tickets, covering leave and attendance, payroll and payslips, PF and gratuity, reimbursements, letters and verification, and resignation and full-and-final settlement.
- If someone asks the wrong desk (an IT question of HERA, or an HR question of the IT assistant), the assistant offers to hand the conversation to the right desk and carries the question across.
v2.24.0
Earlier release
Mobile navigation fixes
- The top navigation no longer overflows on narrow screens, and running a knowledge-base mining sweep from the admin screen no longer times out.
v2.23.0
Earlier release
Reports and dashboards now reconcile
- Weekly ticket summaries use a consistent cohort model — tickets that arrived in the week, split into in-progress and resolved — so the same number means the same thing everywhere. Every figure is clickable and opens the matching filtered ticket list.
v2.21.0
Earlier release
Verified intake in chat, with a guest fallback
- Before handing a conversation to an agent or raising a ticket, the assistant confirms who it is speaking to and checks the employee code against the records. Unverified visitors are still helped, but the resulting ticket is clearly flagged so agents know to confirm identity.
v2.20.0
Earlier release
Guided setup walkthroughs
- Knowledge-base walkthroughs now distinguish step-by-step setup guides from fix-it troubleshooting, using the right wording for each.
v2.15.0
Earlier release
Hardware support: intake, dispatch and return
- A complete hardware lifecycle: structured fault intake (serial / asset number, power state, remote-access ID and video evidence), automatic linking to the asset record, replacement dispatch with tracking, and a closing loop that confirms receipt, records an unboxing video and chases the return of the old unit.
v2.14.0
Earlier release
The assistant asks before it answers
- For problems whose fix differs by operating system, the assistant now asks one clarifying question — with tappable buttons — rather than guessing and serving the wrong guide.
v2.13.0
Earlier release
Interactive knowledge-base walkthroughs
- Articles can be turned into a guided, step-by-step wizard that walks a user through a fix one screen at a time, and hands off to a pre-filled ticket if they get stuck. Includes an admin authoring screen.
v2.12.0
Earlier release
The assistant learns from resolved tickets
- Solved tickets are turned into draft knowledge-base articles automatically each day — generalised and stripped of personal data — for a human to review and publish.
v2.11.0
Earlier release
Embedded chat widget
- Live chat now runs in a panel on the page instead of a separate screen, keeps its place as you browse, and the assistant is named and configurable.
v2.7.0
Earlier release
Live-chat assistant
- A concierge assistant greets visitors, works out whether the query is IT or HR, answers from the knowledge base, and either hands over to an agent or raises a ticket when nobody is online.
v2.6.0
Earlier release
Screenshots and video on tickets
- Ticket attachments accept images and video with inline preview, so users can show the problem instead of describing it.
v2.5.0
Earlier release
Manager acknowledgement, employee exit self-service & attrition report
- HR can email the reporting manager a secure, login-free link to acknowledge the exit and confirm handover/knowledge-transfer — the acknowledgement is recorded on the case and HR is notified.
- HR can email the exiting employee a secure, login-free "exit self-service" link with their exit steps (asset return, sign-outs) and a short exit interview; responses are saved to the case and shown to HR.
- New "Exit / Attrition Summary" report: exits per month with completed / still-open counts and average days to clear, plus KPIs for exits this month, YTD, open exits, FnF-on-hold and a breakdown by exit type. This completes the three-phase HR exit-management expansion.
v2.4.0
Previous release
Exit coordination — task checklist, notes, clearance requests, exit calendar
- Each offboarding case now has an editable "Coordination tasks" checklist (assign an owner team, a due date, and optionally email the owner a clearance request), plus a "Coordination notes" thread that HR/IT/Finance can use — with an option to email the note to the manager/IT/Finance.
- A new "Exit calendar" (button on the Offboarding page) lists all open exits by last working day — overdue, today, next 7 days, next 30 days — each showing which clearances are still pending, so nothing is missed.
v2.3.0
Previous release
HR exit management — revise/extend exits, notify, milestone reminders
- Offboarding cases gained an "Exit management" panel: revise or extend the last working day with a reason (recomputes the asset-return deadline and reminders, keeps a full LWD-change history, and emails the employee, manager, IT and Finance); a one-click "Notify stakeholders" that sends the current exit status to the manager/IT/Finance/watchers; and "Mark rejoined / retained" that calls off the exit and keeps the employee active.
- Exit type (resignation / termination / absconding / retirement / end of contract / other) and a short reason are now captured on each case. Automatic milestone reminders go to stakeholders at T-7 / T-3 / T-1 and on the last working day, and re-arm if the LWD is revised. This is Phase 1 of the HR helpdesk expansion; coordination (clearance requests, task checklist, exit calendar, notes) and the exit self-service + attrition report follow.
v2.2.2
Previous release
Employee page now shows real cross-module activity
- The employee page carried a stale note ("tabs populate as those modules ship in Deliveries 2–3") and its timeline only showed edits to the employee record. It now has a "Related activity" feed that pulls the employee's tickets, damage and replacement cases, onboarding/offboarding and asset assignments — each linking to the record. The obsolete placeholder line is gone.
v2.2.1
Previous release
Raise damage / replacement from the employee page + searchable pickers
- The employee page now has "Damage" and "Replace" links against each assigned asset, which open the right form pre-filled with that device and employee — no more hunting through long dropdowns.
- Asset and employee dropdowns across the Damage, Replacement, Asset assignment, Dispatch, Offboarding, Subscription and self-service forms are now type-to-search (searchable) instead of plain long lists.
v2.2.0
Previous release
Replacement no longer makes the old laptop disappear
- Issuing a replacement used to push the old laptop into a dead-end "replacement issued" status with no way out, so it dropped off the working lists. Now a replacement keeps the old device in the register — it goes to "under repair" (if it came from damage / hardware failure) or back to "in stock" (a plain swap) and stays fully re-assignable. The new device is assigned to the employee with a proper assignment-history record.
- The asset page now has an "Issue replacement / swap" button (on assigned, damaged or under-repair devices) that opens the replacement form pre-filled with that asset and its holder. The old free-text "status at exchange" box is now a simple dropdown. Any device already stuck in "replacement issued" can now be moved to stock, repair or retired.
v2.1.4
Previous release
BYOD card now opens just the BYOD staff
- Clicking "View" on the BYOD allowance card used to open the full employee list. It now filters to just the BYOD employees, and the Employees list has a new "BYOD only" checkbox filter.
v2.1.3
Previous release
BYOD allowance card on CEO, Finance & HR dashboards
- A new card shows how many active staff are on the BYOD (bring-your-own-device) allowance and the monthly spend on it (₹1,000 per person). It appears on the CEO/Executive, Finance Exposure and HR/People dashboards. The amount is derived live from the BYOD flag on employees, so it updates as people are added or removed.
v2.1.2
Previous release
Machine EDR/antivirus alerts auto-resolve on arrival
- CrowdStrike/EDR alert emails still open a linked Security Incident (what analysts actually work), but the helpdesk ticket itself is now auto-assigned to a configured owner and auto-resolved the moment it arrives — so machine noise no longer sits in the open queue or counts as human helpdesk work. Controlled by the setting alerts.auto_resolve_user_id (0 = off). No email is sent to the alert sender on auto-resolve.
v2.1.1
Previous release
Weekly TTR made honest: business hours, median/p90, backlog split
- The weekly report (by category and by agent) measured Time-to-Resolve as a 24×7 calendar average, which a few long-open tickets inflated badly. TTR is now measured in business hours (Mon–Fri 09:00–18:00) and reported as a median and p90, not just a mean — so a couple of outliers no longer distort the headline.
- Backlog is separated: tickets that arrived in an earlier week but were closed this week are counted in a new "Backlog cleared" column and excluded from the TTR figure, so TTR reflects genuine same-period turnaround. The old calendar mean is still shown as "TTR mean (calendar)" for comparison.
v2.1.0
Previous release
Smarter onboarding/offboarding email triggers with reversal
- Joiner and exit detection now reads the WHOLE email (subject + body), not just the subject. Words like "separation from duty", "last working day" or "new joinee" anywhere in the mail open a case. When the trigger words appear only in the body (lower confidence), the case is created but flagged "⚠ Needs HR review" so a stray phrase never silently starts a real exit.
- Reply-driven reversal: if someone replies on the same email thread that the person re-joined, got an extension, or was moved to another process, the offboarding case is automatically cancelled and the employee kept active — HR is notified and can Reopen the case in one click if it was wrong. The same applies to a joiner who declines (onboarding auto-cancels).
- The case owner is the first sender of the trigger email (forwarded mails included), unchanged. No external HRMS/HRMantra API is involved — this runs entirely on the built-in email rules.
v2.0.1
Previous release
Alert tickets with HTML-only bodies now show their content
- Some machine-sent alerts (e.g. CrowdStrike Falcon) put only a stub label like "SEVERITY:" in the plain-text part of the email and the real content — severity, tactics/techniques, time — in the HTML part. The ticket body was built from the plain-text part, so these tickets showed an almost-blank Description. Email parsing now falls back to the HTML content when the plain-text part is an empty/stub label, and tidies the recovered text. Genuine short replies are unaffected. 37 existing CrowdStrike alert tickets were backfilled with their recovered bodies.
v2.0.0
Previous release
BYOD flag, consultant relabel & a realistic active headcount
- Employees who use their own device (BYOD) can now be flagged. BYOD staff show a green "BYOD" badge on the Employees list and are understood as covered without a company asset — they no longer look like people with no device assigned.
- The imported HR dump marked more people active than are really on the current payroll, inflating the active headcount and every dashboard/report built on it. Employees who are not on the current HR list, hold no company asset, and are not BYOD have been set inactive so the active count reflects reality. Their records are kept, not deleted, and can be reactivated at any time.
- Asset-owner placeholders (people who hold an asset but are not on the HR payroll list) now display as a neutral "Consultant" instead of a red "Placeholder — verify" flag, so asset ownership reads cleanly.
v1.9.9
Previous release
Placeholder employees for asset owners not yet in HR
- When importing asset ownership, owners that could not be matched to an existing employee (interns/consultants with no code, or staff missing a unique work email) are added as inactive placeholder employees so their asset can still be linked. These rows are highlighted in red with a "Placeholder — verify" badge on the Employees list, so HR can spot and complete or merge them. Their email is a non-routable placeholder (@no-hr-record.local).
v1.9.8
Previous release
Invoice AI reader works with a self-hosted (Ollama) model
- The AI invoice reader was only speaking the OpenAI/HTTP-LLM API (POST /chat/completions, choices[].message.content). When AI Studio is configured as a self-hosted Ollama instance, that endpoint does not exist, so the extraction always failed and fell back to the heuristic reader ("AI provider did not return a usable result") even though AI Studio tested reachable. The reader now detects the provider and calls the native Ollama chat API (/api/chat) correctly.
- Note: scanned or digitally-signed PDFs whose only text layer is the signature block (no selectable invoice text) still cannot be read accurately by any model — those need an original text-based invoice PDF or OCR.
v1.9.7
Previous release
Employee asset history on onboarding & offboarding
- Offboarding cases now show a full asset history for the exiting employee below the exit journey: every asset they held with make/model, serial, processor, ageing, the dates held, rent paid to date, number of repairs and replacements, and any damage amount / vendor quote — with a totals row and one-click Export to PDF or XLS.
- Onboarding cases gained a searchable "Allocate asset" picker on the right (type-to-search across in-stock assets, shows the selected asset's make/model, age and rent). For rehires/transfers — when the joiner matches an existing employee record — their prior asset history is shown too.
- New report: Reports → Asset & Workforce → "Employee Asset History & Recovery" (R14) — one row per employee-asset with tenure, rent paid, repairs, replacements, damage and vendor quotes across the whole company, exportable in every format.
- Email intake: subjects containing "exit interview" now explicitly open an offboarding case (alongside exit / last working day / resignation / relieving); "new joinee" / "new joiner" continue to open onboarding cases.
v1.9.6
Previous release
Fix: creating a ticket manually could fail
- Fixed an error when creating a ticket from the app ("Column 'source' cannot be null") — the new-ticket form does not carry a source/queue value, and the database rejected the empty value. New tickets created in the app now default to source "web" and the IT queue, so agents can create tickets normally again. Email- and portal-created tickets were unaffected.
v1.9.5
Previous release
Email body capture fix + AI keep-warm
- Fixed incoming emails whose message body arrived blank or partial — the mail parser now walks the full MIME structure, including nested parts (the common Gmail/Outlook shape of an email with attachments), so the actual reply text is captured every time. About 1 in 5 inbound emails were previously affected. Note: this fixes emails received from now on; already-ingested blank replies are not retroactively repaired.
- AI assist no longer "goes to sleep": a keep-warm ping runs on the 5-minute cron so the local model stays loaded, eliminating the 1–2 minute cold-start the first time someone used AI after an idle period. Applies only to a self-hosted (Ollama) instance; hosted providers are unaffected.
- Changelog housekeeping: reconciled the release labels so only the newest version is marked the current release.
v1.9.4
Previous release
Navigation — command palette + clearer collapsible sections
- New quick navigation: press ⌘K / Ctrl+K (or the "Search…" box at the top of the left menu) to jump to any page or setting — including the master-data settings pages that are not individually listed in the menu. Results are grouped, keyword-aware (e.g. "smtp" finds Mailboxes), and only ever show pages you have permission to open.
- The left-menu section headers have a clearer expand/collapse chevron, and the section containing the page you are on now opens automatically so you can always see where you are.
v1.9.3
Previous release
List tables — sortable, paginated, sticky headers + filter polish
- Server-side pagination and click-to-sort columns rolled out to the important list screens — Tickets, all five ITIL registers (Incidents, Problems, Changes, Service Requests, Security Incidents) and Assets — 25 rows per page with Prev/Next and a total count, all carried in the URL so views are bookmarkable and survive filtering. Sorting uses a safe per-column allowlist.
- Sticky table headers now work app-wide: the column header stays visible while a long list scrolls (the app is now a fixed shell — top bar, sidebar and footer stay put while the content area scrolls).
- Ticket status and assignee filters are now a compact multi-select: a short summary (e.g. "Open +3") that opens a searchable checkbox dropdown with a Clear action, plus a Reset link to clear all filters.
- Consistent controls across the app: dropdowns are restyled (long lists are type-to-search via the self-hosted Tom Select library, no jQuery/CDN), filter rows are aligned to a single row, "New / Add" actions are primary buttons with a + icon, and the top navigation collapses into an avatar menu.
v1.9.2
Previous release
Ticket filters — multi-select status & assignee
- The Tickets status and assignee filters now accept multiple values at once (filter by any of several statuses or assignees), shown as removable chips.
- Fixed the searchable single-select dropdowns growing to two lines when focused — the selected value and the search box now stay on one line.
v1.9.1
Previous release
UX polish — filter row & user menu
- User-menu items (My Account, Sign out) now render in readable dark text instead of inheriting the top bar's white.
- The Tickets status filter is now the same searchable, styled dropdown as the assignee filter, and the whole filter row is vertically aligned with consistent control heights.
v1.9.0
Previous release
UX — Tickets table upgrade, cleaner controls & navigation
- The Tickets list now paginates and sorts on the server: click any column header to sort (25 per page, with Prev/Next and a total count), all carried in the URL so views are bookmarkable and survive filtering. Table headers stay visible while the list scrolls. This is the reference pattern the other list screens will adopt next.
- Filters and action buttons are now visually distinct — the queue filter is a connected segmented toggle, while "New ticket" is a primary button with a + icon.
- Dropdowns are restyled with a consistent look; long lists (assignee, category, requester) are now type-to-search using the self-hosted Tom Select library (no jQuery, no external CDN).
- The top-navigation right side is decluttered: your name, My Account, the super-admin company switch, and Sign out are collapsed into a single avatar menu; notifications and the IT/HR helpdesk switch stay in the bar.
- The left navigation menu is now sticky and auto-reveals the active item, so it stays visible while long content scrolls and never hides the link for the page you are on.
v1.8.3
Previous release
Security audit — final findings closed
- Email-triggered onboarding/offboarding cases no longer send the outbound welcome/exit email off a spoofable inbound message — the case is still auto-created and HR is notified, but the email to the candidate/employee is sent only once HR confirms the case in the app. Prevents a forged "From" from emailing a real person. (The real defense is SPF/DKIM/DMARC on the intake mailbox — recommended alongside this.)
- Cryptographic keys are now domain-separated from the single app key: at-rest encryption, API JWT signing, and export-token HMAC each derive their own key (App\Support\Keys), so no one key is reused across purposes. Existing encrypted secrets keep working via a transparent legacy-decrypt fallback and are re-keyed on next save — no data migration, no downtime. (Outstanding 1-hour OAuth tokens and 5-minute export links are re-issued on next use.)
- Login lockout is now keyed to account+IP together (with a higher IP-only spray backstop) instead of account-OR-IP, so an attacker can no longer lock a user out from a foreign IP, and it stays safe behind shared corporate NAT. Invoices can only be created in an initial state (draft/received) — a client can no longer create an invoice already marked paid, bypassing the approval workflow.
v1.8.2
Previous release
Security audit — Medium/Low remediation batch
- Maintenance scripts migrate.php and cron.php now refuse to run over the web (CLI-only guard); the JSON /api/diagnostics endpoint is gated behind admin.diagnostics (it was previously anonymous and leaked schema/extension info).
- SSRF egress control: admin-set AI provider URLs and webhook targets are validated to be public http(s) endpoints — internal, loopback, link-local and cloud-metadata addresses are rejected (App\Support\SafeUrl).
- Mail: ticket subjects are stripped of CR/LF before mail() (no header injection). Auth: a user can no longer change their own role (blocks company_admin→owner self-promotion); revoked OAuth clients are rejected immediately instead of staying valid until token expiry; OAuth down-scoping no longer silently falls back to the full grant.
- Password-reset requests are throttled to one email per account per 2 minutes. Crypto fails closed if the app key is missing (no insecure fallback key). Added Content-Security-Policy, HSTS, and Referrer-Policy response headers.
v1.8.1
Previous release
Security hardening — provisioning, attachments, KB search
- CRITICAL fixed — Employee portal provisioning (web + API) can no longer assign a privileged role. It now only creates requester-level logins; any attempt to pass owner/company_admin/staff roles is rejected (web silently downgrades to requester, API returns a validation error). Previously an hr_admin or asset_admin could mint an owner account and take over the company.
- HIGH fixed — Attachment download and delete now enforce object-level authorization: the caller must be able to view (or manage) the file's parent entity — the ticket (with queue + requester-ownership checks), vendor, invoice, document or ITIL record — not merely share the company. Previously any signed-in user could download or delete any file in the tenant by guessing sequential IDs.
- HIGH fixed — Stored XSS via Knowledge Base article titles in the search autocomplete (both the public portal and the staff KB) is closed: titles are now HTML-escaped and slugs URL-encoded before rendering.
v1.8.0
Previous release
SLA policies map to issue categories
- The SLA policies table (Admin → SLA & Hours) gained a "Category mapping" column: every policy can be mapped to one or more ticket (issue) categories via an inline checkbox editor right on the table — fully editable any time, no separate screen. The Add-policy form has the same picker.
- Policy selection precedence is now: issue-category match first (a ticket whose category is mapped on a policy always uses that policy — e.g. map "Security" to Critical P1 and every security ticket gets the 30-min/4-h targets regardless of priority), then exact priority, then the Default policy. Unmapped categories behave exactly as before.
- New tickets pick the mapped SLA at creation; editing an existing ticket's category or priority recalculates its targets on the spot, as before.
v1.7.9
Previous release
Single Helpdesk Login
- The IT and HR portal landing pages showed two login tiles — "Employee login" and "Company / Staff login" — that led to the exact same page and confused new users. Replaced with one clear "Helpdesk Login" tile; the sign-in page tagline now reads "one account for employees, agents and admins". All role logic is unchanged: after login, requesters land in My Workspace and staff land on the full helpdesk, exactly as before.
v1.7.8
Previous release
Date-range filter on the tickets list
- The Tickets page (IT, HR and All-queues views alike) gained From / To date pickers next to the existing filters — pick a period to see every ticket created in it, combined freely with search, status, assignee and Open-only. A "Clear dates" shortcut and a caption showing the active period appear while a range is applied.
- The IT / HR / All-queues buttons now preserve whatever filters are active instead of resetting them when you switch queue.
v1.7.7
Previous release
AI assist made complete & diagnosable
- Every AI draft type now has BOTH paths covered: LLM prompts (all 10 types already existed) and rule-based fallbacks — report_insights (computed deterministically from the actual figures: totals, biggest row, row count), kb_article (structured skeleton) and chat_reply were missing and showed "[No draft template available]". No assist surface can dead-end anymore.
- Root cause of the R13 fallback found in the logs: generations hit the exact 120s timeout because the model was cold-loading and the report prompt was heavy. Fixes: Ollama keep_alive=30m (model stays resident between calls), output capped at 500 tokens, report prompts slimmed (KPIs + top 20 rows instead of 40), and the hybrid provider now records WHY the LLM was skipped in the AI assist log (Admin → Diagnostics) instead of failing silently.
v1.7.6
Previous release
AI Studio fix (long generations), HR-routing rule tightened, Excel-style report filters
- AI Studio (Ollama & HTTP LLM) works again: the Ollama box was always reachable, but while PHP waited on a long generation the shared-hosting MySQL connection timed out and the app crashed logging the result ("MySQL server has gone away") — the response was thrown away after it had arrived. The app now pings/reconnects the DB after long external calls, never lets usage-logging break the answer, and raises the PHP time limit to match the configured generation timeout.
- Auto-triage rule "Out of Scope — HRMantra / HR Portal" no longer contains the generic keywords "password reset / reset password / leave / joining / onboarding" — they hijacked IT tickets like "Email Password Reset" into the HR queue. HRMS/HRMantra-specific terms remain; joiner/exit subjects are handled by their own lifecycle rules. Applied to the seed and to the live rules of all companies; wrongly-routed ticket TKT000628 moved back to the IT queue.
- Report pages have Excel-style column filters: a dropdown of unique values under each column header (or a search box for high-cardinality columns) with a live row count. Filters affect the on-screen table only; exports always contain all rows.
v1.7.5
Previous release
Weekly ticket report (week picker + TTR) & asset addendum reconciliation
- Reports H13/H14 (Weekly Ticket Summary by Category / by Agent) now have a week dropdown (last 16 weeks) and a queue selector (IT / HR / both), showing per row: arrived, still in progress, resolved and average time-to-resolve in hours. Exports carry the selected week.
- Asset register knows the Neptune MSA Addendum (effective 01-Apr-2023, Annexure A rate card baked in and editable in app/Support/AddendumRates.php). Assets gained dispatch date and processor class/text — backfilled from the vendor Dispatch sheet by serial number (284 serial mappings), with class auto-detected (i3/i5/i7; Ryzen and MacBook/M-chip map to the matching Intel tier).
- Assets list gained an "Addendum view (rented)" toggle: Class, Processor (Apple M-chip vs Intel marked), Dispatch date, Age (yrs), Era (PRE/POST Apr-23), Current rent, Addendum rate, Gap ₹/mo and Matched Yes/No, with monthly totals and one-click XLS / PDF export.
- New report R13 — Asset Addendum Reconciliation (Neptune) under Reports → Asset & Workforce, exportable in CSV/XLS/DOC/PDF like every other report.
v1.7.4
Previous release
Case owners & watchers, asset-return deadline with FnF-hold escalation, exit account deactivations
- Onboarding/offboarding cases now have an owner — whoever raised the case (the UI creator, or the sender of the joiner/exit email, matched to their login automatically) — plus watchers (CC/BCC-style addresses marked on the case). Every stage email goes to owner + watchers + reporting manager, and when a department finishes its deliverables (e.g. HR completes Records, IT completes Assets) a stage-completion email goes out to everyone involved. Template: onboarding.stage_done (toggleable).
- Offboarding captures the asset receipt date on the case journey. Return deadline follows policy: onsite = last working day, work-from-home = LWD + 4 working days (weekends skipped; employee work mode is a new field on the employee record). If the deadline passes with assets still assigned, the cron sends a one-time escalation to the employee — CC reporting manager, HR staff and the Finance recipient (set on the Offboarding page) — stating F&F is ON HOLD until the asset is received. Template: offboarding.asset_overdue (toggleable).
- Exit journeys gained an account-deactivation checklist — Google Workspace/Gmail, Jira, Zoho, Adobe, Microsoft Office 365 — owned by IT; pending deactivations and a missing asset-receipt date now block case completion (override still available).
v1.7.3
Previous release
HR-only dashboard, joiner/exit mail intake & lifecycle emails
- The HR Helpdesk view now shows exactly one dashboard — HR / People — for everyone including admins (switch to the IT view for the rest). It gained two live panels: upcoming new joinees (open onboarding cases) and employees in exit process (open offboarding cases with LWD).
- Incoming-mail intake rules: subjects containing "new joinee/joiner" auto-open an onboarding case (candidate parsed from the subject); subjects containing exit/resignation/last-working-day auto-open an offboarding case when the employee can be matched (by sender or name), else HR is notified to create it. Both fire on the subject only and are editable under Admin → Auto-Categorization Rules.
- Lifecycle notification emails at each stage — onboarding created / ready-for-joining / completed (sent to the candidate, CC the reporting manager) and offboarding created / completed (sent to the employee). Every one is a template under Admin → Notification Templates: reword it or turn it off per stage.
v1.7.2
Previous release
Portal catalog fix, root chooser, documents & HR admin tools
- Fixed: the portal home's Service Catalog block ignored the helpdesk view and mixed IT and HR items — it now follows the view like the full catalog page.
- Visiting tickets.iksula.com always shows the IT/HR chooser again (signed-out), even after a previous choice.
- New Documents repository (My Workspace → Documents): HR admins and company admins publish policies/forms/guides with an IT/HR/Both audience; employees see the documents of the view they are in.
- HR admins can now manage the knowledge base (scoped to HR-audience categories), run and export the HR reports (HR1–HR3 and workforce reports), and manage documents.
- My Workspace for agents: an "agent workload" strip (open assigned to me / in progress / resolved by me in my queue) plus a raised-by-me IT/HR split — an HR agent sees both their HR workload and their own IT requests.
v1.7.1
Previous release
Per-view catalog & knowledge base
- Service catalog is now view-specific: the HR Helpdesk lists only HR Services; the IT Helpdesk lists everything else. Switch views for the other side.
- Knowledge base is now view-specific: KB categories carry an audience (IT / HR / Both) — set when creating a category in Admin → Knowledge Base. Existing articles stay IT-only; a new "HR Guides" category ships with a detailed "Unable to log in to HRMantra" article (first-time login, password reset, locked account).
- The HR portal home no longer shows the "Your IT team, by the numbers" block, and its hero copy speaks HR.
v1.7.0
Previous release
Dual-brand helpdesk — one system, two front doors
- Visiting tickets.iksula.com now presents two choices: Iksula IT Helpdesk (blue, IT favicon) or Iksula HR Helpdesk (purple, HR favicon). The chosen view carries its own name, favicon, header colour and branding across the portal, sign-in and the app — same database, same accounts, one login for both.
- Cross-view roles: HR staff entering the IT Helpdesk act as plain requesters there, and IT staff entering the HR Helpdesk likewise — only the owner, company admins and super admins retain full visibility in both views. Everyone can switch views from the header (⇄).
- Context-aware defaults: tickets raised from My Workspace or the portal default to the queue of the view you are in.
v1.6.12
Previous release
HR/IT separation audit — every read path queue-scoped
- Full-project audit of ticket read paths. Fixed: the REST API (list + all by-id endpoints) now enforces queue visibility from the token owner's role; Employee 360 shows only the viewer's queue in the employee's ticket history; the ITIL link picker no longer exposes HR ticket numbers to IT users.
- HR staff (hr_agent / hr_admin) get an HR-only experience: the Service Catalog shows just the HR Services category for them, and the Assets menu group is hidden (Damage & Recovery stays under Operations for exit cases). Everyone else — including plain requesters — keeps the full catalog.
- Ticket properties (category/priority/impact/urgency) are now editable on the ticket page, with SLA targets recalculated on reclassification.
v1.6.11
Previous release
Users admin — search, full edit, password tools & per-user permissions
- The Users list has a search bar (name/email) plus role and status filters.
- Edit user now covers everything in one place: name, email (login id), role, status, and per-user EXTRA permissions granted on top of the role (role permissions shown locked; additive grants apply on the user's next request).
- Admins can set a user's password directly (policy-checked, optionally signing out their other sessions) or send them a 60-minute set-password email — both audit-logged. Super admin passwords can only be changed by super admins.
v1.6.10
Previous release
HR ticketing Phase 3 — dashboards, reports & HR seeds
- Queue-split visibility: the Helpdesk Command Center shows Open IT vs Open HR (with unassigned counts), the executive dashboard shows open HR tickets, and the HR dashboard leads with HR-queue KPIs (open, unassigned, SLA-breached).
- Three new reports under a new "HR Helpdesk" category: HR Helpdesk Summary (HR1), HR SLA & Ageing (HR2), and Exit Damage Recovery Status (HR3 — every open exit case with its damage cases, assessed/recovered amounts and balance for F&F).
- HR queue furnished on day one: 5 HR canned replies, an "HR Services" catalog category (salary slip, employment/experience letter, address proof, leave correction, HRMS access, F&F query), and an HR SLA policy (respond 4 h, resolve 3 business days) applied to HR-categorised tickets.
v1.6.9
Previous release
HR ticketing Phase 2 — dependency-based HR/IT lifecycle handoffs
- Onboarding journeys now have stage ownership: Intake and Records belong to HR (purple badge), Assets/Access/Close to IT (blue badge). IT steps are locked until every HR step is done, HR agents are notified when a case is created, and IT is pinged the moment HR completes its stages.
- Offboarding clearances are role-gated: HR sets the exit date (LWD) and HR clearance, IT sets IT clearance, license removal and recovery dues, and finance clearance is admin-only. Disabled fields are visually marked and protected server-side.
- Damage in exit cases: when a damage case is opened or a recovery amount is assessed for an employee with an open offboarding case, HR agents are notified with a link to the exit case (for the F&F settlement). Completion stays blocked until dues are settled or waived.
v1.6.8
Previous release
HR ticketing Phase 1 — queues, roles, CC/BCC
- Tickets now belong to a queue (IT Helpdesk / HR Helpdesk). IT agents see only IT tickets; the new hr_agent role (and hr_admin) see only HR tickets with full work rights but no delete; company admins and the owner see both queues and alone can archive. Assign the HR role from Admin → Users.
- Routing: each mailbox has a "Ticket queue" setting (set the future hr@ mailbox to HR); portal submissions offer an IT/HR picker plus a dedicated /portal/hr page (linked in the portal header, opens in a new window); HRMantra/payroll/leave emails arriving in the IT mailbox auto-route to the HR queue via the triage engine.
- Agents can transfer a ticket between queues from the ticket page (audit-logged, with an internal note).
- Replies (IT and HR alike) can now carry CC and BCC recipients — CC rides the same email visibly and is shown in the conversation history; BCC recipients get their own copy and never appear in anyone's headers.
v1.6.7
Previous release
Org chart, HR filters, asset rent tracking & notification templates
- Interactive organization chart (Employees → Org chart, also on the HR dashboard): collapsible reporting tree of all active employees built from first-reporting links, with a click-for-details card per person and a department-wise manager/reportee-strength table on top.
- HR dashboard: headcount-by-department now has an Active / Inactive / All selector, and shows active vs inactive KPIs.
- Asset lifecycle: a "3+ years old" filter on the asset register (tracked from purchase date) with age and rent-paid-till-date columns; each asset page now shows its age and cumulative rent paid (months × monthly rent since rent start). The Asset Lifecycle dashboard gained a 3y+ KPI.
- Notification Templates (Admin → Notification Templates): the requester-facing emails — ticket received acknowledgement, agent reply wrapper, ticket resolved — are now editable templates with placeholders, can be turned on/off per template, and custom templates can be added. Automated senders (no-reply, alerts) are never auto-emailed.
v1.6.6
Previous release
Default SLAs, Iksula branding & AI invoice reader
- Default SLA policies: every company now gets priority-based targets (Critical 30m/4h, High 1h/1 business day, Medium 4h/3 days, Low 8h/5 days, plus a catch-all), computed over business hours. Existing open tickets were backfilled, and the ticket page now shows an SLA panel with live second-by-second countdowns to first-response and resolution deadlines.
- Branding: the header and sign-in page now carry a text-based "Iksula IT Helpdesk" logo.
- AI invoice reader: Invoice Register → "Upload PDF (AI)" reads a vendor invoice PDF (LLM-assisted when AI Studio is configured, heuristic otherwise), shows an editable preview, and saves it with the PDF attached — vendor auto-matched (defaulting to Neptune for asset invoices). The Finance dashboard gains an "Invoice expense (this month)" card with a by-vendor breakdown.
- Fixed: LLM providers (AI Studio) referenced the HTTP helper without importing it, which would have crashed the first real LLM call.
v1.6.5
Previous release
Canned replies, EDR security triage & notification preferences
- Default canned replies: every company now gets 8 ready-to-use replies (acknowledgement, more info, remote session, resolve-confirm, no-response closure, dispatch update, account access, vendor escalation) in the ticket "Insert canned reply" dropdown. Manage them under Admin → Canned Replies.
- Security alert triage: EDR/antivirus alert emails (CrowdStrike Falcon, Defender, etc.) are now auto-categorised as Security and automatically open a linked Security Incident (severity read from the subject, e.g. "[High]"), with an internal note on the ticket and an admin notification. Configurable under Admin → Auto-Categorization Rules.
- Notification preferences: My Account now has per-group in-app notification toggles (new ticket, ticket updates, SLA, lifecycle, contracts, system) that silence the bell-menu notifications you do not want.
- Onboarding templates: every company now gets three ready-made joiner templates (Standard, Engineering/Developer, Sales/Field) in the New Onboarding form; the blank option is labelled "Default joiner journey (8 steps)" to make the built-in fallback obvious.
v1.6.4
Previous release
Onboarding/offboarding journeys + reminders
- Onboarding cases now open as a guided journey (Intake \u2192 Records \u2192 Assets \u2192 Access \u2192 Close) with a progress bar, a highlighted current step, and one-click completion. New cases get the journey automatically even without a template; existing empty cases get a \u201cGenerate default journey\u201d button.
- Offboarding cases now show an exit journey (LWD \u2192 assets returned \u2192 damage assessed \u2192 IT/HR/Finance clearance \u2192 license removal \u2192 close) that advances as you fill the clearances, plus a damage/recovery dues field.
- Periodic reminders: a daily lifecycle sweep notifies admins (and the reporting manager) when a joining or exit date is near/overdue with steps still pending. De-duped to once per case per day. Runs under cron.php all, or schedule cron.php lifecycle.reminders.
v1.6.3
Previous release
Open-tickets filter fix + mailbox diagnostics
- Fixed: the dashboard \u201cOpen tickets \u2192 View\u201d link (and the \u201cOpen\u201d status filter) showed an empty list because it matched a literal status; it now correctly shows all non-closed tickets.
- Added mailbox_doctor.php \u2014 a command-line diagnostic that checks the IMAP extension, connects to each configured mailbox, and reports message counts so you can confirm inbound email + cron are working.
v1.6.2
Previous release
Live chat fix, ticket category fix & weekly reports
- Live chat now updates messages on a short interval instead of holding a long-lived connection \u2014 fixes the whole-window freeze on shared hosting, on every browser and OS.
- Fixed: ticket Category showed as \u201c(none)\u201d in the ticket list and the Category-wise report because the queries joined the wrong table; they now read from ticket_categories.
- Tickets list now has a Category column.
- New scheduled reports: \u201cWeekly Ticket Summary \u2014 by Category\u201d (H13) and \u201c\u2026 by Agent\u201d (H14), each showing arrived vs resolved over the last 7 days with KPIs. Schedule them weekly under Reports \u2192 Scheduled Reports.
- Removed Employee/Staff login links from the public Help Center top navigation.
v1.6.1
Previous release
Link existing users + master-data fix
- Employees can now be linked to an EXISTING user account from the employee page (Portal access \u2192 \u201cLink account\u201d), so a login created separately still sees the person's assigned assets, tickets and requests under My Workspace.
- \u201cEnable portal access\u201d now adopts an existing account with the same work email instead of erroring out.
- Fixed: creating a master record (e.g. an Asset Category) with a blank Sort order no longer fails with a \u201csort_order cannot be null\u201d error \u2014 the column default is applied instead.
v1.6.0
Previous release
Docs & public product tour
- Added a complete installation & troubleshooting manual.
- Added a public, self-contained product tour (tour.html) — an interactive, video-style walkthrough of real features (not a screen recording).
- Linked the tour in the footer as "See it in action", next to the version.
v1.5.0
Release
Smarter email threading + agent performance
- Email-to-ticket now recognises replies that quote the original message (In-Reply-To / References), not just replies to the system's own mail — so a thread between the employee, their TL and a manager stays on ONE ticket instead of spawning duplicates, even if the subject changes.
- New Agent Performance report (Reports → Agent Performance): per-agent monthly tickets resolved, average handle time (AHT), average first response, and resolution SLA-met %, with CSV export.
- Report Studio: tickets can now be reported on by Resolved date.
v1.4.0
Release
Editable roles & version history
- Roles & Permissions is now fully editable — create custom roles and tune permissions per group.
- System roles can have their permissions adjusted (Owner stays all-access and locked); custom roles can be created, edited and deleted.
- Permission changes apply immediately to logged-in users (no re-login needed).
- Custom roles are now selectable when adding or editing users.
- Added this version-history popup and refreshed the footer with the product tagline.
v1.3.0
Feature
Auto-categorization + notification controls
- Keyword-based ticket auto-categorization engine, pre-seeded with the full IT triage table (Software / Hardware / Network / Vendor / Information, plus out-of-scope Finance & HRMantra rules).
- Applied to both in-app and email-to-ticket creation, with a live "test a ticket" tool.
- Notification events now actually fire: ticket.created and ticket.status_changed are dispatched to the automation engine.
- New cron sweeps detect vendor-contract expiry and assets crossing 3 years in service.
- Four example notification rules seeded (disabled by default) and toggleable in Admin → Automation.
v1.2.3
Fix
Mailbox TLS certificate
- Fixed a bug where "Validate TLS certificate" could never be unticked, blocking Gmail/Outlook IMAP connections.
- Added a clearer certificate / SNI hint on the mailbox test screen.
v1.2.2
Improvement
Menu discoverability
- Added a whole-sidebar collapse toggle (☰) with remembered state, alongside per-section accordions.
- Cache-busted CSS and JS so menu updates load reliably after deploys.
- Added direct sidebar links to Ticket Categories and Asset Categories.
v1.2.1
Fixes
Post-testing fixes
- Added a Ticket Categories master (seeded per company).
- Mailbox fetch now reports IMAP errors and explains that only unseen mail is pulled.
- Fixed the chat "Go offline" toggle resurrecting offline agents.
- Rebuilt Allocations with by-processor and by-ageing breakdowns and CSV export.
v1.0.0
Delivery 4
Reporting & integrations
- Report Studio (custom report builder) and scheduled reports.
- Automation rules engine with conditions and actions.
- REST API with scoped keys and signed, retried webhooks.
- Import & update wizard for bulk data.
Delivery 3
Delivery 3
Operations & ITIL
- Incidents, problems, changes, service requests and security incidents.
- SLA engine with business hours; knowledge base; service catalog with approval chains.
- AI Studio and mailbox administration.
Delivery 2
Delivery 2
Engagement & lifecycle
- Live chat with agent presence and chat-to-ticket conversion.
- AI assist and the email-to-ticket pipeline.
- Onboarding/offboarding, damage & recovery, replacement & dispatch, subscriptions & invoices.
Delivery 1
Delivery 1
Foundation
- Multi-tenant companies with secure authentication.
- Role-based access control (roles & permissions), audit logging.
- Core records: tickets, assets, employees, vendors and master data.