User Manual
Version 1.6  ·  Complete Guide for All Users  ·  Published by Niles Technology Group LLC
Default Credentials
Admin Password
ForsetiDesk@Admin1
Default URL
http://[server-ip]:4000
⚠  Change all default passwords immediately after first login.
Published by Niles Technology Group LLC  ·  forsetidesk.com  ·  © 2026 All rights reserved.
Section 1

System Overview

Audience: All Users

ForsetiDesk is a fully self-hosted IT service desk platform designed for teams that require complete control over their data and workflows. Unlike cloud-based solutions, ForsetiDesk runs entirely on your own Windows infrastructure — no external dependencies, no data leaving your network, no mandatory subscription fees.

ForsetiDesk was built by practitioners who lived the problem — born from years of frustration with rigid, uncustomizable service desk platforms. While designed for IT teams, ForsetiDesk is flexible enough for any service operation that needs accountability, workflow, and data ownership.

Key Features

  • Complete ticket lifecycle management from creation through QA-verified closure
  • Mandatory QA/QC review — technicians cannot close tickets without supervisor approval
  • Configurable ticket ID numbering (auto, sequential, prefixed, custom)
  • Hierarchical category system — up to 5 levels on Pro, 2 on Standard
  • Email notifications to clients on ticket events (new in 1.4)
  • Email-to-ticket inbound mailbox — tickets auto-created from incoming email (new in 1.4, Pro)
  • Self-service password reset — no admin needed for routine resets (new in 1.4)
  • Canned responses — one-click reply templates for technicians (new in 1.4)
  • Internal notes — private tech-only comments hidden from clients (new in 1.4)
  • Knowledge base with markdown articles, attachments, and bidirectional ticket linking (new in 1.5)
  • Public client-portal KB articles (new in 1.5, Pro)
  • Ticket merging — combine duplicate or related tickets into a single primary (new in 1.6)
  • Ticket-to-ticket linking — Related, Parent/Child, Blocks, and Duplicate relationships (new in 1.6)
  • SLA management with visual breach indicators and alerts (Pro)
  • Full analytics dashboard with custom widget builder (Pro)
  • Data export: CSV, JSON, Excel (.xlsx), and TXT formats (Pro)
  • PowerBI API integration for external dashboards (Enterprise)
  • Custom fields — TEXT, TEXTAREA, DROPDOWN, MULTISELECT, DATE, CHECKBOX, CASCADE (Pro)
  • Role-based access control — Admin, Tech, QA, Client
  • Native Windows desktop application (all tiers)
  • Database backup and restore (Pro)
  • User audit log — tracks all admin actions (Enterprise)

License Tiers

FeatureStandard (Free)ProEnterprise
Ticket Management✓ (100 max)✓ Unlimited✓ Unlimited
QA/QC Workflow
User Management✓ (3 users max)✓ License-defined✓ License-defined
Category Levels2 levels5 levels5 levels
Email Notifications
Self-Service Password Reset
Canned Responses
Internal Notes
Knowledge Base (Internal Articles)
Public KB Articles (Client Portal)
Email-to-Ticket (Inbound IMAP)
SLA Management
Full Analytics
Custom Widgets
Custom Fields
Data Export✓ All formats✓ All formats
Database Backup
Desktop App
Workstation Client App
PowerBI Integration
User Audit Log
Bring Your Own Database(In Development)
Section 2

Getting Started

Audience: All Users

Accessing ForsetiDesk

ForsetiDesk can be accessed via the native Windows desktop application or through a web browser. Your administrator will provide the server address. The default URL is:

http://[server-ip]:4000
💡 The desktop application is included with all license tiers and provides the best experience with native Windows integration.

Logging In

Enter your email address and password on the login screen. Contact your administrator if you do not have credentials. On first login you will be required to change your password before accessing the system.

Important: Change all default passwords immediately after first login. Default credentials are listed on the cover page of this manual.

Forgot Your Password? NEW IN 1.4

If you cannot remember your password, you no longer need to contact an administrator. Use the self-service reset:

  1. On the login screen, click Forgot Password? below the password field.
  2. Enter the email address associated with your account and click Send Reset Link.
  3. Check your inbox. A message from ForsetiDesk arrives within a minute or two containing a one-time reset link.
  4. Click the link in the email. It opens the reset page where you set a new password (minimum 8 characters).
  5. After setting the new password, log in normally with your new credentials.
ℹ Reset links expire one hour after they are sent and can only be used once. If you don't receive an email within a few minutes, check your spam folder — otherwise contact your administrator to verify your account email is correct and that the system has SMTP configured.

