Skip to content

Worklists

Verified against source (12)

  • decision/SmartWorklistMember.cs
  • decision/SmartWorklistMember.Fields.cs
  • decision/SmartWorklist.cs
  • decision/SmartWorklistTemplate.cs
  • Config/SmartWorklistMember.config
  • Config/SmartWorklist.config
  • Config/SmartWorklistTemplate.config
  • decision/ImportForm.cs
  • decision/ImportFormTemplate.cs
  • Config/ImportForm.config
  • Properties/Settings.settings
  • Config/Abstract.config

Worklists use three classes: SmartWorklistTemplate (the definition), SmartWorklist (an open queue), and SmartWorklistMember (one item, bound to a record through SourceObject and SourceObjectID). Operations follow the standard pattern: /api/{module}/{operation} runs synchronously, and /api/{module}/queue/{operation} queues the operation for an app server.

GET /api/smartworklistmember/next?SmartWorklist=Document Review
GET /api/smartworklistmember/start?ID=5512
POST /api/smartworklistmember/skip?ID=5512&SkipDate=2026-10-12
Operation Parameters What it does
next SmartWorklist (optional) Picks, assigns, and starts the caller’s best item. Returns the item, its record, and the template’s MemberUrl.
start ID Starts an item and returns MemberUrl with placeholders filled.
resume ID Returns a started item’s filled MemberUrl.
skip ID, SkipDate (default: one day ahead) Hides the caller’s own item from next until the date.
reassign ID (list), TeamID, PersonID Sets the team or person on open items. Requires SmartWorklistMemberReassign.
requeue ID, KeepTeam (true), KeepPerson (false), KeepPriority (true) Clears start, skip, and cancel dates so the item is queued again.
autoassign ID Reruns the team matrix.
bulkcomplete ID, CompletionDate, Reason Completes items without touching their records. Requires SmartWorklistMemberBulkComplete.
cancel ID, CancelledDate, Reason Cancels items.
cancelobject Object, ObjectID, Reason Cancels every open item for a record.

next orders eligible items by: already assigned to the caller, then the caller’s priority in the item’s team, then item Priority, Sequence, DueDate, and ID. An item is eligible if it’s open, not skipped past now, unassigned or assigned to the caller, and either has no team or has a team the caller belongs to.

When an item is inserted, it runs AutoAssign. That evaluates the template’s team matrix for the Team, Person, Priority, and SmartWorklist outputs, then falls back to the worklist’s and the template’s team and priority. If the template sets OnAssignSourcePerson, starting or reassigning an item writes the assignee to that field on the record.

To add a record to a queue directly, save an item. Reason and ReasonDetail tell the worker why it’s there.

POST /api/smartworklistmember/save?SmartWorklistID=88&SourceObject=Process&SourceObjectID=1042&Reason=Missing signed agreement&Priority=1

To get a form, a record of the work, and worklist routing together, create an exception form instead. Use pause so the form stays open (see Forms). SmartWorklist names the queue: QBO uses the open worklist with that name for the form’s worklist template, or creates it.

POST /api/importform/pause?Template=Data Exception&Object=Process&ObjectID=1042&SmartWorklist=Exceptions: October import&Field=ClaimAmount

When a form template has a SmartWorklistTemplateID, saving forms of that template maintains their items:

Form event Item effect
Insert Item created. Team comes from the form’s AssignedCollectionID or the workflow step’s team. Person comes from the form or from sticky assignment. Due date is the first of actual, projected, or estimated completion.
ActualCompletion set Item completed, with BusinessMinutes calculated (using the template’s business-day calendar if set)
ProjectedCompletion set (not complete) Item skipped until that date, and due date updated
Status change (with a state diagram) Old-status items completed, and a new item created on the transition’s worklist unless the status is final
Delete Open items cancelled

/api/importformtemplate/createworklist?ID=… creates and binds a worklist template for a form template.

Operation Parameters What it does
smartworklist/calculate ID Runs the template’s CalculateMethod filter on SourceObject, adds new matches, cancels items whose records no longer match, then queues autoassign
smartworklist/restart ID, KeepTeam (true), KeepPriority (true), KeepPerson (false), KeepSkipDate (true) Cancels the worklist, copies its pending items to a new one, then auto-assigns
smartworklist/autoassign ID, QueueName When the template has a team matrix, queues autoassign for items missing a team or person
smartworklist/audit ID, RestartWorklist Evaluates the audit matrix on completed items and creates audit items. Returns the count.
smartworklist/cancel ID Cancels the worklist
smartworklisttemplate/create template fields, Calculate Saves a template, opens a worklist, and calculates it (on by default)
smartworklisttemplate/createteammatrix ID, TeamMatrixID (optional) Creates or binds the team matrix
smartworklisttemplate/createauditmatrix ID, AuditMatrixID (optional) Creates or binds the audit matrix
smartworklisttemplate/assignteam ID, TeamID Sets the template’s default team

Each operation is called as /api/{module}/{operation}, for example:

POST /api/smartworklist/queue/calculate?ID=88
POST /api/smartworklist/audit?ID=88&RestartWorklist=true

CalculateMethod is a method signature such as Process/Search?SqlFilters=MissingDocuments. Only the query string (from the ? on) is used, as filter parameters on the template’s SourceObject. calculate fails if CalculateMethod is empty, so pass Calculate=false to smartworklisttemplate/create for worklists that are fed by forms or the API.