Создание проектов с использованием API Blue.
Создание нового проекта
Чтобы создать новый проект, вы можете использовать следующую мутацию:
mutation {
createProject(
input: {
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
description: "Project description"
color: "#3B82F6"
icon: "briefcase"
category: GENERAL
}
) {
id
name
slug
description
color
icon
category
}
}
Не забудьте включить обязательные заголовки в ваш запрос:
- `X-Bloo-Token-ID`: Ваш идентификатор токена API
- `X-Bloo-Token-Secret`: Ваш секрет токена API
- `X-Bloo-Company-ID`: Ваш идентификатор компании
- `Content-Type: application/json`
Пример ответа
При успешном выполнении мутация вернет детали вновь созданного проекта:
{
"data": {
"createProject": {
"id": "newly-created-project-id",
"name": "YOUR PROJECT NEW NAME",
"slug": "your-project-new-name",
"description": "Project description",
"color": "#3B82F6",
"icon": "briefcase",
"category": "GENERAL"
}
}
}
Создание из шаблона
Чтобы создать проект из существующего шаблона, вы можете добавить необязательный templateId
к мутации.
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
Расширенный пример с шаблоном
Вот полный пример, показывающий все доступные параметры при создании из шаблона:
mutation {
createProject(
input: {
templateId: "marketing-template"
name: "Q1 Marketing Campaign"
companyId: "acme-corp"
description: "Marketing initiatives for Q1 2024"
color: "#10B981"
icon: "megaphone"
category: MARKETING
coverConfig: {
enabled: true
fit: COVER
imageSelectionType: FIRST
source: DESCRIPTION
}
}
) {
id
name
slug
description
color
icon
category
}
}
Параметр `coverConfig` в настоящее время работает только при создании проекта из шаблона. Для проектов, созданных с нуля, вам нужно будет использовать мутацию `editProject` после создания, чтобы настроить обложки задач.
Проверка статуса создания
Чтобы проверить статус создания вашего проекта в очереди, вы можете использовать следующий запрос:
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
Этот запрос вернет статус создания вашего проекта в очереди.
Входные параметры
CreateProjectInput
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
name |
String | ✅ Да | Название проекта. URL будут удалены из названия. |
companyId |
String | ✅ Да | Идентификатор или слуг компании, где будет создан проект. |
description |
String | Нет | Описание проекта. |
color |
String | Нет | Цвет проекта в шестнадцатеричном формате (например, "#3B82F6"). |
icon |
String | Нет | Идентификатор иконки для проекта (например, "портфель", "ракета"). |
category |
ProjectCategory | Нет | Категория проекта. По умолчанию будет GENERAL , если не указано. |
templateId |
String | Нет | Идентификатор существующего проекта, который будет использоваться в качестве шаблона. |
coverConfig |
TodoCoverConfigInput | Нет | Конфигурация для обложек задач (в настоящее время работает только с созданием на основе шаблона). |
Значения ProjectCategory
Значение | Описание |
---|---|
CRM |
Проекты управления взаимоотношениями с клиентами |
CROSS_FUNCTIONAL |
Проекты кросс-функциональных команд |
CUSTOMER_SUCCESS |
Инициативы по успеху клиентов |
DESIGN |
Проекты дизайна и креатива |
ENGINEERING |
Проекты инженерии и разработки |
GENERAL |
Общие проекты (по умолчанию) |
HR |
Проекты в области человеческих ресурсов |
IT |
Проекты в области информационных технологий |
MARKETING |
Маркетинговые кампании и инициативы |
OPERATIONS |
Проекты в области операций и логистики |
PRODUCT |
Проекты управления продуктами |
SALES |
Проекты по продажам и развитию бизнеса |
TodoCoverConfigInput
Если вы хотите настроить, как работают обложки задач в вашем проекте, вы можете предоставить параметр coverConfig
:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
enabled |
Boolean | ✅ Да | Включены ли обложки для задач |
fit |
ImageFit | ✅ Да | Как изображения должны вписываться в область обложки |
imageSelectionType |
ImageSelectionType | ✅ Да | Какое изображение выбрать из доступных вариантов |
source |
ImageSource | ✅ Да | Откуда брать изображения |
sourceId |
String | Нет | Идентификатор конкретного источника (например, идентификатор пользовательского поля) |
Значения ImageFit: COVER
, CONTAIN
, FILL
, SCALE_DOWN
Значения ImageSelectionType: FIRST
(первое изображение), LAST
(последнее изображение)
Значения ImageSource: DESCRIPTION
(из описания задачи), COMMENTS
(из комментариев), CUSTOM_FIELD
(из пользовательского поля)
Поля ответа
Мутация createProject возвращает объект Project с следующими доступными полями:
Поле | Тип | Описание |
---|---|---|
id |
ID! | Уникальный идентификатор проекта |
name |
String! | Название проекта |
slug |
String! | Идентификатор проекта, удобный для URL |
description |
String | Описание проекта |
color |
String | Цвет проекта в шестнадцатеричном формате |
icon |
String | Идентификатор иконки |
category |
ProjectCategory | Значение перечисления категории проекта |
companyId |
String! | Идентификатор компании |
createdAt |
DateTime! | Время создания |
updatedAt |
DateTime! | Время последнего обновления |
archived |
Boolean! | Является ли проект архивированным |
isTemplate |
Boolean! | Является ли это проектом-шаблоном |
Примечание: Вы можете запросить любую комбинацию этих полей в вашем ответе.
Важные заметки
- У вас должен быть доступ уровня
OWNER
,ADMIN
илиMEMBER
к компании, чтобы создавать проекты - При создании из шаблона шаблон не может содержать более 250,000 задач
- Создающий пользователь автоматически назначается как
OWNER
проекта - Названия проектов автоматически очищаются от пробелов
- Параметр
coverConfig
в настоящее время работает только при создании из шаблона
Ошибки ответов
Компания не найдена
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Шаблон не найден
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Шаблон слишком большой
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Доступ запрещен
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}