Проекти та доставка
Проєкти, завдання, учасники, ставки та розподіли — автоматизуйте виконання робіт і синхронізуйте дані проєктів.
Проект
Endpoints
| GET | /projects | Отримує колекцію ресурсів Project. |
| POST | /projects | Створює ресурс Project. |
| GET | /projects/{id} | Отримує ресурс Project. |
| PATCH | /projects/{id} | Оновлює ресурс Project. |
| DELETE | /projects/{id} | Видаляє ресурс Project. |
| POST | /projects/{id}/archive | Archive this project |
| GET | /projects/{id}/cost-allocations | Отримує ресурс Project. |
| GET | /projects/{id}/documents | Отримує ресурс Project. |
| GET | /projects/{id}/logged-time | Отримує ресурс Project. |
| POST | /projects/{id}/merge | Merge this project into another |
| POST | /projects/{id}/pin | Pin this project for the current user |
| GET | /projects/{id}/profitability | Отримує ресурс Project. |
| GET | /projects/{id}/reparent-impact | How many employees lose visibility if this project is moved |
| GET | /projects/{id}/travel | Отримує ресурс Project. |
| POST | /projects/{id}/unarchive | Restore an archived project |
| POST | /projects/{id}/unpin | Unpin this project for the current user |
| GET | /projects/folder-counts | Отримує колекцію ресурсів Project. |
| GET | /projects/preview | Отримує колекцію ресурсів Project. |
| GET | /projects/reference-usage | Отримує колекцію ресурсів Project. |
| GET | /projects/search | Отримує колекцію ресурсів Project. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| parent | mixed | |
| client | string,null (iri-reference) | |
| currency | string,null (iri-reference) | |
| dateFrom | string,null (date-time) | |
| dateTo | string,null (date-time) | |
| name* | string | |
| publicDescription | stringnull | |
| type* | string | |
| clientHash | string | |
| notes | stringnull | |
| description | stringnull | Free-text description. A third free-text field alongside `publicDescription` (customer-facing, 255) and `notes` (internal): the client asked for "description" and got it as its own field rather than a rename, so nothing that reads either of the other two changes meaning (#3431). |
| reference | stringnull | Cross-system integration key — a stable, human-writable handle for joining this project to systems outside Flowtly, because the numeric id is unusable for that (#3431). NOT a display nicety: the UI prefilling it from the name is a convenience on first entry, and every property below is the contract. |
| color | string | |
| icon | stringnull | |
| priceNet | stringnull | |
| taxGroup | string,null (iri-reference) | |
| attributeSet | string,null (iri-reference) | |
| taskCreatePolicy | string | |
| taskVisibility | string | |
| projectMembers | array | |
| archivedAt | string,null (date-time) | Archiving retires a project from view without deleting it (#2896). |
| status | string | |
| flattenType | string | |
| budgets | array |
Член проекту
Endpoints
| GET | /project-members | Отримує колекцію ресурсів ProjectMember. |
| POST | /project-members | Створює ресурс ProjectMember. |
| GET | /project-members/{id} | Отримує ресурс ProjectMember. |
| PATCH | /project-members/{id} | Оновлює ресурс ProjectMember. |
| DELETE | /project-members/{id} | Видаляє ресурс ProjectMember. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | string | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| position | string | |
| positionName | string | |
| notify | boolean | Whether to send this person the "project assigned" notification (#3955). |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possiblePositions | string |
Завдання проекту
Endpoints
| POST | /project_tasks/{id}/subscribe | Створює ресурс ProjectTask. |
| POST | /project_tasks/{id}/unsubscribe | Створює ресурс ProjectTask. |
| GET | /project-tasks | Отримує колекцію ресурсів ProjectTask. |
| POST | /project-tasks | Створює ресурс ProjectTask. |
| GET | /project-tasks/{id} | Отримує ресурс ProjectTask. |
| PATCH | /project-tasks/{id} | Оновлює ресурс ProjectTask. |
| DELETE | /project-tasks/{id} | Видаляє ресурс ProjectTask. |
| GET | /project-tasks/picker | Отримує колекцію ресурсів ProjectTask. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| requester | string,null (iri-reference) | |
| list | string,null (iri-reference) | |
| status | string (iri-reference) | |
| title | string | |
| description | stringnull | |
| priority* | string | |
| startAt | string,null (date-time) | |
| dueAt | string,null (date-time) | |
| completedAt | string,null (date-time) | |
| position | integer | |
| recurrenceRule | string,null (iri-reference) | |
| recurrenceParent | string,null (iri-reference) | |
| isTemplate | boolean | |
| assignees | array | |
| subtasks | array | The task's checklist, as STRUCTURED items rather than prose (#2210). |
| subscribers | array | |
| asset | string,null (iri-reference) | |
| transaction | string,null (iri-reference) | THE FINANCE DOCUMENT THIS TASK IS ABOUT (#3532). |
| transactionAttachment | string,null (iri-reference) | |
| source | string | |
| raisedBy | string,null (iri-reference) | ZGŁASZAJĄCY — the COLLEAGUE who raised this task (#2210). |
| reporterName | stringnull | |
| reporterEmail | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possiblePriorities | string | |
| statusName | stringnull | Slim status accessor for the WorkTime embed — keeps the API payload small (single string) instead of nesting the full ProjectTaskStatus resource on every WorkTime row. |
| template | boolean | |
| subtaskProgress | array | How many of the checklist's items are done, and how many there are (#2210). |
Ціна проекту
Endpoints
| GET | /project-prices | Отримує колекцію ресурсів ProjectPrice. |
| POST | /project-prices | Створює ресурс ProjectPrice. |
| GET | /project-prices/{id} | Отримує ресурс ProjectPrice. |
| PATCH | /project-prices/{id} | Оновлює ресурс ProjectPrice. |
| DELETE | /project-prices/{id} | Видаляє ресурс ProjectPrice. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| project* | string,null (iri-reference) | |
| property | string,null (iri-reference) | |
| attributeRule* | string (iri-reference) | |
| amount* | string | |
| currency* | string (iri-reference) | |
| dateFrom* | string,null (date-time) | |
| note | stringnull |
Транзакція проекту
Endpoints
| GET | /project-transactions | Отримує колекцію ресурсів ProjectTransaction. |
| POST | /project-transactions | Створює ресурс ProjectTransaction. |
| PATCH | /project-transactions/{id} | Оновлює ресурс ProjectTransaction. |
| DELETE | /project-transactions/{id} | Видаляє ресурс ProjectTransaction. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| project* | string,null (iri-reference) | |
| transaction* | string,null (iri-reference) | |
| amount | stringnull | |
| note | stringnull |
Тариф співробітника за проектом
Endpoints
| GET | /people-project-rates | Отримує колекцію ресурсів EmployeeProjectRate. |
| POST | /people-project-rates | Створює ресурс EmployeeProjectRate. |
| GET | /people-project-rates/{id} | Отримує ресурс EmployeeProjectRate. |
| PATCH | /people-project-rates/{id} | Оновлює ресурс EmployeeProjectRate. |
| DELETE | /people-project-rates/{id} | Видаляє ресурс EmployeeProjectRate. |
| POST | /people-project-rates/{id}/extend | Створює ресурс EmployeeProjectRate. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| position | stringnull | |
| positionRef | string,null (iri-reference) | |
| rate* | number | |
| currency | string (iri-reference) | |
| dateFrom* | string,null (date-time) | Nullable, to match the column, the property, the getter and {@see \App\Service\App\WorkTime\Report\EntryRateResolver::selectEffective()}, all four of which already admit a null left edge. Only this setter and isActive() refused it, which is the same asymmetry: `setDateTo()` and the `dateTo` half of isActive() both handle null, and the `dateFrom` half of neither did (#3159). |
| dateTo | string,null (date-time) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| active | boolean | Does this rate apply on the given date? |
| relatedEmployee | string,null (iri-reference) |
Коментар до завдання проєкту
Endpoints
| GET | /project-task-comments | Отримує колекцію ресурсів ProjectTaskComment. |
| POST | /project-task-comments | Створює ресурс ProjectTaskComment. |
| GET | /project-task-comments/{id} | Отримує ресурс ProjectTaskComment. |
| PATCH | /project-task-comments/{id} | Оновлює ресурс ProjectTaskComment. |
| DELETE | /project-task-comments/{id} | Видаляє ресурс ProjectTaskComment. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| task | string (iri-reference) | |
| employee | string (iri-reference) | |
| content | string | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |
Список завдань проєкту
Endpoints
| GET | /project-task-lists | Отримує колекцію ресурсів ProjectTaskList. |
| POST | /project-task-lists | Створює ресурс ProjectTaskList. |
| GET | /project-task-lists/{id} | Отримує ресурс ProjectTaskList. |
| PATCH | /project-task-lists/{id} | Оновлює ресурс ProjectTaskList. |
| DELETE | /project-task-lists/{id} | Видаляє ресурс ProjectTaskList. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| name | string | |
| position | integer | |
| isDefault | boolean | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| default | boolean |
Статус завдання проєкту
Endpoints
| GET | /project-task-statuses | Отримує колекцію ресурсів ProjectTaskStatus. |
| POST | /project-task-statuses | Створює ресурс ProjectTaskStatus. |
| GET | /project-task-statuses/{id} | Отримує ресурс ProjectTaskStatus. |
| PATCH | /project-task-statuses/{id} | Оновлює ресурс ProjectTaskStatus. |
| DELETE | /project-task-statuses/{id} | Видаляє ресурс ProjectTaskStatus. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| name | string | |
| color | string | |
| position | integer | |
| isClosed | boolean | READABLE ACCESSOR, and it is not a duplicate of {@see isClosed()} (#3720). |
| isStarted | boolean | Marks a status as meaning "work has begun", exactly parallel to {@see $isClosed}. Not mutually exclusive with it or with itself across rows: like isClosed, more than one status may carry isStarted=true at once (e.g. "In progress" and "In review" could both count as started), and there is no DB or app-level uniqueness enforcement — same as isClosed today. |
| isDefault | boolean | READABLE ACCESSOR, and it is not a duplicate of {@see isDefault()} (#3720). |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| closed | boolean | |
| started | boolean | |
| default | boolean | |
| deleted | boolean | Check if the entity has been soft deleted. |
Правило повторення завдання проєкту
Endpoints
| GET | /project-task-recurrence-rules | Отримує колекцію ресурсів ProjectTaskRecurrenceRule. |
| POST | /project-task-recurrence-rules | Створює ресурс ProjectTaskRecurrenceRule. |
| GET | /project-task-recurrence-rules/{id} | Отримує ресурс ProjectTaskRecurrenceRule. |
| PATCH | /project-task-recurrence-rules/{id} | Оновлює ресурс ProjectTaskRecurrenceRule. |
| DELETE | /project-task-recurrence-rules/{id} | Видаляє ресурс ProjectTaskRecurrenceRule. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| frequency | string | |
| interval | integer | |
| weekday | integernull | |
| monthDay | integernull | |
| timeOfDay | string,null (date-time) | |
| timezone | string | |
| nextRunAt | string,null (date-time) | |
| endAt | string,null (date-time) | |
| maxOccurrences | integernull | |
| occurrencesGenerated | integer | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possibleFrequencies | string |
План учасників проєкту
Endpoints
| GET | /project-people-plans | Отримує колекцію ресурсів ProjectPeoplePlan. |
| POST | /project-people-plans | Створює ресурс ProjectPeoplePlan. |
| GET | /project-people-plans/{id} | Отримує ресурс ProjectPeoplePlan. |
| PATCH | /project-people-plans/{id} | Оновлює ресурс ProjectPeoplePlan. |
| DELETE | /project-people-plans/{id} | Видаляє ресурс ProjectPeoplePlan. |
| GET | /projects/{projectId}/people-plans | Отримує колекцію ресурсів ProjectPeoplePlan. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| project | string (iri-reference) | |
| periodKey | string | |
| forecastHours | integernull | |
| overrideRatePerHour | stringnull |
Правило каскадного розподілу проєкту
Endpoints
| GET | /project-allocation-cascade-rules | Отримує колекцію ресурсів ProjectAllocationCascadeRule. |
| POST | /project-allocation-cascade-rules | Створює ресурс ProjectAllocationCascadeRule. |
| GET | /project-allocation-cascade-rules/{id} | Отримує ресурс ProjectAllocationCascadeRule. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | string | |
| name | string | |
| assetAttribute | string (iri-reference) | Attribute carried by Property (Asset) entities. Drives the share each selected Asset takes of the total cost. For Juwentus on Horizon this is "Ochrona" (5/13/23.98/23.42/34.60 across the 5 buildings, summing to 100). |
| projectAttribute | string (iri-reference) | Attribute carried by tenant Projects. Drives the within-building split. For Horizon's standard rules this is "Powierzchnia" — each tenant's m² inside its building. |
Вкладення транзакції проєкту
Endpoints
| GET | /project-transaction-attachments | Отримує колекцію ресурсів ProjectTransactionAttachment. |
| POST | /project-transaction-attachments | Створює ресурс ProjectTransactionAttachment. |
| PATCH | /project-transaction-attachments/{id} | Оновлює ресурс ProjectTransactionAttachment. |
| DELETE | /project-transaction-attachments/{id} | Видаляє ресурс ProjectTransactionAttachment. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| project | string (iri-reference) | |
| transactionAttachment | string (iri-reference) | |
| netAmount | integernull | |
| excluded | booleannull | A client the operator DELIBERATELY struck from this split (#3315). |
| line | string,null (iri-reference) |
Ціна лічильника проєкту
Endpoints
| GET | /project-meter-prices | Отримує колекцію ресурсів ProjectMeterPrice. |
| POST | /project-meter-prices | Створює ресурс ProjectMeterPrice. |
| PATCH | /project-meter-prices/{id} | Оновлює ресурс ProjectMeterPrice. |
| DELETE | /project-meter-prices/{id} | Видаляє ресурс ProjectMeterPrice. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | string | |
| project* | string (iri-reference) | |
| utilityType* | string | |
| meter | string,null (iri-reference) | |
| unitPrice* | string | |
| currency | string,null (iri-reference) | |
| effectiveFrom | string,null (date-time) |
Перенесення витрат проєкту
Endpoints
| POST | /project-costs/move | Створює ресурс ProjectCostMove. |
Шаблон проєкту
Endpoints
| GET | /project-templates | Отримує колекцію ресурсів ProjectTemplate. |
| POST | /project-templates | Створює ресурс ProjectTemplate. |
| GET | /project-templates/{id} | Отримує ресурс ProjectTemplate. |
| PATCH | /project-templates/{id} | Оновлює ресурс ProjectTemplate. |
| DELETE | /project-templates/{id} | Видаляє ресурс ProjectTemplate. |
| POST | /project-templates/{id}/instantiate | Створює ресурс ProjectTemplate. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| name* | string | |
| structure | object | |
| isDefault | boolean | The org's built-in default template (#3026): applied to a project created with no template explicitly chosen. Read-only over the API — not in the create/update groups — because a user declaring their own template "the default" would leave more than one row with this flag true, and nothing enforces the resulting ambiguity away. Set only by ProjectDefaultTemplateProvisioner, which lazily creates this row once per org and never touches it again. |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| default | boolean | |
| deleted | boolean | Check if the entity has been soft deleted. |
Підзавдання завдання проєкту
Endpoints
| GET | /project-task-subtasks | Отримує колекцію ресурсів ProjectTaskSubtask. |
| POST | /project-task-subtasks | Створює ресурс ProjectTaskSubtask. |
| GET | /project-task-subtasks/{id} | Отримує ресурс ProjectTaskSubtask. |
| PATCH | /project-task-subtasks/{id} | Оновлює ресурс ProjectTaskSubtask. |
| DELETE | /project-task-subtasks/{id} | Видаляє ресурс ProjectTaskSubtask. |
Поля схеми
| Поле | Тип | Опис |
|---|---|---|
| id | integer | |
| task | string (iri-reference) | |
| title* | string | Never empty. An item with no text is not a checklist entry, it is a stray row that renders as a checkbox beside nothing — and the archetype's permanent `.ck.add` row means an accidental blank submit is easy to make. |
| done | boolean | |
| position | integer | Author-arranged order within the task. Ties break on id, via the collection's own ordering. |