Employee Help Desk System with SharePoint (On-Premise)

Introduction
SharePoint is a powerful collaboration platform that can be customized to meet various business needs. This blog demonstrates how to build a real-time Employee Help Desk System using SharePoint On-Premise. It includes ticket management, notifications, and a dashboard for monitoring.
1. Understanding the Requirements
Objective: Build a centralized help desk system to manage employee tickets.
Key Features:
- Employees can submit tickets through a SharePoint list.
 - Help desk agents are notified in real-time.
 - Dashboard to monitor ticket statuses and SLAs.
 
2. Setting Up SharePoint On-Premise
Prerequisites
- SharePoint 2016/2019 On-Premise installed.
 - SharePoint Designer 2013 for workflows.
 - Administrative access to SharePoint Central Admin.
 
Create a Help Desk Site
- Open SharePoint Central Administration.
 - Create a new team site and name it Employee Help Desk.
 - Configure permissions:
- Employees: Contribute permissions.
 - Help Desk Agents: Edit permissions.
 - Admins: Full Control.
 
 
3. Design the System
Step 1: Create a Ticket Submission List
- Navigate to the Help Desk site.
 - Create a custom list named Tickets with the following columns:
- Title (Single Line Text): Ticket title.
 - Description (Multiple Line Text): Detailed description.
 - Category (Choice): Issue category (e.g., IT, HR, Finance).
 - Priority (Choice): High, Medium, Low.
 - Status (Choice): New, In Progress, Resolved, Closed.
 - Assigned To (Person/Group): Agent assigned.
 - Created By (Default): Auto-populated by SharePoint.
 - Created Date (Default): Auto-populated by SharePoint.
 
 
Step 2: Configure Notifications with Workflows
- Open SharePoint Designer 2013.
 - Connect to your Help Desk site.
 - Create a new workflow for the Tickets list:
- Trigger: When a new item is created.
 - Action: Send an email notification to the assigned agent.
 
 
Example Email Template:
Subject: New Ticket Assigned - {Current Item: Title}
Body:
A new ticket has been assigned to you.
Details:
- Title: {Current Item: Title}
- Description: {Current Item: Description}
- Priority: {Current Item: Priority}
- Assigned By: {Current Item: Created By}
- Publish the workflow.
 
Step 3: Create Views for Real-Time Monitoring
- All Tickets View: Displays all tickets with key details.
 - My Tickets View: Filters tickets by the logged-in user.
 - Dashboard: Use a combination of views and web parts to summarize:
- Total Tickets.
 - Tickets by Status.
 - Average Resolution Time.
 
 
4. Adding Real-Time Features
Enable Real-Time Notifications
Configure SharePoint Alerts:
- Users can subscribe to alerts for updates on tickets they created or are assigned to.
 - Alerts are sent via email or SMS (if configured).
 
Use PowerShell to automate alert subscriptions for new users:
Add-PSSnapin Microsoft.SharePoint.PowerShell
$web = Get-SPWeb "http://yoursharepointsite"
$list = $web.Lists["Tickets"]
$user = $web.EnsureUser("DOMAIN\\username")
$list.AddAlert($user, "New Tickets")
Implement SignalR for Live Updates (Optional)
- Deploy a custom web part using SharePoint Framework (SPFx).
 - Use SignalR in the web part to display live updates of ticket changes.
 
5. Advanced Customization
Integrate with Microsoft Teams (Optional)
- Create a Microsoft Teams channel for the Help Desk.
 - Use Power Automate to send ticket updates to the Teams channel.
 
Generate Reports with Power BI
- Export the Tickets list to Power BI.
 - Create interactive dashboards showing:
- Ticket trends.
 - Average resolution time by agent.
 - SLA compliance.
 
 
6. Testing and Deployment
- Test the workflows by creating sample tickets.
 - Verify email notifications are sent correctly.
 - Test the dashboard to ensure ticket data is updated in real-time.
 
7. Presenting to the Client
Key Points to Showcase:
- Ease of Use: Demonstrate how employees can quickly submit tickets and track status.
 - Efficiency: Highlight real-time notifications and the dashboard's insights.
 - Scalability: Explain how the system can be extended for additional workflows or integrations.