Toggle menu

Self Service

The Self Service template displays lists of workflow tasks users can carry out. You can use a range of filters to control the process instances that will be considered. From that set of process instances users will see lists of the tasks that are assigned to them, or that they are eligible to claim (ie they are a candidate for).

The template can also be set up to give an overview of all current and historic requests started by any user.

Articles using the template should be secured using standard iCM security. Self Service displays tasks and information relevant to the current user - a user has to be logged in so the template knows who they are.

Note that this version of Self Service requires workflow processes to be indexed in the search. The IndexWorkflowProcesses Scheduled Tasks needs to be run once to build the search collection (once built the collection is kept up to date by the workflow worker).

Self Service 13 Overview

Page Title and Content

The Self Service template displays its title and content, including inline elements, in the same way as the Default template.

Assisted Service - Use on Behalf of Another User

This option in the article extras controls how the article behaves when it's used in with the Assisted Service template. If unchecked, when a staff member is assisting another user, the article will display the tasks and processes for the user that is being assisted. When checked, the article will always display requests for the currently logged in user.

If you do not have the Assisted Service template, this setting has no effect.

Filters

Filters are set up in the article extras. They control the process instances that will be returned by the template and provide controls that users can use to find tasks relevant to them.

See Filtering in Self Service and User Requests for a detailed look at building filters.

Claiming the "Next" Task

Claim Next Task v11

Rather than displaying a list of all claimable tasks (see below), the template can display a panel with a single button. Pressing the button will assign the next task (ie the task that would usually appear at the top of the claimable task list) to the user and display the relevant task form. The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The text above the button can be changed using the "Next claimable task message" text box. 

Assigned Tasks

This panel shows tasks for the selected processes that have been claimed by, or assigned directly to, the user. They will remain with the user until complete or, if the option is enabled, they are unclaimed. Unclaiming a task returns it to the claimable tasks list.

Panel Configuration

The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "Assigned tasks heading" text box. 

Unclaiming Tasks

Whether or not users can unclaim tasks is controlled by the "Allow tasks to be unclaimed" drop-down in the article extras. If enabled users can select tasks using the checkboxes and press the "Unclaim selected tasks" button. If disabled the column of checkboxes and button are hidden.

When unclaiming multiple tasks there can sometimes be a delay between the page refreshing and the background processing. Unclaimed tasks may still appear in the panel in a disabled state until the next page refresh.

The user tasks in a workflow model can be set up to prevent unclaiming. If the "prevent unclaim" task listener has been added to a task the panel displays "N/A" rather than a checkbox. This is also true if a task has been assigned directly to a user and there are no other eligible candidates to claim the task if it were to be unclaimed.

Column Configuration

The panel has four columns. Their titles can be changed using the text boxes in the article extras.

  1. Process Description - The description of the workflow model, which can include process variables, and business key. See the Self Service section of Workflow and History Data In Assisted Service, Self Service and User Requests for more information
  2. Task Created Time - The date and time the workflow execution arrived at the current task.
  3. Task Due Date - The task due date set in the workflow model or "N/A" if one hasn't been set for this task. This column can be toggled on or off in the article extras.
  4. Task Details - The description of the current task, which can include process variables, or if there is not description, the task name. See the Self Service section of Workflow and History Data In Assisted Service, Self Service and User Requests for more information. When a user clicks on a task description (styled as a button) they'll be taken to the relevant task form.

View All

View All Tasks

The "View all" button links to a paged view of all of a user's tasks. This view includes a keyword search and any filters set up in the article extras.

The created and due columns can be sorted by time ascending or descending.

Claimable Tasks

This panel displays any tasks for the selected processes that the current user can claim. To claim a task a user must be a task candidate (either directly or as a member of one of the candidate groups).

Panel Configuration

The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "Claimable tasks heading" text box. 

Column Configuration

The columns in this panel are the same as those in the assigned tasks panel.

