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
  }
}
icon: lightbulb

요청에 필수 헤더를 포함하는 것을 잊지 마세요:

- `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
  }
}
icon: warning
`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"
    }
  }]
}

AI 어시스턴트

응답은 AI를 사용하여 생성되며 오류가 포함될 수 있습니다.

어떻게 도와드릴까요?

Blue 또는 이 문서에 대해 궁금한 점이 있으면 무엇이든 물어보세요.

전송하려면 Enter • 새 줄을 추가하려면 Shift+Enter • ⌘I를 눌러 열기