적절한 정리 및 연쇄 효과와 함께 프로젝트에서 사용자 정의 필드를 제거합니다.


사용자 정의 필드 삭제

프로젝트에서 사용자 정의 필드를 영구적으로 제거하고 모든 관련 데이터, 값 및 구성을 함께 삭제합니다. 이 작업은 실행 취소할 수 없으며 이 필드를 사용하는 모든 기록에 영향을 미칩니다.

기본 예제

mutation DeleteCustomField {
  deleteCustomField(id: "field_abc123")
}

고급 예제

mutation DeleteCustomFieldWithResponse {
  deleteCustomField(id: "field_abc123")
}

입력 매개변수

매개변수 유형 필수 설명
id String! ✅ 예 삭제할 사용자 정의 필드의 고유 식별자

응답 필드

필드 유형 설명
deleteCustomField Boolean! 삭제가 성공하면 항상 true를 반환합니다.

필요한 권한

프로젝트 소유자와 관리자만 사용자 정의 필드를 삭제할 수 있습니다.

역할 사용자 정의 필드 삭제 가능
OWNER ✅ 예
ADMIN ✅ 예
MEMBER ❌ 아니오
CLIENT ❌ 아니오

연쇄 효과

사용자 정의 필드가 삭제되면 다음 정리 작업이 자동으로 발생합니다:

데이터 정리

  • 사용자 정의 필드 값 - 이 필드의 모든 값이 모든 기록에서 제거됩니다.
  • 필드 옵션 - 모든 드롭다운 옵션 및 구성이 삭제됩니다.
  • 활동 기록 - 이 필드와 관련된 모든 활동 기록이 제거됩니다.
  • 조회 구성 - 모든 조회 필드 참조가 정리됩니다.

버튼 필드에 대한 특별 처리

삭제된 필드가 BUTTON 유형인 경우 추가 정리가 발생합니다:

  • 자동화 - 이 버튼에 의해 트리거된 모든 자동화가 삭제됩니다.
  • 자동화 기록 - 관련 자동화 활동이 제거됩니다.

실시간 업데이트

  • 차트 - 프로젝트 차트가 변경 사항을 반영하도록 업데이트됩니다.
  • 수식 - 프로젝트의 모든 수식 필드가 재계산됩니다.
  • 시간 추적 - 시간 지속 계산이 업데이트됩니다.
  • 구독 - 연결된 클라이언트에 실시간 알림이 전송됩니다.
  • 웹후크 - 삭제 이벤트와 함께 통합 웹후크가 트리거됩니다.

오류 응답

사용자 정의 필드를 찾을 수 없음

{
  "errors": [{
    "message": "Custom field was not found.",
    "extensions": {
      "code": "CUSTOM_FIELD_NOT_FOUND"
    }
  }]
}

권한 부족

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

중요 사항

영구 삭제

  • 실행 취소 없음 - 삭제된 사용자 정의 필드는 복구할 수 없습니다.
  • 데이터 손실 - 모든 기록의 모든 필드 값이 영구적으로 제거됩니다.
  • 즉각적인 효과 - 변경 사항이 모든 프로젝트 사용자에게 즉시 적용됩니다.

성능 고려 사항

  • 대규모 프로젝트 - 많은 기록이 있는 프로젝트에서 삭제가 더 오래 걸릴 수 있습니다.
  • 수식 재계산 - 복잡한 수식이 있는 프로젝트는 잠시 처리 지연이 발생할 수 있습니다.
  • 차트 업데이트 - 대시보드 차트가 변경 사항을 반영하도록 새로 고쳐집니다.

모범 사례

  1. 데이터 백업 - 삭제 전에 중요한 필드 값을 내보내기
  2. 변경 사항 알림 - 필드를 삭제하기 전에 팀원에게 알리기
  3. 종속성 확인 - 자동화나 수식이 필드에 의존하지 않는지 확인
  4. 보고서 검토 - 삭제된 필드를 참조하는 보고서를 업데이트

관련 작업

일반 사용 사례

사용하지 않는 필드 제거

# First, list fields to identify unused ones
query ListCustomFields {
  customFields(projectId: "project_123") {
    id
    name
    type
    createdAt
    # Check usage in records
  }
}

# Then delete the unused field
mutation DeleteUnusedField {
  deleteCustomField(id: "field_to_remove")
}

테스트 필드 정리

# Remove fields created during testing
mutation CleanupTestFields {
  field1: deleteCustomField(id: "test_field_1")
  field2: deleteCustomField(id: "test_field_2")
  field3: deleteCustomField(id: "test_field_3")
}

프로젝트 필드 재구성

# When reorganizing field structure
mutation RestructureFields {
  # Delete old fields
  deleteOldPriorityField: deleteCustomField(id: "old_priority_field")
  deleteOldStatusField: deleteCustomField(id: "old_status_field")
  
  # Note: Create new fields in separate mutations
}

웹후크 이벤트

사용자 정의 필드가 삭제되면 다음 웹후크 이벤트가 트리거됩니다:

{
  "event": "CUSTOM_FIELD_DELETED",
  "projectId": "project_123",
  "timestamp": "2024-01-15T10:30:00Z",
  "previousValue": {
    "id": "field_abc123",
    "name": "Priority Level",
    "type": "SELECT_SINGLE",
    "projectId": "project_123"
  },
  "currentValue": null
}

AI 어시스턴트

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

어떻게 도와드릴까요?

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

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