Fabulous 40 Application Templates - Help Desk

It's been a while since I've been able to continue my Application Templates series, but we move on to the Help Desk template which has some neat customizations that you can take onto your own projects. 

 

The Help Desk template is a part of the server admin templates provided directly from Microsoft here.  This template is based off of a site definition which needs to be installed by a SharePoint server administrator using stsadm.  The Help Desk template was designed for the IT / Operations business area and the official description is described below:

 

The Help Desk application template helps teams manage the process of handling service requests. Team members use the application template to identify a service request, manage identification of the root cause and track solution status. The application template provides role-based dashboards displaying information relevant to customer service representatives and managers, including performance history.*

 

Features:

By using a site definition when you create a site based off of this template it automatically activates the custom features associated with this template.  The custom features that are automatically activated are:

 

-          Knowledge Base Keyword List

-          Knowledge Base Knowledge Base List

-          Help Desk Experts List

-          Help Desk Service Request List

-          Help Desk Support FAQ List

-          Help Desk Tasks List

-          Help Desk List Instances

-          Help Desk Modules

-          Knowledge Base Provisioning Handler

-          TSA Post Provisioning Event Handler

 

The Keyword List, Knowledge Base List, Experts List, Service Request List, and FAQ List features create the schema for those lists where the Help Desk List Instances create the actual lists when the site is created.  The most interesting features are the Help Desk Modules (which contains a couple Data View web parts AND SharePoint Designer Workflows) and the Knowledge Base Provisioning Handler (contains event handler).

 

Custom Libraries:

Knowledge Base – The Knowledge Base document library has content types automatically associated with it, Knowledge Base Document and Knowledge Base Article.  These content types automatically provide some custom lookup columns which tie into the Keywords list and also allows you to reference Related Articles. 

 

The Knowledge Base Article content type is based off of the Wiki format, however because the document library is not based off of the WebPageLibrary template, you cannot use the page linking features, this is probably why the included the Related Articles lookup field so you could have some document linking functionality.  Because you are only able to link documents together through the lookup field, the Incoming Links feature used with Wiki Pages is no longer valid.  However the inline history is still available on the article’s content.

 

Application Pages – The Application Pages document library is an out-of-the-box document library that automatically contains pages used by help desk personnel.  The pages included in this document library contain various Data View’s and the individual pages should have their permissions managed based on personnel functions/roles.

 

Custom Lists:

Experts – This list works very similar to a regular contact list, but is trimmed down to work for the Help Desk template.  It also includes a lookup column referencing the Keywords list, that that an expert can be defined with multiple keywords, making it easier to allocate the correct resource to an issue.

 

Keywords  This list defines the keywords available for use in Service Requests, Knowledge Base Articles and Expert association.

 

Service Requests – The Service Requests list is the main list for this template.  It uses various column types including; single text, multiple text, person or group, lookup, choice, date and time, yes/no, and calculated.  This list also has the Article Request workflow associated with it to flag if an article should be created based on a service request.  There are also many custom views on this list to help different roles manage service requests in different ways.  It should be noted that this list uses the Service Request content type which has some columns that do not show up in the NewForm.aspx.  You may start to think that they customized the NewForm.aspx, however instead of customizing the page, some columns in the Service Request content type have the property ShowInNewForm set to FALSE.  There are similar properties for the Display Form and Edit Form that you can set on individual columns if you define them through an XML definition or you can change individual column properties using PowerShell.

 

Service Request Tasks – This list defines tasks created from the Article Request workflow.  This list contains a Link and Outcome column that aren’t defined by any content type associated with this list, nor have I found where an end user would input any information into those columns.

 

Support FAQs – The Support FAQ list is a custom list that lets you create quick answers to common issues.  Once again there are a few lookup columns in this list, Related Articles and Keywords.

 

Custom Pages:

Default Page

The default home page for the site contains many regular list view web parts showing current Announcements, recently updated FAQs, related Links, and the current users active Service Requests.

 

They have also modified the quick launch, or current navigation, to include some common actions for this site like creating a service request.  Also if you are a member of the Help Desk Staff the quick launch provides you instant access to the dashboard Application Pages you have access to.

