메인 콘텐츠로 건너뛰기

개요

Twenty는 CSV 가져오기 시 객체 간 관계 가져오기를 지원합니다. 이를 통해 데이터 마이그레이션의 일부로 레코드를 연결할 수 있습니다(예: 사람을 회사에 연결).
현재 가져오기에서 지원됨: 각 측이 단일 객체 유형을 가리키는 일대다 관계(예: 사람 → 회사). 여러 객체 유형을 가리키는 관계는 아직 가져오기/내보내기를 지원하지 않습니다.

Twenty에서 관계가 작동하는 방식

일대다 / 다대일

Twenty는 하나의 레코드가 여러 다른 레코드에 연결되는 표준 관계를 지원합니다:
  • 하나의 회사 → 여러 사람: 한 회사에는 여러 직원이 있을 수 있지만, 각 사람은 하나의 회사에 속합니다
  • 하나의 회사 → 여러 기회: 한 회사에는 여러 거래가 있을 수 있지만, 각 기회는 하나의 회사에 속합니다

여러 객체 유형을 가리킬 수 있는 관계

일부 관계는 서로 다른 유형의 객체에 연결될 수 있습니다. 이는 두 가지 방식으로 작동합니다: 패턴 1: 서로 다른 객체 유형의 많은 레코드가 각각 하나의 레코드에 연결 여러 개의 노트, 작업 또는 활동을 한 번에 여러 객체 유형에 각각 연결할 수 있습니다:
  • 노트는 동시에 한 사람, 한 회사, 한 기회에 연결될 수 있습니다
  • 작업은 동시에 한 사람, 한 회사, 한 기회에 연결될 수 있습니다
여기서 노트/작업은 “many” 쪽에 있습니다. 각각은 객체 유형당 하나의 레코드에 연결됩니다. 패턴 2: 하나의 레코드가 서로 다른 객체 유형의 많은 레코드로부터 연결을 받는 경우 프로젝트는 서로 다른 객체 유형의 여러 레코드로부터 연결을 받을 수 있습니다:
  • 프로젝트에는 많은 사람이 연결될 수 있고, 많은 회사가 연결될 수 있으며, 많은 노트가 첨부될 수 있습니다
여기서 프로젝트는 “one” 쪽에 있습니다. 서로 다른 객체의 여러 레코드가 모두 동일한 프로젝트에 연결될 수 있습니다.
가져오기/내보내기 제한사항: 여러 객체 유형을 가리키는 관계(예: 노트 → 사람/회사/기회)는 CSV 가져오기나 내보내기에서 아직 지원되지 않습니다.
  • 가져오기: 각 측이 단일 객체 유형을 가리키는 일대다 관계만 가져올 수 있습니다
  • 내보내기: 여러 객체 유형을 가리키는 관계의 열은 현재 비워 둡니다
이는 로드맵에 포함되어 있습니다.

현재 지원되지 않는 사항

다대다 관계는 아직 제공되지 않습니다. 예를 들어, 현재 다음과 같은 관계는 만들 수 없습니다:
  • 여러 사람이 여러 프로젝트에 연결되는 경우
다대다 관계는 2026년 상반기에 제공될 예정입니다.

가져오기 중 레코드 연결

알림: 각 측이 단일 객체 유형을 가리키는 일대다 관계만 가져올 수 있습니다(예: 사람 → 회사). 여러 객체 유형을 가리키는 관계(예: 노트 → 사람/회사/기회)는 아직 지원되지 않습니다.

1단계: “One”과 “Many” 쪽 식별하기

먼저, 어떤 객체가 관계의 “one” 쪽이고 어떤 객체가 “many” 쪽인지 결정하세요. 예시:
  • 회사는 “one” 쪽입니다(한 회사에는 많은 직원이 있음)
  • 사람은 “many” 쪽입니다(각 사람은 하나의 회사에 속함)

2단계: “One” 쪽 레코드가 존재하는지 확인

“many” 쪽을 가져오기 전에, “one” 쪽 레코드는 이미 Twenty에 존재해야 합니다.
  • “one” 쪽 레코드를 먼저 가져오거나 생성하세요(예: 회사)
  • 해당 고유 식별자를 확인하세요. 이는 다음 중 하나일 수 있습니다:
    • id(Twenty의 UUID)
    • 고유로 설정된 필드(예: 회사의 domain, 또는 이전 시스템의 외부 ID)
존재하지 않는 레코드를 참조하면 가져오기는 실패합니다.

3단계: CSV 파일 준비

“many” 쪽 CSV 파일에 “one” 쪽 레코드를 참조하는 열을 추가하세요. 예시: 회사에 연결되는 사람 CSV 파일의 경우:
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
중요:
  • 값은 회사 레코드의 고유 필드와 정확히 일치해야 합니다
  • 도메인의 경우 도메인 라벨이 아니라 도메인 URL(예: https://acme.com)을 사용하세요
  • 관계당 고유 식별자는 오직 하나만 매핑하세요: 이렇게 하면 가져오기가 원활해집니다

4단계: 관계 필드가 존재하는지 확인

파일을 업로드하기 전에 객체 간에 관계 필드가 존재하는지 확인하세요. 존재하지 않는 경우:
  1. 설정 → 데이터 모델로 이동
  2. 객체를 선택하세요(예: 사람)
  3. 대상 객체(예: 회사)를 가리키는 관계 필드를 생성하세요

5단계: 업로드하고 관계 매핑하기

  1. 가져오기 UI를 통해 CSV 파일을 업로드하세요
  2. 필드 매핑 단계에서 관계 열을 찾으세요(예: companyDomain)
  3. 이를 관계 필드에 매핑하세요(예: 회사)
  4. Twenty가 각 레코드를 일치하는 상위에 자동으로 연결합니다

관계를 위한 사용 가능한 고유 필드

객체사용 가능한 고유 필드
회사id, domain, 임의의 사용자 지정 고유 필드
사람id, email, 임의의 사용자 지정 고유 필드
워크스페이스 구성원id, email(이름 아님)
기타 표준 및 사용자 지정 객체id, 고유로 표시된 모든 필드
워크스페이스 구성원에 연결: 관계가 워크스페이스 구성원(Twenty에 로그인하는 팀)을 가리키는 경우, 이름이 아니라 이메일 주소로 참조하세요.
스프레드시트에서 읽기 쉽고 관리가 간편하므로, 회사에는 domain, 사람에는 email 사용을 권장합니다.
알림: 소프트 삭제된 레코드(Command Menu → See deleted records에서 확인 가능)도 고유성 기준에 포함됩니다. 삭제된 레코드와 동일한 고유 값을 가진 레코드를 가져오면, 삭제된 레코드가 복원됩니다. 자세한 내용은 고유성 제약을 참조하세요.

가져오기 순서 규칙

항상 “one” 쪽을 먼저 가져오세요!
  1. 회사 먼저(종속성 없음)
  2. 사람 두 번째(회사에 연결됨)
  3. 기회 세 번째(회사/사람에 연결됨)
  4. 사용자 지정 객체는 종속성에 따라 순서대로
참조하려면 상위 레코드가 먼저 존재해야 합니다.