System Overview
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
| Feature | Standard (Free) | Pro | Enterprise |
|---|---|---|---|
| Ticket Management | ✓ (100 max) | ✓ Unlimited | ✓ Unlimited |
| QA/QC Workflow | ✓ | ✓ | ✓ |
| User Management | ✓ (3 users max) | ✓ License-defined | ✓ License-defined |
| Category Levels | 2 levels | 5 levels | 5 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) |
Getting Started
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:
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.
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:
- On the login screen, click Forgot Password? below the password field.
- Enter the email address associated with your account and click Send Reset Link.
- Check your inbox. A message from ForsetiDesk arrives within a minute or two containing a one-time reset link.
- Click the link in the email. It opens the reset page where you set a new password (minimum 8 characters).
- After setting the new password, log in normally with your new credentials.
Navigation
| Menu Item | Description | Access |
|---|---|---|
| Dashboard | Overview of ticket activity, SLA alerts, and key metrics | All Users |
| Tickets | View, search, create, and manage tickets | All Users |
| Knowledge Base | Browse, search, and author KB articles — clients see published public articles only | All Users |
| QA Queue | Review tickets submitted for closure approval | Admin, QA |
| Analytics | Detailed reporting, charts, and custom widgets (Pro) | All Users |
| Admin | System configuration, users, categories, license, backup | Admin Only |
User Roles
| Role | Permissions |
|---|---|
| Admin | Full system access — configure settings, manage users, view all tickets, approve/reject QA, manage license and backups |
| Tech | Create and work tickets, submit for QA review, view all tickets, view analytics |
| QA | Review and approve/reject tickets in the QA queue, acknowledge SLA breaches, view all tickets |
| Client | Submit tickets and view their own ticket status only |
End User Guide
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
| Field | Description | Required |
|---|---|---|
| Title | Brief one-line summary of the issue | Yes |
| Description | Detailed explanation including steps to reproduce and error messages | Yes |
| Priority | Severity level — Critical, High, Medium, or Low | Yes |
| Category | Issue type — select from the hierarchical category dropdown | No |
| Client Name | Name of the person experiencing the issue | No |
| Client Email | Contact email for the affected user | No |
| Assign To | Technician to handle the ticket (can be left unassigned) | No |
| Tags | Labels to categorize the ticket — click to toggle | No |
| Custom Fields | Additional fields configured by your administrator (Pro) | Varies |
Priority Levels & Default SLA Targets
| Priority | Description | Default Response | Default Resolution |
|---|---|---|---|
| Critical | System down, major outage, security breach | 1 hour | 4 hours |
| High | Significant impact, no workaround available | 4 hours | 24 hours |
| Medium | Moderate impact, workaround available | 8 hours | 72 hours |
| Low | Minor issue, cosmetic, general questions | 24 hours | 168 hours |
Ticket Status Flow
| Status | Meaning |
|---|---|
| Open | Ticket created, awaiting assignment or work to begin |
| In Progress | Technician is actively working on the issue |
| Pending QA | Technician has resolved the issue and submitted for QA review |
| QA Rejected | QA has rejected the resolution — ticket returned to technician for rework |
| Merged | Ticket has been merged into another ticket and is now read-only (new in 1.6) |
| Closed | Issue fully resolved and verified through the QA process |
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
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.
Technician Guide
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
- Ensure your Resolution Notes clearly explain how the issue was resolved.
- Set the End Time and Resolution Date fields.
- Click the Submit for QA button in the ticket detail view.
- The ticket status changes to Pending QA and appears in the QA Queue.
- If QA rejects the ticket, it returns to you as QA Rejected with notes explaining what to address.
- Rework the ticket and resubmit when ready.
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.
- Open the ticket detail page.
- Scroll to the Internal Notes panel (it sits beside the public Activity Log).
- Type your note. Basic markdown formatting is supported.
- Click Post Note. The note appears in the panel immediately, stamped with your name and the time.
- To remove a note you posted, click the trash icon on it. Administrators can remove any note.
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.
- Open the ticket you want to keep as the primary (surviving) ticket.
- Click the Merge button in the ticket actions area.
- In the merge modal, search for tickets to merge into this one. Select one or more tickets using the checkboxes.
- Click Merge Selected into This Ticket. A confirmation dialog warns that this cannot be undone.
- 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
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.
- Open any ticket detail page.
- Scroll to the Linked Tickets section (below Linked KB Articles).
- Click Link Ticket. In the modal, search for the ticket to link.
- Select a link type from the dropdown: Related, Parent/Child, Blocks, or Duplicate.
- Click the target ticket to create the link.
- To remove a link, click the X next to it and confirm.
Link Types
| Type | From Source Ticket | From Target Ticket | Use Case |
|---|---|---|---|
| Related | Related to #XYZ | Related to #ABC | Similar or connected issues |
| Parent / Child | Parent of #XYZ | Child of #ABC | Breaking a large issue into sub-tasks |
| Blocks | Blocks #XYZ | Blocked by #ABC | Dependency tracking between tickets |
| Duplicate | Duplicate of #XYZ | Duplicate of #ABC | Flagging duplicates without merging |
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.
- On the ticket detail page, place your cursor in the field you want to add text to — usually Resolution Notes or Troubleshooting Notes.
- Click the Canned Responses dropdown near that field.
- Select the response you want. The text is inserted at your cursor position.
- 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
| Badge | Color | Meaning | Action |
|---|---|---|---|
| On Track — Xh left | 🟢 Green | More than 20% of SLA time remaining | Continue normally |
| At Risk — Xh left | 🟡 Yellow | Less than 20% of SLA time remaining | Prioritize immediately |
| Breached Xh ago | 🔴 Red | SLA deadline has passed | Escalate to supervisor |
Note: SLA indicators only appear when a Pro license is installed.
Knowledge Base NEW IN 1.5
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
| Field | Values | Meaning |
|---|---|---|
| Status | Draft / Published / Archived | Drafts are works-in-progress. Published articles are visible per the visibility rule. Archived articles are hidden by default and act as a soft delete. |
| Visibility | Internal / Public | Internal 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. |
Authoring an Article
Admins and technicians can create articles. QA reviewers and clients cannot author articles but can read those they have access to.
- Open the Knowledge Base and click + New Article.
- Enter a title. The URL slug is generated automatically from the title.
- Choose a category (optional — uses the same category tree as tickets).
- Set status to Draft while you are writing. Switch to Published when ready.
- Set visibility:
- Internal for tech-only reference material
- Public for client-facing how-tos and FAQs (Pro license required)
- Add comma-separated tags for additional filtering.
- Write the body in the markdown editor. The editor supports headings, bold, italic, lists, code blocks, tables, links, and a live preview pane.
- Click Create article. After the first save you can return to the editor to upload attachments.
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.
- Open any ticket detail page.
- Scroll to the Linked KB Articles section.
- Click Link article, search for the article by title, and click it to attach.
- The linked article appears on the ticket; the ticket appears under Linked Tickets when viewing the article.
- Click the X next to a link to remove it.
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
| Action | Admin | Tech | QA | Client |
|---|---|---|---|---|
| Browse / read articles | All | All | All | Published + Public only |
| Create / edit articles | ✓ | ✓ | — | — |
| Archive articles | ✓ | — | — | — |
| Upload / remove attachments | ✓ | ✓ | — | — |
| Link / unlink articles on tickets | ✓ | ✓ | ✓ | — |
| View revision history | ✓ | ✓ | ✓ | — |
QA Reviewer Guide
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.
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.
Administrator Guide
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.
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.
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
| Setting | Description |
|---|---|
| Organization Name | Displayed in the app header and on all exports |
| Default Priority | Pre-selected priority when creating new tickets |
| Ticket Numbering | ID scheme: Auto (timestamp), Sequential, Prefixed (TKT0001), or Custom |
| Available Tags | Manage the global list of tags available on tickets |
| SLA Targets | Configure response and resolution time targets per priority (Pro) |
| SLA Enabled | Toggle SLA deadline calculation on or off globally |
| Port | HTTP server port (default 4000) — requires service restart to apply |
Ticket Numbering Schemes
| Scheme | Format | Example |
|---|---|---|
| Auto | Unix epoch timestamp (milliseconds) | #1777742555599 |
| Sequential | Plain incrementing integer | #42 |
| Prefixed | Configurable prefix + padded number | TKT0042 |
| Custom | Prefix + optional year/month + number + separator | TKT-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
- Go to Admin → Notifications.
- 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.
- Toggle the Enabled switch on.
- 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.
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
- Provision a dedicated mailbox — for example
[email protected]. Use a dedicated mailbox, not a personal account. - Go to Admin → Email Inbox.
- Fill in IMAP server details: host, port (typically 993 with TLS, or 143 without), username, password, folder (usually
Inbox), and the TLS option. - Set the Polling Interval — how often ForsetiDesk checks for new mail. The default is 5 minutes; minimum is 1 minute.
- Choose a Default Category for tickets created from email. You can re-categorize tickets individually after creation.
- 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 Field | Becomes Ticket Field |
|---|---|
| Subject | Ticket Title |
| Body (plain text or HTML stripped) | Description |
| Sender display name | Client Name |
| Sender email address | Client Email |
| RFC822 Message-ID header | Internal 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.
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
- Go to Admin → Canned Responses.
- Click + New Response.
- Enter a Title — this is what technicians see in the dropdown picker.
- Enter the Body — the actual text that gets inserted. Markdown formatting is supported.
- Optionally tie the response to a specific Category so it only appears for matching tickets.
- Set Sort Order to control where it appears in the dropdown (lower numbers first).
- 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.
Analytics & Reporting
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
| Metric | Description |
|---|---|
| Total Tickets | Count of all tickets in the selected date range |
| Avg Resolution | Average hours from ticket creation to closure |
| SLA Compliance | Percentage of tickets resolved within their SLA deadline |
| Avg Open Age | Average age in hours of currently open tickets |
| Closed Count | Count 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:
| Field | Options |
|---|---|
| Widget Name | Any descriptive label |
| Measure | Count Tickets, Average Resolution Time, SLA Compliance % |
| Group By | No Grouping, By Status, By Priority, By Category, By Technician, By Date |
| Chart Type | Number, Bar Chart, Line Chart, Pie Chart |
| Filters | Optionally filter by Priority, Status, or Client Name |
Exporting Data
| Format | Best For | Notes |
|---|---|---|
| CSV | Excel, Google Sheets, most data tools | Comma-separated, UTF-8 encoded |
| JSON | Developers, API consumers | Structured data with all ticket fields |
| Excel (.xlsx) | Formatted spreadsheets | Multi-sheet: Summary, Tickets, Priority breakdown |
| TXT | Plain text reports | Human-readable formatted report |
SLA Management
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
| Badge | Color | Meaning | Required Action |
|---|---|---|---|
| On Track — Xh left | 🟢 Green | More than 20% of SLA time remaining | Continue working normally |
| At Risk — Xh left | 🟡 Yellow | Less than 20% of SLA time remaining | Prioritize immediately |
| Breached Xh ago | 🔴 Red | SLA deadline has passed | Escalate 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.
License Management
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
- Go to Admin → License.
- Click Generate License Request to create a license request file and send it to your vendor.
- Once you receive your license key, paste it into the License Key field.
- Click Install License. The system validates the key and immediately unlocks licensed features.
License Information
| Field | Description |
|---|---|
| Edition | Standard, Pro, or Enterprise |
| Issued To | The organization the license was issued to |
| Max Users | Maximum number of active users allowed (or Unlimited) |
| Issued Date | When the license was generated |
| Expiration Date | When the license expires (or Never for perpetual licenses) |
| Unlocked Features | List 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.
Export & PowerBI Integration
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
Setting Up the PowerBI Connection
- Go to Admin → Settings and scroll to PowerBI Integration.
- Click Generate PowerBI API Key.
- Copy the full API key — it will not be shown again after you navigate away.
- In PowerBI Desktop, click Get Data → Web.
- Enter the connection URL shown on the settings screen.
- Add the API key as the
x-powerbi-keyheader orapikeyquery parameter.
API Endpoint Reference
| Parameter | Values | Description |
|---|---|---|
apikey | Your API key | Required for authentication |
dataset | tickets, summary | Which data to return |
start | ISO date string | Filter start date (optional) |
end | ISO date string | Filter end date (optional) |
Themes & Customization
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
| Theme | Description |
|---|---|
| Midnight | Deep dark blue-grey — default theme, easy on eyes in low light |
| Slate | Dark navy with green accents — high contrast, modern look |
| Carbon | Pure black with orange accents — maximum contrast dark theme |
| Light | Clean white interface — ideal for bright environments |
| High Contrast | Black 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.
Backup & Restore
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:
Creating a Backup
- Go to Admin → Backup.
- Click Create Backup.
- ForsetiDesk runs pg_dump and saves a timestamped .sql file to the configured backup path.
- The backup file appears in the backup list with size and creation date.
- Optionally click Download to save a copy to your local machine.
Restoring from Backup
- Go to Admin → Backup.
- Find the backup file you want to restore from the list.
- Click Restore next to that file and confirm when prompted.
- ForsetiDesk runs psql to restore the database from the selected .sql file.
- Restart the ForsetiDesk service after restoration completes.
Troubleshooting
Common Issues
| Issue | Likely Cause | Solution |
|---|---|---|
| Cannot log in | Wrong credentials or inactive account | Verify email/password with admin. Admin can reactivate account in Users tab |
| Blank white page | Backend service not responding | Check ForsetiDesk service is running. Restart via Start Menu → Restart FD Service |
| SLA badges not showing | No Pro license or SLA disabled | Install Pro license in Admin → License. Enable SLA in Admin → Settings |
| Analytics show no data | Date range has no tickets or no Pro license | Adjust the date range or install a Pro license |
| Cannot close a ticket | By design — must go through QA | Click Submit for QA. Tickets must pass QA review before closing |
| Categories show only 2 levels | Standard tier limit | Upgrade to Pro license to unlock 5 category levels |
| License invalid error | Wrong install secret or trailing space | Re-generate license using the Install Secret shown on the License tab |
| Port conflict on startup | Another service using port 4000 | Change port in Admin → Settings → Port. Restart service to apply |
| Cannot create more users | License user limit reached | Deactivate unused users or upgrade your license |
| Password reset email never arrives | SMTP not configured or going to spam | Admin: configure SMTP in Admin → Notifications and run Send Test Email. User: check the spam/junk folder |
| Email notifications not sending | SMTP unconfigured, event toggle off, or ticket has no client email | Admin → 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 localhost | APP_BASE_URL not set | Edit 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 setting | Click Test Connection in Admin → Email Inbox — the error message identifies the problem (auth, DNS, certificate, etc.) |
| Emails arrive but no tickets are created | Messages already marked read before the poll fired | Send 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 empty | None created, all inactive, or all scoped to a different category | Admin → Canned Responses: create at least one with Active toggled on, leave Category blank to show on every ticket |
Service Management
| Shortcut | Action |
|---|---|
| Restart FD Service | Stop and restart the ForsetiDesk Windows service |
| Stop FD Service | Stop the ForsetiDesk Windows service |
| ForsetiDesk Desktop App | Launch the native desktop application |
Log Files
ForsetiDesk service logs are stored at:
Manual Backup Commands
If the Admin UI backup is unavailable, run pg_dump manually from PowerShell:
To restore manually:
Getting Support
- Documentation: forsetidesk.com
- Support: [email protected]
- Publisher: Niles Technology Group LLC — nilestechnologygroup.com