Files
upstream-twenty/packages/twenty-docs/l/ru/user-guide/data-migration/capabilities/field-mapping.mdx
upstream-mirror e7da97194a
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 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

199 lines
11 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Сопоставление полей
description: Как работает сопоставление полей при импорте данных.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Как работает сопоставление полей
Когда вы загружаете файл, Twenty анализирует ваши столбцы и пытается сопоставить их с существующими полями.
### Автоматическое сопоставление
Twenty пытается сопоставлять столбцы на основе:
* Названий заголовков столбцов (точные или похожие совпадения)
* Определения типа данных (даты, числа, адреса электронной почты)
* Распространённых шаблонов полей
<Note>**Небольшой совет:** Экспортируйте несколько строк из объекта, который вы хотите импортировать. Экспортированный файл будет содержать точные названия столбцов, которые ожидает Twenty, поэтому автоматическое сопоставление при импорте пройдёт без лишних действий.</Note>
### Варианты ручного сопоставления
Для каждого столбца вы можете:
* **Сопоставить с полем**: выберите соответствующее поле Twenty из выпадающего списка
* **Не сопоставлять**: полностью пропустить столбец (данные не будут импортированы)
<Note>**Поля должны существовать до импорта.** Импорт создаёт записи, а не поля. Создайте настраиваемые поля в разделе **Настройки → Модель данных** перед импортом.</Note>
## Совместимость типов полей
Все типы полей, доступные в Модели данных, поддерживаются для импорта.
Вы также можете импортировать значения `id`, чтобы назначать конкретный идентификатор новым записям или обновлять существующие.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## Требования к формату данных
<Note>**У некоторых полей есть особый синтаксис.** Рекомендуем перед подготовкой импорта скачать образец файла, чтобы увидеть ожидаемый синтаксис для каждого типа поля.</Note>
### Поля адреса
Адрес — это вложенное поле с несколькими столбцами. Некоторые можно оставить пустыми.
* **Адрес / Адрес 1**: Первая строка адреса
* **Адрес / Адрес 2**: Вторая строка адреса
* **Адрес / Город**: Название города
* **Адрес / Штат**: Штат или провинция
* **Адрес / Страна**: Название страны
* **Адрес / Почтовый индекс**: Почтовый индекс/ZIP-код
### Поля массива
Используйте следующий формат:
```
["value1","value2"]
```
### Булевы поля
Используйте `TRUE` или `FALSE` (заглавными) — не `true` и не `false`
### Валютные поля
Валюта — это **вложенное поле** с двумя столбцами, которые **оба должны быть заполнены**:
* **Сумма / Сумма**: Числовое значение (например, `1234.56`)
* **Сумма / Валюта**: Код валюты (например, `USD`, `EUR`)
### Поля даты
Поддерживаемые форматы:
* `YYYY-MM-DD` (рекомендуется)
* `MM/DD/YYYY`
* `DD/MM/YYYY`
* Формат ISO 8601
### Поля доменов
* Рекомендуется использовать формат `https://domain.com`, чтобы избежать создания дубликатов, так как именно этот формат используется для Companies, создаваемых синхронизациями почты и календаря
* Можно заполнить `Domain Label` и `Domain URL`: лучшая практика — указать `domain.com` в метке и `https://domain.com` в URL
* Домены должны быть уникальными в объекте Companies
* **Домены должны быть уникальными внутри импортируемого файла**
### Поля электронной почты
* Должен быть корректный формат электронной почты
* Адреса электронной почты должны быть уникальными в объекте People
* **Адреса электронной почты должны быть уникальными внутри импортируемого файла**
* Для дополнительных адресов: используйте **Emails / Primary Email** для основного адреса и **Emails / Additional Emails** в следующем формате:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Поля идентификаторов
Указание `id` при импорте необязательно. Twenty автоматически сгенерирует его, если он не указан.
Варианты использования сопоставления столбца `id`:
* **Задать конкретный ID**: выберите UUID для создаваемых записей
* **Обновить существующие записи**: сопоставьте с существующими записями, чтобы обновить их вместо создания дубликатов. В этом случае рекомендуется не сопоставлять другие уникальные поля: сопоставление только одного уникального поля обеспечивает более беспроблемный импорт.
<Note>Если вы указываете `id`, он должен быть в формате UUID (например, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### Поля JSON
Используйте допустимый формат JSON:
```
{"key":"value","key2":"value2"}
```
### Поля ссылок
Аналогично полям доменов:
* Заполните оба столбца — метку и URL: **Links / Link URL** и **Links / Link Label**
* Используйте полный формат URL: `https://example.com`
* Для дополнительных ссылок используйте столбец **Links / Secondary Links** со следующим форматом:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Поля множественного выбора
Используйте имена API (а не отображаемые метки) в следующем формате:
```
["VALUE1","VALUE2"]
```
См. [здесь](#finding-api-names-for-select-fields), где найти имена API.
<Note>Новые варианты списка не будут созданы автоматически при импорте. Добавьте их в **Настройки → Модель данных** перед импортом.</Note>
<Warning>
**Импорт перезаписывает, а не добавляет.**
Если у записи уже выбраны `VALUE2` и `VALUE3`, а вы импортируете `["VALUE1"]`, после импорта у записи останется только `VALUE1`. Предыдущие выбранные значения заменяются, а не объединяются.
</Warning>
### Числовые поля
* Только числа
* Десятичные дроби — через точку: `1234.56`
* Без разделителей тысяч
### Поля телефона
Телефон — это **вложенное поле** с несколькими столбцами, которые **должны быть заполнены**
* **Phones / Primary Phone Number**: Номер телефона (например, `4159095555`)
* **Phones / Primary Phone Country Code**: Код страны (например, `US`)
* **Phones / Primary Phone Calling Code**: Телефонный код (например, `+1`)
### Поля рейтинга
Используйте формат имени API: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Поля связи
См. нашу отдельную статью: [Импорт связей между объектами](/l/ru/user-guide/data-migration/capabilities/import-relations)
### Выбор полей
Используйте **имя API** варианта (а не отображаемую метку):
```
VALUE1
```
См. [здесь](#finding-api-names-for-select-fields), где найти имена API.
<Note>Новые варианты списка не будут созданы автоматически при импорте. Добавьте их в **Настройки → Модель данных** перед импортом.</Note>
### Текстовые поля
* Специальное форматирование не требуется
* Начальные и конечные пробелы удаляются
## Поиск имен API
Для полей Select, Multi-Select и Array с предопределёнными вариантами необходимо использовать **имена API**, а не отображаемые метки.
### Как найти имена API
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект и поле
3. Включите **Расширенный режим** (переключатель внизу справа на странице настроек)
4. Просмотрите имя API для каждого варианта
<VimeoEmbed videoId="1144910809" title="Видеодемонстрация" />