Blue API를 사용하여 레코드에서 사용자 할당, 추가 또는 제거


레코드 담당자 관리

Blue API는 레코드 담당자를 관리하기 위한 세 가지 작업을 제공합니다: 담당자 설정(스마트 대체), 담당자 추가 및 담당자 제거. 이러한 작업은 활동 추적, 알림, 웹후크 및 실시간 업데이트를 자동으로 처리합니다.

레코드 담당자 설정 (스마트 할당)

현재의 모든 담당자를 새로운 목록으로 교체합니다. 시스템은 필요한 변경 사항을 지능적으로 계산하여 새로운 목록에 없는 사용자를 제거하고 새로운 사용자를 추가합니다.

mutation SetRecordAssignees {
  setTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_123", "user_456", "user_789"]
  }) {
    success
    operationId
  }
}

레코드 담당자 추가

기존 담당자를 제거하지 않고 새로운 담당자를 추가합니다. 이미 할당된 사용자는 추가되지 않습니다.

mutation AddRecordAssignees {
  addTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_999", "user_111"]
  }) {
    success
    operationId
  }
}

레코드 담당자 제거

레코드에서 특정 담당자를 제거합니다.

mutation RemoveRecordAssignees {
  removeTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_456"]
  }) {
    success
    operationId
  }
}

입력 매개변수

SetTodoAssigneesInput

매개변수 유형 필수 설명
todoId String! ✅ 예 사용자를 할당할 레코드의 ID
assigneeIds [String!]! ✅ 예 할당할 사용자 ID 배열(현재의 모든 담당자를 교체)

AddTodoAssigneesInput

매개변수 유형 필수 설명
todoId String! ✅ 예 사용자를 할당할 레코드의 ID
assigneeIds [String!]! ✅ 예 추가할 사용자 ID 배열

RemoveTodoAssigneesInput

매개변수 유형 필수 설명
todoId String! ✅ 예 담당자를 제거할 레코드의 ID
assigneeIds [String!]! ✅ 예 담당자에서 제거할 사용자 ID 배열

응답 필드

필드 유형 설명
success Boolean! 작업이 성공적으로 완료되었는지 여부
operationId String 이 작업을 추적하기 위한 고유 식별자

필수 권한

담당자 설정/제거

역할 담당자 할당/제거 가능 여부
OWNER ✅ 예
ADMIN ✅ 예
MEMBER ✅ 예
CLIENT ✅ 예
VIEW_ONLY ❌ 아니오
COMMENT_ONLY ❌ 아니오

담당자 추가

역할 담당자 추가 가능 여부
OWNER ✅ 예
ADMIN ✅ 예
MEMBER ✅ 예
CLIENT ✅ 예
VIEW_ONLY ✅ 예
COMMENT_ONLY ✅ 예

오류 응답

레코드를 찾을 수 없음

{
  "errors": [{
    "message": "Todo was not found.",
    "extensions": {
      "code": "TODO_NOT_FOUND"
    }
  }]
}

권한 부족

{
  "errors": [{
    "message": "You don't have permission to modify this record",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

잘못된 입력

{
  "errors": [{
    "message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
    "extensions": {
      "code": "GRAPHQL_VALIDATION_FAILED"
    }
  }]
}

작업 비교

기능 담당자 설정 담당자 추가 담당자 제거
Logic Smart replacement Incremental addition Selective removal
Activity Tracking ✅ 예 ❌ 아니오 ❌ 아니오
알림 ✅ 예 ❌ 아니오 ❌ 아니오
Webhooks ✅ 예 ❌ 아니오 ❌ 아니오
Automations ✅ 예 ❌ 아니오 ❌ 아니오
Permission Level Stricter More permissive Stricter

비즈니스 로직

스마트 할당 (setTodoAssignees)

setTodoAssignees를 사용할 때 시스템은:

  1. 목록 비교: 현재 담당자와 새로운 담당자 목록 분석
  2. 변경 사항 계산: 제거할 사람, 유지할 사람 및 추가할 사람 결정
  3. 사용자 제거: 새로운 목록에 없는 사용자 할당 해제
  4. 사용자 추가: 이전에 할당되지 않은 새로운 목록의 사용자 할당
  5. 활동 추적: 각 변경 사항에 대한 활동 로그 항목 생성
  6. 알림 전송: 새로 할당된 사용자에게 알림
  7. 웹후크 트리거: 담당자 추가/제거 웹후크 발사
  8. 차트 업데이트: 분석 차트를 새로 고침하도록 표시
  9. 실시간 업데이트: 연결된 클라이언트에 업데이트 게시

간단한 작업 (추가/제거)

addTodoAssigneesremoveTodoAssignees 작업은 setTodoAssignees의 포괄적인 추적 및 알림 기능 없이 기본 기능을 제공합니다.

중요 사항

  • 프로젝트 구성원: 담당자는 레코드를 포함하는 프로젝트의 구성원이어야 합니다.
  • 할당 제한 없음: 레코드당 최대 담당자 수는 없습니다.
  • 자기 할당: 사용자는 적절한 권한이 있는 경우 자신을 할당할 수 있습니다.
  • 빈 배열: 빈 assigneeIds 배열을 setTodoAssignees에 제공하면 모든 담당자가 제거됩니다.
  • 중복 방지: 시스템은 자동으로 중복 할당을 방지합니다.
  • 데이터베이스 효율성: 확장 가능한 다대다 관계를 위해 조인 테이블(TodoUser)을 사용합니다.
  • 실시간 업데이트: 모든 연결된 클라이언트는 할당이 변경될 때 즉각적인 업데이트를 받습니다.

사용 가능한 담당자 가져오기

프로젝트의 레코드에 할당할 수 있는 사용자 목록을 가져오려면:

query GetAssignees {
  assignees(projectId: "project_abc123") {
    id
    name
    email
    avatar
  }
}

이 쿼리는 레코드에 할당될 수 있는 모든 프로젝트 구성원을 반환합니다.

관련 작업

AI 어시스턴트

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

어떻게 도와드릴까요?

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

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