# Zoho Projects

> Project management from Zoho. Create and update projects, task lists and tasks, assign owners, track progress and comment on tasks.

App · Project Management · 20 actions. Web page: https://docs.lodol.com/docs/integrations/zoho-projects

## Actions

### Add a task comment

Add a comment to a task.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task ID (`task_id`, text, required): The task's id, from 'List tasks' or an earlier step.
- Comment (`comment`, text, required): The comment text.

**Outputs**: A task comment.

- `added_via` (text): Where the comment was added from.
- `comment` (text): The comment text (may contain HTML).
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the comment was added.
- `id` (text): The comment id.
- `updated_time` (text): When the comment was last changed.

**Example output**

```json
{
  "comment": "Draft is in the shared folder.",
  "created_by": {
    "email": "ada@example.com",
    "name": "Ada Lovelace",
    "zpuid": "1752587000000084001"
  },
  "created_time": "2026-09-30T10:00:00.000Z",
  "id": "1752587000000097061"
}
```

### Create a project

Create a project with a name and an owner, and optionally a description, dates and visibility. A Free portal holds at most 3 projects.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Name (`name`, text, required): The project name, up to 200 characters.
- Owner (`owner_zpuid`, text, required): The portal user who owns the project.
- Description (`description`, text): Optional. The description.
- Start date (`start_date`, date): Optional. When the project starts.
- End date (`end_date`, date): Optional. When the project ends.
- Public project (`is_public_project`, true/false): Optional. Whether every portal user can see the project.

**Outputs**: A Zoho Projects project.

- `completed_time` (text): When the project was completed.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the project was created.
- `description` (text): The project description (may contain HTML).
- `end_date` (text): End date.
- `id` (text): The project id.
- `is_completed` (true/false): Whether the project is completed.
- `is_public_project` (true/false): Whether the project is public within the portal.
- `issues` (object): Open and closed counts.
- `key` (text): The project's short key.
- `milestones` (object): Open and closed counts.
- `modified_time` (text): When the project was last changed.
- `name` (text): The project name.
- `owner` (object): A Zoho Projects user.
- `percent_complete` (number): How complete the project is, in percent.
- `project_type` (text): active, template or archived.
- `start_date` (text): Start date.
- `status` (object): The status.
- `tasks` (object): Open and closed counts.

**Example output**

```json
{
  "created_time": "2026-09-30T09:00:00.000Z",
  "description": "Everything for the autumn relaunch.",
  "end_date": "2026-12-15",
  "id": "1752587000000097005",
  "is_completed": false,
  "is_public_project": false,
  "key": "LD1",
  "name": "Website relaunch",
  "owner": {
    "email": "ada@example.com",
    "name": "Ada Lovelace",
    "zpuid": "1752587000000084001"
  },
  "percent_complete": 0,
  "project_type": "active",
  "start_date": "2026-10-01",
  "status": {
    "id": "1752587000000016071",
    "is_closed_type": false,
    "name": "Active"
  },
  "tasks": {
    "closed_count": 0,
    "open_count": 1
  }
}
```

### Create a task

Create a task, or a subtask of another task, with optional description, priority, dates, progress and owners.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Name (`name`, text, required): The task's name.
- Task list (`tasklist_id`, text): Optional. The task list to put the task in; Zoho's general list if empty.
- Parent task ID (`parent_task_id`, text): Optional. Make this a subtask of the task with this id.
- Description (`description`, text): Optional. The description.
- Priority (`priority`, text): Optional. The task's priority. One of: `none`, `low`, `medium`, `high`.
- Start (`start_date`, date and time): Optional. When work on the task starts.
- Due (`end_date`, date and time): Optional. When the task is due.
- Percent complete (`completion_percentage`, number): Optional. How complete the task is, 0 to 100. From 0 to 100.
- Owners (`owner_zpuids`, list): Optional. The project members who own the task.

**Outputs**: A task.

