Worklists
Verified against source (12)
decision/SmartWorklistMember.csdecision/SmartWorklistMember.Fields.csdecision/SmartWorklist.csdecision/SmartWorklistTemplate.csConfig/SmartWorklistMember.configConfig/SmartWorklist.configConfig/SmartWorklistTemplate.configdecision/ImportForm.csdecision/ImportFormTemplate.csConfig/ImportForm.configProperties/Settings.settingsConfig/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.
Work items
Section titled “Work items”GET /api/smartworklistmember/next?SmartWorklist=Document ReviewGET /api/smartworklistmember/start?ID=5512POST /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.
Exception items
Section titled “Exception items”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=1To 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=ClaimAmountForms and work items
Section titled “Forms and work items”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.
Worklists and templates
Section titled “Worklists and templates”| 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=88POST /api/smartworklist/audit?ID=88&RestartWorklist=trueCalculateMethod 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.