qbo.Decision: Smart Worklists


Smart Worklists manage assignment of work to vendors, teams and individuals. They are often tied to user tasks (custom forms), but they do not have to be. If you've ever split work up among users by taking an Excel spreadsheet and passing rows, Smart Worklists are a better answer! 

Examples include:
  • For a 'Foreclosure Bidding Instructions' custom form, load balance assignment among the Foreclosure Sale Prep team members
  • For a 'HAMP Loan Review' custom form, pre-assign to a user based on a loan number's terminal digit
  • For a '30 Day Delinquent Call Campaign' custom form, push data to a dialer, and route screen pops to a '30 Day Delinquent' form
  • For a 'Loan Modification Audit' requirement, route members of an Auditing team to the Loan summary page, so they may review and annotate with messages
Key features include:
  • Tightly integrated with custom forms: a smart worklist template is automatically created when a new custom form template is created, and a work item is inserted when a custom for is created
  • Matrix-driven Team, Person, and Priority assignments make is easy for a business user to determine who gets what work, and under what conditions
  • Worklist dashboards track work progress by team, user, or worklist
  • Managers can assign, un-assign, prioritize and cancel work from the dashboard

Measuring Work

The Worklist dashboard includes a view of tasks by Worklist, Team, or Person, with columns for:
  • Items: total number of items assigned to a worklist, team or person
  • Queued: items that are queued to be done, but no one has started working on
  • Started: items that someone has started working on, but not yet completed
  • Skipped: items that someone started working on, but not yet completed, and has been 'delayed' as they work on other items
  • Completed: items that have been completed
  • Cancelled: items that have been cancelled
