> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# odoo-projects

> Odoo Projects

**Server path:** `/odoo-projects` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                        | Description                   |
| --------------------------------------------------------------------------- | ----------------------------- |
| [`odoo_projects_create_project`](#odoo_projects_create_project)             | Create a project              |
| [`odoo_projects_create_task`](#odoo_projects_create_task)                   | Create a project task         |
| [`odoo_projects_read_projects`](#odoo_projects_read_projects)               | Read projects by ID           |
| [`odoo_projects_read_tasks`](#odoo_projects_read_tasks)                     | Read project tasks by ID      |
| [`odoo_projects_search_read_projects`](#odoo_projects_search_read_projects) | Search and read projects      |
| [`odoo_projects_search_read_tasks`](#odoo_projects_search_read_tasks)       | Search and read project tasks |
| [`odoo_projects_unlink_tasks`](#odoo_projects_unlink_tasks)                 | Delete project tasks          |
| [`odoo_projects_write_project`](#odoo_projects_write_project)               | Update a project              |
| [`odoo_projects_write_task`](#odoo_projects_write_task)                     | Update a project task         |

***

## odoo\_projects\_create\_project

Create a project

**Parameters:**

| Parameter | Type   | Required | Default | Description                      |
| --------- | ------ | -------- | ------- | -------------------------------- |
| `values`  | object | Yes      | —       | Field values for the new project |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "values": {
        "type": "object",
        "description": "Field values for the new project",
        "properties": {
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "user_id": {
            "type": "integer",
            "description": "Project manager user ID"
          },
          "partner_id": {
            "type": "integer",
            "description": "Customer ID"
          },
          "description": {
            "type": "string",
            "description": "Project description"
          },
          "date_start": {
            "type": "string",
            "description": "Start date (YYYY-MM-DD)"
          },
          "date": {
            "type": "string",
            "description": "End date (YYYY-MM-DD)"
          },
          "tag_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Tag IDs"
          },
          "privacy_visibility": {
            "type": "string",
            "description": "Visibility setting",
            "enum": [
              "followers",
              "employees",
              "portal"
            ]
          },
          "allow_timesheets": {
            "type": "boolean",
            "description": "Enable timesheets on this project"
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "required": [
      "PCID",
      "values"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_create\_task

Create a project task

**Parameters:**

| Parameter | Type   | Required | Default | Description                   |
| --------- | ------ | -------- | ------- | ----------------------------- |
| `values`  | object | Yes      | —       | Field values for the new task |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "values": {
        "type": "object",
        "description": "Field values for the new task",
        "properties": {
          "name": {
            "type": "string",
            "description": "Task title"
          },
          "project_id": {
            "type": "integer",
            "description": "Project ID (required)"
          },
          "user_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Assigned user IDs"
          },
          "description": {
            "type": "string",
            "description": "Task description (HTML)"
          },
          "date_deadline": {
            "type": "string",
            "description": "Deadline (YYYY-MM-DD)"
          },
          "priority": {
            "type": "string",
            "description": "Priority: 0=Normal, 1=Urgent",
            "enum": [
              "0",
              "1"
            ]
          },
          "stage_id": {
            "type": "integer",
            "description": "Stage ID"
          },
          "tag_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Tag IDs"
          },
          "parent_id": {
            "type": "integer",
            "description": "Parent task ID (for subtasks)"
          },
          "partner_id": {
            "type": "integer",
            "description": "Customer ID"
          },
          "planned_hours": {
            "type": "number",
            "description": "Initially planned hours"
          }
        },
        "required": [
          "name",
          "project_id"
        ]
      }
    },
    "required": [
      "PCID",
      "values"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_read\_projects

Read projects by ID

**Parameters:**

| Parameter | Type       | Required | Default | Description                                                                                                |
| --------- | ---------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `fields`  | string\[]  | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone'] |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      }
    },
    "required": [
      "PCID",
      "ids"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_read\_tasks

Read project tasks by ID

**Parameters:**

| Parameter | Type       | Required | Default | Description                                                                                                |
| --------- | ---------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `fields`  | string\[]  | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone'] |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      }
    },
    "required": [
      "PCID",
      "ids"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_search\_read\_projects

Search and read projects

**Parameters:**

| Parameter | Type      | Required | Default | Description                                                                                                                                                                                                                                                                                                                         |
| --------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domain`  | any\[]    | No       | —       | Odoo domain filter. Array of conditions where each condition is \[field, operator, value]. Operators: =, !=, >, >=, \<, \<=, like, ilike, in, not in, child\_of, parent\_of. Logical operators '&' (AND, default), '\|' (OR), '!' (NOT) can prefix conditions. Example: \[\['is\_company','=',true],\['country\_id.code','=','US']] |
| `fields`  | string\[] | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone']                                                                                                                                                                                                                          |
| `limit`   | integer   | No       | —       | Maximum number of records to return. Default is 80.                                                                                                                                                                                                                                                                                 |
| `offset`  | integer   | No       | —       | Number of records to skip for pagination. Default is 0.                                                                                                                                                                                                                                                                             |
| `order`   | string    | No       | —       | Sort order. Format: 'field\_name asc' or 'field\_name desc'. Multiple fields: 'name asc, id desc'.                                                                                                                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "domain": {
        "type": "array",
        "description": "Odoo domain filter. Array of conditions where each condition is [field, operator, value]. Operators: =, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_of. Logical operators '&' (AND, default), '|' (OR), '!' (NOT) can prefix conditions. Example: [['is_company','=',true],['country_id.code','=','US']]"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "limit": {
        "type": "integer",
        "description": "Maximum number of records to return. Default is 80."
      },
      "offset": {
        "type": "integer",
        "description": "Number of records to skip for pagination. Default is 0."
      },
      "order": {
        "type": "string",
        "description": "Sort order. Format: 'field_name asc' or 'field_name desc'. Multiple fields: 'name asc, id desc'."
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_search\_read\_tasks

Search and read project tasks

**Parameters:**

| Parameter | Type      | Required | Default | Description                                                                                                                                                                                                                                                                                                                         |
| --------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domain`  | any\[]    | No       | —       | Odoo domain filter. Array of conditions where each condition is \[field, operator, value]. Operators: =, !=, >, >=, \<, \<=, like, ilike, in, not in, child\_of, parent\_of. Logical operators '&' (AND, default), '\|' (OR), '!' (NOT) can prefix conditions. Example: \[\['is\_company','=',true],\['country\_id.code','=','US']] |
| `fields`  | string\[] | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone']                                                                                                                                                                                                                          |
| `limit`   | integer   | No       | —       | Maximum number of records to return. Default is 80.                                                                                                                                                                                                                                                                                 |
| `offset`  | integer   | No       | —       | Number of records to skip for pagination. Default is 0.                                                                                                                                                                                                                                                                             |
| `order`   | string    | No       | —       | Sort order. Format: 'field\_name asc' or 'field\_name desc'. Multiple fields: 'name asc, id desc'.                                                                                                                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "domain": {
        "type": "array",
        "description": "Odoo domain filter. Array of conditions where each condition is [field, operator, value]. Operators: =, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_of. Logical operators '&' (AND, default), '|' (OR), '!' (NOT) can prefix conditions. Example: [['is_company','=',true],['country_id.code','=','US']]"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "limit": {
        "type": "integer",
        "description": "Maximum number of records to return. Default is 80."
      },
      "offset": {
        "type": "integer",
        "description": "Number of records to skip for pagination. Default is 0."
      },
      "order": {
        "type": "string",
        "description": "Sort order. Format: 'field_name asc' or 'field_name desc'. Multiple fields: 'name asc, id desc'."
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_unlink\_tasks

Delete project tasks

**Parameters:**

| Parameter | Type       | Required | Default | Description                                    |
| --------- | ---------- | -------- | ------- | ---------------------------------------------- |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      }
    },
    "required": [
      "PCID",
      "ids"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_write\_project

Update a project

**Parameters:**

| Parameter | Type       | Required | Default | Description                                    |
| --------- | ---------- | -------- | ------- | ---------------------------------------------- |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete |
| `values`  | object     | Yes      | —       | Field values to update                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      },
      "values": {
        "type": "object",
        "description": "Field values to update",
        "properties": {
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "user_id": {
            "type": "integer",
            "description": "Project manager user ID"
          },
          "partner_id": {
            "type": "integer",
            "description": "Customer ID"
          },
          "description": {
            "type": "string",
            "description": "Project description"
          },
          "date_start": {
            "type": "string",
            "description": "Start date"
          },
          "date": {
            "type": "string",
            "description": "End date"
          }
        }
      }
    },
    "required": [
      "PCID",
      "ids",
      "values"
    ]
  }
  ```
</Expandable>

***

## odoo\_projects\_write\_task

Update a project task

**Parameters:**

| Parameter | Type       | Required | Default | Description                                    |
| --------- | ---------- | -------- | ------- | ---------------------------------------------- |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete |
| `values`  | object     | Yes      | —       | Field values to update                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      },
      "values": {
        "type": "object",
        "description": "Field values to update",
        "properties": {
          "name": {
            "type": "string",
            "description": "Task title"
          },
          "user_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Assigned user IDs"
          },
          "description": {
            "type": "string",
            "description": "Task description"
          },
          "date_deadline": {
            "type": "string",
            "description": "Deadline"
          },
          "priority": {
            "type": "string",
            "description": "The priority value",
            "enum": [
              "0",
              "1"
            ]
          },
          "stage_id": {
            "type": "integer",
            "description": "Stage ID"
          },
          "planned_hours": {
            "type": "number",
            "description": "Planned hours"
          }
        }
      }
    },
    "required": [
      "PCID",
      "ids",
      "values"
    ]
  }
  ```
</Expandable>
