Creating a SharePoint Helpdesk: Part 1

By:   |   Comments (2)   |   Related: > SharePoint


I know how to create basic SharePoint lists to track information, but I would like to create a dynamic workflow application for submitting and tracking helpdesk requests.


The purpose of this article is to both give you a (MOSS 2007 or WSS3) solution that you can actually use for handling helpdesk requests and to act as a learning solution where you will learn skills to create your own SharePoint applications.

Solution description

The application begins with a helpdesk request, made by any authenticated user. Using a SharePoint list form, the user completes a basic description of the problem, selects a problem category and priority. Once submitted, the Helpdesk Manager receives an email notification about the issue, with a link to the details about the request. The Helpdesk Manager assigns a technician, adding or editing fields as needed. When the manager makes the assignment, the technician receives an automated email with a link to the request item. To keep the original updated on issue progress, whenever the technician changes the list item, the user gets an automated email notification whenever the ticket item gets changed.

This solution contains 2 SharePoint lists, 1 site group, and 3 workflows. The material will be presented in 3 parts (one part per day). Each part will contain 1 of the needed workflows for the entire application.


To create this solution you should have a basic understanding about the following:

  • Creating SharePoint lists, able to add and remove fields.
  • You should have "full control" permissions in the target site for the application.
  • That you have SharePoint Designer 2007 installed.
  • You have a new blank site created for the application using unique permissions.

Application Roles

There are 3 basic roles in this application.

  1. The user making the request.
  2. The Helpdesk Manager, in charge of reviewing the request, reprioritizing and/or making changes if necessary, and assigning the request to a technician.
  3. The technician assigned to work on the issue.

Let's begin...

We begin with creating the 2 lists...

Why 2 lists? The purpose is so we can limit the number of fields the user needs to initiate the request. For instance, we don't want the user to attempt to assign the request. For the purposes of this article, that's the job of the Helpdesk Manager. Also, the progress notes will only be available after the request is made.

In the SharePoint site, create a new list by clicking "Site Actions", then "Create".

site actions

Choose the Issue Tracking list.

issue tracking

Name the first list "Helpdesk Initiation". This is the list that is used by the user to make the initial request for help. Leave all the other default choices and click "Create".


Create another list. This must also be an Issue Tracking list. Name it "Helpdesk Progress". This time, change the "Send e-mail when ownership is assigned?" option to "Yes". Click "Create".

helpdesk progress

Modify the lists as follows:

Helpdesk Initiation list

Remove the following columns:

  • Comments
  • Related Issues
  • Due Date
  • Issue Status
  • Assigned To

Modify the "Category" column to include the following choices:

  • Workstation
  • File Server
  • Network
  • Printer
  • Software
  • Remote Access
  • Other

(Feel free to modify this list).

Helpdesk Progress list

Remove the following columns:

  • Comments
  • Related Issues

Update the choices in the "Category" column to be the same as used on the Helpdesk Initiation list.

Update the choices in the "Issue Status" as follows:

  • Not Started
  • In Progress
  • Deferred
  • Completed

Make "Not Started" the default choice.

Create the Helpdesk Technicians site group

Now we need to set up a new site group for Helpdesk Technicians. On your site home page, click "People and Groups".

people and groups

Click the dropdown next to the "New" button, and select "New Group".

new group

Name the group "Helpdesk Technicians".


Do not give any permission to the group. This will get assigned later as your create resources. Leave all the permissions blank.

Add Technicians as needed to the group remembering to uncheck the annoying "Send email" option. (I always prefer to send personal emails regarding SharePoint permission setups.)

The Helpdesk Manager should be one of the technicians (you never know!).

Now go the list settings of the Helpdesk Progress list (not the Helpdesk Initiation list).


Click the "Assigned To" column.

assigned to

In the "Choose from" section, select the "Helpdesk Technicians" group you just created.


Helpdesk Progress List Permissions

Go the Helpdesk Progress list settings and click "Permissions for this list".

permissions for this list

From the "Actions" dropdown, select "Edit Permissions".


