bulk_modify_tasks
Apply one bulk action from BULK_TASK_ACTIONS to the selected tasks
(BC-23219).
Code
bulk_modify_tasks › Request Body
task_idsIds of the tasks to act on. Duplicates are collapsed, so a task reached both by a policy header checkbox and by its own row counts once. Capped at 500: each task in a batch costs a read, its own history rows, an update and an event inside one transaction, and the queue can only select a single page.
actionreassign moves the tasks to assignee_id. archive moves the tasks to Canceled, which is what places them in the archived lifecycle bucket. set_priority sets priority. set_status sets status. mark_complete sets Completed and emits TaskCompletedEvent per task. link_to_policy attaches unattached triage tasks to policy_id - attach only, so a task that already has a parent fails individually.
assignee_idContact to reassign to. Required for reassign, rejected for every other action. An unknown id fails the whole request rather than every task individually.
priorityRequired for set_priority, rejected for every other action.
statusRequired for set_status, rejected for every other action. Terminal targets are validated per task by the FSM, which forbids modifying a task that is already terminal.
policy_idRequired for link_to_policy, rejected for every other action. An unknown id fails the whole request rather than every task individually.
bulk_modify_tasks › Responses
successcreate_task
create_task
create_task › Request Body
task_definition_idThe ID of the task definition to use when creating this task.
claim_idOptional ID of the claim associated with this task. Mutually exclusive with policy_id.
policy_idOptional ID of the policy associated with this task. Mutually exclusive with claim_id.
descriptionDescription of the task.
priorityPriority level of the task.
due_dateWhen this task is due (must be greater than or equal to today).
assignee_idThe ID of the user to assign this task to.
mandatoryWhether this task is mandatory.
orkes_task_idThe Orkes workflow task ID associated with this task.
create_task › Responses
successWhether the task creation was successful
create_task_definition
Create a new task definition.
Code
create_task_definition › Request Body
nameThe name of the task definition.
scopeThe scope of the task definition (claim or policy).
descriptionDescription of the task definition.
create_task_definition › Responses
successcreate_task_definitions_assignees
Create task definitions assignees for roles and user groups.
Code
create_task_definitions_assignees › Request Body
task_definition_idThe ID of the task definition to assign roles and user groups to.
role_idsList of role IDs to assign to the task definition.
user_group_idsList of user group IDs to assign to the task definition.
added_byThe ID of the user creating the assignments.
create_task_definitions_assignees › Responses
List of task definition assignments, aggregated by task definition ID.
successcreate_task_note
Write a note on a task.
Code
create_task_note › Request Body
task_idThe id of the task the note belongs to.
contentsThe note body.
share_to_policyAlso publish the note to the task's policy, where it appears on the Notes tab. Needs no permission beyond this endpoint's own, but the task must be attached to a policy. Defaults to false and cannot be changed after the note is written.
create_task_note › Responses
successdelete_task_definition
Delete a task definition (soft delete).
Code
delete_task_definition › Request Body
idThe ID of the Task Definition to delete
delete_task_definition › Responses
successexport_tasks
Export the task queue's current query as CSV.
Code
export_tasks › Request Body
querySearch query for tasks. Matches task fields, claim number, policy number (including claim-attached tasks reached through the claim's policy), and named insureds.
viewNamed view applying server-side scoping. submissions = policy tasks whose latest revision is in submission; triage = open, unassigned tasks.
file_index0-based index of the file to build. Omitted or null, the response carries the plan only and builds no CSV. A file_index beyond the current file count is rejected rather than answered with an empty file: it means the filtered set shrank since the plan was made.
filename_timestamp^\d{8}-\d{6}$Site-local timestamp baked into the exported filenames, as YYYYMMDD-HHMMSS. Echo back the value the plan response returned so that every file of one export is named for the same instant and the filenames match the ones the preview listed; stamping per request instead would give a three-file export three different timestamps. Omitted, the service stamps the current time -- so a caller that ignores this field still gets a timestamped filename, it just cannot span files. Validated against exactly the shape the server emits, because it is interpolated into a filename.
group_by_policySend true when the queue is in By Policy mode. Keeps every task of a policy contiguous in the file, with unattached (triage) tasks in a leading bucket, since a CSV cannot express grouping. This is ORDERING ONLY -- unlike retrieve_tasks' group_by, it does not switch to group pagination, which would break the row-based file split. The screen's group ranking (unattached first, then overdue count desc, then top priority desc) is deliberately not reproduced: it would need an aggregate join on every export, and every column it derives from is already in the file. Must match between the plan request and each file request, or the files would be cut from a differently ordered result than the plan measured.
task_scopesWhether to return CLAIM work, POLICY work, or both. Omitted (the default) means both, so existing callers are unaffected. The Underwriting Workbench sends ["policy"]; claim work belongs to the Claims module's own task tab. An explicit list rather than something derived from view, because my_tasks / my_team / all_tasks are shared with the legacy Tasks Workbench, which lists every task on the site. THE RULE: the attachment decides when there is one, and the task's definition decides when there is not. policy = claimId IS NULL AND (policyId IS NOT NULL OR the task's definition is policy-scoped); claim is its exact complement. The two partition the table, so any subset selects a well-defined set of rows, and a task carrying BOTH columns is claim. Why the attachment wins where both could speak: task_definitions.scope was added NOT NULL DEFAULT 'claim' and backfilled every pre-existing definition, so a policy-attached task whose definition says 'claim' is ordinary legacy data and is still policy work. Why the definition decides an UNATTACHED task: it is binding, not advisory -- modify_task refuses to attach a claim-scoped task to a policy, so an unattached claim-scoped task can only ever become a claim task. The scope applies to the rows, to filter_counts / bucket_counts / view_counts and to group_by, so every number describes the rows returned. retrieve_task, modify_task and bulk_modify_tasks are unaffected and still serve both. An empty list is rejected.
Filter criteria for tasks
Sorting parameters, applied server-side over the whole filtered set rather than the returned page. Nullable keys place missing values last regardless of direction; task number is the final tiebreaker, so paging cannot repeat or skip a row. An unrecognised sort_by leaves only that tiebreaker.
export_tasks › Responses
successWhether the request was successful
Any messages or errors related to the request
Response for /api/v2/tasks/export_tasks. The export plan is present on every response, whether or not a file was requested, so a client part-way through a multi-file export can compare total_count against the plan it started from and detect the filtered set changing underneath it. content/filename/file_index/row_count are present only when file_index was supplied.
modify_task
Updates an existing task.
Code
modify_task › Request Body
idThe ID of the task to modify.
claim_idAttach an unattached (triage) task to this claim. Attach-only: rejected if the task already has a claim or policy, if policy_id is also supplied, or if the task definition is policy-scoped.
policy_idAttach an unattached (triage) task to this policy. Attach-only: rejected if the task already has a claim or policy, if claim_id is also supplied, or if the task definition is claim-scoped.
descriptionUpdated description of the task.
priorityUpdated priority level of the task.
due_dateUpdated due date for the task (must be greater than or equal to today).
assignee_idThe ID of the user to assign this task to.
statusUpdated status of the task.
mandatoryIndicates if the task is mandatory.
modify_task › Responses
successWhether the task modification was successful
modify_task_definition
Update an existing task definition.
Code
modify_task_definition › Request Body
idThe ID of the task definition to modify.
nameUpdated name of the task definition.
descriptionUpdated description of the task definition.
deletedWhether to soft delete the task definition.
modify_task_definition › Responses
successmodify_task_definitions_assignees
Modify task definitions assignees by adding or deleting roles and user groups.
Code
modify_task_definitions_assignees › Request Body
task_definition_idThe ID of the task definition to modify assignments for.
add_role_idsList of role IDs to add to the task definition.
add_user_group_idsList of user group IDs to add to the task definition.
delete_role_idsList of role IDs to remove from the task definition.
delete_user_group_idsList of user group IDs to remove from the task definition.
modify_task_definitions_assignees › Responses
List of task definition assignments after modification, aggregated by task definition ID.
successretrieve_common_allowed_assignees
Retrieve contacts allowed to be assigned to tasks of every given task definition.
Code
retrieve_common_allowed_assignees › Request Body
task_definition_idsThe task definitions to intersect. Only contacts allowed by every one of them are returned.
limitMaximum number of assignees to return. Omit for no cap.
searchFilters the assignees by name or id (substring match).
assigned_role_idRole the selection is pinned to. Narrows the result on top of the task definitions, when it is one they are configured with.
assigned_user_group_idUser group the selection is pinned to. Narrows the result on top of the task definitions, when it is one they are configured with.
retrieve_common_allowed_assignees › Responses
List of contacts allowed to be assigned to tasks of every given task definition
successretrieve_queue_capabilities
Return the current user's queue capabilities and the lifecycle buckets.
Code
retrieve_queue_capabilities › Request Body
retrieve_queue_capabilities › Responses
successretrieve_task
Return a single task, with the policy context the detail sidebar needs.
Code
retrieve_task › Request Body
idThe id of the task to retrieve.
retrieve_task › Responses
successretrieve_task_definition
retrieve_task_definition
retrieve_task_definition › Request Body
idThe id of the task definition to retrieve.
retrieve_task_definition › Responses
successretrieve_task_definition_allowed_assignees
Retrieve contacts that are allowed to be assigned to tasks for a given task definition.
Code
retrieve_task_definition_allowed_assignees › Request Body
task_definition_idThe id of the task definition to retrieve allowed assignees for.
limitMaximum number of assignees to return. Omit for no cap.
searchFilters the assignees by name or id (substring match).
assigned_role_idNarrows the result to this role, when it is one the task definition is configured with.
assigned_user_group_idNarrows the result to this user group, when it is one the task definition is configured with.
retrieve_task_definition_allowed_assignees › Responses
List of contacts that are allowed to be assigned to tasks for this task definition
successretrieve_task_definitions_assignees
Retrieve task definitions assignees.
Code
retrieve_task_definitions_assignees › Request Body
task_definition_idOptional task definition ID to filter by. If not provided, returns all assignments.
retrieve_task_definitions_assignees › Responses
List of task definition assignments, aggregated by task definition ID.
successretrieve_task_documents
Return the documents on the record a task is attached to, newest first.
Code
retrieve_task_documents › Request Body
idThe id of the task whose linked record's documents to retrieve.
retrieve_task_documents › Responses
Documents on the record the task is attached to, plus whether the caller may read them at all.
successretrieve_task_history
retrieve_task_history
retrieve_task_history › Request Body
idThe id of the task to retrieve history.
retrieve_task_history › Responses
successretrieve_task_notes
Return the notes written on a task, newest first.
Code
retrieve_task_notes › Request Body
idThe id of the task whose notes are returned.
retrieve_task_notes › Responses
successretrieve_task_provenance
Return rule-execution provenance rows for a task created by an effect.
Code
retrieve_task_provenance › Request Body
idThe id of the task whose rule-execution lineage to retrieve.
retrieve_task_provenance › Responses
successretrieve_tasks
retrieve_tasks
retrieve_tasks › Request Body
querySearch query for tasks. Matches task fields, claim number, policy number (including claim-attached tasks reached through the claim's policy), and named insureds.
viewNamed view applying server-side scoping. submissions = policy tasks whose latest revision is in submission; triage = open, unassigned tasks.
include_filter_countsWhen true, the response includes filter_counts (status quick-filter bucket totals over the full filtered set).
include_view_countsWhen true, the response includes view_counts: totals for the my_tasks / all_tasks / submissions / triage views in one aggregate, unfiltered by every queue control (including filters.bucket) so the tab numbers stay put as filters change.
include_bucket_countsWhen true, the response includes bucket_counts (per-lifecycle-bucket totals over the filtered set, computed before filters.bucket narrows it, so every bucket tab shows its own total). Only callers that render the admin bucket tabs request them.
group_byWhen set to 'policy', pagination counts whole policy groups instead of task rows: pagination.page/page_size select groups (unattached tasks form one bucket, sorted first; then overdue count desc, top priority desc), the response returns every task belonging to the page's groups (a policy's tasks never split across pages), and pagination carries total_groups. total_count still reports the task total. sorting orders the tasks WITHIN each group and does not reorder the groups, whose rank is an aggregate over their tasks; insured, agency and lob hold one value per group, so the queue offers only task-level keys in this mode.
suggestLightweight typeahead mode: returns only the LIMITed rows for the query, skipping the aggregate COUNT over the search predicate and the transaction-type enrichment. The response omits pagination in this mode.
task_scopesWhether to return CLAIM work, POLICY work, or both. Omitted (the default) means both, so existing callers are unaffected. The Underwriting Workbench sends ["policy"]; claim work belongs to the Claims module's own task tab. An explicit list rather than something derived from view, because my_tasks / my_team / all_tasks are shared with the legacy Tasks Workbench, which lists every task on the site. THE RULE: the attachment decides when there is one, and the task's definition decides when there is not. policy = claimId IS NULL AND (policyId IS NOT NULL OR the task's definition is policy-scoped); claim is its exact complement. The two partition the table, so any subset selects a well-defined set of rows, and a task carrying BOTH columns is claim. Why the attachment wins where both could speak: task_definitions.scope was added NOT NULL DEFAULT 'claim' and backfilled every pre-existing definition, so a policy-attached task whose definition says 'claim' is ordinary legacy data and is still policy work. Why the definition decides an UNATTACHED task: it is binding, not advisory -- modify_task refuses to attach a claim-scoped task to a policy, so an unattached claim-scoped task can only ever become a claim task. The scope applies to the rows, to filter_counts / bucket_counts / view_counts and to group_by, so every number describes the rows returned. retrieve_task, modify_task and bulk_modify_tasks are unaffected and still serve both. An empty list is rejected.
Filter criteria for tasks
Pagination parameters
Sorting parameters, applied server-side over the whole filtered set rather than the returned page. Nullable keys place missing values last regardless of direction; task number is the final tiebreaker, so paging cannot repeat or skip a row. An unrecognised sort_by leaves only that tiebreaker.
retrieve_tasks › Responses
Any messages or errors related to the request
successWhether the request was successful
retrieve_team_workload
Return per-underwriter open / overdue / blocked task counts.
Code
retrieve_team_workload › Request Body
retrieve_team_workload › Responses
successretrieve_underwriting_calendar
Return per-day counts of the caller's open tasks for one month.
Code
retrieve_underwriting_calendar › Request Body
month^[0-9]{4}-[0-9]{2}$The month to report, as YYYY-MM. Defaults to the current month when omitted. Rejected beyond five years either side of today.
retrieve_underwriting_calendar › Responses
successretrieve_underwriting_dashboard
Return the Underwriting Dashboard's My Dashboard payload.
Code
retrieve_underwriting_dashboard › Request Body
retrieve_underwriting_dashboard › Responses
successretrieve_underwriting_dashboard_panels
Return the Dashboard's Recent Activity, Upcoming Renewals and Pipeline.
Code
retrieve_underwriting_dashboard_panels › Request Body
retrieve_underwriting_dashboard_panels › Responses
successretrieve_underwriting_team_performance
Return the Team Performance payload: workload, On Hold, cycle time.
Code
retrieve_underwriting_team_performance › Request Body
retrieve_underwriting_team_performance › Responses
success