Skip to main content

Create and Archive a Project

This guide walks you through creating a PPM project and moving it through its lifecycle statuses.

Project status lifecycle

Every project follows this status path:

PROPOSED → ACTIVE → ON_HOLD → COMPLETED
→ CANCELLED
StatusMeaning
PROPOSEDDefault. The project has been proposed but work has not started.
ACTIVEThe project is in progress.
ON_HOLDThe project is paused.
COMPLETEDThe project has finished successfully.
CANCELLEDThe project was cancelled and will not be completed.

Create a project

Send a POST request to the projects endpoint. Only project_name is required — the system auto-generates a project_key if you omit it.

POST /rest/v1/t_ppm_projects
{
"project_name": "Customer Onboarding Revamp",
"project_description": "Redesign the onboarding flow for new customers.",
"project_status": "PROPOSED",
"project_priority": "HIGH",
"planned_start_date": "2026-05-01T00:00:00Z",
"planned_end_date": "2026-08-31T23:59:59Z"
}

The response includes the auto-generated fields:

Response (201 Created)
{
"id": "a1b2c3d4-...",
"project_key": "PRJ-0000001",
"project_name": "Customer Onboarding Revamp",
"project_status": "PROPOSED",
"project_priority": "HIGH",
"planned_start_date": "2026-05-01T00:00:00+00:00",
"planned_end_date": "2026-08-31T23:59:59+00:00",
"created_date": "2026-04-13T10:00:00+00:00"
}

Available fields

FieldTypeRequiredDefaultDescription
project_namevarchar(256)YesDisplay name
project_descriptiontextNoLonger description
project_statusvarchar(32)NoPROPOSEDOne of the lifecycle statuses above
project_priorityvarchar(32)NoMEDIUMCRITICAL, HIGH, MEDIUM, or LOW
project_keyvarchar(64)NoAuto-generatedUnique human-readable key
project_manager_iduuidNoUser ID of the project manager
planned_start_datetimestamptzNoExpected start
planned_end_datetimestamptzNoExpected end
actual_start_datetimestamptzNoWhen work actually started
actual_end_datetimestamptzNoWhen work actually finished
confidentialbooleanNofalseRestrict visibility to owner and authorised users
metadatajsonbNoArbitrary key-value data

Activate a project

When work begins, update the status to ACTIVE and record the actual start date:

PATCH /rest/v1/t_ppm_projects?id=eq.a1b2c3d4-...
{
"project_status": "ACTIVE",
"actual_start_date": "2026-05-02T09:00:00Z"
}

Put a project on hold

PATCH /rest/v1/t_ppm_projects?id=eq.a1b2c3d4-...
{
"project_status": "ON_HOLD"
}

Complete or cancel a project

Mark a project as finished:

PATCH /rest/v1/t_ppm_projects?id=eq.a1b2c3d4-...
{
"project_status": "COMPLETED",
"actual_end_date": "2026-08-15T17:00:00Z"
}

Or cancel it:

PATCH /rest/v1/t_ppm_projects?id=eq.a1b2c3d4-...
{
"project_status": "CANCELLED",
"actual_end_date": "2026-06-01T12:00:00Z"
}

Archive a project

To soft-delete (archive) a project, set active to false:

PATCH /rest/v1/t_ppm_projects?id=eq.a1b2c3d4-...
{
"active": false
}

Archived projects are excluded from default queries but remain in the database.

note

Setting a project's status to COMPLETED or CANCELLED does not automatically archive it. Archive the project separately when you no longer need it in active views.