Help Desk home page

 

Service Representative Manager

The Service Representative Manager page is a great example of a dashboard created using Data View Web Parts.  All, except the My Tasks web part, of the web parts on this page have been created using the Data View Web Part.  The Average Resolution Time web part is an example of how you can create a custom KPI using Data View Web  Parts.  This dashboard also contains two other Data View Web Parts to give the service representative manager a bar chart representation for Overall Service Request Status and Overall Service Request Priority.  The Service Requests web part is another Data View Web Part that references different list views of the Service Requests List.  To get further information on how some of these customizations have been created, take a peek at the Application Templates Under the Hood document provided from Microsoft (Dashboard section begins on page 24).

Service Representative Manager dashboard

 

Knowledge Manager

The Knowledge Manager page is another example of a dashboard that can be created using multiple list views.  The My Documents, Recent Additions, and Recent Changes web parts are just different views of Knowledge Base library.  The Common Actions web part is another Data View Web Part that gives the Knowledge Manager direct access to activities they would do on a daily basis.  The Knowledge Base Article Requested web part is yet another web part that uses a list view.  In order for items to be shown in this view it needs to be marked for the knowledge base as well as not have an article associated with it.

Knowledge Manager dashboard

 

Service Representative Home

The Service Representative page is another application page that is made up using different list views of similar data.  The Unowned Service Requests, Service Requests Owned By Me and Service Requests Assigned To Me web parts all bring different data to the service representative that logs into this page.  The Experts web part also is a nice touch so the service representative have a list of people (associated to their expertise) they can contact for individual service requests.

Service Representative Home

 

Workflows:

There is one SharePoint Designer workflow attached to the Service Requests list when you create a site based off of this template

 

Article Request

The Article Request workflow is set to automatically start when an item is created in the Service Request list.  This SharePoint Designer workflow is a simple two step workflow where the first step waits for the Status column to equal Closed, once the item is set to closed, it moves on to the second step where it checks of Mark for Knowledge Base is set to Yes, if so it then creates an item in the Service Request Tasks list.

Article Request Workflow

 

Installation recommendations:

If you are looking to create a site based off of this site definition you probably have noticed many modifications you would need to make in order to use this in your environment.  The first thing you will need to do is assign permissions to the Application Pages for the different roles in your organization.  Setting permissions on those pages will trim the pages for Service Desk Reps, Knowledge Base Reps and Help Desk Manager.  I would also extend/create alternative workflows on the Support FAQ list for content approval, create an article based off a template when a task is assigned to an individual, etc.

 

Other modifications that could be made are creating custom data view web parts to create a KB article directly from a service request (much like the data view web parts in the Board of Directors template), or other common tasks.

 

I would also clean up some of the views, especially the extra columns showing in the Service Request Tasks list default view, as well as removing the Service Representative Dashboard page that is in the Application Pages library.

 

If you have other recommendations you would like to share, please let me know by commenting to this post.

 

*Description reference URL here

 

["Brian"]


Posted 02-25-2008 8:53 AM by Brian Caauwe

Comments

Stu Evans wrote re: Fabulous 40 Application Templates - Help Desk
on 03-19-2008 10:05 AM

Is there a way to setup a workflow so it sends email notifications to customers when tasks are assigned or their status changes?

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-19-2008 1:01 PM

Yes, you can actually build a few SharePoint Designer workflows that would be able to handle what you are asking for pretty quickly.

What I have done in the past is created one workflow (set to start automatically when an item is created) that waits for the Assigned To column to be not empty and then send an email.  

I also then create another workflow (set to start automatically when an item is changed) that waits for Status to be not empty and then send an email.  The only issue with this workflow is if you change anything in the request it will ping them that the request has been updated... but from your post it sounds like that is what you want.

If you want some examples of these workflows, just drop me an email and I'll send you a few screenshots.

["Brian"]

Marius du Toit wrote re: Fabulous 40 Application Templates - Help Desk
on 03-27-2008 3:57 AM

Brian,

Yo Wrote "There are similar properties for the Display Form and Edit Form that you can set on individual columns if you define them through an XML definition or you can change individual column properties using PowerShell."

