> ## Documentation Index
> Fetch the complete documentation index at: https://docs.get-clara.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Импорт связей между объектами с помощью CSV

> Полное пошаговое руководство по связыванию записей при импорте CSV.

## Обзор

В этом руководстве показано, как импортировать связи между объектами — например, связывать Людей с Компаниями, или Возможности с Людьми.

<Note>**Что можно импортировать:** Только связи типа «один-ко-многим», указывающие на один тип объекта. Связи, указывающие на несколько типов объектов (например, Заметки, связанные с Людьми И Компаниями), пока не поддерживаются для импорта.</Note>

## Понимание связей

### Что такое связь «один-ко-многим»?

В связи «один-ко-многим»:

* **Одна** компания имеет **много** людей (сотрудников)
* **Одна** компания имеет **много** возможностей
* **Один** человек имеет **много** задач

Сторона «один» — это **родитель**. Сторона «многие» — это **дочерняя** сторона.

### Типичные связи в Twenty

| Связь                  | Сторона «один» (родитель) | Сторона «многие» (дочерняя) |
| ---------------------- | ------------------------- | --------------------------- |
| Компании → Люди        | Компания                  | Люди                        |
| Компании → Возможности | Компания                  | Возможности                 |
| Люди → Задачи          | Человек                   | Задачи                      |
| Люди → Заметки         | Человек                   | Заметки                     |

## Шаг 1: Определите стороны «один» и «многие»

Перед импортом определите, какой объект является родительским, а какой — дочерним.

**Спросите себя:** «У одного \[Объект A] есть много \[Объект B]?»

* Одна Компания → Много Людей ✓ (Компания — родитель)
* Один Человек → Много Компаний ✗ (Это неверно — человек принадлежит одной компании)

## Шаг 2: Сначала импортируйте родительские записи

Родительская запись (сторона «один») должна существовать в Twenty, прежде чем вы сможете на неё сослаться.

**Порядок импорта:**

1. **Компании** в первую очередь (без зависимостей)
2. **Люди** во вторую очередь (связь с компаниями)
3. **Возможности** в третью очередь (связь с компаниями и/или людьми)
4. **Задачи/Заметки** (связь с любым из вышеперечисленных)

<Warning>
  **Если родительская запись не существует, импорт завершится с ошибкой.**

  Всегда проверяйте, что Компании импортированы до импорта Людей со ссылками на компании.
</Warning>

## Шаг 3: Запишите уникальный идентификатор родительской записи

Вам нужно ссылаться на родительскую запись с помощью **уникального идентификатора**. Доступные варианты:

| Родительский объект                 | Доступные уникальные идентификаторы                                              |
| ----------------------------------- | -------------------------------------------------------------------------------- |
| **Компании**                        | `id` (UUID), `domain` (рекомендуется) или любое пользовательское уникальное поле |
| **Люди**                            | `id` (UUID), `email` или любое пользовательское уникальное поле                  |
| **Участники рабочего пространства** | `id` (UUID), `email` (не имя)                                                    |
| **Пользовательские объекты**        | `id` (UUID) или любое поле, отмеченное как уникальное                            |

<Note>**Рекомендуется:** Используйте `domain` для Компаний и `email` для Людей. Они удобочитаемы и их легко проверить в вашей таблице.</Note>

### Поиск идентификатора

Если вам нужен `id`:

1. Экспортируйте родительские записи из Twenty
2. Экспорт включает столбец `id`
3. Используйте эти ID в файле дочерних записей

## Шаг 4: Убедитесь, что поле связи существует

Перед импортом убедитесь, что между вашими объектами существует поле связи.

**Чтобы проверить или создать:**

1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш дочерний объект (например, Люди)
3. Найдите поле связи, указывающее на родителя (например, Компания)
4. Если его нет, создайте его:
   * Нажмите **+ Добавить поле**
   * Выберите тип **Связь**
   * Выберите родительский объект

## Шаг 5: Подготовьте ваш файл CSV

Добавьте в ваш дочерний CSV столбец, который ссылается на родителя по его уникальному идентификатору.

### Пример: Связывание Людей с Компаниями

**Ваш CSV-файл для Людей:**

```csv theme={null}
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```

Столбец `companyDomain` ссылается на домен Компании.

### Требования к формату

| Идентификатор     | Формат                              | Пример                                 |
| ----------------- | ----------------------------------- | -------------------------------------- |
| Домен             | Формат URL                          | `https://acme.com`                     |
| Электронная почта | Стандартный адрес электронной почты | `john@acme.com`                        |
| ID                | UUID                                | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |

<Warning>
  **Формат домена имеет значение!**

  Используйте `https://domain.com` (не просто `domain.com`). Это соответствует тому, как Twenty хранит домены Компаний, и предотвращает ошибки сопоставления.
</Warning>

### Важные правила

1. **Требуется точное совпадение** — значение должно в точности соответствовать родительской записи
2. **Сопоставляйте только ОДИН уникальный идентификатор** — не указывайте одновременно `companyId` И `companyDomain`
3. **С учётом регистра** — `Acme.com` ≠ `acme.com`

## Шаг 6: Загрузите и сопоставьте связь

1. Перейдите к дочернему объекту (например, Люди)
2. Нажмите **⋮** → **Импорт записей**
3. Загрузите ваш CSV-файл
4. На шаге сопоставления полей:
   * Найдите столбец связи (например, `companyDomain`)
   * Сопоставьте его с полем связи **Компания**
5. Завершите оставшееся сопоставление
6. Проверьте ошибки и подтвердите

Twenty автоматически свяжет каждую дочернюю запись с соответствующим родителем.

## Шаг 7: Проверьте импорт

После импорта:

1. Откройте несколько дочерних записей (например, Люди)
2. Убедитесь, что в поле связи указан правильный родитель (например, Компания)
3. Откройте родительскую запись и проверьте раздел связанных записей

## Распространённые ошибки, которых следует избегать

| Ошибка                           | Проблема                                                 | Решение                                                         |
| -------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------- |
| **Неправильный порядок импорта** | Импорт Людей раньше Компаний                             | Всегда сначала импортируйте родительские записи, затем дочерние |
| **Неверный формат домена**       | Использование `acme.com` вместо `https://acme.com`       | Используйте полный формат URL с `https://`                      |
| **Несколько уникальных полей**   | Сопоставление одновременно `companyId` И `companyDomain` | Сопоставляйте только ОДИН уникальный идентификатор              |
| **Отсутствует поле связи**       | Поля связи нет в модели данных                           | Создайте его в **Настройки → Модель данных** перед импортом     |
| **Несуществующие записи**        | Родительская запись не существует в Twenty               | Сначала импортируйте родительские записи или проверьте опечатки |
| **Несовпадение регистра**        | `Acme.com` в файле, но `acme.com` в Twenty               | Обеспечьте точное совпадение регистра                           |

## Связь с участниками рабочего пространства

При связывании с участниками рабочего пространства (вашей командой):

* Используйте их **адрес электронной почты**, а не имя
* Пример: `owner@yourcompany.com`, а не «John Smith»

```csv theme={null}
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```

## Часто задаваемые вопросы

<AccordionGroup>
  <Accordion title="Что, если у моей родительской записи нет домена или адреса электронной почты?">
    У вас есть два варианта:

    1. Используйте Twenty `id` (экспортируйте родительские записи, чтобы получить их ID)
    2. Создайте пользовательское уникальное поле в вашей модели данных для хранения внешнего ID из вашей предыдущей системы
  </Accordion>

  <Accordion title="Могу ли я обновлять связи у существующих записей?">
    Да! Укажите уникальный идентификатор дочерней записи (например, `email` для Людей) и новое значение связи. Импорт обновит связь.
  </Accordion>

  <Accordion title="Могу ли я импортировать связи многие-ко-многим?">
    Связи многие-ко-многим пока не поддерживаются для импорта. Это запланировано на первое полугодие 2026 года.
  </Accordion>

  <Accordion title="Могу ли я связывать с несколькими типами объектов (например, Заметки с Людьми И Компаниями)?">
    Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта. Это запланировано в нашей дорожной карте.
  </Accordion>

  <Accordion title="Что происходит, если родительской записи не существует?">
    Импорт покажет ошибку для этой строки. Вы можете либо:

    * Сначала импортируйте родительскую запись, затем повторите импорт
    * Исправьте ссылочное значение
    * Исключите строку из импорта
  </Accordion>

  <Accordion title="Почему связь устанавливается некорректно?">
    Распространённые причины:

    * Неверный формат (для доменов используйте `https://domain.com`)
    * Несовпадение регистра (проверьте точное написание)
    * Родитель не существует (сначала импортируйте родителей)
    * Сопоставление нескольких идентификаторов (используйте только один)
  </Accordion>
</AccordionGroup>

<Warning>
  **Помните: записи, помеченные как удалённые, учитываются при проверке уникальности.**

  Если вы получаете ошибки «not found», но запись, кажется, существует, проверьте Command Menu → See deleted records. Возможно, родитель был помечен как удалённый.
</Warning>

## Устранение неполадок

Возникли проблемы? Проверьте:

* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Возможности импорта связей](/l/ru/user-guide/data-migration/capabilities/import-relations)
* [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