- `completion_percentage` (number): How complete the task is, in percent.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the task was created.
- `description` (text): The task description (may contain HTML).
- `end_date` (text): Due date and time.
- `id` (text): The task id.
- `is_completed` (true/false): Whether the task is completed.
- `last_modified_time` (text): When the task was last changed.
- `milestone` (object): The milestone.
- `name` (text): The task name.
- `owners_and_work` (object): Who owns the task.
- `prefix` (text): The task's short key, for example LP-T12.
- `priority` (text): none, low, medium or high.
- `project` (object): The project.
- `start_date` (text): Start date and time.
- `status` (object): The status.
- `tasklist` (object): The task list.

**Example output**

```json
{
  "completion_percentage": 0,
  "end_date": "2026-10-03T17:00:00.000Z",
  "id": "1752587000000097041",
  "is_completed": false,
  "name": "Write release notes",
  "owners_and_work": {
    "owners": [
      {
        "email": "ada@example.com",
        "name": "Ada Lovelace",
        "zpuid": "1752587000000084001"
      }
    ]
  },
  "prefix": "LD1-T1",
  "priority": "medium",
  "project": {
    "id": "1752587000000097005",
    "name": "Website relaunch"
  },
  "start_date": "2026-10-01T09:00:00.000Z",
  "status": {
    "id": "1752587000000016068",
    "is_closed_type": false,
    "name": "Open"
  },
  "tasklist": {
    "id": "1752587000000097021",
    "name": "Launch checklist"
  }
}
```

### Create a task list

Create a task list in a project.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Name (`name`, text, required): The task list's name.
- Visibility (`flag`, text): Optional. Internal lists are hidden from client users. One of: `internal`, `external`.

**Outputs**: A task list.

- `color` (text): The task list colour.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the task list was created.
- `flag` (text): internal or external.
- `id` (text): The task list id.
- `last_updated_time` (text): When the task list was last changed.
- `milestone` (object): The milestone.
- `name` (text): The task list name.
- `status` (text): active or completed.

**Example output**

```json
{
  "created_time": "2026-09-30T09:05:00.000Z",
  "flag": "internal",
  "id": "1752587000000097021",
  "name": "Launch checklist",
  "status": "active"
}
```

### Delete a task

Permanently delete a task from a project.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task ID (`task_id`, text, required): The task's id, from 'List tasks' or an earlier step.

**Outputs**: The record deleted.

- `deleted` (true/false): Always true.
- `id` (text): The deleted record's id.

**Example output**

```json
{
  "deleted": true,
  "id": "1752587000000097041"
}
```

### Delete a task list

Permanently delete a task list from a project. Zoho does not document what happens to the tasks in it, so move any you want to keep first.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task list (`tasklist_id`, text, required): The task list, from the list or as its id from 'List task lists'.

**Outputs**: The record deleted.

- `deleted` (true/false): Always true.
- `id` (text): The deleted record's id.

**Example output**

```json
{
  "deleted": true,
  "id": "1752587000000097021"
}
```

### Get a project

Get a project: its dates, owner, status, progress and open and closed task counts.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.

**Outputs**: A Zoho Projects project.

- `completed_time` (text): When the project was completed.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the project was created.
- `description` (text): The project description (may contain HTML).
- `end_date` (text): End date.
- `id` (text): The project id.
- `is_completed` (true/false): Whether the project is completed.
- `is_public_project` (true/false): Whether the project is public within the portal.
- `issues` (object): Open and closed counts.
- `key` (text): The project's short key.
- `milestones` (object): Open and closed counts.
- `modified_time` (text): When the project was last changed.
- `name` (text): The project name.
- `owner` (object): A Zoho Projects user.
- `percent_complete` (number): How complete the project is, in percent.
- `project_type` (text): active, template or archived.
- `start_date` (text): Start date.
- `status` (object): The status.
- `tasks` (object): Open and closed counts.

**Example output**