Navigation

Menu ItemDescriptionAccess
DashboardOverview of ticket activity, SLA alerts, and key metricsAll Users
TicketsView, search, create, and manage ticketsAll Users
Knowledge BaseBrowse, search, and author KB articles — clients see published public articles onlyAll Users
QA QueueReview tickets submitted for closure approvalAdmin, QA
AnalyticsDetailed reporting, charts, and custom widgets (Pro)All Users
AdminSystem configuration, users, categories, license, backupAdmin Only

User Roles

RolePermissions
AdminFull system access — configure settings, manage users, view all tickets, approve/reject QA, manage license and backups
TechCreate and work tickets, submit for QA review, view all tickets, view analytics
QAReview and approve/reject tickets in the QA queue, acknowledge SLA breaches, view all tickets
ClientSubmit tickets and view their own ticket status only
Section 3

End User Guide

Audience: End Users / Client Role

Creating a New Ticket

Click the + New Ticket button in the sidebar or navigate to Tickets and click New Ticket in the top right corner.

Ticket Fields

FieldDescriptionRequired
TitleBrief one-line summary of the issueYes
DescriptionDetailed explanation including steps to reproduce and error messagesYes
PrioritySeverity level — Critical, High, Medium, or LowYes
CategoryIssue type — select from the hierarchical category dropdownNo
Client NameName of the person experiencing the issueNo
Client EmailContact email for the affected userNo
Assign ToTechnician to handle the ticket (can be left unassigned)No
TagsLabels to categorize the ticket — click to toggleNo
Custom FieldsAdditional fields configured by your administrator (Pro)Varies

Priority Levels & Default SLA Targets

PriorityDescriptionDefault ResponseDefault Resolution
CriticalSystem down, major outage, security breach1 hour4 hours
HighSignificant impact, no workaround available4 hours24 hours
MediumModerate impact, workaround available8 hours72 hours
LowMinor issue, cosmetic, general questions24 hours168 hours

Ticket Status Flow

StatusMeaning
OpenTicket created, awaiting assignment or work to begin
In ProgressTechnician is actively working on the issue
Pending QATechnician has resolved the issue and submitted for QA review
QA RejectedQA has rejected the resolution — ticket returned to technician for rework
MergedTicket has been merged into another ticket and is now read-only (new in 1.6)
ClosedIssue fully resolved and verified through the QA process
ℹ Tickets cannot be directly closed. Every ticket must pass QA review before it can be marked as Closed. This ensures quality and accountability.

Email Updates on Your Tickets NEW IN 1.4

If your administrator has configured email notifications and your ticket has a client email address set, you will automatically receive emails at the following points:

  • When your ticket is first created — confirmation with the ticket ID
  • When a technician is assigned to your ticket
  • When the status changes
  • When the ticket is approved by QA and closed
  • If QA rejects the resolution and the ticket is reopened for rework

Each email includes the ticket ID, title, current status, and a direct link back to the ticket. If you stop receiving updates and you expect them, contact your administrator — email notifications can be toggled on or off per event by the admin.

Browsing the Knowledge Base NEW IN 1.5

Click Knowledge Base in the left sidebar to browse published articles your IT team has made available to you. Many common issues have a self-help article that may resolve your problem faster than submitting a ticket.

  • Use the search bar at the top to find articles by keyword
  • Filter by category to narrow the list
  • Click any article title to read the full content, including any attached files like screenshots or PDFs
ℹ You only see articles that have been published and marked as public. If you can't find what you need, submit a ticket and your IT team will help.

Merged Tickets NEW IN 1.6

If your ticket has been combined with another related ticket by the IT team, you will see a banner at the top of your ticket indicating it has been merged and providing a link to the primary ticket where work is continuing. Merged tickets are read-only.

Section 4

Technician Guide

Audience: Technicians (TECH role)

Working a Ticket

Click any ticket from the Tickets list to open the detail view. From here you can review all ticket information, edit fields, add notes, and track your work time.

Editing a Ticket

Click the Edit button on the ticket detail page. In edit mode you can modify:

  • Title and description
  • Priority and status (cannot set to Closed directly)
  • Assigned technician and category
  • Tags and custom field values
  • Client name and email
  • Troubleshooting notes — document your diagnostic steps clearly
  • Resolution notes — describe exactly how the issue was resolved
  • Start time, end time, and resolution date

Click Save to commit changes. All changes are logged in the Activity Log with your name and timestamp.

