Workforce and settings

Deploying WFM

There are two ways to make WFM work: Copy the records from the installation database where WFM already works, or run a set of scripts that will prepare the basic functionality in any installation.

Option of copying records from a running installation:

  • DB tables that are meant for WFM:

    • WfmActivity, WfmHoliday, WfmRotation, WfmRotationComposition – These will be initially filled and usually do not change afterwards;

    • WfmPlan, WfmPlanMember, WfmSlot, WfmEvent, WfmPlanError – These are filled by the actual use of WFM;

    • Traffic, TrafficSlot

    • in the future also OfficePlan, OfficeSlot

  • DB tables in which WFM also has a few records:

    • Configuration,

    • (Crew), (CrewMember),

    • DataQuery, DataQueryColumn,

    • Editor, EditorTab, EditorTask,

    • LiteralLookup,

    • (Navigation)

    • Role, Permission,

    • Portal,

    • Scenario, ScenarioResult, ScenarioResultValue, Screen, ScreenControl

Option of running a set of scripts:

Three sets of SQL script files:

  • Scripts (DQ, rows in tables, etc.), without which it will not work at all, will probably be the same everywhere and run themselves on deployment: Model.Sql.Data.Wfm.sql.

  • Scripts, without which it is not possible, but each customer can have a slightly different way; the scripts are run and edited by the consultant: Model.Sql.Admin-Standard.Standard-Wfm.sql

App.Web or App.Customer.Web web application

In addition to database changes, it is necessary to deploy a web application hosting REST endpoints of web services called by WFM, e.g. for validation, vacation recalculation, displaying other data in the agent editor, etc. You can use a generic App.Web application, but it is more likely that the general implementation will not work and a customized application named App.SomeCustomer.Web will be created for the customer.

Configuration parameters with URLs for situations when the integration App.Web/App.Customer.Web is called can be found in reference.

Customizing activities

In the FrontStage administration interface under Shift planning ‣ Activities, you can easily add, change or remove activities according to your needs.

Fill out the form fields as follows:

Form field

Description

Name

Activity name. A free text.

Activity group name

A group of similar activities that you want to consider the same for the given traffic model.

Status group name

Which agent status this activity corresponds to for non-conformity report purposes.

Description

A free text. Reserved for future use.

Rank

A rank based on which activities are sorted in an ascending order in the drop-down list in the shift editor.

Color

