Implementing a simple SharePoint issue tracking system with cc: style notification emails when items are updated

The scenario

This article describes how to setup a SharePoint list so that each item in the list has a column to allow selection of multiple people to be notified initially when the item is created and also every time the item is subsequently updated or edited.

The scenario proposed to me recently went along these lines:

Do you know if there’s a way to add multiple people’s name/email to an item in a Sharepoint List? So maybe we’re tracking issues, and when the issue record is created, we want to tie 5-6 others to the record so they can be involved/aware in the updating of that record and/or the communications related to it…like a cc: list.

Allow me to embellish the requirements and scenario a little so we know the problem at hand…

We have a implemented a simple Helpdesk issue tracking system in SharePoint.

  • The issues themselves are tracked as a single item in a SharePoint list
  • A new list item is created for each issue
  • Issues are primarily generated from an email received by one of the Helpdesk staff
  • Often we want to keep multiple users informed of a particular issue when it is created and as it progresses
  • We want a no code solution

Note: before we jump into the solution, the crux of the article is about achieving the cc: style notifications. I’m not advocating this as a recommended design for a Helpdesk system.

 

The solution

My first thoughts on this one was to simply add a multi-value Person/Group column to the list called “Notification List”, then create a view and set the filter on the view to where “Notification List” is equal to [Me]. Here’s one of many articles on how to use the [Me] filter. This works great and when you go to the view you just see the items where you are in the “Notification List”. I then thought it would be a simple task to create a SharePoint Alert on this list so that whenever someone creates or modifies an item in this list an alert notification email would get sent out. This all works fabulously if there is only ONE person in the “Notification List” column. As soon as you get multiple users in the “Notification List” column, the alerts just do not get triggered. The view filter works fine and shows the correct items when single or multiple names are entered, but it seems alerts play by a different set of rules.

Time for a different approach, enter workflows. Can we achieve a simple (no code) workflow to send the emails out? Sure we can. Here’s how it is done.

First create a custom list called “Issues”

01-create-issues-list

Now add a people & groups column called “Notification List”. Ensure is accepts multiple values and I’m going to just allow people (not groups) to be selected.

02-create-notification-list-people-groups-column

 

While I’m creating columns I’ll create a few more just to make the scenario a little more realistic. I’ve added Description of Problem, Status, and Assigned To columns. Now when I create a new item in SharePoint my new form looks like this:

03-issue-item-form

 

So now to the meat of our problem, how do we get SharePoint to send an email to everyone on the notification list when the item is initially saved, and then every time the item is edited?

We are going to have to create a workflow using SharePoint Designer. So let’s fire up SharePoint Designer and connect to the site that contains our list. Then select “Lists and Libraries” from the left navigation.

04-open-list-in-sharepoint-designer

Open the Issues list and select List Workflow from the ribbon

05-list-workflow-button

Now provide a name and description for the workflow

06-basic-workflow-details

Now add the “Send an Email” action from the Action ribbon button

07-add-action-send-an-email

Now click the Email these users link to define the email message.

  • Click on the address book picker on the To:
  • Select Workflow Lookup for a User…
  • Set Data source to “Current Item”
  • Set Field from source to “Notification List”
  • Set Return field as “Email Addresses, Semicolon delimited”

08-configure-email-to-use-notification-list-and-format

Now you can specify a subject (using the function builder to include the Title of the issue) and the email body, again you can use columns from the issue item and include a hyperlink directly to the item.

09-define-email-content

Return to the workflow information page and set the triggers to automatically start this workflow when an item is created or changed.

11-set-workflow-triggers

All that’s left is it Save and Publish the workflow

10-save-and-publish-workflow

 

The result

We can now create a new item in SharePoint specifying some users on the Notification List.

12-complete-new-item-in-sharepoint

When we save the item, people on the Notification List will automatically receive an email as shown below.

13-email-notification

 

Now for the gold plating

Remember when we set the scenario that most issues are raised by an email being sent to a Helpdesk staff member (yes they can’t just create them in this list themselves!). What we really want is that email message (and any attachments it has) stored on the issue item as an attachment. This would be a bit tedious for someone to save the email as a file and then manually attach to the new SharePoint item. Enter OnePlaceMail (the Express edition is a free add-on to Outlook). Simply install OnePlaceMail on the Helpdesk users machine that has Outlook. You can now ‘bookmark’ the Issue list and it is available (yes the whole SharePoint list with full functionality) directly in Outlook just like it is an Outlook folder.