Submitting for QA Review

  1. Ensure your Resolution Notes clearly explain how the issue was resolved.
  2. Set the End Time and Resolution Date fields.
  3. Click the Submit for QA button in the ticket detail view.
  4. The ticket status changes to Pending QA and appears in the QA Queue.
  5. If QA rejects the ticket, it returns to you as QA Rejected with notes explaining what to address.
  6. Rework the ticket and resubmit when ready.
⚠ You must fill in Resolution Notes before submitting for QA. Tickets without resolution documentation will typically be rejected.

Activity Log

Every change to a ticket is automatically recorded in the Activity Log at the bottom of the ticket detail page. The log shows who made each change, when it was made, and what specifically changed — providing a complete audit trail.

Internal Notes NEW IN 1.4

Internal notes let you and your teammates leave private comments on a ticket that the client never sees. Useful for handoffs, vendor case numbers, behind-the-scenes context, or notes for the QA reviewer.

  1. Open the ticket detail page.
  2. Scroll to the Internal Notes panel (it sits beside the public Activity Log).
  3. Type your note. Basic markdown formatting is supported.
  4. Click Post Note. The note appears in the panel immediately, stamped with your name and the time.
  5. To remove a note you posted, click the trash icon on it. Administrators can remove any note.
💡 Internal notes are visible only to Admin, Tech, and QA roles. Clients on the client portal never see them, and they are never included in outbound email notifications to clients.

Ticket Merging NEW IN 1.6

When duplicate or closely related tickets arrive, you can merge secondary tickets into a single primary ticket. Merging closes the secondary tickets with a Merged status and preserves all history, internal notes, and KB article links.

  1. Open the ticket you want to keep as the primary (surviving) ticket.
  2. Click the Merge button in the ticket actions area.
  3. In the merge modal, search for tickets to merge into this one. Select one or more tickets using the checkboxes.
  4. Click Merge Selected into This Ticket. A confirmation dialog warns that this cannot be undone.
  5. After merging, secondary tickets become read-only and display a banner linking back to the primary ticket.

What Happens When Tickets Are Merged

  • Secondary tickets receive Merged status and cannot be edited further
  • KB article links from secondary tickets are transferred to the primary ticket (duplicates are skipped)
  • Internal notes from merged tickets are accessible from the primary ticket’s Merged Tickets section
  • The Activity Log on both tickets records the merge action
  • Merged tickets are excluded from analytics calculations (resolution time, tech performance)
  • No email notifications are sent when tickets are merged — it is an internal housekeeping action
ℹ Only Admin and Tech roles can merge tickets. You cannot merge a ticket that is already merged, and you cannot merge a ticket into itself. Tickets already in Merged status do not appear in the merge search results.

Ticket Linking NEW IN 1.6

Ticket linking creates typed, bidirectional relationships between tickets without closing or modifying either one. Use it to connect related issues, track dependencies, or flag duplicates you want to keep open separately.

  1. Open any ticket detail page.
  2. Scroll to the Linked Tickets section (below Linked KB Articles).
  3. Click Link Ticket. In the modal, search for the ticket to link.
  4. Select a link type from the dropdown: Related, Parent/Child, Blocks, or Duplicate.
  5. Click the target ticket to create the link.
  6. To remove a link, click the X next to it and confirm.

Link Types

TypeFrom Source TicketFrom Target TicketUse Case
RelatedRelated to #XYZRelated to #ABCSimilar or connected issues
Parent / ChildParent of #XYZChild of #ABCBreaking a large issue into sub-tasks
BlocksBlocks #XYZBlocked by #ABCDependency tracking between tickets
DuplicateDuplicate of #XYZDuplicate of #ABCFlagging duplicates without merging
ℹ All link types are informational — they do not enforce workflow rules or prevent status changes. Admin, Tech, and QA roles can create and remove links. Clients cannot see the linked tickets section. Each pair of tickets can only have one link between them.

Canned Responses NEW IN 1.4

Canned responses are pre-written replies that your administrator has set up for common issues. Insert one with a click instead of typing the same answer over and over.

  1. On the ticket detail page, place your cursor in the field you want to add text to — usually Resolution Notes or Troubleshooting Notes.
  2. Click the Canned Responses dropdown near that field.
  3. Select the response you want. The text is inserted at your cursor position.
  4. Edit the inserted text to fit the specific ticket before saving.

Canned responses are maintained by administrators. If a common situation is missing from the list, ask an admin to add it — it helps the whole team.

SLA Indicators

BadgeColorMeaningAction
On Track — Xh left🟢 GreenMore than 20% of SLA time remainingContinue normally
At Risk — Xh left🟡 YellowLess than 20% of SLA time remainingPrioritize immediately
Breached Xh ago🔴 RedSLA deadline has passedEscalate to supervisor