Could you explain how to modify these 'hidden' column properties and how I should go about adding my new columns to the EditForm?

Thanks in advance

Marty wrote re: Fabulous 40 Application Templates - Help Desk
on 03-31-2008 1:18 AM

is there an easy way to change the Customer field to pick from a contacts list on the same site rather than people n groups??

Kevin wrote re: Fabulous 40 Application Templates - Help Desk
on 04-02-2008 9:58 AM

Can you explain how to create the workflow that waits for the Assigned field to be populated before sending an e-mail.

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 04-14-2008 10:08 PM

Marius,

The quickest way I've used to change these column properties are to use PowerShell.  The example below shows how we hide the "Priority" column from the NewForm on a Task list (because we want to set the prioity, not the end user):

PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

PS C:\> $site = new-object Microsoft.SharePoint.SPSite("http://server/site")

PS C:\> $web = $site.OpenWeb()

PS C:\> $list = $web.Lists["Tasks"]

PS C:\> $field = $list.Fields["Priority"]

PS C:\> $field.ShowInNewForm = $false

PS C:\> $field.Update()

PS C:\> $web.Dispose()

PS C:\> $site.Dispose()

Powershell can be an extremely useful tool, but since you have direct access to SharePoint objects using code snippets, make sure do not test your scripts in your production environment.

You can download the version of PowerShell you need from here

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 04-14-2008 10:54 PM

Marty,

The best way to limit a Person or Group column to a specific set of users is to setup a SharePoint group and make that column only return people from that group.

Otherwise you could create a different column as a lookup column that points to a contact list on the same site.

Unfortunately you can't "change" fields to a different type, so you would probably want to create that new column as a "site column" and add that to the content type if you would need to replicate the same list elsewhere.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 04-14-2008 10:58 PM

Kevin,

To create a workflow that waits for the assigned field to be populated before sending an e-mail you want to set your workflow to only be started automatically when an item is created, then on the first step enter the following in the actions:

Wait for Assigned To to be not empty

then Email Service Requests:Created By

That should automatically email the end user once Assigned To has been filled in.

["Brian"]

Tim wrote re: Fabulous 40 Application Templates - Help Desk
on 04-30-2008 9:28 PM

Fantastic series of discussions, thanks Brian!

I have a question regarding Knowledge Base. As you indicated the new article form has list boxes with lookups. The presentation of these is a usability issue as you must scroll left-to-right to see the whole article name.

So I'd like to modify the form, the question is how? Which form? Where is it? How do I expose it to SharePoint Designer? Yes, many newbee questions :-)

As I was not able to modify the form I decided I would create a custom list form with Designer. However, after creating anew aspx page and trying to insert a Custom List Form the new item form is greyed out. Is there a reason for this?

Again, thanks for hosting these discussions

Cheers

Tim

Mary Lou wrote re: Fabulous 40 Application Templates - Help Desk
on 06-17-2008 3:13 PM

Brian,

I would like to customize the newform.aspx in servicerequests list.  However,I cannot seem to get PowerShell to work.  You mentioned another way to customize this with XML.  Can you explain that?

Thanks

Mary Lou

Andy wrote re: Fabulous 40 Application Templates - Help Desk
on 07-04-2008 9:10 AM

For some reason none of the data segments on the Service Rep Mgr page actually show any details.  The two graphs just show 0 for all sections and the Average Call time displays a message stating that I am "Unable to display this Web Part"

This is fairly stock deployed from the templates with little modifications at this point and I was wondering if you could give a newbie some pointers on where to look?

Many Thank!

Andy wrote re: Fabulous 40 Application Templates - Help Desk
on 07-04-2008 9:12 AM

I cannot get either of the graphs or the average call time to display any data in the Service Rep Manager page.  Help!

It is a fairly standard deployment from the templates and I'm a fair amateur at sharepoint so any guidance would be just great!

Thanks

spoonman wrote re: Fabulous 40 Application Templates - Help Desk
on 07-08-2008 3:44 PM

for the New, Display and Edit Form, I appreciate your insight on how to update this in the XML to be displayed by flipping that true/false flag attribute.  

