Box Developer Documentation

Join BoxWorks 2024 to discover what's possible with content and AI!

Register now!

Make changes to an existing task

Guides Tasks Make changes to an existing task
Edit this page

Make changes to an existing task

To update a task in Box you will need to call the PUT /tasks/:task_id API with the ID of the task. This API can be used to change the action type of the task, add a message, or change the due date.

cURL
curl -i -X PUT "https://api.box.com/2.0/tasks/12345" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "action": "review"
     }'
TypeScript Gen
await client.tasks.updateTaskById(task.id!, {
  requestBody: {
    message: 'updated message',
  } satisfies UpdateTaskByIdRequestBody,
} satisfies UpdateTaskByIdOptionalsInput);
Python Gen
client.tasks.update_task_by_id(task.id, message="updated message")
.NET Gen
await client.Tasks.UpdateTaskByIdAsync(taskId: NullableUtils.Unwrap(task.Id), requestBody: new UpdateTaskByIdRequestBody() { Message = "updated message" });
Swift Gen (Beta)
try await client.tasks.updateTaskById(taskId: task.id!, requestBody: UpdateTaskByIdRequestBody(message: "updated message"))
Java
BoxTask task = new BoxTask(api, "id");
BoxTask.Info info = task.new Info();
info.setMessage("An edited message.");
task.updateInfo(info);
Python
task_update = {'message': 'New Message', 'due_at': '2014-04-03T11:09:43-10:00'}
updated_task = client.task(task_id='12345').update_info(data=task_update)
print(f'New task message is {updated_task.message} and the new due time is {updated_task.due_at}')
.NET
var updates = new BoxTaskUpdateRequest()
{
    Id = "22222",
    Message = "Could you please review this?"
};
BoxTask updatedTask = await client.TasksManager.UpdateTaskAsync(updates);
Node
client.tasks.update('11111', { message: 'Could you please review?' })
	.then(task => {
		/* task -> {
			type: 'task',
			id: '11111',
			item: 
			{ type: 'file',
				id: '22222',
				sequence_id: '0',
				etag: '0',
				sha1: '0bbd79a105c504f99573e3799756debba4c760cd',
				name: 'box-logo.png' },
			due_at: '2014-04-03T11:09:43-07:00',
			action: 'review',
			message: 'Could you please review?',
			task_assignment_collection: { total_count: 0, entries: [] },
			is_completed: false,
			created_by: 
			{ type: 'user',
				id: '33333',
				name: 'Example User',
				login: 'user@example.com' },
			created_at: '2013-04-03T11:12:54-07:00' }
		*/
	});

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 actionPossible resolution states
reviewincomplete, approved, rejected
completeincomplete, 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.