The color in which the activity slot will be displayed in the shift editor. The value must be a valid HTML color specified by a hex number (e.g. #fa15ac) or a name (e.g. navyblue).

Activity display layer

The number influences in which layer the activity is displayed and at which zoom out its slot will no longer be visible.

  • At the position of hundreds it indicates a layer for displaying, with values from 0 to 2. 0 is the first layer (absence), 1 is the second layer (work availability), 2 is the third layer (work activities) .

  • At the position of tens and units it indicates at which zoom out the slot will still be visible. The zoom out is possible from 0 (maximum zoom in) to 16 (maximum zoom out).

For example, 15 means that the activity should be displayed as the first layer (0), which will no longer show when zooming out at 16. Or 212 means that activity will be displayed as the third layer (2), which will no longer show when zooming out at 13 and above .

Activity type

Mapping to built-in types of activities.

To ensure a proper operation of validation, on-call shift application, workplace planning or calculation of used vacation time in personal information settings of the agent and other WFM parts, the actual activity needs to be mapped to one of the built-in activity types.

Workplace with phone required for the PbxIn or PbxOut channels
Workplace required that enables message handling
Workplace required that enables chat handling

It influences the course of workplace planning.

  • If set to yes, then only such a workplace is searched that allows calling / message handling / chat handling.

  • If set to no, then only such a workplace is searched that does not allow calling / message handling / chat handling.

  • If not set, then any free workplace is searched.

Enabling agents for planning

WFM does not have its own set of users. Users must already exist. To allow agents for planning, you must supply some information related to WFM as statutory limits, etc. And you must enable agent for planning.

Enabling users for planning is because you likely have users that rarely use FrontStage. To plan these users usually makes no sense.

The regular users you want to plan must have created shift profile. Shift profile adds them as actual plan members. Shift profile also holds the information required for planning like she’s a pregnant woman or temporary worker.

Manually you can create shift profile in FrontStage admin in Agents section, agent detail. Form footer contains a link to create (or display) shift profile.

Personal data and statutory limits of staff

There is a list of all agents on the WFM homepage.

../../_images/wfm-agent-list.en.png

Click on an agent to open a card with their personal data and statutory limits influencing workforce planning.

Note

Indicates which information (apart from the basic data) will be displayed in the Info tab and how the form will look in the Detailed information tab; it can be configured. A FrontStage administrator can add or remove other related information.

../../_images/agent-editor-info-tab.en.png

Click on an agent to open a card with their personal data and statutory limits influencing workforce planning.

../../_images/agent-editor-forms-example.en.png

These limitations and other parameters are checked during plan validation.

Important

An exact validation algorithm is programmed according to the client’s requirements. For this reason, it is not described here in detail.

Historical, not valid information, are archived to tracebility. New form valid period, use Add new form valid period.

Rotations and rotation offsets

Prior to automatic planning, which is based on a recurring sequence of shifts, the methodologist must prepare at least one rotation consisting of one or more weekly templates.

The date from which we want to apply rotations minus the start date of the year in weeks. Add the agent’s rotation start offset. Establish module after integer division by the rotation duration. The result indicates which rotation cycle week will be applied.

Example 1: Apply rotations from 1 January 2018 - 1 January 2018 = 0 weeks. The rotation start offset is 1. 0 + 1 = 1. 1% 3 = 1. Therefore, the 1st week of the rotation cycle will be applied.

Example 2: Apply rotations from 12 August 2019 - 1 January 2018 = 84 weeks. The rotation start offset is 2. 84 + 2 = 86. 86% 3 = 2. Therefore, the 2nd week of the rotation cycle will be applied.

Example 3: Apply rotations from 6 April 2020 - 1 January 2018 = 118 weeks. The rotation start offset is 11. 118 +11 = 129. 129% 3 = 0. Therefore, the 1st week of the rotation cycle will be applied.

As an example we can choose a rotation that contains a single template of the following type: “3 days of work – 4 days free”, with the entire cycle to be repeated after 7 weeks.

../../_images/week-template-3-4.en.png

We will suitably set an offset by 0 to 6 weeks for the agents so that we can cover the entire period. The rotation offset will cause the template application to be shifted by n weeks forward. For the periods before/after the plan, rotations will be applied with the same offset only backward/forward to fill out the empty space.

Once rotations have been applied, the resulting plan for the above example will look as illustrated below. The picture also includes a period outside the plan validity for an easier understanding how the rotation applies to the past and to the future.

../../_images/rotations-offsets-explained.en.png

Creating rotations

First step is to create empty rotation. New rotation can be created from FrontStage Administration in Workforce ‣ Rotation. Bellow is link Add item.

../../_images/admin-add-rotation1.en.png

Bellow are links to Add week template for adding existing template and Create new week template for creating a new one.

For adding existing template choose its position in a rotation.

../../_images/admin-add-template-to-rotation.en.png

Creating weekly templates

Second link during editing is Vytvořit novou týdenní šablonu that creates new template.

You can save it and use it in a plan later, or save and open it right now in shift editor.

../../_images/admin-create-new-template-for-rotation.en.png

Important

The same way as any other plan, the plan needs to be validated and approved before it can be published into the actual plan.

Editing weekly templates

Week templates uses slightly customized shift editor for exactly seven days of a week. Working with week editor is identical to regular shift editor.

../../_images/week-template-editor.en.png

By clicking on button with day of week, you will move to that day. Zoom is set to 24 hours.

Assigning rotation and offset to staff

In the personal card of an employee, you will find statutory limits as well as the important rotation setting and rotation start offset, which is used in automatic planning when creating a plan for each of the staff.

../../_images/wfm-agent-rotation.en.png

By assigning a rotation to an employee, you determine based on which rotation their shift plan is to be created.

Rotation offsets tells how far is rotation shifted during automatic planning.

See also

For a detailed explanation of rotations and offsets, please refer to the introductory subsection of this section.

Public holidays

National holidays are significant or exceptional days on which you do not want automatic planning to schedule any activities for the staff. However, it is always possible to plan work for these days manually.

You will find a list of nation holidays in the FrontStage Admin under Shift Planning / Exceptional Days.

../../_images/wfm-holidays-list.en.png

Vacation limits

If you wish, when inserting a vacation, the system can check whether the maximum number of team members on vacation will be exceeded or not.

The WFM homepage also shows a list of all teams.

../../_images/wfm-grid-teams.en.png

By clicking on the team, you can set a limit of team members on vacation in parallel.

../../_images/wfm-crew-editor.en.png

Vacation calculation

The WFM module allows you to set a special treatment when calculating vacation based on its duration. Using the WfmVacationFactor configuration parameter, you can set, for example, that 0.25 to 4.25 hours should be considered as a half-day of vacation, with anything longer to be considered as a full day.

WfmVacationFactor

WfmVacationFactor - In how many fractions of the day the vacation can be split for WFM purposes. For example, 2 means that half a day of vacation can be taken, 1 means only full days.

How to calculate vacation:

  1. WFM goes through one slot after another for every agent in a given year.

  2. It calculates the number of vacation hours (slot end time - slot start time).

  3. If relevant, it subtracts or adds an hour if the time has changed during the vacation so that a full-day vacation lasts for 24 hours even when the time changes.

  4. If the number of vacation hours is greater than 24 hours, the number of vacation days is calculated as the number of hours / 24 and rounded down.

  5. Or if the number of hours is less than 7.5 and WfmVacationFactor (in how many fragments can a vacation day be divided) is 2, you can determine how many 3.75-hour vacation fragments have started.

  6. Otherwise, one day of vacation is used.

So for 15 minutes the result is 0.5, for 3.75 it is 0.5, for 4.25 hours it is 0.5, for 4.5 hours it is 1 day, for 7.5 hours 1 day, for 11 hours 1 day, for 16 hours 1 day, for 24 hours 1 day, for 27 hours 1 day, for 47 hours 1 day, for 48 hours 2 days.