Create a task
Create a task
To create a task, you will need to provide the POST /tasks API
with the action for the task, as well as an item to represent the file to
add the task to.
curl -i -X POST "https://api.box.com/2.0/tasks" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "content-type: application/json" \
-d '{
"item": {
"id": "11446498",
"type": "file"
},
"action": "review"
}'await client.tasks.createTask({
item: {
type: 'file' as CreateTaskRequestBodyItemTypeField,
id: file.id,
} satisfies CreateTaskRequestBodyItemField,
message: 'test message',
dueAt: dateTime,
action: 'review' as CreateTaskRequestBodyActionField,
completionRule: 'all_assignees' as CreateTaskRequestBodyCompletionRuleField,
} satisfies CreateTaskRequestBody);client.tasks.create_task(
CreateTaskItem(type=CreateTaskItemTypeField.FILE, id=file.id),
action=CreateTaskAction.REVIEW,
message="test message",
due_at=date_time,
completion_rule=CreateTaskCompletionRule.ALL_ASSIGNEES,
)await client.Tasks.CreateTaskAsync(requestBody: new CreateTaskRequestBody(item: new CreateTaskRequestBodyItemField() { Type = CreateTaskRequestBodyItemTypeField.File, Id = file.Id }) { Message = "test message", DueAt = dateTime, Action = CreateTaskRequestBodyActionField.Review, CompletionRule = CreateTaskRequestBodyCompletionRuleField.AllAssignees });try await client.tasks.createTask(requestBody: CreateTaskRequestBody(item: CreateTaskRequestBodyItemField(type: CreateTaskRequestBodyItemTypeField.file, id: file.id), message: "test message", dueAt: dateTime, action: CreateTaskRequestBodyActionField.review, completionRule: CreateTaskRequestBodyCompletionRuleField.allAssignees))client.getTasks().createTask(new CreateTaskRequestBody.Builder(new CreateTaskRequestBodyItemField.Builder().id(file.getId()).type(CreateTaskRequestBodyItemTypeField.FILE).build()).action(CreateTaskRequestBodyActionField.REVIEW).message("test message").dueAt(dateTime).completionRule(CreateTaskRequestBodyCompletionRuleField.ALL_ASSIGNEES).build())await client.Tasks.CreateTaskAsync(requestBody: new CreateTaskRequestBody(item: new CreateTaskRequestBodyItemField() { Type = CreateTaskRequestBodyItemTypeField.File, Id = file.Id }) { Message = "test message", DueAt = dateTime, Action = CreateTaskRequestBodyActionField.Review, CompletionRule = CreateTaskRequestBodyCompletionRuleField.AllAssignees });await client.tasks.createTask({
item: {
type: 'file' as CreateTaskRequestBodyItemTypeField,
id: file.id,
} satisfies CreateTaskRequestBodyItemField,
message: 'test message',
dueAt: dateTime,
action: 'review' as CreateTaskRequestBodyActionField,
completionRule: 'all_assignees' as CreateTaskRequestBodyCompletionRuleField,
} satisfies CreateTaskRequestBody);Task actions
Box currently supports two types of tasks defined by the action value:
review tasks and complete tasks.
The type of task determines the possible resolution states a task can be in and the interface shown to a user in the web and mobile apps.
| Task action | Possible resolution states |
|---|---|
review | incomplete, approved, rejected |
complete | incomplete, complete |
A review task starts out in an incomplete state and can be marked as
incomplete, approved, or rejected. In the user interface a user is
provided with a text box and an pair of buttons to approve or reject the task.
A complete task starts out in an incomplete state and can be marked
incomplete or completed. Once a this task is marked completed, no
further changes can be made to the task's state. In the user interface a user is
provided with a text box and an button to mark the task as completed.
Completion rules
A task on a file can be assigned to more than one collaborator on the file, and
a task has a completion_rule that can be used to define if all users who've
been assigned the task (all_assignees) or only one assignee (any_assignee)
need to complete the task.