```json
{
  "created_time": "2026-09-30T09:00:00.000Z",
  "description": "Everything for the autumn relaunch.",
  "end_date": "2026-12-15",
  "id": "1752587000000097005",
  "is_completed": false,
  "is_public_project": false,
  "key": "LD1",
  "name": "Website relaunch",
  "owner": {
    "email": "ada@example.com",
    "name": "Ada Lovelace",
    "zpuid": "1752587000000084001"
  },
  "percent_complete": 0,
  "project_type": "active",
  "start_date": "2026-10-01",
  "status": {
    "id": "1752587000000016071",
    "is_closed_type": false,
    "name": "Active"
  },
  "tasks": {
    "closed_count": 0,
    "open_count": 1
  }
}
```

### Get a task

Get a task: its status, priority, dates, progress, owners and task list.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task ID (`task_id`, text, required): The task's id, from 'List tasks' or an earlier step.

**Outputs**: A task.

- `completion_percentage` (number): How complete the task is, in percent.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the task was created.
- `description` (text): The task description (may contain HTML).
- `end_date` (text): Due date and time.
- `id` (text): The task id.
- `is_completed` (true/false): Whether the task is completed.
- `last_modified_time` (text): When the task was last changed.
- `milestone` (object): The milestone.
- `name` (text): The task name.
- `owners_and_work` (object): Who owns the task.
- `prefix` (text): The task's short key, for example LP-T12.
- `priority` (text): none, low, medium or high.
- `project` (object): The project.
- `start_date` (text): Start date and time.
- `status` (object): The status.
- `tasklist` (object): The task list.

**Example output**

```json
{
  "completion_percentage": 0,
  "end_date": "2026-10-03T17:00:00.000Z",
  "id": "1752587000000097041",
  "is_completed": false,
  "name": "Write release notes",
  "owners_and_work": {
    "owners": [
      {
        "email": "ada@example.com",
        "name": "Ada Lovelace",
        "zpuid": "1752587000000084001"
      }
    ]
  },
  "prefix": "LD1-T1",
  "priority": "medium",
  "project": {
    "id": "1752587000000097005",
    "name": "Website relaunch"
  },
  "start_date": "2026-10-01T09:00:00.000Z",
  "status": {
    "id": "1752587000000016068",
    "is_closed_type": false,
    "name": "Open"
  },
  "tasklist": {
    "id": "1752587000000097021",
    "name": "Launch checklist"
  }
}
```

### List portal users

List the users of a portal. Each user's id is the one to use as a project or task owner.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- User type (`user_type`, text): Optional. Which kind of user to list; portal users if empty. One of: `portal_user` (Portal user), `client_user` (Client user), `client_contact` (Client contact).
- Status (`view_type`, text): Optional. Active or inactive users; active if empty. One of: `active`, `inactive`.
- Page (`page`, number): Optional. Which page to return, starting at 1. At least 1.
- Page size (`per_page`, number): Optional. How many to return per page, 1 to 200. Zoho's default is 100. From 1 to 200.

**Outputs**

- `count` (number): How many users are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The users.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "email": "ada@example.com",
      "first_name": "Ada",
      "full_name": "Ada Lovelace",
      "id": "1752587000000084001",
      "is_confirmed": true,
      "last_name": "Lovelace",
      "status": "active",
      "zuid": "80012345"
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### List portals

List the Zoho Projects portals the connected user belongs to, with each portal's id and plan.

**Inputs**: None.

**Outputs**

- `count` (number): How many portals are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The portals.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "id": "60012345678",
      "is_default_portal": true,
      "org_name": "Lodol Demo",
      "portal_name": "lodoldemo",
      "project_plan": "Free",
      "timezone": "Europe/London"
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### List project users

List the members of a project. Each user's id is the one to use as a task owner.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- User type (`user_type`, text): Optional. Which kind of user to list; portal users if empty. One of: `portal_user` (Portal user), `client_user` (Client user), `client_contact` (Client contact).
- Status (`view_type`, text): Optional. Active or inactive users; active if empty. One of: `active`, `inactive`.
- Page (`page`, number): Optional. Which page to return, starting at 1. At least 1.
- Page size (`per_page`, number): Optional. How many to return per page, 1 to 200. Zoho's default is 100. From 1 to 200.