My question however, is how do I handle having a new column that I've added to the out-of-the-box template, to display within the New Form (and the others)?

thanks,

S

I Love SharePoint wrote re: Fabulous 40 Application Templates - Help Desk
on 08-28-2008 10:45 AM

Hi, any idea of how I best can implement "Item-level Permissions" for the Helpdesk template?

Thanks!

Ricardo wrote re: Fabulous 40 Application Templates - Help Desk
on 11-14-2008 7:30 AM

Hi,

I have a problem with this template. I made a lot of WF using SharePoint Designer, all are sending e-mails to everyone in the company, except this one. I have two sites working with this template and no one can't send e-mails. The WF is attached to the Service Requests list (new item).

I thing there is some problem with this list, can you help me.

Note: in the same page I have an announcement list and the same WF works just fine.

Best Regards.

Thank you.

Lenny wrote re: Fabulous 40 Application Templates - Help Desk
on 02-04-2009 4:17 AM

Hi. Im a newbie on this, but got it up and running. But theres one thing i want to ask: Can i manage to get different users/groups to see different layouts of the helpdesk?

1. For example i want to remove the "Name" field for the users when making a service request.

2. Now when a user makes a service request that user can see all other service requests (from other people), is there a way to restrict this?

Thank you for a very nice blog!

Tina wrote re: Fabulous 40 Application Templates - Help Desk
on 03-18-2009 7:13 PM

