Projects

update-project-tool

Update top-level fields on a project. Flipping status to invoiced auto-finishes every open deadline.

Updates a project. Only the whitelisted fields below can be changed; anything else is ignored. Setting status to invoiced finishes every open deadline on the project — that side-effect is deliberate and matches the UI behaviour.

Inputs

NameTypeRequiredDescription
idintegeryesProject id.
titlestringnoProject title (max 255).
descriptionstring | nullnoFree-text description.
statusstringnoOne of active, finished, invoiced, on-hold, inactive, archived.
start_datestring (Y-m-d) | nullnoStart date, or null to clear.
end_datestring (Y-m-d) | nullnoEnd date, or null to clear. Must be on or after start_date.
customer_idintegernoPrimary customer id.
sub_customer_idinteger | nullnoSub-customer id, or null to clear.
project_manager_idinteger | nullnoUser id of the project manager.
account_manager_idinteger | nullnoUser id of the account manager.
application_idinteger | nullnoApplication id.
workflow_idinteger | nullnoWorkflow id.
workflow_modestring | nullnoOne of sprints, simple.
is_billablebooleannoWhether time is billable.
is_continuousbooleannoWhether this is a continuous (non-finite) project.

Permissions

  • projects::update, plus the project policy's update gate.

Example

{
  "id": 7,
  "status": "invoiced"
}

Response

The full project payload, same shape as get-project-tool.

Errors

  • An invalid status or workflow_mode returns a validation error.
  • A non-existent id returns a 404-style error.
  • Missing projects::update returns an authorization error.

On this page