Note: SLA indicators only appear when a Pro license is installed.

Section 5

Knowledge Base NEW IN 1.5

Audience: All Users

The knowledge base is a central library of articles documenting solutions, procedures, and reference material. Technicians and administrators author articles; QA reviewers can read and link them to tickets; clients see only articles that have been published and marked public.

Accessing the Knowledge Base

Click Knowledge Base in the left sidebar. The list page shows all articles you have permission to see, with filters for status, visibility, and category, plus a full-text search across titles and bodies.

Article Visibility & Status

FieldValuesMeaning
StatusDraft / Published / ArchivedDrafts are works-in-progress. Published articles are visible per the visibility rule. Archived articles are hidden by default and act as a soft delete.
VisibilityInternal / PublicInternal articles are visible to Admin, Tech, and QA only. Public articles are visible to clients in the portal once published. Public visibility requires a Pro license.
ℹ Clients only ever see articles that are both Published AND Public. Drafts and internal articles are completely hidden from the client portal.

Authoring an Article

Admins and technicians can create articles. QA reviewers and clients cannot author articles but can read those they have access to.

  1. Open the Knowledge Base and click + New Article.
  2. Enter a title. The URL slug is generated automatically from the title.
  3. Choose a category (optional — uses the same category tree as tickets).
  4. Set status to Draft while you are writing. Switch to Published when ready.
  5. Set visibility:
    • Internal for tech-only reference material
    • Public for client-facing how-tos and FAQs (Pro license required)
  6. Add comma-separated tags for additional filtering.
  7. Write the body in the markdown editor. The editor supports headings, bold, italic, lists, code blocks, tables, links, and a live preview pane.
  8. Click Create article. After the first save you can return to the editor to upload attachments.
💡 Save the article first — attachments cannot be uploaded until the article exists in the database. Once saved, click Edit to return and add files.

Attachments

Articles support file attachments for screenshots, diagrams, PDFs, and supporting documents.

  • Maximum file size: 25 MB per file
  • Allowed types: PNG, JPEG, GIF, WebP, SVG, PDF, plain text, ZIP, and Microsoft Office documents (Word, Excel, PowerPoint)
  • Files are stored under C:\Program Files (x86)\ForsetiDesk\kb-attachments\
  • Original filenames are preserved for display and download; on-disk names are randomized to prevent collisions

To attach a file: open the article in the editor, click Upload file in the Attachments section, select the file. The upload progress shows briefly and the file appears in the attachments list. Click the X next to an attachment to remove it.

Readers download attachments by clicking them on the article view page.

Linking Articles to Tickets

Tickets and KB articles can be linked in both directions to surface the right reference material at the right time.

  1. Open any ticket detail page.
  2. Scroll to the Linked KB Articles section.
  3. Click Link article, search for the article by title, and click it to attach.
  4. The linked article appears on the ticket; the ticket appears under Linked Tickets when viewing the article.
  5. Click the X next to a link to remove it.
ℹ Linking is bidirectional. Admins, Techs, and QA can manage links. Clients never see the linking UI or the linked-tickets section on articles.

Search

The search bar matches across article titles and body text. Combine search with category, status, or visibility filters to narrow results. Filters reset to page 1 automatically when changed.

Revision History

Every article maintains an append-only revision log capturing creation, updates, status changes, attachment additions and removals, and archive actions. Each entry records the user, action, and a brief detail string — useful for tracking who changed what and when.

Archiving Articles

Administrators can archive articles by clicking Archive on the article view page. Archived articles are hidden from default listings (apply the Archived status filter to see them) and become inaccessible to clients. Archiving is the recommended way to retire outdated content while preserving its history.

Role Permissions Summary

ActionAdminTechQAClient
Browse / read articlesAllAllAllPublished + Public only
Create / edit articles
Archive articles
Upload / remove attachments
Link / unlink articles on tickets
View revision history
Section 6

QA Reviewer Guide

Audience: QA Team (QA role)

Accessing the QA Queue

Click QA Queue in the left sidebar. This page shows all tickets submitted for review by technicians, displayed in chronological order with oldest submissions first.

Reviewing a Ticket

Before approving or rejecting, review the following on each ticket:

  • Ticket description — does it clearly describe the original issue?
  • Troubleshooting notes — did the technician document their diagnostic process?
  • Resolution notes — is it clear and specific how the issue was resolved?
  • Time fields — are start time, end time, and resolution date populated?
  • Category — is the ticket properly categorized?
  • Tags — are appropriate tags applied?
  • Custom field values — are required fields completed?

