---
name: "tasks_update"
area: "projects"
title: "Change a task"
price: "$0.01"
method: "POST"
url: "https://api.conecto.chat/v1/tools/tasks_update"
mcp_server: "https://api.conecto.chat/mcp/projects"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/projects/tasks_update"
---

# Change a task (`tasks_update`)

Changes a task: status, assignee, priority, labels, due date, title, description, CRM links or its place in the column.

Change a task: move it to another status, reassign, reprioritize, relabel, set a due date, edit its title or description, or link CRM records. Give only what changes; order "top" puts it first in its column.

Price: $0.01 a call. A call that fails costs nothing.

## Use it when

Work moved on, changed hands or changed priority.

## Say this to your agent

> The bike photos are done. Move SALE-3 to Done.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `task` | string | yes | A task like "WEB-12", or its task_id. 1 to 20 characters. |  |  |
| `title` | string | no | 1 to 200 characters. |  |  |
| `description` | string | no | Markdown. Up to 20,000 characters. |  |  |
| `status` | string | no | One of the project's statuses, e.g. "In progress". Up to 40 characters. |  |  |
| `priority` | string | no |  | `"none"`, `"low"`, `"medium"`, `"high"`, `"urgent"` |  |
| `assignee` | string | no | A bot's name or a person's email; "" to clear. Up to 120 characters. |  |  |
| `labels` | array of strings | no | Up to 10 items. |  |  |
| `due_date` | string or null | no | YYYY-MM-DD, or null. Matches ^\\d{4}-\\d{2}-\\d{2}$. |  |  |
| `contact_id` | integer or null | no |  |  |  |
| `company_id` | integer or null | no |  |  |  |
| `deal_id` | integer or null | no |  |  |  |
| `order` | string | no |  | `"top"`, `"bottom"` |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `tasks_update` on the MCP server `https://api.conecto.chat/mcp/projects` with these arguments:

```json
{
  "task": "SALE-3",
  "status": "Done"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/tasks_update \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"task": "SALE-3", "status": "Done"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "tasks_update",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.01",
  "balance_usd": "$19.75",
  "result": {
    "task": {
      "task": "SALE-3",
      "task_id": 4103,
      "title": "Photograph the Tabor in sage",
      "status": "Done",
      "priority": "high",
      "assignee": "luis@halversoncycle.example",
      "labels": [
        "photos"
      ],
      "due_date": "2026-10-16",
      "parent": null,
      "updated_at": "2026-10-14T08:00:00+00:00",
      "description": "",
      "created_by": "Pip",
      "created_at": "2026-10-14T08:00:00+00:00",
      "completed_at": "2026-10-14T08:00:00+00:00",
      "links": {},
      "subtasks": [],
      "comments": [],
      "history": [
        {
          "author": "Pip",
          "change": "Status: To do → Done",
          "at": "2026-10-14T08:00:00+00:00"
        }
      ]
    }
  }
}
```

`result`: task: the task in full, as it now is.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No task has that number or task_id. | Find it with tasks_list. |
| `invalid_input` | 400 | The status is not one of the project's, a date is not real, or a subtask's parent is in another project. | Use a status the message lists and dates like 2026-10-16. |
| `not_found` | 404 | A CRM contact, company or deal id is not the business's. | Find it with crm_search. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [projects_create](https://conecto.chat/tools/projects/projects_create.md): Creates a board of tasks with a short key that numbers them, and its own statuses if you like. $0.001 a call.
- [projects_list](https://conecto.chat/tools/projects/projects_list.md): Every project with how many tasks are in each status. Free up to 1,000,000 reads a month.
- [projects_board](https://conecto.chat/tools/projects/projects_board.md): A project as a board: each status with its tasks in order. Free up to 1,000,000 reads a month.
- [tasks_create](https://conecto.chat/tools/projects/tasks_create.md): Adds a task to a project, numbered like SALE-13, with status, priority, assignee, labels, due date, CRM links or a parent. $0.01 a call.
- [tasks_list](https://conecto.chat/tools/projects/tasks_list.md): Open tasks across projects or in one, most urgent first, filtered by status, assignee, label, priority, due date or words. Free up to 1,000,000 reads a month.
- [tasks_get](https://conecto.chat/tools/projects/tasks_get.md): One task in full: description, links, subtasks, comments and history. Free up to 1,000,000 reads a month.
- [tasks_comment](https://conecto.chat/tools/projects/tasks_comment.md): Adds a comment in Markdown to a task's thread. $0.01 a call.
- [tasks_delete](https://conecto.chat/tools/projects/tasks_delete.md): Deletes a task and its subtasks for good. Free.