**Outputs**

- `count` (number): How many users are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The users.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "email": "ada@example.com",
      "first_name": "Ada",
      "full_name": "Ada Lovelace",
      "id": "1752587000000084001",
      "is_confirmed": true,
      "last_name": "Lovelace",
      "status": "active",
      "zuid": "80012345"
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### List projects

List the projects in a portal, optionally by name.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Name contains (`name_contains`, text): Optional. Only projects whose name contains this.
- Order (`sort_by`, text): Optional. The order to return projects in. One of: `ASC(name)` (Name, A to Z), `DESC(created_time)` (Newest first), `ASC(start_date)` (Start date, earliest first).
- Page (`page`, number): Optional. Which page to return, starting at 1. At least 1.
- Page size (`per_page`, number): Optional. How many to return per page, 1 to 200. Zoho's default is 100. From 1 to 200.

**Outputs**

- `count` (number): How many projects are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The projects.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "created_time": "2026-09-30T09:00:00.000Z",
      "description": "Everything for the autumn relaunch.",
      "end_date": "2026-12-15",
      "id": "1752587000000097005",
      "is_completed": false,
      "is_public_project": false,
      "key": "LD1",
      "name": "Website relaunch",
      "owner": {
        "email": "ada@example.com",
        "name": "Ada Lovelace",
        "zpuid": "1752587000000084001"
      },
      "percent_complete": 0,
      "project_type": "active",
      "start_date": "2026-10-01",
      "status": {
        "id": "1752587000000016071",
        "is_closed_type": false,
        "name": "Active"
      },
      "tasks": {
        "closed_count": 0,
        "open_count": 1
      }
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### List task comments

List the comments on a task.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task ID (`task_id`, text, required): The task's id, from 'List tasks' or an earlier step.
- Order (`sort_by`, text): Optional. Newest or oldest first. One of: `DESC(created_time)` (Newest first), `ASC(created_time)` (Oldest first).
- Page (`page`, number): Optional. Which page to return, starting at 1. At least 1.
- Page size (`per_page`, number): Optional. How many to return per page, 1 to 200. Zoho's default is 100. From 1 to 200.

**Outputs**

- `count` (number): How many comments are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The comments.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "comment": "Draft is in the shared folder.",
      "created_by": {
        "email": "ada@example.com",
        "name": "Ada Lovelace",
        "zpuid": "1752587000000084001"
      },
      "created_time": "2026-09-30T10:00:00.000Z",
      "id": "1752587000000097061"
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### List task lists

List the task lists in a project.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Order (`sort_by`, text): Optional. The order to return task lists in. One of: `ASC(created_time)` (Oldest first), `DESC(created_time)` (Newest first), `DESC(last_modified_time)` (Recently changed first).
- Page (`page`, number): Optional. Which page to return, starting at 1. At least 1.
- Page size (`per_page`, number): Optional. How many to return per page, 1 to 200. Zoho's default is 100. From 1 to 200.

**Outputs**

- `count` (number): How many task lists are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The task lists.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "created_time": "2026-09-30T09:05:00.000Z",
      "flag": "internal",
      "id": "1752587000000097021",
      "name": "Launch checklist",
      "status": "active"
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### List tasks

List a project's tasks, optionally only open ones. A task list, when chosen, filters the page Zoho returns.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task list (`tasklist_id`, text): Optional. Only tasks in this task list.
- Only open tasks (`only_open`, true/false): Optional. Leave out tasks with a closed status. Default: `false`.
- Order (`sort_by`, text): Optional. The order to return tasks in. One of: `ASC(name)` (Name, A to Z), `DESC(created_time)` (Newest first), `DESC(last_modified_time)` (Recently changed first), `ASC(end_date)` (Due date, earliest first).
- Page (`page`, number): Optional. Which page to return, starting at 1. At least 1.
- Page size (`per_page`, number): Optional. How many to return per page, 1 to 200. Zoho's default is 100. From 1 to 200.

