Blue API를 사용하여 프로젝트를 생성합니다.
새 프로젝트 생성
새 프로젝트를 생성하려면 다음 변형을 사용할 수 있습니다:
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 토큰 ID
- `X-Bloo-Token-Secret`: 귀하의 API 토큰 비밀
- `X-Bloo-Company-ID`: 귀하의 회사 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 | ✅ 예 | 프로젝트가 생성될 회사의 ID 또는 슬러그. |
description |
String | 아니오 | 프로젝트 설명. |
color |
String | 아니오 | 16진수 형식의 프로젝트 색상 (예: "#3B82F6"). |
icon |
String | 아니오 | 프로젝트의 아이콘 식별자 (예: "briefcase", "rocket"). |
category |
ProjectCategory | 아니오 | 프로젝트 카테고리. 지정하지 않으면 GENERAL 로 기본 설정됩니다. |
templateId |
String | 아니오 | 템플릿으로 사용할 기존 프로젝트의 ID. |
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 | 아니오 | 특정 소스 식별자 (예: 사용자 정의 필드 ID) |
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 | 16진수 형식의 프로젝트 색상 |
icon |
String | 아이콘 식별자 |
category |
ProjectCategory | 프로젝트 카테고리 열거형 값 |
companyId |
String! | 회사의 ID |
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"
}
}]
}