Skip to main content

Import a project from an Excel (.xlsx) workbook (multipart/form-data)

POST 

/api/projects/import/excel

Import a project from an Excel (.xlsx) workbook (multipart/form-data). PT-737: the create-vs-update choice is EXPLICIT — send mode=create or mode=upsert; it wins over the legacy ID-column heuristic, which applies only when mode is omitted (any row with an ID then makes the whole import an upsert). Send projectId to bind an update to that project: it forces upsert and resolves the workbook's Task Keys strictly within that project (a key from another project is rejected), and such an import may carry only new blank-ID rows, which become new tasks there. The create-mode project name comes from the optional in-workbook "Project" sheet. Permission is enforced in the import tool by mode: a create requires projects.create; an upsert requires tasks.update.any for its keyed (update) rows and tasks.create for its unkeyed (new) rows, on the target project's organisation (a mixed workbook requires both). Returns 201 when a project was created, 200 when an existing project was updated.

Request

Responses

OK — an existing project was updated (upsert mode). Same body as the 201.