A user can claim tasks by checking the checkboxes next to them and pressing the "Claim selected tasks" button. Claiming a task will move it to the current user's assigned tasks list. The "Perform task" button will take the user straight to the relevant task form, claiming it automatically.

When claiming multiple tasks there can sometimes be a delay between the page refreshing and the background processing. Claimed tasks may still appear in the panel in a disabled state until the next page refresh.

Active Processes

Active Processes v13

The active processes panel displays information about the processes selected in the general settings filter. It can be set up to provide an overview of requests raised by the current user, or display information about requests started by anyone. The panel is useful if you want to provide an overview for a staff administrator.

Panel Configuration

The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "Active processes heading" text box.

The "Show processes" radio buttons set whether requests started by the current user, or those started by anyone should be shown. This setting should not be enabled if the self service article is going to be used by members of the public.

Column Configuration

The panel has four columns. Their titles can be changed using the text boxes in the article extras.

  1. Process Description - The description of the workflow model and business key
  2. Process Start - The date and time the workflow process started
  3. Started By - The username of the user who started the process
  4. Current Tasks - Tasks in this process that are assigned to the current user, or the text "N/A"

History

History Panel v11

The history list displays information about completed processes and history items that are "sealed" (ie items that can no longer be written to, like histories relating to completed workflow processes).

Requests and History Labels
The histories that appear on the Self Service template come from iCM's History Service. Following our conventions for Labelc Histories and Reporting Data, a single request may have more than one history associated with it. For this reason the Self Service template displays histories that have a labela and labelb value, but excludes any histories that also have labelc/d/e values to avoid duplicates appearing.

Panel Configuration

The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "History heading" text box.

The "Histories to show" radio buttons set whether histories involving the current user, or those generated by anyone should be shown. Histories count as involving a user if their userId appears in the history subject data or any of the events in the history. If the self service article is going to be used by members of the public, pick "Started by or involving the user".

Column Configuration

The panel has four columns. Their titles can be changed using the text boxes in the article extras.

  1. Description - The description in the history's subject. This can be updated by history events setting a new value for the historyDescription property (the most recent value is used)
  2. Started By - The userId in the history's subject data. If you are only showing histories started by the current user, this column is omitted
  3. Date Started - The value of the history's created property
  4. Date Completed - The value of the history's lastupdated property

Process Overview Dialog

Process Overview

Process and history descriptions link to a summary of the request they relate to. Where a user is eligible, they can claim, unclaim or carry out a task.

Summary

The summary panel displays the most recent public summary history event for the process. The summary data is displayed using the form defined in the summary event. See the Workflow and History Data In Assisted Service, Self Service and User Requests article for more information.

Event Details

Beneath the summary a chronological list of events is displayed, with the most recent at the top. These events are taken from the history associated with the request. Each event includes the following.

Title

The title is the value of the history event's description property.

Date and Time

The date and time of the event are the values of the history event's timestamp object.

View Details Link

Listed events may display a "View details" link. These links are only present if an event they has form data saved with it. Clicking the link displays the saved form data. You cannot control, via the Self Service configuration, whether this link appears or not - they will always appear if form data has been saved with an event. The data for the event, and the name of the form used to display it, are taken from the relevant history event.

History Details Log

This section of the article extras controls what appears in the event log beneath the summary.

Display History Events

If "Yes", standard history events will be displayed (respecting the public/private setting). Setting this as "No" means that a process or history description will only display a summary of the process/history (the "Summary" panel in the screenshot above).

Include Private Events

If "Yes" then "private" events will appear in the list. It is strongly recommended that private events are only displayed on articles secured to staff/admin users. Private events are generally used to record user tasks carried out by staff members that do not need to be seen by the person who raised the request.

Include Summary Events

If "Yes", summary events will appear in the list. Summary events are generated in addition to standard events. They are used to update the main summary displayed above the event list. If displayed users will see two events for every action (one standard event and one summary event). For this reason we don't recommend including them.