14-sharepoint-issue-list-in-outlook

 

What is really awesome about this solution is when an email comes in that you need to create a new issue item for, you simply drag and drop the email to the Issues folder in Outlook and OnePlaceMail performs it’s magic and let’s you complete all the columns without leaving Outlook – no need to even open SharePoint in a browser!

15-drag-drop-with-oneplacemail

The item is now created in SharePoint, the email message is stored as an .msg file attachment, all column values are set and notification emails have been sent out. You can even just click on the Issues folder in Outlook (that we dragged dropped the email to) to see it in SharePoint.

16-view-sharepoint-in-outlook-with-oneplacemail

 

Further Reading (in response to comments on this post)

In response to Eugene’s comment here’s how to achieve inserting a URL link to the SharePoint item in the body of the email message that gets sent out by the workflow.

Please be aware that there is a fundamental different between SharePoint lists and SharePoint document libraries in the format (or syntax) of the URL required.

I’ll first go through creating a link to an item in a document library and then to an item in a list.

Insert URL Link to an Item in a SharePoint Document Library

Use the ‘insert hyperlink’ button to create the link in the body of the email

17-sharepoint-designer-workflow-email-action-insert-hyperlink

Provide the user friendly text to display such as ‘Open Item’

18-sharepoint-designer-workflow-provide-user-friendly-link-text

To build the address use the Fx button as we need to use some properties from the item currently the workflow is running on.

Set Data source to Current Item

Set Field from source to Encoded Absolute URL (this gives us the most portable URL that includes the server name and protocol with any special characters encoded which gives the URL the best chance of surviving being sent through email servers and arriving at the other end intact)

19-sharepoint-workflow-lookup-encoded-absolute-url-current-item

The hyperlink should now have an address of [%Current Item:Encoded Absolute URL%]

20-sharepoint-workflow-lookup-url-current-item-address

Click OK and your hyperlink to the item in SharePoint is done

21-sharepoint-workflow-link-to-item-in-email-body

 

Insert URL Link to an Item in a SharePoint List

You would expect the above technique would also work for list items but unfortunately it does not. It leaves you with a pretty useless URL in this format: http://server/site/Lists/listname/1_.000

The URL format that you need to link to a list item is:

http://server/site/lists/listname/DispForm.aspx?ID=xxxx (where xxx is the ID of your list item)

The simplest way to achieve this format is to supply the fixed portion of the URL and pull the ID portion dynamically. Your Hyperlink address would be something like this:

http://server/site/lists/listname/DispForm.aspx?ID=[%ListItem:ID%]

53 thoughts on “Implementing a simple SharePoint issue tracking system with cc: style notification emails when items are updated

