snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
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

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,289 @@
---
title: "Миграция с других CRM-систем "
description: Пошаговое руководство по миграции ваших данных из любой CRM в Twenty.
---
## Обзор
Это руководство проведет вас через процесс миграции ваших данных из любой CRM в Twenty. Процесс включает аудит ваших данных, подготовку рабочего пространства Twenty, экспорт из вашей текущей системы и импорт в Twenty.
<Note>Представления, рабочие процессы и права доступа необходимо воссоздать вручную после миграции. Запланируйте время на эту настройку.</Note>
## Шаг 1: Проведите аудит текущих данных
Миграция — это возможность начать с чистого листа. Не переносите лишние данные.
**Что сохранить:**
* Активные контакты и компании
* Открытые возможности и сделки
* Важные заметки и активности
* Пользовательские поля, которые вы действительно используете
**Что не переносить:**
* Устаревшие контакты (нет активности более 2 лет)
* Дубликаты записей
* Тестовые данные
* Неиспользуемые пользовательские поля
## Шаг 2: Сопоставьте модель данных
Создайте документ сопоставления между вашей текущей CRM и Twenty:
| Ваша CRM | Twenty |
| ----------------------- | --------------------------- |
| Аккаунт / Организация | **Компания** |
| Контакт / Персона | **Люди** |
| Сделка / Возможность | **Возможность** |
| Активность | **Задача** или **Заметка** |
| Пользовательский объект | **Пользовательский объект** |
**Для каждого поля задокументируйте:**
* Имя исходного поля
* Целевое поле Twenty
* Необходимые преобразования формата (даты, номера телефонов и т. д.)
<Note>Держите этот документ сопоставления под рукой во время импорта — вы будете ссылаться на него при сопоставлении столбцов.</Note>
## Шаг 3: Настройте рабочее пространство Twenty
Прежде чем импортировать данные, подготовьте рабочее пространство Twenty:
### Создайте пользовательские объекты и поля
1. Перейдите в **Настройки → Модель данных**
2. Создайте все нужные пользовательские объекты
3. Добавьте пользовательские поля к стандартным и пользовательским объектам
4. Настройте параметры полей (уникальность, обязательность, варианты выбора и т. д.)
<Warning>
**Все поля должны существовать до начала импорта.**
Импорт CSV создаёт записи, а не поля. Создайте все пользовательские поля в разделе Настройки → Модель данных перед импортом.
</Warning>
### Пригласите свою команду
<Warning>
**Пригласите пользователей ПЕРЕД импортом данных.**
Если ваши данные содержат ссылки на пользователей (владелец аккаунта, исполнитель и т. д.), эти пользователи должны существовать в Twenty до импорта. В противном случае эти связи нельзя будет сопоставить.
</Warning>
1. Перейдите в **Настройки → Участники**
2. Пригласите всех участников команды
3. **Дождитесь, пока все примут** приглашения
4. Проверьте, что все пользователи отображаются в списке «Участники»
## Шаг 4: Экспорт из вашей текущей CRM
Экспортируйте данные из вашей текущей CRM:
1. Найдите функцию **Export** (обычно в разделах Настройки, Управление данными или Администрирование)
2. По возможности экспортируйте в **формат CSV**
3. Экспортируйте каждый тип объектов отдельно (компании, контакты, сделки и т. д.)
4. Включите все поля, которые вы хотите перенести
**Экспортируйте следующие объекты (в этом порядке, для справки):**
1. Компании / Аккаунты / Организации
2. Контакты / Люди
3. Сделки / Возможности
4. Заметки и активности
5. Пользовательские объекты
## Шаг 5: Очистите и отформатируйте данные
Откройте каждый экспортированный CSV в табличном приложении и подготовьте его для Twenty.
### Удалите дубликаты
1. Отсортируйте по уникальному полю (электронная почта для контактов, домен для компаний)
2. Удалите или объедините строки-дубликаты
3. Убедитесь, что в Twenty уже нет дубликатов
### Правильно отформатируйте поля
| Тип поля | Требуемый формат |
| --------------------- | ---------------------------------------------- |
| **Домен** | `https://domain.com` |
| **Электронная почта** | `name@domain.com` (должен быть уникальным) |
| **Дата** | `YYYY-MM-DD` |
| **Телефон** | Три столбца: номер, код страны, телефонный код |
| **Логический тип** | `TRUE` или `FALSE` (прописными буквами) |
| **Поля Select** | Используйте имена API, а не отображаемые метки |
<Warning>
**Формат домена критически важен.**
Используйте `https://domain.com` (не `domain.com` и не `www.domain.com`). Это соответствует формату Twenty и предотвращает дубликаты при подключении синхронизации электронной почты/календаря.
</Warning>
См. [как подготовить файлы CSV](/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files) для полного перечня требований к форматированию для всех типов полей.
### Добавьте столбцы для связей
Чтобы связать записи (например, контакты с компаниями), добавьте столбец с уникальным идентификатором родительской записи.
**Пример: CSV контактов со ссылкой на компанию**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
См. [как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) для подробных инструкций по связыванию записей.
### Обновите ссылки на пользователей
Если ваши данные содержат назначения пользователей (владелец, исполнитель):
1. Добавьте столбец с **электронной почтой пользователя** (а не только его ID из старой системы)
2. Используйте те же адреса электронной почты, которые пользователи использовали для присоединения к вашему рабочему пространству Twenty
См. [как подготовить файлы CSV](/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files) для полного руководства по форматированию.
## Шаг 6: Импорт в Twenty
<Warning>
**Порядок импорта имеет значение!**
Всегда импортируйте в следующем порядке:
1. **Компании** в первую очередь (без зависимостей)
2. **Контакты** во вторую очередь (связь с компаниями)
3. **Возможности** в третью очередь (связь с компаниями/контактами)
4. **Заметки и задачи** (связь с записями)
5. **Пользовательские объекты** с учётом их зависимостей
Родительская запись должна существовать до того, как вы сможете на неё сослаться.
</Warning>
### Импортируйте каждый объект
Для каждого CSV-файла, по порядку:
1. Перейдите к объекту в Twenty
2. Нажмите **⋮ → Импорт записей**
3. Загрузите файл CSV
4. Сопоставьте столбцы с полями:
* Сопоставьте столбцы с адресами электронной почты пользователей соответствующим полям связей
* Сопоставьте столбцы связей (например, `companyDomain`) с полями связей
5. Проверьте и исправьте любые ошибки в интерфейсе
6. Подтвердите импорт
7. Проверьте несколько записей, прежде чем переходить к следующему файлу
**Подробные руководства:**
* [Как импортировать компании](/l/ru/user-guide/data-migration/how-tos/import-companies-via-csv)
* [Как импортировать контакты](/l/ru/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Шаг 7: Крупные миграции (50,000+ записей)
Для крупных миграций:
| Объём | Рекомендуемый подход |
| ----------------------- | --------------------------------- |
| Менее 10,000 записей | Импорт одним CSV-файлом |
| 10,000 - 50,000 записей | Разделите на несколько CSV-файлов |
| 50,000+ записей | Используйте API |
**Для импорта через API:**
* Быстрее и надёжнее для больших наборов данных
* Поддерживает пакетные операции (до 60 записей за вызов)
* См. [как импортировать данные через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api)
## Шаг 8: Настройка после миграции
После импорта данных завершите настройку рабочего пространства:
### Воссоздайте представления
* Настройте сохранённые представления с фильтрами, сортировками и настройками столбцов
* Создайте при необходимости канбан- или календарные представления
### Воссоздайте рабочие процессы
* Воссоздайте автоматизации в **Настройки → Рабочие процессы**
* Начните с наиболее критичных рабочих процессов
* Протестируйте каждый из них, прежде чем полагаться на него
### Настройте роли и разрешения
* Настройте роли в **Настройки → Участники → Роли**
* Назначьте пользователей на соответствующие роли
### Подключите электронную почту и календарь
* Каждый пользователь подключает свою учётную запись в разделе **Настройки → Учётные записи**
* Twenty начнёт синхронизировать электронные письма с записями контактов
* См. [Электронная почта и календарь](/l/ru/user-guide/calendar-emails/overview)
### Обучите свою команду
* Совместно ознакомьтесь с новым интерфейсом
* Задокументируйте любые процессы, специфичные для команды
## Распространенные проблемы и решения
| Проблема | Причина | Решение |
| -------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Ошибки из-за дубликатов** | Адрес электронной почты/домен уже существует | Удалите дубликаты из файла или включите уникальный идентификатор, чтобы обновить существующие записи |
| **Связь не найдена** | Родительская запись не существует | Импортируйте сначала родительские объекты (компании перед контактами) |
| **Отсутствующие поля** | Пользовательское поле не существует | Создайте поле в разделе Настройки → Модель данных перед импортом |
| **Ошибки полей Select** | Используются отображаемые метки | Используйте имена API (включите расширенный режим в Настройках, чтобы их найти) |
| **Пустая связь с пользователем** | Пользователь не принял приглашение | Убедитесь, что все пользователи приняли приглашения перед импортом |
См. [как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors) для подробных шагов по устранению неполадок.
## Послемиграционный контрольный список
### Целостность данных
<Check>Все записи импортированы (сравните количество с исходной системой)</Check>
<Check>Связи работают корректно (контакты связаны с компаниями)</Check>
<Check>Назначения пользователей сопоставлены корректно (владелец, исполнитель)</Check>
<Check>Пользовательские поля заполнены</Check>
<Check>Нет неожиданных дубликатов</Check>
### Конфигурация
<Check>Представления воссозданы</Check>
<Check>Рабочие процессы воссозданы и протестированы</Check>
<Check>Роли и разрешения настроены</Check>
<Check>Синхронизация электронной почты/календаря подключена</Check>
### Готовность команды
<Check>Команда обучена новой системе</Check>
<Check>Определён план доступа к старой CRM (оставить для справки? Когда отключить?)</Check>
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Можно ли автоматически перенести рабочие процессы?">
Пока нет. Рабочие процессы необходимо воссоздать вручную в Twenty.
</Accordion>
<Accordion title="Что насчёт вложений?">
Вложения не включаются в экспорт CSV. Вам потребуется загрузить их вручную повторно, перенести через API или связаться с нашей командой за помощью.
</Accordion>
<Accordion title="Можно ли держать обе системы запущенными во время миграции?">
Да, мы рекомендуем оставлять вашу старую CRM запущенной, пока вы не убедитесь, что миграция завершена. Просто следите за тем, чтобы не создавать новые данные в обеих системах.
</Accordion>
<Accordion title="Сколько обычно занимает миграция?">
Зависит от объёма и сложности данных. Небольшие миграции (менее 10,000 записей) можно выполнить за несколько часов. Крупные миграции могут занять несколько дней, включая очистку данных и тестирование.
</Accordion>
</AccordionGroup>
## Нужна Помощь?
<Tip>
Нужна помощь с переносом данных? [Найти сертифицированного Двадцать партнера](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm) для перемещения данных, трубопроводов и пользователей сквозно.
</Tip>