Displaying Task Notifications

Task Badge

It's possible to get a count of self service tasks and display them as a notification. The task badge is normally attached to a link to the self service article the count came from (as in the example above), but in in theory any item on the page could be targeted.

Task badges are implemented using custom JavaScript, uploaded into iCM as a media item and added to a site via the subsite configuration.

Example Implementation

This example shows how to add a count of assigned tasks to a link in the top utility menu of the Chill theme.

(Javascript) [1KB]

(function() {
    let loadCount = function() {
        let selfServiceLink = document.querySelector('header > div.header__utilities > div.container > ol.utilitymenu.utilitymenu--top > li.utilitymenu__item > a.utilitymenu__link[href="https://www.mywebsite.com/article/3721/My-Tasks"]');
        if (selfServiceLink) {
            let client = gi.selfservice.client('./article/1673');
            client.getAssignedTasksCount(function(count) {
                if (count > 0) {
                    let badge = document.createElement('span');
                    badge.setAttribute('style',
                        'border:2px solid;border-radius:10px;' +
                        'background-color:rgba(192,0,0,1);' +
                        'color:rgba(255,255,255,1);' +
                        'position:absolute;top:0;padding:1px;' +
                        'min-width:20px;max-height:20px;box-sizing:border-box;' +
                        'font-size:80%;text-align:center;line-height:16px');
                    badge.setAttribute('aria-hidden', 'true');
                    badge.innerHTML = count;
                    selfServiceLink.appendChild(badge);
                }
            });
        }
    };
    if (document.readyState === "complete" || document.readyState === "interactive") {
        loadCount();
    } else {
        document.addEventListener("DOMContentLoaded", loadCount);
    }
}());

  • selfServiceLink: Using the JavaScript querySelector find the element you would like to attach the badge to
  • gi.selfservice.client: This is the Self Service article that the count should be taken from. You can provide an absolute URL or relative path
  • client.[function]: one of
    • getAssignedTasksCount
    • getClaimableTasksCount
    • getActiveProcessesCount
    • getCompletedHistoriesCount

This example is similar to the one above, but combines the assigned and claimable task counts. It attaches the badge to a block on the Chill theme home page:

(function() {
    let loadCount = function() {
        let selfServiceLink = document.querySelector('.menu__block[href*="article/9908/Block-1"]');
        if (selfServiceLink) {
            let client = gi.selfservice.client('./article/2961');
            client.getAssignedTasksCount(function(assignedCount) {
                client.getClaimableTasksCount(function(claimableCount) {
                    const totalCount = assignedCount + claimableCount;
                    if (totalCount > 0) {
                        let badge = document.createElement('span');
                        badge.setAttribute('style',
                            'border:2px solid;border-radius:10px;' +
                            'background-color:rgba(192,0,0,1);' +
                            'color:rgba(255,255,255,1);' +
                            'position:absolute;top:0;padding:1px;' +
                            'min-width:20px;max-height:20px;box-sizing:border-box;' +
                            'font-size:80%;text-align:center;line-height:16px');
                        badge.setAttribute('aria-hidden', 'true');
                        badge.innerHTML = totalCount;
                        selfServiceLink.appendChild(badge);
                    }
                });
            });
        };
    };
    if (document.readyState === "complete" || document.readyState === "interactive") {
        loadCount();
    } else {
        document.addEventListener("DOMContentLoaded", loadCount);
    }
}());
To implement either of these examples on your own site you'll need to:

  1. Update the script with your own query selector (to find the element you want to attach the badge to)
  2. Update the gi.selfservice.client with the article ID of the Self Service article you want to count the tasks from
  3. Add your script as a JS media item in iCM and add it to the custom JavaScript in your subsite configuration
Last modified on 30 October 2024

Share this page

Facebook icon Twitter icon email icon

Print

print icon