1. Plan the configuration and entry points
This guide describes the implemented Support workspace and its existing Service Desk dependencies for release 2026.10.1.0. Make configuration changes through the organisation's authorised administration process. A route or visible button is not a substitute for menu security, module licensing, workflow access or membership. Record current values and test with representative employee, first-line, second-line and administrator accounts before rollout.
| Purpose | Actual page or component |
|---|---|
| Modern workspace | HRFSupport.aspx: My Tickets, Assigned Tickets, personal creation, support updates and on-behalf creation. |
| Service Desk setup | Modules/Setups/HRF_SERVICE_DESK_SETUP.aspx: activation, version, workflow, document type, groups/roles and contact settings. |
| Legacy capture | Modules/ServiceDesk/Capture/HRF_Incident_Request.aspx: older employee capture/FAQ and document workflow. |
| Legacy support dashboard | Modules/ServiceDesk/Approval/HRF_ServiceDesk_Dashboard.aspx: assigned support view and resolution instruction route. |
| Legacy resolution | Modules/ServiceDesk/Approval/HRF_ServiceDesk_ResolutionScreen.aspx: feedback, handoff and document actions. |
| Reassignment administration | Modules/ServiceDesk/Admin/HRF_SD_Support_tool.aspx. |
| Knowledge and analytics | HRFKnowledge.aspx and HRFChatbotAnalytics.aspx. |
1.1. Navigation and version routing
Menu captions are configurable. Existing Service Desk menus include Service Desk DashBoard, Re-Assign Query to Support User, Log Query For Employee and Log a Call. Version configuration can redirect these routes to the modern workspace through loading.aspx?RDir=HRFSupport.aspx. A user may therefore see a familiar Service Desk caption while receiving the modern screen. Open the setup page through the permitted administration/menu entry; do not distribute a private host URL as a way around access controls.
- Inventory the installed release and identify the current menu entry, workflow template and intended support audiences.
- Check the Service Desk module licence and the normal authenticated user/employee context. Legacy capture explicitly checks the SD licence and expiry.
- Record existing ServiceDesk, document and optional Assistant/Chatbot2 settings before changing them. Preserve organisation-specific values.
- Choose a pilot workflow and test account set. Test personal visibility separately from assigned visibility and Knowledge-editor access.
- Confirm notification recipients and delivery configuration before saving a request during acceptance testing. A real capture can start a workflow and send notifications.
2. Set the Service Desk foundation
2.1. Settings managed by Service Desk setup
The setup screen loads existing HRF_MYFOCUS_SETTING rows and updates changed values when saved. The usual routing category is ServiceDesk within module ServiceDesk. General contains Version and legacy display/sort settings. Two-argument accessors also exist in older code, so preserve the installed key and category conventions rather than creating similarly named duplicate rows.
| Exact setting name | Purpose and verification |
|---|---|
| Active | Y/N activation value saved by setup. Also retain the required licence, menu and user permissions. |
| Version | General category. Selects the configured Service Desk version; the separate version-configuration action also changes navigation. |
| WORKFLOWTEMPLATEID | Workflow process selected from HRFWF_LT_TEMPLATE_PROCESS_MAPPING where APPLICATION and APP_MODULE are Service Desk. |
| FirstLineSupport | First-line value selected from myGroups in setup. Verify actual workflow and legacy role behavior; selection alone is not an access grant. |
| SecondLineSupport | Configured second-line group IDs consumed by group lookup and support routing. Not saved by the fields shown in the basic setup save switch. |
| SuperUser_Group | Group used by the legacy dashboard's CheckIfSuperUser access path. |
| Admin_Roles | Role ID(s) used by legacy Service Desk role lookup against employee position-role assignments. |
| Redirect_Firstline_Support | Template step ID chosen from the selected workflow's steps. |
| Close_Workflow | Closure step ID chosen from the selected workflow's steps. |
| Doc_Type_ID | Active document type used to index and link request/feedback documents. |
| HRADministrators_EmailAddress | Administrator contact address; setup requires a nonblank syntactically valid email. |
2.2. Other installed keys and legacy readers
| Setting / scope | Use |
|---|---|
| ServiceDesk / General / DisplayPersonalDetails | Controls personal-detail visibility in legacy capture and employee-info resolution controls. |
| ServiceDesk / General / OpenCallsOrderByDateLoggedAscending | Legacy open-call ordering. The modern Kendo grid has its own default sorting. |
| ServiceDesk / General / ClosedCallsOrderByDateLoggedAscending | Legacy closed-call ordering; do not assume it overrides a user's modern grid sort. |
| ServiceDesk / Firstline_Group | Present in the installed settings catalog. Do not substitute this name for FirstLineSupport without checking its caller. |
| Default_Comp_code | Read as a fallback by capture/resolution/modern context properties; it was not present in the inspected local ServiceDesk catalog. Provision only through the approved environment contract if needed. |
| NotificationEmail_CreatorFeedback | Read by a legacy capture feedback path; inspect installed provisioning before relying on it. |
The basic setup form validates the administrator role, super-user group, workflow, redirect step, close step, document type and administrator email. Correct a highlighted selection before saving. Workflow-step selectors are rebuilt from the selected template's XML, so a step ID from another template is not interchangeable. Refresh configuration through the organisation's normal application/cache process and reopen the screen when verifying a changed value.
3. Configure routing, first-line intake and access
3.1. Separate the access layers
| Layer | What to configure or test |
|---|---|
| Menu and screen access | Allow intended users to open the correct modern or legacy entry. Keep employee and support-administration access distinct. |
| Workflow destination | Review the initial step and destination type/code in the selected Service Desk workflow template. |
| First-line role/group behavior | Service Desk setup loads FirstLineSupport from myGroups, while legacy Load_Support_Role also compares it to hrd_hrol_id. Check intended role assignment and effective results rather than assuming matching numeric IDs are equivalent. |
| Second-line membership | SecondLineSupport supplies group IDs. Verify actual user membership and the groups returned by GetSecondLineGroups. |
| Administrator access | Check SuperUser_Group and Admin_Roles independently. Legacy administrator and manager paths are not the same as being a member of a second-line group. |
| Employee context | Company, employee and user identity must refer to the intended person. On-behalf capture retains the target person separately from the capturing user. |
- Select a workflow mapping whose application/module are Service Desk. Inspect its initial destination and the configured redirect/close steps.
- Populate the intended support roles/groups and memberships through the established user/group/role administration pages.
- Sign in as a first-line agent and create or receive a controlled acceptance request through the normal capture path. Verify its reference, destination and assigned visibility.
- Verify that a second-line specialist sees the intended assigned work after a permitted reassignment and that an unrelated user does not receive broader work.
- Test a super user separately. Confirm that the employee still sees their personal record and only the intended public response.
3.2. Workflow variables and handoff
The modern capture path creates a workflow procedure and initial step, then writes variables including Comp_Code, Emp_No, Employee, Created_By, Requested_By_User_ID, Reference_No, CallID and Call_Details. These preserve requester/capturer and ticket context. Reassignment requires a destination group, classification and internal comments in the UI, then updates the active workflow. Do not manually fabricate those variables or change a call's user IDs to make a queue look populated.
The authoritative modern ticket listing is HRF_SP_SERVICE_DESK_CALLS_MY_CALLS through HRFCLS_SD_CALLS.GetMyTickets. Native group/workflow visibility remains the functional contract. An empty assigned list may be correct for the signed-in user. First check scope and workflow state, then configuration; do not widen permissions as a troubleshooting shortcut.
4. Classify tickets and store documents
4.1. Native classifications
| Administration area | What it controls |
|---|---|
| HRF_SERVICE_DESK_CATEGORY | Category Code/Title, Active and VisibleOnOwnTickets. Personal create/on-behalf options filter to visible categories. |
| Modules/Core/Lookups/HRF_SERVICE_DESK_SUB_CATEGORY.aspx | Subcategories under a category; preserve the parent-category relationship. |
| Modules/Core/Lookups/HRF_LT_SERVICE_DESK_PRIORITY.aspx | Native priority descriptions, order and default. The insert trigger supplies a default for NULL priority. |
| HRF_SERVICE_DESK_STATUS | Native status codes O/P/D/R/CLD/C. Preserve these business meanings and result shapes. |
| Modules/Core/Lookups/HRF_LT_SD_FAQ.aspx | Legacy Service Desk FAQ maintenance; separate from modern HRF_KB_Items publishing. |
4.2. Document type and storage
Set ServiceDesk / ServiceDesk / Doc_Type_ID to an active DOC_DOCUMENT_TYPE record. The document helper resolves the library linked to that type and indexes the file before linking it to the ticket. The modern upload index contains CALL_ID, COMP_CODE and EMP_NO. The uploaded file is first written to the configured application cache with a generated file name; indexing requests deletion of that temporary source after upload. Storage can use the installed document library's local or Azure-backed source configuration. Do not put storage credentials into a guide or a support ticket.
| Boundary | Implementation guidance |
|---|---|
| User-facing size guidance | The modern create form displays max 10 MB each. This is a displayed guideline, not a complete server enforcement contract. |
| Modern upload handler | HRFSupport.ProcessTicketAttachments authenticates, requires a configured numeric document type, indexes files and links successful documents. The inspected handler does not itself check per-file length or extension before SaveAs. |
| Web request limits | IIS maxAllowedContentLength and ASP.NET maxRequestLength can reject a whole request. The application reads requestLimits into MyFocus_Settings.MaxAllowedContentLength. Use appropriate units and test combined batches. |
| Shared upload controls | HRF_WUC_GEN_DOC_UPLOAD uses the shared allowed extensions and application max length and performs validation. Do not assume identical checks exist in every upload entry. |
| Allowed file types | Documents / General / ALLOWED_FILE_TYPES is read by DocumentHelper, with a built-in fallback list. Confirm which upload path actually uses that validation. |
| Permissions | Document-type selection/upload permission rules and document viewing access remain relevant; selecting a type does not grant unrestricted document access. |
4.3. Acceptance checks
- Upload an approved small screenshot and PDF through each supported entry point. Confirm a ticket link, viewer result and intended library placement.
- Test a disallowed extension and a batch that exceeds the intended request limit in a controlled acceptance environment. Record the actual result rather than claiming a limit based on UI text.
- Test partial failure: retain the saved ticket reference and inspect which files linked successfully.
- Confirm cache write permissions and library connectivity without exposing private paths or connection secrets in user-visible errors.
- Test authorised document removal and verify that unrelated documents are unaffected.
5. Configure reusable solutions, FAQ and Knowledge
5.1. Common solutions are an explicit support action
Assistant / Chatbot2 / CommonSolutionsEnabled controls the modern common-solution endpoints. Missing or unrecognised values leave the service disabled. Enabled search uses HRF_SP_SD_COMMON_SOLUTION_SEARCH with at most five results; titles/problems/solutions/keywords are normalised to plain text. Saving uses HRF_SP_SD_COMMON_SOLUTION_SAVE; use recording is separate through HRF_SP_SD_COMMON_SOLUTION_USE. These are not equivalent to an automatic Knowledge Hub publication.
| Save rule | Effect |
|---|---|
| Authenticated user and feature enabled | The request must have a signed-in user and the common-solution gate must be on. |
| Resolved status only | The source ticket must currently have StatusCode R. |
| Actual resolver only | Resolvedby_User_ID must equal the current user. A different agent cannot publish just because they can view the ticket. |
| Required reusable content | A title and solution are required. Limits: title 250, problem 2000, solution 8000 and keywords 1000 characters. |
| Outcome independence | A common-solution error can occur after the ticket has resolved. Do not repeat the resolution action merely to retry the reusable entry. |
5.2. FAQ host and legacy content
The Support FAQ action calls the parent host's toggleFAQModal function. Test it from the standard My Focus host as well as any embedded context; opening HRFSupport.aspx alone does not create that host integration. Legacy capture can also load HRF_SERVICE_DESK_FAQs. MyFAQ.aspx uses the older FAQ-topic model, and MyFAQAdmin/MyFAQTopics are distinct legacy administration pages. Choose the intended content pipeline rather than assuming every FAQ screen uses the same table.
5.3. Knowledge audience and type rules
The modern Knowledge Hub uses HRF_KB_Items with active area, entry type and optional active category. KnowledgeScopePolicy permits static FAQ in FAQ and static KnowledgeArticle in Knowledge. MyData needs an authenticated employee context; dynamic execution is restricted to MyData/MyDataQuery. Unsupported or unknown area/type combinations are not execution permissions. A general support article must not gain employee-data SQL just because it is being published from analytics.
5.4. Version configuration and FAQ transfer
The setup "configure version" action executes HRF_SP_SERVICE_DESK_CONFIGURE_VERSION. This changes menu/instruction targets and can transfer old Service Desk FAQs into Knowledge. Treat transfer as a migration, with a backup, source/target counts and duplicate review. The inspected procedure's transfer duplicate predicate is not a safe rerun guarantee; repeated forced transfer can duplicate content. Do not use ForceTransfer as a routine refresh. Review and correct any migration issue through a separate approved implementation before production use.
The migration marker is SYSTEM / Configuration / KnowledgeItems.OldServiceDeskHowToImproted, using the installed spelling. The migration resolves FAQ area/type and General category. Validate those target lookup rows and editorial quality before activation. Version routing does not automatically replace every workflow approver page; inspect existing templates and instructions.
6. Configure Chatbot Analytics and editorial publishing
| Assistant / Chatbot2 setting | Actual gate |
|---|---|
| AnalyticsEnabled | Required for every analytics viewer. Default/fallback is false. |
| AnalyticsAccessUserIds | Allow-listed positive user IDs separated by comma, semicolon or pipe. |
| AnalyticsAccessGroups | Allow-listed exact group names separated by comma, semicolon or pipe; these are names, not group-ID CSVs. |
| AnalyticsDefaultDays | Default view range, clamped to 1-365 days; parse failure falls back to 30. |
| AnalyticsKnowledgeAuthoringEnabled | Requires existing viewer access and enables Knowledge authoring. |
| AnalyticsAIDraftEnabled | Additional gate for AI-assisted draft creation. |
| AskAIEnabled | Also required for AI drafting. System / WebApi / OpenAIEnabled must additionally be true. |
6.1. Access and supported authoring
ChatbotAnalyticsAccess.UserCanView requires a valid session/user, AnalyticsEnabled and an allow-listed user ID or exact group membership. UserCanAuthorKnowledge adds the authoring gate. UserCanGenerateAIDraft adds all three AI gates. The controller rechecks access on its endpoints and prevents caching of analytics responses. A general administrator title does not bypass the explicit allow list.
- Allow the smallest intended editorial audience and verify one permitted and one unpermitted account.
- Open HRFChatbotAnalytics.aspx. Confirm overview, date/source/rating/search filters, question detail and the Knowledge improvement history. The overview can return bounded lists, such as 50 top questions; the export is labelled Export loaded questions.
- Enable authoring only for the intended editors. Lookups are limited to active FAQ/Knowledge areas, active categories and entry types FAQ or Knowledge Article.
- Choose a question group, enter the required title/question/short answer and select a valid area/category/type. Save a draft first when editorial review is still outstanding.
- Use an explicit Publish action only after checking the organisation's policy and removing case-specific or confidential content. Confirm the resulting Knowledge item and its active audience.
6.2. Optional AI draft boundary
The suggestion endpoint rejects unsuitable questions before sending them to Ask AI. Its instructions request general process guidance and prohibit invented policy, personal/payroll values, legal conclusions and confidential information. These controls do not guarantee correctness. An editor must still review the generated draft, verify organisation-specific wording and decide whether to save or publish. Disabling AI drafting does not remove the separate manual Knowledge-authoring route.
6.3. Database and API contracts
Read operations use HRF_SP_CHATBOT_ANALYTICS_GET and HRF_SP_CHATBOT_ANALYTICS_QUESTION_GET. Publishing uses HRF_SP_CHATBOT_KNOWLEDGE_ITEM_SAVE and records the question-group relationship, user and action. The API permits only entry types 1/2 and requires title, question and short answer. Character limits include title 300, question 500, short answer 1500, full content 8000, tags 1000 and editorial notes 1000. The controller builds safe Knowledge HTML from plain content.
7. Notifications and report-export preferences
7.1. Notifications follow actual workflow actions
The modern CreateTicket path persists the request and calls StartWorfklow. The initial configured destination determines creator/first-support notification actions through HRFCLS_NOTIFICATIONS_WRAPPER. On-behalf capture has separate capturing-user/target-user branches. Do not promise identical recipients for every case; test the selected template and actual memberships.
| Template/action name | Purpose in inspected call paths |
|---|---|
| SD_CREATOR | Creation acknowledgement path. |
| SD_FIRSTSUPPORT | Initial support destination notification. |
| SD_CREATORFEEDBACK | Personal-ticket update to current approvers. |
| SD_FEEDBACK_TO_ASSIGNED | Assigned support response to the employee, where used by the update path. |
| SD_SECONDSUPPORT | Legacy second-line reassignment notification. |
| SERVICE DESK template category | Notification wrapper category used by these Service Desk actions. |
Inspect existing email templates, destination types, recipient addresses, queue processing and provider health. The wrapper supports user/group/role-style destinations in these paths; a pool-delivery TODO is not a tested delivery feature. A successful ticket save and a successful email delivery are separate outcomes. Never fix a delivery issue by placing credentials or unrestricted recipients in the ticket description.
7.2. Shared export defaults
| Report Portal / CONFIGURATION setting | Default and runtime meaning |
|---|---|
| DefaultExcelCombinedWorksheet | Current/default 0; CHECK_BOX_01. Baseline for the shared Excel combined-worksheet preference when a fresh export settings context is opened. Existing client values/defaults are preserved by provisioning. |
| DefaultExportFormat | Current/defaultexcel; TEXT_BOX_01 storage. The settings UI uses an allow-listed dropdown of excel, pdf, word and image rather than arbitrary format text. Existing configured values are preserved. |
Manage these values under Modules/HRF_REPPORTAL/ADMIN/HRF_REPPORTAL_ADMIN_REPORTS_SETTINGS.aspx in the Export defaults card, using the preferred-format dropdown and one-worksheet checkbox. Values are read on each fresh export-panel opening. The user can override layout/format for the current download. Where a preferred format is unavailable for a report, the helper selects Excel if permitted, otherwise the first permitted format. Support has only Excel and opens its own Export Support Tickets modal, using shared defaults/rendering rather than the full ReportSettingsUI panel.
Support Export runs a fresh authorised GetMyTickets query on the server and applies the current status, nested search/column filters, sorting and permitted visible columns to all matching pages. Its modal fixes Format to Excel (.xlsx). Unchecked one-worksheet preference produces Report Summary and Results; checked produces one Results worksheet with report/company branding, header, criteria and typed data. Test both layouts, row count, actual logo/branding, dates and values, and an empty authorised assigned scope. Do not equate export scope with every database ticket or only the current page.
8. Roll out, troubleshoot and retain evidence
8.1. A practical acceptance sequence
- Before change: record the release, current setting keys/values, workflow mapping and existing menu/FAQ target routes in private change evidence.
- Provision only missing settings. Preserve current and default values already selected by the organisation. Apply approved database scripts in their established release order.
- Test employee create, required fields, selected category/subcategory, contact values and generated reference. Confirm that the expected workflow and permitted recipients are used.
- Test update and attached-document viewing/removal, including partial upload failure and session expiry.
- Test first-line assigned visibility, public/internal feedback, activity history, operational priority and second-line reassignment. Verify an unrelated user's scope.
- Test on-behalf employee selection/preview and saved ownership. Test resolve/close/cancel once with an intended acceptance record; verify confirmation, notes, dates and notification effects.
- Test optional common solutions and both authorised/unauthorised analytics/editorial paths. Verify draft versus publication and optional AI availability independently.
- Test Support Excel and shared fresh-open export defaults, including a runtime override and existing client-setting preservation.
- Collect final references, role/account labels, results and screenshots without sensitive values. Obtain operational acceptance and document rollback responsibility.
| Symptom | Check first |
|---|---|
| Modern workspace is not reached | Version setting, HRF_SP_SERVICE_DESK_CONFIGURE_VERSION routing, My_Menu/My_SubMenu/HRF_MainSideMenu and instruction targets. |
| Assigned list empty | Selected status/view; current workflow step/destination; effective user/group/role scope; native listing result. |
| Second-line selector unavailable | SecondLineSupport value, actual group rows/membership and lookup error. Do not cache a failure as a valid empty list. |
| Upload fails before response | IIS/ASP.NET total request limit, cache access, configured document type and library connectivity. |
| Ticket saved but file absent | Per-file result, linked document rows and library indexing outcome; do not duplicate the ticket. |
| Notification absent | Workflow created/active destination, template category/name, recipients, message queue and provider processing. |
| FAQ opens nowhere | Parent host toggleFAQModal integration and chosen legacy/modern content route. |
| Common solution cannot save | Feature flag, source ticket R, actual resolver, title/solution requirements and stored-procedure availability. |
| Analytics access denied | AnalyticsEnabled plus explicit user-ID/exact-group allow list; authoring and AI are additional gates. |
| Knowledge item not visible | Active area/type/category/item and allowed area/type audience; draft versus published state. |
| Changed default appears ignored | Reopen a fresh settings context; inspect current runtime override and exact shared setting triplet. |
8.2. Operational boundaries
Do not disable triggers, bypass authentication, manufacture workflow assignments or edit employee ownership to make a test pass. Preserve existing cases and follow the approved rollback plan for configuration changes. Treat legacy FAQ transfer separately because menu routing and data migration are different kinds of change. Screenshots of editor states show available controls; they are not evidence that a save, notification or upload succeeded.
8.3. Implementation evidence map
| Evidence | Key facts traced |
|---|---|
| HRFSupport.aspx and HRFSupport.aspx.vb | Modern entry, ticket methods, attachment handler, workflow variables, notifications, common-solution gates. |
| Scripts/hrf.support.v1.js | Create/update/on-behalf validation, personal priority restrictions, reassign/resolve confirmation, FAQ host, grid filtering and export. |
| Modules/Setups/HRF_SERVICE_DESK_SETUP.aspx.vb | Actual settings load/save, lookup sources, workflow-step lists and configure-version invocation. |
| Classes/ServiceDesk/CLS_SERVICE_DESK_HELPER.vb | Legacy role/group and first/second-line interpretation. |
| Classes/DocumentHelper.vb; Controls/HRF_WUC_GEN_DOC_UPLOAD.ascx.vb | Document library, shared allowed types and upload-validation boundaries. |
| Classes/ChatbotAnalyticsAccess.vb; Controllers/ChatbotAnalyticsController.vb | Analytics/authoring/AI gates, bounded results, draft/publish API. |
| Classes/KnowledgeScopePolicy.vb; Controllers/KnowledgeHubController.vb | Knowledge audience/type allow list and dynamic MyData execution boundary. |