Approving a Ticket

Click the Approve button on the ticket. You may optionally add approval notes. Once approved, the ticket status changes to Closed and is removed from the active queue.

Rejecting a Ticket

Click the Reject button. Rejection notes are required — you must explain why the ticket is being rejected and what needs to be addressed. The ticket returns to QA Rejected status.

💡 Be specific in rejection notes. Clear feedback helps technicians resolve issues faster and improves overall ticket quality over time.

Internal Notes for QA NEW IN 1.4

During review you can post internal notes on the ticket that the client never sees. These are useful for documenting QA observations that don't warrant a rejection, leaving context for the next reviewer, or recording why an exception was approved.

Open the ticket, find the Internal Notes panel beside the activity log, type your note, and click Post Note. Notes are stamped with your name and visible only to Admin, Tech, and QA users.

Section 7

Administrator Guide

Audience: Administrators (ADMIN role)

Accessing Admin Settings

Click Admin in the left sidebar. The Admin panel is organized into tabs: Users, Categories, Settings, License, Backup, Database, Notifications, Email Inbox, and Canned Responses.

ℹ The Notifications, Email Inbox, and Canned Responses tabs are new in version 1.4.

User Management

The Users tab allows you to create, edit, deactivate, and delete user accounts. A user count indicator shows current usage against your license limit (e.g., "3 of 10 users").

Creating a User

Click Add User and fill in the name, email address, password (minimum 8 characters), and role. Available roles are Admin, Tech, QA, and Client.

⚠ Standard (free) tier is limited to 3 active users. Pro and Enterprise licenses define the user limit set during license generation.

Managing Users

  • Edit — modify name, email, role, or password
  • Active/Inactive toggle — disable an account without deleting it; deactivated users cannot log in and existing sessions are immediately invalidated
  • Delete — permanently remove a user (cannot delete yourself or the last admin)
  • Reset Password — generate a temporary password; user must change it on next login

User Audit Log

The Audit Log button shows a complete history of all user management actions. Requires Enterprise license.

Category Management

The Categories tab manages the hierarchical dropdown used when creating tickets. Categories support up to 5 levels on Pro/Enterprise (2 levels on Standard). Categories can be reordered and deactivated without deleting historical ticket data.

System Settings

SettingDescription
Organization NameDisplayed in the app header and on all exports
Default PriorityPre-selected priority when creating new tickets
Ticket NumberingID scheme: Auto (timestamp), Sequential, Prefixed (TKT0001), or Custom
Available TagsManage the global list of tags available on tickets
SLA TargetsConfigure response and resolution time targets per priority (Pro)
SLA EnabledToggle SLA deadline calculation on or off globally
PortHTTP server port (default 4000) — requires service restart to apply

Ticket Numbering Schemes

SchemeFormatExample
AutoUnix epoch timestamp (milliseconds)#1777742555599
SequentialPlain incrementing integer#42
PrefixedConfigurable prefix + padded numberTKT0042
CustomPrefix + optional year/month + number + separatorTKT-2026-0042

Email Notifications (SMTP) NEW IN 1.4

The Notifications tab lets you configure outbound email so clients automatically receive updates when their tickets are created, assigned, changed, closed, or rejected. Available on all license tiers.

Configuring SMTP

  1. Go to Admin → Notifications.
  2. Fill in your SMTP server details: host, port, username, password, from address, and TLS option. Common defaults are port 587 with TLS, or 465 with SSL.
  3. Toggle the Enabled switch on.
  4. Click Save. The mailer reloads automatically — no service restart needed.

Per-Event Toggles

Below the SMTP settings is a list of notification events. Each one can be turned on or off independently:

  • Ticket Created — confirmation email to the client
  • Ticket Assigned — notice when a technician picks up the ticket
  • Status Changed — updates as the ticket moves through the lifecycle
  • QA Approved — closure notification
  • QA Rejected — notice that the ticket has been reopened for rework

Send Test Email

Once SMTP is saved, the Send Test Email button at the bottom of the tab lets you verify the connection. Enter any recipient address, click the button, and watch for the test message in that inbox. If it doesn't arrive within a minute, see the Troubleshooting section.

Base URL for Email Links

