Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s
202 lines
12 KiB
Plaintext
202 lines
12 KiB
Plaintext
---
|
||
title: Импорт компаний через CSV
|
||
description: Полное пошаговое руководство по импорту компаний в Twenty.
|
||
---
|
||
|
||
## Обзор
|
||
|
||
Это руководство проведет вас через процесс импорта ваших компаний в Twenty. **Компании следует импортировать в первую очередь**, поскольку Люди и Сделки связываются с Компаниями.
|
||
|
||
## Перед началом
|
||
|
||
### Контрольный список предварительных требований
|
||
|
||
<Check>
|
||
Ваш файл в формате CSV, XLSX или XLS
|
||
</Check>
|
||
|
||
<Check>
|
||
В файле менее 10 000 записей
|
||
</Check>
|
||
|
||
<Check>
|
||
В вашем файле нет повторяющихся доменов
|
||
</Check>
|
||
|
||
<Check>
|
||
Все пользовательские поля созданы в **Настройки → Модель данных**
|
||
</Check>
|
||
|
||
<Note>
|
||
Нужно импортировать более 10 000 компаний? Разбейте на несколько файлов или используйте [импорт через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api).
|
||
</Note>
|
||
|
||
## Шаг 1: Подготовьте данные о компаниях
|
||
|
||
### Обязательные и рекомендуемые поля
|
||
|
||
| Поле | Обязательно? | Формат | Заметки |
|
||
| ------------------------- | ------------- | -------------------- | ----------------------------------- |
|
||
| **Название** | Рекомендуется | Текст | Отображаемое название компании |
|
||
| **Домен** | Рекомендуется | `https://domain.com` | Уникальный идентификатор |
|
||
| **Адрес** | Необязательно | Несколько столбцов | См. ниже |
|
||
| **Сотрудники** | Необязательно | Число | Количество сотрудников |
|
||
| **Пользовательские поля** | Необязательно | Различается | Должны существовать в модели данных |
|
||
|
||
### Формат домена
|
||
|
||
<Warning>
|
||
**Используйте формат `https://domain.com` для доменов.**
|
||
|
||
Это соответствует формату, используемому, когда Компании автоматически создаются при синхронизации почты/календаря, что предотвращает появление дубликатов в дальнейшем.
|
||
</Warning>
|
||
|
||
**Столбцы домена:**
|
||
|
||
* **Domain / Domain Label**: `acme.com`
|
||
* **Domain / Domain URL**: `https://acme.com`
|
||
|
||
### Формат адреса
|
||
|
||
Адрес — это вложенное поле с несколькими столбцами:
|
||
|
||
```
|
||
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
|
||
123 Main Street,San Francisco,CA,USA,94105
|
||
```
|
||
|
||
### Пример структуры CSV
|
||
|
||
```csv
|
||
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
|
||
Acme Corp,https://acme.com,acme.com,San Francisco,USA,250
|
||
Widget Co,https://widgets.co,widgets.co,New York,USA,50
|
||
```
|
||
|
||
<Note>
|
||
**Совет профессионала:** Нажмите **Download sample file** во время импорта, чтобы увидеть точные названия столбцов, которые ожидает Twenty.
|
||
</Note>
|
||
|
||
## Шаг 2: Откройте функцию импорта
|
||
|
||
**Вариант 1: Из представления Компании**
|
||
|
||
1. Перейдите к разделу **Компании** в левой боковой панели
|
||
2. Нажмите значок **⋮** в правом верхнем углу
|
||
3. Выберите **Импорт записей**
|
||
|
||
**Вариант 2: Через командное меню**
|
||
|
||
1. Нажмите `Cmd + K` (Mac) или `Ctrl + K` (Windows)
|
||
2. Введите "import"
|
||
3. Выберите **Импорт записей**
|
||
4. Выберите **Компании**
|
||
|
||
## Шаг 3: Загрузите свой файл
|
||
|
||
1. Нажмите **Выбрать файл**
|
||
2. Выберите свой файл CSV, XLSX или XLS
|
||
3. Подождите, пока Twenty проанализирует ваш файл
|
||
|
||
## Шаг 4: Сопоставьте ваши столбцы
|
||
|
||
Twenty автоматически пытается сопоставить ваши столбцы с полями. Проверьте и при необходимости скорректируйте:
|
||
|
||
1. **Проверьте автоматические сопоставления** — убедитесь, что они верны
|
||
2. **Исправьте неверные сопоставления** — нажмите на раскрывающийся список, чтобы выбрать нужное поле
|
||
3. **Пропустите столбцы** — выберите **Do not map** для столбцов, которые вы не хотите импортировать
|
||
|
||
### Важные правила сопоставления
|
||
|
||
* **Домен**: сопоставьте с **Domain / Domain URL** (не с Domain Label)
|
||
* **Адрес**: сопоставьте каждую часть с соответствующим столбцом (City, State и т. д.)
|
||
* **Поля Select**: значения должны соответствовать существующим вариантам (или вы сопоставите их на следующем шаге)
|
||
|
||
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
|
||
|
||
## Шаг 5: Сопоставление значений полей Select
|
||
|
||
Если у вас есть поля Select или Multi-Select:
|
||
|
||
1. Twenty показывает ваши значения рядом с существующими вариантами
|
||
2. Сопоставьте каждое значение в вашем файле с вариантом Twenty
|
||
3. Или при необходимости создайте новые варианты
|
||
|
||
<Note>
|
||
Для вариантов Select используются **имена API**, а не отображаемые метки. Перейдите в **Настройки → Модель данных** → включите **Расширенный режим**, чтобы увидеть имена API.
|
||
</Note>
|
||
|
||
## Шаг 6: Проверьте и исправьте ошибки
|
||
|
||
Перед завершением импорта Twenty проверяет ваши данные:
|
||
|
||
1. Нажмите **Следующие шаги**
|
||
2. Строки с ошибками выделены **желтым**
|
||
3. **Исправляйте ошибки напрямую** — нажмите на ячейку и отредактируйте значение
|
||
4. **Удалите проблемные строки** — нажмите X, чтобы пропустить эту строку
|
||
|
||
### Распространенные ошибки импорта компаний
|
||
|
||
| Ошибка | Причина | Решение |
|
||
| --------------------------------- | ----------------------------- | ------------------------------------------------- |
|
||
| **Дублирующийся домен** | Домен уже существует в Twenty | Удалите из файла или обновите существующую запись |
|
||
| **Недопустимый формат домена** | Неверный формат | Используйте `https://domain.com` |
|
||
| **Отсутствует обязательное поле** | Обязательное поле пусто | Заполните значение или удалите строку |
|
||
|
||
## Шаг 7: Завершите импорт
|
||
|
||
1. Просмотрите сводку импорта
|
||
2. Нажмите **Подтвердить**, чтобы импортировать
|
||
3. Дождитесь завершения импорта
|
||
4. Проверьте, просмотрев несколько записей
|
||
|
||
## После импорта компаний
|
||
|
||
Теперь вы можете импортировать записи, которые привязываются к Компаниям:
|
||
|
||
1. **[Импортируйте Людей](/l/ru/user-guide/data-migration/how-tos/import-contacts-via-csv)** — привяжите их к Компаниям с помощью домена
|
||
2. **Импортируйте Сделки** — свяжите их с Компаниями
|
||
3. **Проверьте импорт** — выборочно просмотрите несколько записей, чтобы убедиться в корректности данных
|
||
|
||
## Обновление существующих компаний
|
||
|
||
Чтобы обновлять компании вместо создания новых:
|
||
|
||
1. Добавьте в файл столбец `domain` или `id`
|
||
2. Twenty сопоставляет записи по этому уникальному идентификатору
|
||
3. Существующие компании обновляются; новые создаются
|
||
|
||
См. [как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) для подробностей.
|
||
|
||
## Часто задаваемые вопросы
|
||
|
||
<AccordionGroup>
|
||
<Accordion title="Почему две компании не могут иметь одинаковый домен?">
|
||
Домен — уникальный идентификатор в Twenty. Это предотвращает дубли компаний и обеспечивает корректную привязку писем к нужной компании при синхронизации электронной почты.
|
||
</Accordion>
|
||
|
||
<Accordion title="Что делать, если у некоторых компаний нет домена?">
|
||
Вы можете оставить домен пустым. Однако мы рекомендуем по возможности добавлять домены для улучшения качества данных и автоматической привязки писем.
|
||
</Accordion>
|
||
|
||
<Accordion title="Могу ли я импортировать компании без связанных контактов?">
|
||
Да! Сначала вы можете импортировать компании, а позже импортировать контакты и связать их с помощью домена компании.
|
||
</Accordion>
|
||
|
||
<Accordion title="Что произойдет, если я импортирую домен, который уже существует?">
|
||
Если вы укажете уникальный идентификатор (домен или id), который совпадает с существующей компанией, Twenty обновит эту компанию вместо создания дубликата.
|
||
</Accordion>
|
||
|
||
<Accordion title="Как исправить ошибки 'duplicate domain'?">
|
||
Либо удалите дубликат из вашего файла, либо добавьте `id` компании, чтобы вместо этого обновить существующую запись.
|
||
</Accordion>
|
||
</AccordionGroup>
|
||
|
||
## Устранение неполадок
|
||
|
||
Возникли проблемы? Проверьте:
|
||
|
||
* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
|
||
* [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)
|
||
* [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
|