**Outputs**

- `count` (number): How many tasks are on this page.
- `has_more` (true/false): Whether another page is available (pass page + 1).
- `items` (list): The tasks.
- `page` (number): The page number returned.
- `per_page` (number): The page size used.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "completion_percentage": 0,
      "end_date": "2026-10-03T17:00:00.000Z",
      "id": "1752587000000097041",
      "is_completed": false,
      "name": "Write release notes",
      "owners_and_work": {
        "owners": [
          {
            "email": "ada@example.com",
            "name": "Ada Lovelace",
            "zpuid": "1752587000000084001"
          }
        ]
      },
      "prefix": "LD1-T1",
      "priority": "medium",
      "project": {
        "id": "1752587000000097005",
        "name": "Website relaunch"
      },
      "start_date": "2026-10-01T09:00:00.000Z",
      "status": {
        "id": "1752587000000016068",
        "is_closed_type": false,
        "name": "Open"
      },
      "tasklist": {
        "id": "1752587000000097021",
        "name": "Launch checklist"
      }
    }
  ],
  "page": 1,
  "per_page": 100
}
```

### Move a project to the recycle bin

Move a project to the recycle bin. It can be restored from the recycle bin in Zoho Projects until it is deleted.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.

**Outputs**: The project moved to the recycle bin.

- `id` (text): The project id.
- `trashed` (true/false): Always true.

**Example output**

```json
{
  "id": "1752587000000097005",
  "trashed": true
}
```

### Permanently delete a project

Permanently delete a project that is already in the recycle bin, with all its task lists and tasks. This cannot be undone. Move the project to the recycle bin first.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project ID (`project_id`, text, required): The id of the project in the recycle bin, for example from 'Move a project to the recycle bin'.

**Outputs**: The record deleted.

- `deleted` (true/false): Always true.
- `id` (text): The deleted record's id.

**Example output**

```json
{
  "deleted": true,
  "id": "1752587000000097005"
}
```

### Update a project

Change a project's name, description, dates, visibility or owner, or archive or reactivate it. Only what you fill in changes.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- New name (`name`, text): Optional. The new name, up to 200 characters.
- Description (`description`, text): Optional. The description.
- Start date (`start_date`, date): Optional. When the project starts.
- End date (`end_date`, date): Optional. When the project ends.
- Public project (`is_public_project`, true/false): Optional. Whether every portal user can see the project.
- New owner (`owner_zpuid`, text): Optional. The portal user who should own the project.
- Archive state (`project_type`, text): Optional. Archive the project, or make it active again. One of: `active`, `archived`.

**Outputs**: A Zoho Projects project.

- `completed_time` (text): When the project was completed.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the project was created.
- `description` (text): The project description (may contain HTML).
- `end_date` (text): End date.
- `id` (text): The project id.
- `is_completed` (true/false): Whether the project is completed.
- `is_public_project` (true/false): Whether the project is public within the portal.
- `issues` (object): Open and closed counts.
- `key` (text): The project's short key.
- `milestones` (object): Open and closed counts.
- `modified_time` (text): When the project was last changed.
- `name` (text): The project name.
- `owner` (object): A Zoho Projects user.
- `percent_complete` (number): How complete the project is, in percent.
- `project_type` (text): active, template or archived.
- `start_date` (text): Start date.
- `status` (object): The status.
- `tasks` (object): Open and closed counts.

**Example output**

```json
{
  "created_time": "2026-09-30T09:00:00.000Z",
  "description": "Everything for the autumn relaunch.",
  "end_date": "2026-12-15",
  "id": "1752587000000097005",
  "is_completed": false,
  "is_public_project": false,
  "key": "LD1",
  "name": "Website relaunch",
  "owner": {
    "email": "ada@example.com",
    "name": "Ada Lovelace",
    "zpuid": "1752587000000084001"
  },
  "percent_complete": 0,
  "project_type": "active",
  "start_date": "2026-10-01",
  "status": {
    "id": "1752587000000016071",
    "is_closed_type": false,
    "name": "Active"
  },
  "tasks": {
    "closed_count": 0,
    "open_count": 1
  }
}
```

### Update a task

Change a task's name, description, priority, dates or progress, or move it to another task list. Only what you fill in changes.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task ID (`task_id`, text, required): The task's id, from 'List tasks' or an earlier step.
- New name (`name`, text): Optional. The task's new name.
- Description (`description`, text): Optional. The description.
- Priority (`priority`, text): Optional. The task's priority. One of: `none`, `low`, `medium`, `high`.
- Start (`start_date`, date and time): Optional. When work on the task starts.
- Due (`end_date`, date and time): Optional. When the task is due.
- Percent complete (`completion_percentage`, number): Optional. How complete the task is, 0 to 100. From 0 to 100.
- Move to task list (`tasklist_id`, text): Optional. The task list to move the task to.

**Outputs**: A task.

- `completion_percentage` (number): How complete the task is, in percent.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the task was created.
- `description` (text): The task description (may contain HTML).
- `end_date` (text): Due date and time.
- `id` (text): The task id.
- `is_completed` (true/false): Whether the task is completed.
- `last_modified_time` (text): When the task was last changed.
- `milestone` (object): The milestone.
- `name` (text): The task name.
- `owners_and_work` (object): Who owns the task.
- `prefix` (text): The task's short key, for example LP-T12.
- `priority` (text): none, low, medium or high.
- `project` (object): The project.
- `start_date` (text): Start date and time.
- `status` (object): The status.
- `tasklist` (object): The task list.

**Example output**

```json
{
  "completion_percentage": 0,
  "end_date": "2026-10-03T17:00:00.000Z",
  "id": "1752587000000097041",
  "is_completed": false,
  "name": "Write release notes",
  "owners_and_work": {
    "owners": [
      {
        "email": "ada@example.com",
        "name": "Ada Lovelace",
        "zpuid": "1752587000000084001"
      }
    ]
  },
  "prefix": "LD1-T1",
  "priority": "medium",
  "project": {
    "id": "1752587000000097005",
    "name": "Website relaunch"
  },
  "start_date": "2026-10-01T09:00:00.000Z",
  "status": {
    "id": "1752587000000016068",
    "is_closed_type": false,
    "name": "Open"
  },
  "tasklist": {
    "id": "1752587000000097021",
    "name": "Launch checklist"
  }
}
```

### Update a task list

Rename a task list, change its visibility, or mark it completed or active. Only what you fill in changes.

**Inputs**

- Portal (`portal_id`, text, required): The Zoho Projects portal (organisation) to work in.
- Project (`project_id`, text, required): The project, from the list or as its id from 'List projects'.
- Task list (`tasklist_id`, text, required): The task list, from the list or as its id from 'List task lists'.
- New name (`name`, text): Optional. The task list's new name.
- Visibility (`flag`, text): Optional. Internal lists are hidden from client users. One of: `internal`, `external`.
- Status (`status`, text): Optional. Mark the task list completed or active. One of: `active`, `completed`.

**Outputs**: A task list.

- `color` (text): The task list colour.
- `created_by` (object): A Zoho Projects user.
- `created_time` (text): When the task list was created.
- `flag` (text): internal or external.
- `id` (text): The task list id.
- `last_updated_time` (text): When the task list was last changed.
- `milestone` (object): The milestone.
- `name` (text): The task list name.
- `status` (text): active or completed.

**Example output**

```json
{
  "created_time": "2026-09-30T09:05:00.000Z",
  "flag": "internal",
  "id": "1752587000000097021",
  "name": "Launch checklist",
  "status": "active"
}
```