The worklist detail panel includes filters for:
  • All: (no filter) show all work items
  • Cancelled: show cancelled work items
  • Completed: show completed work items
  • Pending: show queued, started and skipped work items (there's still stuff to be done!)
The Performance tab breaks down 'inflows' and 'outflows' for worklists, teams or people over time by measuring:
  • Starting: number of pending work items when the time period started
  • Queued: number of work items added during the time period
  • Completed: number of work items completed during time period
  • Ending: number of pending work items when the time period ended

Assigning Work

QBO clients frequently ask how work items are divided among users, including questions about handing users on vacation, assigning experienced users more work than inexperienced users, and such. Most such questions assume that work items are pre-assigned to individuals. While pre-assigning users is certainly easy to configure with QBO, it is not recommended. Instead, users should be assigned work 'on demand', by clicking on the Worklist > Next Item (SmartWorklistMember.ashx/NextItem) from the main menu. This assigned work to a user only when they indicate they're ready to begin the work, obviating the need to manage vacation schedules, long lunches, or getting stuck working on a particularly complex work item for a long time.

Of course, not all work items should be worked on by all users. Work items may be pre-assigned to Teams (groups of users), and if it is, a user must be a member of the team to be eligible to work on the worklist item. Users may be members of multiple teams, and in fact their team membership can be prioritized. For example, jsmith@acme.com may be assigned to:
  • Team 'Auditors' with a priority of 1
  • Team 'Processors' with a priority of 2
This means that jsmith@acme.com will always be routed to work items assigned to the Auditors team until all such work items are done, at which point she becomes eligible to work on items assigned to the 'Processors' team.

The Next Item command will perform several possible functions:
  • If the user is already assigned to a worklist item, the highest priority item will be started if necessary, and they will be directed to that item
  • Otherwise, a user will be assigned to a worklist item, it will be marked as started, and they will be directed to that item, with the following priority:
    • Team priority
    • Worklist item priority
    • Worklist item sequence,
    • Worklist item due date
    • Worklist item created date
Team, Priority, and even Assigned Person may be defined in a Matrix, so when a worklist item is created, the Matrix output determines the team, priority, and/or person assigned.

Managing Smart Worklists

The Worklist > Manage Worklists dashboard can be used to manage worklists by worklist, person or team. From this dashboard, the following commands may be issued:
  • Complete Items: this will mark work items complete, without actually routing a user to the appropriate screens. Access to this method is typically very restricted*.
  • Assign Items: used to manually assign a Team or Person to selected work items
  • Auto-Assign Items: used to assign items via a Matrix (the matrix is defined from Design > Smart Worklists, when selecting a Smart Worklist Template)
  • Re-Queue Items: this unassigns selected items, and NULLs out their Start Date if they've been marked Started. For example, a user has to leave work abruptly.
  • Cancel Items: this will mark work items cancelled.  Access to this method is typically very restricted*.
  • Restart Worklist: over time, worklists become cluttered with completed items. Restart creates a "fresh" worklist as follows:
    • closes the current worklist, 
    • creates a new worklist, 
    • copies items that have not been completed or cancelled to the new worklist
    • optionally unassigns people (by default, people will be unassigned)
    • optionally unassigns teams (by default, teams will remain the same)
    • calls Auto-Assign for all items in the new worklist
  • Cancel Worklist: marks the entire worklist as cancelled, so no work items are eligible when users click on Next Item
* Warning: completing or cancelling a worklist item does not complete or cancel the underlying 'work'. For example, completing a worklist item does not complete an underlying task, as doing so may cause problems by:
    • bypassing javascript-enforced logic, such as required fields on the task, or
    • bypassing requirements for users to add comments when changing the dates of a task
Typically, if ones needs to bulk-complete tasks and ignore the risks associated with such a step, one can do so from ImportForm.ashx/Home.

Task-based Worklists

There is no need for power users to explicitly create Smart Worklists for tasks (custom forms). The Import Form and Smart Worklist classes are tightly integrated, and each Import Form created will automatically have a Smart Worklist Member created. Specifically:
  • When an Import Form Template is created, it will automatically create a Smart Worklist Template
  • When an Import Form (task) is created, it will automatically ensure a Smart Worklist exists, and add a Smart Worklist Member to that worklist, and call SmartWorklistMember/AutoAssign
  • When an Import Form (task) is re-projected, it will automatically skip any corresponding Smart Worklist Members
  • When an Import Form (task) Status is changed, and Status Routing is defined for the form, existing Smart Worklist Members will be completed, and a new status-specific one will be created
  • When an Import Form (task) is completed, it will automatically mark any corresponding Smart Worklist Members complete

Sticky Assignment

Frequently, multiple work items may be associated with the same parent object. For example, a Loan may have several tasks assigned to it, or a Process may have many tasks assigned to it. In some cases, it may be useful for the same person to work all tasks associated with an object. The Smart Worklist Template "Sticky Assignment" option allows you to specify this. If a worklist is defined as sticky, task-based work items will be assigned as follows:
  • If the task is assigned to a person, that person will be assigned to the worklist item
  • If the task was created by a workflow, and the workflow has been assigned to a person, that person will be assigned to the worklist item
  • If there is another item in the same worklist already assigned, the same assignment will be created for the new task

Query-based Worklists

Task-based worklists are certainly convenience, but do not cover all use cases. Other use cases might include:
  • For a 'Loan Modification Audit' requirement, route members of an Auditing team to the Loan summary page, so they may review and annotate with messages
  • For a 'Foreclosure Sale Review' requirement, route members of a FC Sale Review team to a Sale Prepared custom form, so they have audit the work already done
Since these uses cases do not have a 1:1 correspondence to tasks, the SmartWorklist/Calculate method will be used to create Smart Worklist Members. The power user must determine the criteria to determine which records are eligible to be included in the Smart Worklist; the Calcualte method will take care of ensure there are no duplicates, and cancelling worklist members if the corresponding record no longer meets the criteria of the worklist.

Power users configure the SmartWorklist/Calculate as follows:
  • From Design > Smart Worklists > {Template}, choose Options > Edit, and enter:
    • Object: the name of the object being worked on (e.g. Loan, ImportForm, etc)
    • CalculateMethod: the parameters used to identify which objects to work
    • MemberUrl: relative URL to route the users to
Example: Loan Modification Audit

To route users to a Loan Summary page to audit Loans pending a Loan Modification, we will create a 'PendingLoanModification' filter on the Loan table. From Design > Configuration > Modules > Loan, choose the Filters tab, and add a new filter:
  • Name: PendingLoanModification
  • Clause: EXISTS (SELECT 1 FROM LoanModification WHERE LoanModification.LoanID = Loan.LoanID)
Configuration of the Smart Worklist Template would include:
  • Object: 'Loan'
  • CalculateMethod: SqlFilters=PendingLoanModification
  • MemberUrl: Mortgage/Loan.ashx/Summary?ID={SourceObjectID}
Example: Foreclosure Sale Review

We will assume this requirement is a bit more complex, including:
  • include only loans with a Sale Prepared form completed in the past 3 days
  • limit to Loans with a UPBAmount greater than $350,000
  • exclude Loans with 'Goldman', and 'BlackRock' as investors
Since the intention is to audit an existing form, configure a Score Template to handle the Audit:
  • Design > Scores, choose Options > New Template
    • Template: 'Foreclosure Sale Review'
    • Applies To: 'ImportForm'
Configuration of the Smart Worklist Template would include:
  • Object: ImportForm
  • CalculateMethod: ImportForm=Sale Prepared&Loan

To route users to audit a Sale Prepared custom form

Naming a Work Item

When work items (SmartWorklistMember rows) are created for tasks, they inherit the name of the task. For example, if a task is called 'Document Approval', the work item will (by default) also be called 'Document Approval'. 

Work items may be renamed to include more descriptive information, if required. The Smart Worklist Template's MemberFormat field can data-drive the name of a work item. Assume we have a Document called 'Wells Fargo Service Contract', and under this document is a task called 'Document Approval'. Given this, you may use:
  • {Label} => work item is named 'Document Approval'
  • {GrandParent} => work item is named 'Wells Fargo Service Contract'
  • {GrandParent}: {Label} => work item is named 'Wells Fargo Service Contract: Document Approval'
  • {GrandParent}: Approval => work item is named 'Wells Fargo Service Contract: Approval'
One may change the default behavior for all work items from Design > Configuration > Modules > Smart Worklist, Settings tab, SmartWorklistMemberFormat default setting.