Hi, I installed Powershell, followed your instructions but was not able to see the change on the newform.aspx.  I THINK the problem may be in the site url.  Here are all the variations I tried (since the ShowInNewForm property on the column in the list that I'm trying to modify is buried pretty deep in the hierarchy):

http://mysite/subsite/

http://mysite/subsite/teamsite/

http://mysite/subsite/teamsite/Lists

http://mysite/subsite/teamsite/Lists/servicerequests

Any other tips you could give me would be appreciated.  Thanks,

trhodes@fclaw.com

Pat Mente wrote re: Fabulous 40 Application Templates - Help Desk
on 03-19-2009 4:30 PM

Cannot get the correct GUID to access ServiceRequests list for custom reporting. Tried all possible GUID's with GUID Picker.  Get this response:

<rs:data ItemCount="0" xmlns:rs="urn:schemas-microsoft-com:rowset">

</rs:data>

Is there something different about the architecture of the Helpdesk lists?

Thanks!

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 11:59 AM

Tim,

As for being able to modify the length of a lookup field from a ListViewWebPart (which is what is there by default), I haven't been able to find a way.  There are some posts out there that show you how to change the "DisplaySize" attribute, but after testing, I haven't been able to get this to work with multi-select lookup fields.

So, now if you want to, you could add a Custom List Form on the same "EditForm.aspx" page for the Knowledge Base library in SharePoint Designer and choose the items you want to show.

There is a good post from the SharePoint Designer Team Blog that explains how to use some JavaScript to change the size of that field, but it's only when using a Custom List Form.

blogs.msdn.com/.../use-javascript-to-enable-formatting-of-data-view-ui-controls.aspx

Also, just a reminder, if you are going to add another List View Form on the EditForm page... do NOT delete the out of the box form... just hide that webpart, otherwise you could have major issues with your existing list.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:06 PM

Andy,

I'm wondering if you did anything to the Service Requests.  All three of those webparts reference that list.  Now it could be something like you had removed a column that came with it... but that is the issue.  You could try and look at the webparts in SharePoint Designer and try to get the Data Source to refresh in order to re-bind the source to what is in your current list.

Just a few thoughts.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:10 PM

Spoonman,

If you have added additional columns to the list after the creation, the best way to access those New, Edit, and DisplayForm properties are through PowerShell.  This gives you the opportunity to change all fields regardless if you created them through the XML schema or through the UI.

Just a reminder, unless you have the "hidden" flag set on a column in the Content Type settings, any new columns created should automatically show in the New, Edit and Display Forms.  The properties mentioned above are overrides to the default settings.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:15 PM

I Love SharePoint,

Perfect name... I would agree.  As far as the "Item-Level permissions" in the helpdesk template.  If you want to modify Item-Level Permissions on any list (not library) there are some options if you go to the individual list settings > Advanced Settings and you have both Read and Edit options.  This gives you the ability to only let people see their own requests, and only have the ability to edit their own requests as well.

Of course, if you give people full control over a list these options will be overridden with those permissions.

Now, these radio buttons are not available within the UI for document libraries, but I'm pretty sure you could access the list property through PowerShell to get it to work the same on libraries as in lists.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:20 PM

Ricardo,

Sounds like you know what you are doing in SPD with workflows, which is very good to hear.  My first question would be, are you seeing any workflow history errors on all of the items in that list?  that could give you some idea if the workflow is even getting initiated (I've seen this issue if the System Account is the account creating items after having Service Pack 1 installed... this would probably be the case if you are using incoming email to populate that list).

If you aren't seeing any workflow history errors, it could be a permissions issue.  Mostly since SPD workflows run in the context of the user that added/edited the item, that user needs to have the correct rights in order to even kick off a workflow.

That's where I would start looking.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:25 PM

Lenny,

If you are trying to hide the "Service Request" name field, that is the out of the box title field, just renamed... and because everything with that item is derrived from that Title, you really shouldn't hide that field because it should get filled out.

That doesn't mean you couldn't auto-populate that field with their name and date of the request (or any other information you want to standardize on) by using the calculated value of the "default value" option.

As for the ability to limit what people see, take a look at my response to "I Love SharePoint" where I specify how to utilize Item-Level permissions on any list.

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:29 PM

Tina,

When starting with your "site" object in PowerShell, you basically start with the site you are on.  From your examples I would start with:

$site = new-object Microsoft.SharePoint.SPSite("mysite/.../teamsite")

$web = $site.OpenWeb()

$list = $web.Lists["Service Requests"]

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 12:52 PM

Pat,

The GUID for any list can be found by going to the List Settings Page.  From there look at the URL, you will see something like:

/_layouts/listedit.aspx?List=%7B3190FC4D%2D7929%2D437C%2D944B%2D6BE51087A21F%7D

That is basically your GUID... to make the GUID look "normal" just replace the following codes with their character equivalent:

%7B = {

%2D = -

%7D = }

That'll then make your GUID look like so:

{3190FC4D-7929-437C-944B-6BE51087A21F}

["Brian"]

Brian Caauwe wrote re: Fabulous 40 Application Templates - Help Desk
on 03-20-2009 1:43 PM

This response is for Sam,

Your comment must have been accidentally removed from the system, but good news is I had a copy of it in my email, this was the comment:

--

My organisation is using the knowledge base template as the basis for an internal knowledge base. I am trying to customise the article pages removing the quick launch, where is the template for the article content page and how can I get at it?

Thanks

Sam

--

In response to this, unfortunatly because the template is it using is the CreateWebPage.aspx page that sits in the LAYOUTS directory and must be referencing the out of the box Wiki template (for which I haven't been able to find yet), there really is no good way to edit that template.  

["Brian"]

MrSaittam wrote re: Fabulous 40 Application Templates - Help Desk
on 05-15-2009 6:37 AM

Im trying to set up an EventReceiver to enable incomming mail to the service requests list.

But i cant gt that code working on that list (if i try the same vent on another list it works great) i would like to have function for users to send a email to th list... Any ideas?

Alexis Grace wrote re: Fabulous 40 Application Templates - Help Desk
on 06-17-2009 9:22 PM

I'd also like to know how to create the workflow.

Thanks in advance.

mborrelli wrote re: Fabulous 40 Application Templates - Help Desk
on 07-06-2009 4:56 PM

I am customizing this template and would like to add some choices to some of the default fields,  Priority and Status.  However I cannot find the table where they are pulling their values from, if it even is a table.  Is this possible?

DA Carey wrote re: Fabulous 40 Application Templates - Help Desk
on 09-17-2009 12:19 PM

Can you be more specific about how to edit permissions on each individual application page? I don't want regular help desk members to be able to even see the manager home page but I don't see where to edit this type of permission.

Thanks!

Inetium, LLC. Site Information