Notification emails include a clickable link back to the ticket. For these links to work outside your server, set APP_BASE_URL in secrets.cfg to the public URL of your ForsetiDesk install (e.g., https://desk.example.com). Without it, emails will link to localhost, which only works on the server itself.

ℹ Notifications fire after the database is updated, not before. If SMTP is unreachable or a client email is missing, the ticket update still succeeds — only the email is skipped.

Email Inbox (Email-to-Ticket) NEW IN 1.4 — PRO

The Email Inbox tab connects ForsetiDesk to an IMAP mailbox so that messages sent to that address are automatically converted into tickets. This is the standard way most IT teams accept ticket submissions. Requires a Pro license.

Setting Up the Inbox

  1. Provision a dedicated mailbox — for example [email protected]. Use a dedicated mailbox, not a personal account.
  2. Go to Admin → Email Inbox.
  3. Fill in IMAP server details: host, port (typically 993 with TLS, or 143 without), username, password, folder (usually Inbox), and the TLS option.
  4. Set the Polling Interval — how often ForsetiDesk checks for new mail. The default is 5 minutes; minimum is 1 minute.
  5. Choose a Default Category for tickets created from email. You can re-categorize tickets individually after creation.
  6. Toggle Enabled on and click Save.

What Happens to Incoming Mail

On each poll cycle the system fetches unread messages from the configured folder and turns each one into a new ticket using these mappings:

Email FieldBecomes Ticket Field
SubjectTicket Title
Body (plain text or HTML stripped)Description
Sender display nameClient Name
Sender email addressClient Email
RFC822 Message-ID headerInternal dedup key (not displayed)

After successful processing the message is marked as read on the mail server so it isn't picked up again. The Message-ID is also recorded internally as a second safety net — the same email cannot create two tickets.

Test Connection & Poll Now

Two buttons sit at the bottom of the tab. Test Connection tries to log into the IMAP server and reports success or the exact error. Poll Now triggers an immediate poll cycle, bypassing the schedule — useful for verifying setup without waiting.

Status Indicator

The tab shows the most recent poll time and a status of ok, error, or idle. If poll status shows error, click Test Connection to see the underlying message.

⚠ Use a dedicated mailbox. The poller marks messages as read after processing — if you point it at a real inbox you actively use, it will mark your unread mail as read.

Canned Responses NEW IN 1.4

The Canned Responses tab is where you build and maintain the reply templates that technicians insert into tickets with one click. Available on all license tiers.

Creating a Canned Response

  1. Go to Admin → Canned Responses.
  2. Click + New Response.
  3. Enter a Title — this is what technicians see in the dropdown picker.
  4. Enter the Body — the actual text that gets inserted. Markdown formatting is supported.
  5. Optionally tie the response to a specific Category so it only appears for matching tickets.
  6. Set Sort Order to control where it appears in the dropdown (lower numbers first).
  7. Click Save.

Managing the Library

  • Edit — modify the title, body, category scope, or sort order at any time.
  • Active toggle — temporarily hide a response without deleting it. Inactive responses don't appear in the tech picker but preserve any past usage records.
  • Delete — permanently remove a response.
💡 Good canned response candidates: standard password reset instructions, VPN setup steps, printer driver download links, "ticket received, investigating" acknowledgments, and the most common 5–10 resolutions your team writes repeatedly.
Section 8

Analytics & Reporting

Audience: Admins / Supervisors — Pro License Required

The Analytics page provides comprehensive visibility into service desk operations. Access it by clicking Analytics in the sidebar. Full analytics features require a Pro license.

Date Range Selection

All analytics are filtered by a date range. Select from preset ranges (Today, This Week, This Month, This Year) or choose a custom start and end date and click Apply.

Key Metrics

MetricDescription
Total TicketsCount of all tickets in the selected date range
Avg ResolutionAverage hours from ticket creation to closure
SLA CompliancePercentage of tickets resolved within their SLA deadline
Avg Open AgeAverage age in hours of currently open tickets
Closed CountCount of tickets closed in the selected date range

Available Charts

  • Opened vs Closed — line chart showing daily ticket volume trends
  • SLA Compliance by Priority — bar chart showing compliance rate per priority level
  • Tech Performance — tickets assigned, resolved, and average resolution/response times per technician
  • Top Issue Categories — expandable category tree showing most common issue types
  • Repeat Faults by Client — clients with recurring issues in the same category
  • MTBF by Category — Mean Time Between Failures for each issue category

Custom Widgets

Build your own metric cards. Click + Add Widget on the Custom Widgets tab:

FieldOptions
Widget NameAny descriptive label
MeasureCount Tickets, Average Resolution Time, SLA Compliance %
Group ByNo Grouping, By Status, By Priority, By Category, By Technician, By Date
Chart TypeNumber, Bar Chart, Line Chart, Pie Chart
FiltersOptionally filter by Priority, Status, or Client Name

Exporting Data

FormatBest ForNotes
CSVExcel, Google Sheets, most data toolsComma-separated, UTF-8 encoded
JSONDevelopers, API consumersStructured data with all ticket fields
Excel (.xlsx)Formatted spreadsheetsMulti-sheet: Summary, Tickets, Priority breakdown
TXTPlain text reportsHuman-readable formatted report
Section 9

SLA Management

Audience: Admins / Supervisors — Pro License Required

Service Level Agreement (SLA) management tracks commitments to respond to and resolve tickets within defined timeframes. SLA features require a Pro license and must be enabled in Settings.

How SLA Works

When a ticket is created, ForsetiDesk automatically calculates two deadlines based on the ticket's priority and your configured SLA targets:

  • Response Deadline — when the ticket must first be acknowledged or assigned
  • Resolution Deadline — when the ticket must be fully resolved and submitted for QA

SLA Status Badges

BadgeColorMeaningRequired Action
On Track — Xh left🟢 GreenMore than 20% of SLA time remainingContinue working normally
At Risk — Xh left🟡 YellowLess than 20% of SLA time remainingPrioritize immediately
Breached Xh ago🔴 RedSLA deadline has passedEscalate and notify supervisor

Acknowledging SLA Breaches

Admins and QA reviewers can acknowledge SLA breaches to log that the breach has been noted. Click Acknowledge on the breached ticket in the dashboard alert, optionally add notes. The acknowledgment is logged in the ticket's activity history.

Configuring SLA Targets

Go to Admin → Settings → SLA Targets. Set response and resolution hours for each priority level. Click Save SLA Targets to apply. New tickets created after saving will use the updated targets.

⚠ To enable or disable SLA globally, use the SLA Enabled toggle in Admin → Settings.
Section 10

License Management

Audience: Administrators

ForsetiDesk uses a cryptographically signed license key system to unlock Pro and Enterprise features. The Standard tier is free with no license required.

Installing a License

  1. Go to Admin → License.
  2. Click Generate License Request to create a license request file and send it to your vendor.
  3. Once you receive your license key, paste it into the License Key field.
  4. Click Install License. The system validates the key and immediately unlocks licensed features.

License Information

FieldDescription
EditionStandard, Pro, or Enterprise
Issued ToThe organization the license was issued to
Max UsersMaximum number of active users allowed (or Unlimited)
Issued DateWhen the license was generated
Expiration DateWhen the license expires (or Never for perpetual licenses)
Unlocked FeaturesList of Pro/Enterprise features enabled by this license

User Count Enforcement

The Users tab shows your current active user count against the license limit (e.g., "3 of 10 users"). When the limit is reached, new user creation is blocked until the license is upgraded or an existing user is deactivated.

Removing a License

Click Remove License to uninstall the current license. The system reverts to Standard mode. Existing data is not affected, but Pro/Enterprise features will no longer be accessible.

Section 11

Export & PowerBI Integration

Audience: Admins — Enterprise License Required for PowerBI

Data Export

All export options are available from the Analytics page via the Export dropdown. Exports include all ticket data within the selected date range. Export requires a Pro or Enterprise license.

PowerBI Integration

ℹ PowerBI integration is an Enterprise feature. It provides a secure REST API endpoint that PowerBI can query directly for live data.

Setting Up the PowerBI Connection

  1. Go to Admin → Settings and scroll to PowerBI Integration.
  2. Click Generate PowerBI API Key.
  3. Copy the full API key — it will not be shown again after you navigate away.
  4. In PowerBI Desktop, click Get Data → Web.
  5. Enter the connection URL shown on the settings screen.
  6. Add the API key as the x-powerbi-key header or apikey query parameter.

API Endpoint Reference

ParameterValuesDescription
apikeyYour API keyRequired for authentication
datasettickets, summaryWhich data to return
startISO date stringFilter start date (optional)
endISO date stringFilter end date (optional)
http://[server]:4000/api/analytics/powerbi?apikey=YOUR_KEY&dataset=tickets http://[server]:4000/api/analytics/powerbi?apikey=YOUR_KEY&dataset=summary&start=2026-01-01
⚠ API keys are separate from user passwords and license keys. Regenerate regularly. Revoke immediately if compromised.
Section 12

Themes & Customization

Audience: All Users

ForsetiDesk includes multiple built-in color themes and a fully customizable color editor. Theme settings are accessible via the theme toggle in the app header or at Admin → Settings.

Built-In Themes

ThemeDescription
MidnightDeep dark blue-grey — default theme, easy on eyes in low light
SlateDark navy with green accents — high contrast, modern look
CarbonPure black with orange accents — maximum contrast dark theme
LightClean white interface — ideal for bright environments
High ContrastBlack and white with bright yellow accents — accessibility focused

Custom Theme

Click any preset theme to load it as your starting point. Use the color pickers to adjust individual UI color variables. Click Apply Custom Theme to activate. Theme preferences are saved per browser session.

Section 13

Backup & Restore

Audience: Administrators — Pro License Required

ForsetiDesk includes built-in database backup and restore functionality using PostgreSQL's native pg_dump and psql tools. Backups are stored as .sql files on the server.

Configuring Backup Storage

Go to Admin → Backup → Configuration. Enter the backup storage path and click Save. The default path is:

C:\Program Files (x86)\ForsetiDesk\backups\

Creating a Backup

  1. Go to Admin → Backup.
  2. Click Create Backup.
  3. ForsetiDesk runs pg_dump and saves a timestamped .sql file to the configured backup path.
  4. The backup file appears in the backup list with size and creation date.
  5. Optionally click Download to save a copy to your local machine.
💡 Create backups before major changes, before upgrading ForsetiDesk, or on a regular scheduled basis.

Restoring from Backup

Warning: Restoring from a backup will OVERWRITE your current database. All data created after the backup date will be lost. This action cannot be undone.
  1. Go to Admin → Backup.
  2. Find the backup file you want to restore from the list.
  3. Click Restore next to that file and confirm when prompted.
  4. ForsetiDesk runs psql to restore the database from the selected .sql file.
  5. Restart the ForsetiDesk service after restoration completes.
Section 14

Troubleshooting

Audience: All Users

Common Issues

IssueLikely CauseSolution
Cannot log inWrong credentials or inactive accountVerify email/password with admin. Admin can reactivate account in Users tab
Blank white pageBackend service not respondingCheck ForsetiDesk service is running. Restart via Start Menu → Restart FD Service
SLA badges not showingNo Pro license or SLA disabledInstall Pro license in Admin → License. Enable SLA in Admin → Settings
Analytics show no dataDate range has no tickets or no Pro licenseAdjust the date range or install a Pro license
Cannot close a ticketBy design — must go through QAClick Submit for QA. Tickets must pass QA review before closing
Categories show only 2 levelsStandard tier limitUpgrade to Pro license to unlock 5 category levels
License invalid errorWrong install secret or trailing spaceRe-generate license using the Install Secret shown on the License tab
Port conflict on startupAnother service using port 4000Change port in Admin → Settings → Port. Restart service to apply
Cannot create more usersLicense user limit reachedDeactivate unused users or upgrade your license
Password reset email never arrivesSMTP not configured or going to spamAdmin: configure SMTP in Admin → Notifications and run Send Test Email. User: check the spam/junk folder
Email notifications not sendingSMTP unconfigured, event toggle off, or ticket has no client emailAdmin → Notifications: verify SMTP, run Send Test Email, confirm the relevant event toggle is on, and ensure the ticket has a client email set
Reset link in email opens to localhostAPP_BASE_URL not setEdit secrets.cfg and set APP_BASE_URL to the public URL of your install; restart the service
IMAP poller shows status "error"Wrong credentials, host, port, or TLS settingClick Test Connection in Admin → Email Inbox — the error message identifies the problem (auth, DNS, certificate, etc.)
Emails arrive but no tickets are createdMessages already marked read before the poll firedSend a fresh test email and do not open the mailbox until the next poll runs. Check the "Last Poll" time on the Email Inbox tab
Canned Responses dropdown is emptyNone created, all inactive, or all scoped to a different categoryAdmin → Canned Responses: create at least one with Active toggled on, leave Category blank to show on every ticket

Service Management

ShortcutAction
Restart FD ServiceStop and restart the ForsetiDesk Windows service
Stop FD ServiceStop the ForsetiDesk Windows service
ForsetiDesk Desktop AppLaunch the native desktop application

Log Files

ForsetiDesk service logs are stored at:

C:\Program Files (x86)\ForsetiDesk\logs\

Manual Backup Commands

If the Admin UI backup is unavailable, run pg_dump manually from PowerShell:

& "C:\Program Files\PostgreSQL\17\bin\pg_dump.exe" -U forsetiuser -h localhost -d forsetidb -f "C:\backup.sql"

To restore manually:

& "C:\Program Files\PostgreSQL\17\bin\psql.exe" -U forsetiuser -h localhost -d forsetidb -f "C:\backup.sql"

Getting Support