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

# Create a task (`tasks_create`)

Adds a task to a project, numbered like SALE-13, with status, priority, assignee, labels, due date, CRM links or a parent.

A new task in a project, numbered like WEB-13. Starts in the project's first "to do" status unless status says otherwise. Link it to a CRM contact, company or deal, or make it a subtask with parent.

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

## Use it when

Work should be tracked for the team.

- For a follow-up with one CRM contact, use [crm_create_task](https://conecto.chat/tools/crm/crm_create_task.md).

## Say this to your agent

> Add a task to the sale board: photograph the Tabor in sage by Friday, high priority, for Luis.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `project` | string | yes | A project's key ("WEB") or name. 1 to 80 characters. |  |  |
| `title` | string | yes | 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 |  |  |  |
| `parent` | string | no | The task this is a subtask of, like "WEB-4". Up to 20 characters. |  |  |

## Example

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

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

```json
{
  "project": "SALE",
  "title": "Photograph the Tabor in sage",
  "priority": "high",
  "assignee": "luis@halversoncycle.example",
  "due_date": "2026-10-16",
  "labels": [
    "photos"
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/tasks_create \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project": "SALE", "title": "Photograph the Tabor in sage", "priority": "high", "assignee": "luis@halversoncycle.example", "due_date": "2026-10-16", "labels": ["photos"]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "tasks_create",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.01",
  "balance_usd": "$19.75",
  "result": {
    "task": {
      "task": "SALE-5",
      "task_id": 4105,
      "title": "Photograph the Tabor in sage",
      "status": "To do",
      "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": null,
      "links": {},
      "subtasks": [],
      "comments": [],
      "history": []
    }
  }
}
```

`result`: task: the task in full, with its number, task_id, status, priority, assignee, labels, due date, links and history.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No project has that key or name. | Call projects_list and use one of its keys. |
| `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. |
| `not_found` | 404 | The parent task does not exist. | Find it with tasks_list. |

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_update](https://conecto.chat/tools/projects/tasks_update.md): Changes a task: status, assignee, priority, labels, due date, title, description, CRM links or its place in the column. $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.