Click "OK". (Yes, we're breaking inheritance here.)


Important: Make sure you are part of the "Helpdesk Owners" site group before proceeding or you could lose total control (unless you are also a site collection administrator).

Check all permissions except "Helpdesk Owners".

helpdesk progress

From the "Actions" dropdown, select "Remove User Permissions".

user permissions

Back in the group, from the "New" dropdown, select "Add Users".

add users

Click the "Address Book" icon (highlighted below).

user groups

Do a search for "helpdesk".

webpage dialog

Your groups might differ from mine, but you will surely see "Helpdesk Technicians". Highlight it and click "Add", then "OK".

helpdesk technicians

Assign "Contribute" permissions. Uncheck the "Send Welcome Email" checkbox, then click OK.


Back in the group add another new user from the "New" menu.

Click "Add all authenticated users". (This means anyone with SharePoint access in your organization.) Assign "Read Only" access (and uncheck the "Send welcome email" checkbox. Then click "OK".


When you are finished this is what the permissions for the Helpdesk Progress list should look like.


Helpdesk Initiation List Permissions

Enter the Helpdesk Initiation list settings.

list settings

Click "Permissions for this list".


Remove all but "Helpdesk Owners".


Add a new user from the "New" menu. Click "Add all authenticated users".

Give this "Contributor" permission and uncheck the "Send welcome email" checkbox. Then click "OK".


This is what the permission setup should look like for the Helpdesk Initiation list.


Getting started with the first workflow

Open SharePoint Designer 2007. From the "File" menu, select "Open Site".

Then enter the base URL of your helpdesk site. You can get this URL address from your web browser, but remove the reference to "/default.aspx".


In the "Folder List" of your site, expand the "Lists" object. You should see the new lists you created.

folder disk

From the "File" menu, click "New", then "Workflow".


Enter the name "Move Helpdesk Tickets", select "Helpdesk Initiation" and check the "Allow this workflow to be manually started from an item". (Later on we will automate this...but for now, let's do this manually.)

helpdesk initiation

Rather than just using the number from the ID column, we're going to create a variable and then build a dynamic string in order to capture a user friendly name for the helpdesk ticket.

Click the "Variables" button, then click "Add". Enter the name of "TicketName". The type should be "String". Then click OK twice.


Change name of Step 1 to "Build Dynamic String for Title" (Looks like I made a typo in only need one word for "Title".) From the "Actions" menu, select "Build Dynamic String". (If you don't see it in the list, click "More Actions" to find a complete list.)

build dynamic string

Now we're going to build the dynamic string. Click the link "dynamic string". Type "Ticket #".

Then click the "Add Lookup" button at the bottom.

Keep the source as "Current item" and select "ID" from the field dropdown.

Then click "OK" twice.


Then type a space, and then a hyphen, then another space.

Then click "Add Lookup".

The source should still be "Current Item". In the field dropdown, select "Created By".

Then click "OK" twice.

string builder

The entire dynamic string should look like this.

string builder

Back in the Action, click "variable", then the "Variable" dropdown and select "TicketName".

ticket name

Now we are going to create another workflow step. Click "Add workflow step".


Name the new step "Set Title Field to Dynamic String".

Then, under the Actions dropdown select "Set Field in Current Item". (You might have to look under "More Actions" to find it.)

current item

Click "field" and select "Title" as the field.


Click "value".


Then click "fx"


Select "Workflow Data"


Choose "Variable: TicketName"

ticket name

Here's what the action should look like.

ticket name

Add a new workflow step. Click "Add workflow step".

Name this "Copy Ticket to Helpdesk Progress List.".

Under the "Actions" menu, select "Copy List Item". (Remember to check "More Actions" if you need to.)

workflow step

Click the 1st "this list" and select "Current Item".

current item

Click the 2nd "this list" and select the "Helpdesk Progress" list.

helpdesk progress

Now, from the main workflow screen, click the "Finish" button at the bottom. You will see your workflow being published to the site.


From the Folder List, you will now see new objects listed under "Workflows".

helpdesk tickets

Let's test drive it!

Start up a "New Item" from the "Helpdesk Initiation" list

new item

The Title column can contain anything...but right now it's a required field, so you have to enter something. Enter some text in the Description area and choose a Category. Then click "OK".

new item

Now, from the list you will see your new entry. Hold your mouse over the title field until you see the dropdown. Select "Workflows".


Click the "Move Helpdesk Tickets" workflow.


Then click "Start".


In the list, you will now see that the dynamic string we created changes the Title of the list item. You will also now see a new field called "Move Helpdesk Tickets". This is a workflow field and was dynamically generated.

helpdesk initiation

You should also check the Helpdesk Progress List to make sure the item was copied. While there, note the new fields that are now available to the application.

Note that with this application, the originating user that created the request does not have write access to the Helpdesk Progress list. Only the helpdesk manager and technicians can edit these entries.

In the next two articles we will put some refinements on the system. Once the item is copied to the Helpdesk Progress list, we'll delete it from the Helpdesk Initiation list as it is no longer needed. Then we'll notify the Helpdesk Manager, who will in turn, assign the request to a technician. The originating user will get automated progress updates on the helpdesk ticket.

Next Steps
  • Check the next article in this series.

sql server categories

sql server webinars

subscribe to mssqltips

sql server tutorials

sql server white papers

next tip

About the author
MSSQLTips author Rob Fisch Rob Fisch has worked with SQL Server since version 6.5 as a dba, developer, report writer and data warehouse designer.

This author pledges the content of this article is based on professional experience and not AI generated.

View all my tips

Comments For This Article

Wednesday, August 23, 2017 - 4:03:49 PM - David Cox Back To Top (65207)

 Still helpful today.

Friday, November 4, 2016 - 5:56:34 PM - Cas Back To Top (43704)

Hi thanks for this articles on how to Creating a SharePoint Helpdesk using SharePoint 2007.However is their a 2013 version ?

Thank in advance 





get free sql tips
agree to terms