Add yours

  1. Thanks for this. Very helpful.

    One question:

    How do I define the url for “Open item” as described above?

    I want the user to open the link for the particular item.

    Thanks.

    Like

    1. Hi Eugene,

      I’m glad you found this post helpful. In order to answer your question with some images I’ve updated the original post. Please see the last section titled Further Reading…

      Like

  2. Easily the best explanation of how to get this working, and perfect timing for what I needed to do. Thanks so much for putting this up Cameron. I was using an Issues List in SP2013 originally for this and see the URL syntax for its list items is very different too. Keep up the great blogging!

    Like

    1. Hi Andy,

      Can you provide details of when this error is occurring and what the error message is? A screenshot would be great and I’ll see if I can point you in the right direction.

      Like

      1. Yep, the error I was getting was when I would try and Publish I would get “Microsoft SharePoint Designer can’t start Microsoft Visio. An error occurred and this feature is no longer functioning properly. Would you like to repair this feature now?” I would click Yes and get the same error again, then it would do nothing.

        Did a quick search and found this post (http://kb4sp.wordpress.com/2012/12/19/sharepoint-designer-2013-spd-and-visio-2010-not-so-good-together/) stating that there is an issue for folks using Designer 2013 and Visio 2010 (which I have). I’ve installed the patch mentioned in the post and am testing now…

        Like

      2. I installed the patch and recreated the workflow and still received this error when I publish…
        “Errors in the workflow prevent it from functioning correctly.

        Click OK to save this workflow in a draft state.
        Click Cancel to return to the designer and correct these errors.”

        Any ideas?

        Like

      3. I haven’t come across this error myself (although I’ve only used SPD 2013 & Visio 2013). If you haven’t already I’d test creating a very simple workflow (just one step to do something very simple). This will help you validate that the patch has done something and your configuration of SPD 2013 and Visio 2010 is capable of at least a very simple (if useless!) workflow. Then add workflow steps back in one at a time until you find the offending step. You might find at that time that there is an error in one of the steps, or that you have hit another compatibility issue between versions (at least if you’ve narrowed done what the step is you’ll have more chance searching for an answer). Hope this helps.

        Like

      4. I started again from scratch adding one little bit at a time and found out that I must have had a special character (a semicolon I think) which was messing everything up. I’ve created a very simple email message now and it’s all working great!

        Hopefully that Visio 2010 tip can help someone else too.

        Thanks for the walk through!!

        Like

  3. I am encountering another issue though. When I use the “Encode Absolute URL”, I get the following URL

    https://sharepointwebsite/Lists/Support%20Tickets/1_.000

    Not sure where the _.000 came from but it’s messing everything up. So now I’m trying to piece together the URL from scratch with hand coding the list’s main URL, then using the ID field at the end.

    No luck yet though. I wonder what needs to be done to the base URL to get Designer to like it?

    Trying this, https://sharepointwebsite//Lists/Support%20Tickets/DispForm.aspx?ID=%5B%Current Item:ID%]

    Like

    1. Got it to work… It’s tricky because the dialog box wants to automatically link the URL which I think is what Designer doesn’t like. So what I did was highlighted the entire line including the variable and applied a # hyperlink to it. The I placed my cursor at the end of the line and hit backspace once. Without clicking anywhere else I clicked OK. Worked!

      Like

    2. Hi Andy,

      Right at the bottom of my blog post is a section about how to construct the link to a list item (essentially the same format as you suggest, is the information I have provided working in your case?

      Like

  4. Hi Cameron,
    I’m encountering another issue that I’m trying to fix. Whenever I change fields other than the status, emails still go out. So if I change the priority of an issue, that really only I need to see, a duplicate email is sent. Might you have any ideas on how to get it to fire only when the status field changes? I’ve tried messing around with the conditional “if current item field equals…” and set it to go whenever changed, but still, changing another field will send out a duplicate email if the status didn’t change. I hope that makes sense.

    Like

    1. I would suggest taking a look at this video from Microsoft:
      http://office.microsoft.com/en-us/sharepoint-designer-help/watch-this-run-a-workflow-when-a-specific-field-changes-HA010256419.aspx

      This describes how to detect a change in a single field and get a workflow to do something if the value is changed. In your case I think you are after the opposite, you want to trigger the notification if the field doesn’t change. I haven’t tried it but you may be able to craft a solution using the ELSE condition (essentially if the item has been changed and you can tell the priority hasn’t changed, then fire off the email).

      Like

      1. Thanks Cameron! I’m relatively new to workflows and forgot about branching else-if’s. The video worked great, I just swapped their “Owner” field example with my “Status” field. Thanks again!

        Like

  5. Can I setup a sharepoint List site for defect tracking for multiple projects? I am not sure how I can setup multiple projects on the same List item template project site. In other words, if I have a project 1 tracking defects on a Testing sharepoint site, can we use the same site to track defects for project 2 ?

    Like

    1. Hi Soloman. I’m not 100% clear on your requirements but 3 ideas come to mind.
      – Create a list per project (with same columns, views etc). You can create one then save it as a template and use it to create the list for the other projects
      – Use one list for all projects and a column to identify which project the defect belongs to (Choice column or even better a lookup to another list which holds the project names). You can then create a view which groups/sorts by project
      – Use one list and create a folder for each project to achieve the separation.

      The decision of which approach really depends on the rest of your requirements but hopefully this gives you some ideas to pursue.

      Like

  6. Hi Cameron,
    thank you very much for this great tutorial!
    Is there a way to implement this for the SharePoint 2013 platform, too?
    Thanks
    Marina

    Like

      1. Ok, I had an issue with the “Open item” link which is why I thought this doesn’t apply to VS 2013. But you already suggested how to fix the link to the list, so I did the same for the item itself. I entered the fixed URL and added “[%Current Item:ID%]” to the hyperlink. Now it works fine.

        Like

  7. Hi Cameron, great write-up ! – created a “helpdesk in 10 min”
    I’m new to SharePoint myself. I added a few columns, one of which is due date. The idea is to create a task for the assigned to individuals (I added people and groups) which will be reminded when the task is overdue ?

    Like

    1. Sure, just create a Choice column on your SharePoint list and enter the categories you want as the available options in the Choice column. Make the choice column mandatory if you want to ensure all items created belong to a category.

      Like

  8. Hi Cameron, Thank you for this article.
    Could you please help me on below requirement.
    I am sending an email to specific user/group using workflow on some condition for a list item in share point 2013.
    My requirement is when user replies to that email then that email should be saved as an attachment to the correspondence item to list.

    Thanks.

    Like

  9. Thanks, this is really helpful. However, I’ve a scenario where there is a need to send notification email along with all the list items embedded in the email body. And we should have the flexibility to hold the notification as needed basis. Is there a viable solution to this?

    Appreciate any guidance on this.

    Like

  10. Hi Cameron,

    This seems to be very helpful, is there a work around for the 07 version of SharePoint?

    Like

  11. Great Tutorial – thanks. Got me into using SharePoint designer. One weird issue I have, however, is that although contribute permissions have been given, some users can’t use the assign to field. It says “The control is not available because you do not have the correct permissions.” I thought there would be a simple fix but I can’t get to the bottom of it. Any ideas?

    Like

  12. Hello Cameron,

    First off awesome tutorial!
    One issue for me, I want an email to automatically be send to specific people along with other who are specified in the optional notification list. However, the specific people are only emailed when there is at least one person in the optional notification list. When I take off the notification list, then the specific people are sent the email. How do I make the specific people being emailed not dependent on whether additional people are chosen to be emailed. I’ve tried changing to I send it to and tried different combinations of cc and to.

    Like

    1. I this might have to do with the infinite loop reply you made to slcschools above, however the video link on the site is broken.

      Like

  13. Hi Cameron,

    Thanks for this awesome post. I encounter an error message about Transition to stage. I follow through all the above steps. Click Save —> Published. Below error pop up

    Workflow Errors Found

    Errors in the workflow prevent it from functioning correct.
    ………………
    …………..

    I click on Check for Errors and it shows the below error message

    Transition to stage
    (Transition section cannot be empty. Insert a go-to action)

    Like

    1. Hi there,

      Thanks for this helpful post. I follow all the steps of your manual but when i click “Save —> Published”, i’ve this error message on the Transition to stage: ” Transition section cannot be empty. Insert a go-to action”….

      how can i fix it?

      Thanks in advance 😉

      Like

  14. Hi there,

    Many thanks for this post. I have follow all steps but when i click “Save —> Published”, it occurs an error on “Transition to stage: Transition section cannot be empty. Insert a go-to action”,

    How can i solved it?

    thanks in advance,

    Txokol

    Like

  15. How can I show issue tracker comments in email workflow? I tried it using current item – comment variable but couldn’t able to achieve it. And also when I’m working on the current item, is there any way I can see the item number before saving it?

    Like

  16. Hi, thank you for this post the best part is simply add a multi-value Person/Group column to the list called “Notification List”, then create a view and set the filter on the view to where “Notification List” is equal to [Me]. very useful information

    Liked by 1 person

  17. Hi This is so awesome. I am interested in learning new things on sharepoint and helping my team. I need t create a Leave tracker which looks attractive too and that will allow people to punch in their leave dates and reason for leave and allow an email to go to their supervisors informing them about your leave. Can you help me with this? Please

    Liked by 1 person

    1. Hi Sara, while it’s certainly possible to create a nice looking leave tracking application in SharePoint it’s beyond the scope of this blog post but maybe something I might look at in future 🙂

      Like

  18. Try SteadyPoint Helpdesk for support tickets and service requests. It’s an Office 365 SharePoint Add-in, it enables your support teams to build problem catalog, choose their preferred routing algorithm and track issues. you can create requests from the portal or via email using Microsoft Flow. it also provides Tickets, Services Requests and performance reporting.
    We offer an affordable perpetual license.
    http://steadypoint.net/helpdesk.html

    Like

  19. thanks . Really helpful article .
    Any option to set notification email prior to set 3 month,one month and 15 days . please share

    Like

  20. Thanks. Although workflows have changed since this post was written, I was able to follow he basic procedure to achieve what I wanted with the built in Issue Tracker template.

    Liked by 1 person

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

Up ↑