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 2s

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,30 @@
---
title: Агенты ИИ
description: Интегрируйте возможности ИИ напрямую в рабочие процессы автоматизации.
---
## Обзор
Интегрируйте возможности ИИ напрямую в рабочие процессы автоматизации для интеллектуальной обработки данных и принятия решений.
## Возможности
| Функция | Описание |
| ---------------------------- | ---------------------------------------------------- |
| **Действия ИИ** | Добавляйте шаги на базе ИИ в любой рабочий процесс |
| **Обогащение данных** | Автоматически обогащайте записи внешними данными |
| **Классификация** | Классифицируйте записи на основе анализа содержимого |
| **Резюмирование** | Создавайте краткие сводки из текстовых полей |
| **Пользовательские промпты** | Определяйте, как именно ИИ обрабатывает ваши данные |
## Сценарии использования
* **Оценка лидов**: Автоматически оценивайте и расставляйте приоритеты для входящих лидов
* **Очистка данных**: Стандартизируйте названия компаний и контактную информацию
* **Черновики писем**: Генерируйте черновики последующих писем на основе заметок встречи
* **Маршрутизация записей**: Назначайте записи нужному участнику команды в зависимости от содержания
## Связанные материалы
* [Обзор рабочих процессов](/l/ru/user-guide/workflows/overview) — основы автоматизации
* [Разрешения ИИ](/l/ru/user-guide/ai/capabilities/permissions-access-control) — контроль доступа для агентов ИИ

View File

@@ -0,0 +1,37 @@
---
title: Чат-бот на базе ИИ
description: Интеллектуальный помощник, который помогает взаимодействовать с данными вашей CRM на естественном языке.
---
## Обзор
Задавайте вопросы на естественном языке и получайте ассистент и объясняйте данные CRM для вас.
## Возможности
| Функция | Описание |
| --------------------------------- | ------------------------------------------------------------------------------------------ |
| **Запросы на естественном языке** | Задавайте вопросы на простом английском вместо создания фильтров |
| **Полный доступ к данным** | Запрашивайте записи, связи и метрики во всём рабочем пространстве |
| **Контекст страницы** | Ссылайтесь на "эту компанию" или "эту сделку" в зависимости от текущего контекста страницы |
| **Диалоговый режим** | Последующие вопросы сохраняют контекст предыдущих запросов |
## Примеры взаимодействий
### Поиск записей
* "Покажи все сделки свыше $50,000"
* "Найди контакты, которым я не писал за последние 2 недели"
* "Выведи список компаний в сфере здравоохранения"
### Получение аналитики
* "Какова общая стоимость моей воронки продаж?"
* "Сколько сделок было закрыто в прошлом месяце?"
* "На каком этапе больше всего застрявших сделок?"
### Использование контекста страницы
* "Подытожь мои взаимодействия с этим человеком" (на странице контакта)
* "Какие сделки связаны с этой компанией?" (на странице компании)
* "Когда эта сделка в последний раз была обновлена?" (на странице сделки)

View File

@@ -0,0 +1,137 @@
---
title: Сервер MCP
description: Подключайте ИИ-ассистентов к вашему рабочему пространству Twenty с помощью протокола Model Context Protocol.
---
Twenty предоставляет сервер [MCP](https://modelcontextprotocol.io/), чтобы ИИ-ассистенты — Claude Desktop, Claude Code, Cursor, ChatGPT и другие — могли читать и записывать ваши данные CRM на естественном языке.
Используйте **URL рабочей области** (URL, который вы используете для доступа к Twenty) в качестве конечной точки MCP. В Twenty Cloud URL вашей рабочей области может быть `https://{mycompany}.twenty.com` или собственный домен. Сервер доступен по адресу:
| Среда | Конечная точка MCP |
| --------------------------- | --------------------------------------------------------------------------------- |
| **Облако** | `https://{your-workspace-url}/mcp` (например, `https://mycompany.twenty.com/mcp`) |
| **Самостоятельный хостинг** | `https://{your-domain}/mcp` |
## Методы аутентификации
Есть два способа аутентифицировать ваш MCP-клиент: **OAuth** (рекомендуется) или **API Key**.
### Вариант A — OAuth (рекомендуется)
При использовании OAuth ваш MCP-клиент откроет окно браузера для входа в систему. Секреты не хранятся в файлах конфигурации, а токены обновляются автоматически.
<Note>
Для OAuth требуется MCP-клиент, поддерживающий [спецификацию авторизации MCP](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization). Её поддерживают Claude Desktop, Claude Code, Cursor и ChatGPT.
</Note>
Добавьте это в конфигурацию вашего MCP-клиента, заменив `{your-workspace-url}` на хост вашей рабочей области (например, `mycompany.twenty.com`):
```json
{
"mcpServers": {
"twenty": {
"type": "streamable-http",
"url": "https://{your-workspace-url}/mcp"
}
}
}
```
Вот и всё — ключ API не требуется. При первом подключении клиент выполнит:
1. Обнаружит метаданные OAuth Twenty через `/.well-known/oauth-protected-resource` и `/.well-known/oauth-authorization-server`
2. Зарегистрирует себя как OAuth-клиент через динамическую регистрацию клиентов (RFC 7591)
3. Откроет браузер для авторизации доступа
4. Получит токены и подключится к серверу MCP
При последующих подключениях используются сохранённые токены, которые автоматически обновляются.
### Вариант B — ключ API
Если ваш MCP-клиент не поддерживает OAuth или вы предпочитаете статические учётные данные, передайте ключ API в заголовке `Authorization`:
```json
{
"mcpServers": {
"twenty": {
"type": "streamable-http",
"url": "https://{your-workspace-url}/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
```
<Warning>
Ваш ключ API предоставляет доступ к данным рабочей области. Не храните его в системе контроля версий и общих dotfiles.
</Warning>
Чтобы создать ключ API, перейдите в **Settings → MCP & APIs → API → + Create key**. См. [API](/l/ru/developers/extend/api#create-an-api-key) для подробностей.
## Быстрый старт
### 1. Скопируйте конфигурацию
Перейдите в **Settings → MCP & APIs → MCP** в Twenty. Выберите метод аутентификации (OAuth или ключ API), скопируйте фрагмент JSON (в нём уже будет использован URL вашей рабочей области) и вставьте его в файл конфигурации вашего MCP-клиента.
| Клиент | Расположение файла конфигурации |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Claude Desktop** | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) или `%APPDATA%\Claude\claude_desktop_config.json` (Windows) |
| **Claude Code** | `~/.claude.json` (пользователь) или `.mcp.json` (проект) |
| **Cursor** | `.cursor/mcp.json` в вашем проекте или `~/.cursor/mcp.json` глобально |
| **ChatGPT** | Включите режим разработчика в **Settings → Apps & Connectors → Advanced settings**, затем используйте **Create** в **Settings → Apps & Connectors**, чтобы добавить сервер MCP. |
### 2. Подключение
Перезапустите ваш MCP-клиент (или перезагрузите конфигурацию). Если используется OAuth, вы будете перенаправлены в Twenty для авторизации доступа. Если используется ключ API, подключение произойдёт сразу.
### 3. Начните использовать
Попросите вашего ИИ-ассистента взаимодействовать с вашей CRM:
* *"Покажи мне 5 последних созданных компаний"*
* *"Создай новый контакт по имени Jane Doe в компании Acme Corp"*
* *"Найди все открытые сделки стоимостью более $10 000"*
## Доступные инструменты
После подключения сервер MCP предоставляет инструменты, отражающие API Twenty. Рекомендуемый рабочий процесс:
1. **`learn_tools`** — получить схему входных данных для конкретных инструментов
2. **`execute_tool`** — запустить инструмент
Вам не нужно запоминать названия инструментов. Спросите у вашего ИИ-ассистента, что он умеет, и он автоматически вызовет `learn_tools`.
## Разрешения
Подключения MCP наследуют разрешения аутентифицированного пользователя (OAuth) или роль, назначенную ключу API. Чтобы ограничить действия, доступные серверу MCP:
* **OAuth**: Применяется роль пользователя в рабочей области.
* **API Key**: Назначьте ключу API роль в **Settings → Members → Roles**. См. [Разрешения](/l/ru/user-guide/permissions-access/capabilities/permissions).
## Конфигурация для самостоятельного хостинга
Для экземпляров с самостоятельным хостингом замените `{your-workspace-url}` на URL вашего сервера. Убедитесь, что значение `SERVER_URL` в вашей среде соответствует публичному URL экземпляра Twenty — оно используется для генерации метаданных обнаружения OAuth.
```bash
SERVER_URL=https://twenty.yourcompany.com
```
Конечная точка MCP, конечные точки OAuth и метаданные обнаружения формируются на основе этого значения.
## Устранение неполадок
**Ошибки "Unauthorized" или 401**
* OAuth: повторно авторизуйтесь, очистив сохранённые токены в вашем MCP-клиенте и переподключившись.
* API Key: убедитесь, что ключ действителен и не истёк. При необходимости сгенерируйте его заново.
**Процесс OAuth не открывает браузер**
* Убедитесь, что ваш MCP-клиент поддерживает MCP Authorization. Если нет — используйте метод с ключом API.
**Тайм-аут подключения**
* Убедитесь, что URL конечной точки MCP доступен с вашего компьютера. Для экземпляров с самостоятельным хостингом проверьте, что сервер запущен и значение `SERVER_URL` установлено корректно.

View File

@@ -0,0 +1,35 @@
---
title: Разрешения и контроль доступа
description: Управляйте тем, к чему агенты ИИ могут получать доступ и что они могут изменять в вашем рабочем пространстве.
---
## Обзор
Агенты ИИ соблюдают вашу существующую структуру разрешений. Это особенно важно для команд, которые хотят точно контролировать, к чему автоматизированные процессы ИИ могут получать доступ или что они могут изменять в своём рабочем пространстве.
## Назначить роль агенту ИИ
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **Агенты ИИ** нажмите **+ Назначить агенту ИИ**
5. Выберите агента ИИ из списка
6. Подтвердите назначение
## Зачем назначать роли агентам ИИ?
| Преимущество | Описание |
| ---------------------------- | ------------------------------------------------------------------------------------------- |
| **Безопасность** | Ограничьте данные, к которым агенты ИИ могут получать доступ или которые они могут изменять |
| **Соответствие требованиям** | Обеспечьте, чтобы ИИ обрабатывал только необходимые ему данные |
| **Контроль** | Предотвращайте непреднамеренные действия автоматизаций ИИ |
| **Возможность аудита** | Отслеживайте, какие действия были выполнены каким агентом |
<Note>
Для агентов ИИ, работающих в рамках рабочих процессов, назначение роли гарантирует, что агент не сможет получать доступ к данным или изменять их за пределами своей предназначенной области — даже если у рабочего процесса более широкие разрешения.
</Note>
## Связанные материалы
* [Разрешения](/l/ru/user-guide/permissions-access/capabilities/permissions) — подробная информация о создании и управлении ролями
* [Агенты ИИ](/l/ru/user-guide/ai/capabilities/ai-agents) — возможности ИИ в рабочих процессах

View File

@@ -0,0 +1,31 @@
---
title: Часто задаваемые вопросы об ИИ
description: Часто задаваемые вопросы о функциях ИИ в Twenty.
---
<AccordionGroup>
<Accordion title="Какие возможности ИИ доступны?">
У ИИ есть две основные возможности:
1. **ИИ-чат-бот**: контекстный помощник, который может получать доступ к вашим данным в Twenty и помогать с запросами
2. **ИИ-агенты в рабочих процессах**: интеллектуальная автоматизация, которая может обрабатывать данные, принимать решения и выполнять задачи в рамках ваших рабочих процессов
</Accordion>
<Accordion title="Есть ли у ИИ-агентов доступ ко всем моим данным?">
Агенты AI работают под разрешенной системой. Вы можете назначать ИИ-агентам конкретные роли в **Настройки → Участники → Роли**, получая полный контроль над тем, к каким данным у них есть доступ и какие действия они могут выполнять.
</Accordion>
<Accordion title="Как работают кредиты ИИ?">
Действия ИИ расходуют кредиты рабочих процессов в зависимости от сложности задачи и используемой модели ИИ.
</Accordion>
<Accordion title="Могу ли я использовать собственные модели ИИ?">
В облаке вы можете использовать только модели ИИ, предоставленные Twenty. В вашем саморазмещённом инстансе вы можете использовать собственные модели ИИ после получения лицензии Organization.
</Accordion>
<Accordion title="Я не вижу роль, которую я назначаю агенту ИИ, где это?">
По умолчанию список ролей отфильтрован так, чтобы показывать только роли, назначаемые участникам рабочего пространства. Если роль присваивается только агентам ИИ, вам нужно изменить фильтр, чтобы включить роли агента AI-Агента.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,58 @@
---
title: ИИ
description: Функции на базе ИИ в Twenty.
---
<Frame>
<img src="/images/user-guide/workflows/robot.png" alt="ИИ" />
</Frame>
## Возможности
В настоящее время Twenty предлагает:
### 1. Чат-бот на базе ИИ
Разговорный помощник, который понимает ваш контекст и имеет доступ ко всем вашим данным Twenty.
**Ключевые возможности:**
* **Полный доступ к данным**: Запрашивайте любую запись, связь или метрику в вашем рабочем пространстве
* **Осведомлённость о контексте страницы**: Ссылайтесь на «эту компанию» или «эту сделку» в зависимости от того, где вы находитесь в Twenty
* **Естественный язык**: Задавайте вопросы и получайте ответы без навигации по меню
**Примеры подсказок:**
* "Какие сделки закрываются в этом месяце?"
* "Какие сделки находятся на этапе «Переговоры» более 30 дней?"
* "Суммируйте мои взаимодействия с этим человеком"
### 2. ИИ-агенты в рабочих процессах
Расширяйте свои рабочие процессы с помощью действий на базе ИИ и автономных агентов.
**Ключевые возможности:**
* **Действия ИИ**: Используйте ИИ для обогащения данных, классификации записей, создания сводок и многого другого
* **Автономные агенты**: Позвольте агентам выполнять многошаговые задачи в рамках рабочего процесса
* **Пользовательские подсказки**: Определяйте точно, как ИИ должен обрабатывать ваши данные
**Сценарии использования:**
* Автоматически классифицируйте входящие лиды
* Обогащайте данные о компании из открытых источников
* Генерируйте черновики последующих писем на основе заметок встречи
* Оценивайте сделки на основе шаблонов вовлеченности
## Разрешения и контроль доступа
ИИ-агенты управляются через существующую систему разрешений:
1. Перейдите в **Настройки → Участники → Роли**
2. Настройте, к каким данным каждый ИИ-агент может получать доступ
3. Задайте права на чтение и запись для каждого объекта
Это гарантирует, что ИИ-агенты соблюдают ваши политики управления данными и получают доступ только к необходимому.
* Следите за обновлениями разработки в нашем [GitHub](https://github.com/twentyhq/twenty)
* Присоединяйтесь к нашему [Discord](https://discord.gg/UfGNZJfAG6), чтобы делиться отзывами и запросами на функции

View File

@@ -0,0 +1,74 @@
---
title: Кредиты
description: Один простой баланс, который обеспечивает работу ваших рабочих процессов, AI-агентов и AI-чата — сколько стоит один кредит, насколько его хватает и как им управлять.
---
## Что такое кредиты?
Кредиты — это единый баланс, который оплачивает всё, что мы запускаем от вашего имени и что имеет реальную стоимость: **автоматизации рабочих процессов**, **AI‑агенты** и **AI‑чат**. Вместо того чтобы жонглировать раздельными квотами для «запусков автоматизации» и «AI‑токенов», у вас есть один простой баланс, за которым нужно следить.
**1 кредит = $1 использования.** Кредит — это просто доллар работы, поэтому с вашим балансом легко разобраться — никаких абстрактных единиц для пересчёта.
## Насколько хватает одного кредита?
Стоимость масштабируется вместе с объемом работы. Повседневные автоматизации и быстрые AI‑сообщения стоят крошечную долю кредита; крупные, многошаговые задачи AI‑агента стоят дороже. Примерно это выглядит так:
| Что вы делаете | Примерная стоимость | Что это означает |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | --------------------------------------- |
| Запуск стандартного этапа рабочего процесса (поиск, создание или обновление записей) или запуск логической функции приложения | $0.0001 | **10 000 запусков на один кредит** |
| Вызвать внешнее API или выполнить узел с кодом | Небольшая доля кредита | Тысячи на один кредит |
| Отправить быстрое AI‑сообщение в чате или простой AI‑шаг | Доля цента | Сотни на один кредит |
| Выполнить крупную задачу AI‑агента (например, «настроить 10 объектов рабочего пространства») | Может стоить **~$1 или больше** | Несколько на один кредит |
| Выполнить AI‑поиск в интернете | Фиксированная стоимость за один поиск | Сотни поисковых запросов на один кредит |
<Note>
Для большинства команд стандартные автоматизации фактически бесплатны — заметное снижение баланса произойдет только тогда, когда вы активно используете AI‑функции или запускаете ресурсоемкие узлы с кодом. Так задумано: включенные кредиты предназначены для того, чтобы вы могли создавать решения, не следя за счетчиком.
</Note>
<Note>
Не каждое приложение взимает плату за свои запуски. Вызов Рекордер и Последний Контакт реагируют на каждый email и календарь, импортированные в ваше рабочее пространство, поэтому их логическая функция работает бесплатно. С вас по-прежнему взимается плата за их тарифицируемую работу, например за записанные минуты звонков.
</Note>
## Как учитывается использование AI
Когда действие вызывает AI‑модель, мы измеряем точное количество использованных токенов и оцениваем их по **опубликованным тарифам поставщика модели**, затем конвертируем эту сумму в долларах напрямую в кредиты — так что ваши расходы отражают реальную стоимость работы, а не внутренний тариф с наценкой. Короткое сообщение в чате стоит долю цента. Большая задача агента — скажем, настройка 10 объектов рабочей области — делает многие модели вызовом растущего контекста, так что он может добавить до доллара или более. С вас берется плата только за фактическое использование, до уровня отдельного токена.
Стоимость зависит от модели: легковесная модель значительно дешевле за сообщение, чем топовая модель для сложных рассуждений. Вы можете увидеть детализацию по каждому действию — включая используемую модель — в **Настройки → Оплата**.
## Что включено
Каждая подписка включает кредиты, и их количество зависит от **платежного периода**, а не от тарифного плана:
| Платёжный цикл | Включенные кредиты | Эквивалентное использование |
| -------------- | ------------------ | ------------------------------ |
| Ежемесячно | 5 / месяц | ~$5 использования каждый месяц |
| Ежегодно | 50 / год | ~$50 использования каждый год |
Эти кредиты рассчитаны на то, чтобы с запасом покрывать повседневную автоматизацию. Пять кредитов покрывают десятки тысяч стандартных шагов автоматизации или сотни быстрых сообщений ИИ — хотя и немного, многоэтапные задачи агента могут использовать их быстрее. Вы можете пополнить баланс в любой момент (см. ниже).
## Перенос кредитов
Неиспользованные кредиты автоматически переносятся на следующий платежный период.
* **Cap**: Ролловера ограничен в один период в полном объеме, поэтому вы никогда не будете переносить больше, чем ваш платежный цикл за один период.
* **Видимость**: Когда у вас есть перенесенные кредиты, они отображаются отдельной строкой **Перенесенные кредиты** в **Настройки → Оплата**, рядом с балансом **Всего доступно**.
## Использование мониторинга
Следите за своим балансом и тем, на что он расходуется:
1. Перейдите в **Настройки → Оплата**
2. Посмотрите свои **оставшиеся кредиты** и **использование за текущий период**
3. Изучите детализацию, чтобы увидеть, какие рабочие процессы и AI‑действия расходуют кредиты — и какие модели использовали эти AI‑действия
Регулярный просмотр этой информации помогает вовремя заметить ресурсоемкий рабочий процесс и решить, оптимизировать ли его или пополнить баланс.
## Нужно больше кредитов?
Если кредиты закончились — или вы хотите иметь запас перед крупным запуском автоматизаций — вы можете в любой момент купить дополнительные пакеты кредитов:
1. Перейдите в **Настройки → Оплата**
2. Нажмите кнопку **Increase**
3. Выберите нужную сумму и подтвердите изменения
Приобретенные кредиты сразу же добавляются к вашему доступному балансу.

View File

@@ -0,0 +1,100 @@
---
title: Ценовые планы
description: Узнайте о тарифных планах Twenty и о том, как переключаться между ними.
---
## Обзор
Twenty предлагает гибкие тарифы для команд любого размера — независимо от того, предпочитаете ли вы облачный хостинг или самостоятельное размещение.
## Облачные планы
### Pro (облако)
Для команд, готовых к масштабированию:
* Все основные возможности CRM
* Синхронизация почты и календаря
* Рабочие процессы и автоматизация
* Стандартная поддержка
<Note>
Премиальные функции (SSO, разрешения на уровне строк, данные об использовании ИИ и многое другое) не включены в тариф Pro.
</Note>
### Организация (облако)
Для крупных команд с расширенными потребностями:
* Все, что есть в Pro
* **Премиальные функции**: интеграция SSO, разрешения на уровне строк, данные об использовании ИИ и многое другое
* Приоритетная поддержка
## Планы для самостоятельного размещения
### Бесплатный (самостоятельное размещение)
Размещайте Twenty на собственной инфраструктуре бесплатно:
* Включены все возможности Pro
* Поддержка сообщества через Discord
* Полный контроль над вашими данными
### Организация (самостоятельное размещение)
Для команд, которым нужны премиальные функции при самостоятельном размещении:
* Все возможности Pro
* **Премиальные функции**: интеграция SSO, разрешения на уровне строк, данные об использовании ИИ и многое другое
* Поддержка от команды Twenty
* Не требуется публиковать пользовательский код с открытым исходным кодом перед распространением
## Премиальные функции
Премиальные функции доступны только в планах «Организация» (облако или самостоятельное размещение):
* **Интеграция с SSO**: единый вход через вашего поставщика идентификации
* **Разрешения на уровне записей**: тонкая настройка управления доступом на уровне записей
* **Данные об использовании ИИ**: Отслеживайте потребление ИИ в рабочем пространстве
* **Журналы аудита**: проверяйте, какие действия выполнял каждый участник рабочего пространства
* **Email-кампании**: планируйте, какие письма должны быть отправлены (скоро будет доступно)
* **Неограниченное количество рабочих пространств**: Создавайте столько рабочих пространств, сколько хотите (только для самостоятельного размещения)
* **Приватный исходный код**: Нет необходимости публиковать изменения в общедоступном репозитории (только для самостоятельного размещения)
## Переключение планов
### Переход на план «Организация»
1. Перейдите в **Настройки → Оплата → Тарифы**
2. Нажмите **Switch to Organization**
3. Подтвердите обновление
### Переход на Pro
1. Перейдите в **Настройки → Оплата → Тарифы**
2. Нажмите **Переключиться на Pro**
3. Подтвердите понижение тарифа
### Переход на годовую оплату
1. Перейдите в **Настройки → Оплата**
2. Нажмите **Перейти на годовой тариф**
3. Экономьте с годовой оплатой
### Переход на ежемесячную оплату
1. Перейдите в **Настройки → Оплата**
2. Нажмите **Перейти на помесячный тариф**
3. Экономьте с помесячной оплатой
## Получите ключ Enterprise для организации (самостоятельный хостинг)
Чтобы использовать тариф Organization (Self-Hosted), необходимо получить ключ Enterprise:
1. Перейдите в **Настройки → Панель администратора → Enterprise**
<img src="/images/user-guide/billing/enterprise-key.png" alt="Ключ Enterprise" />
2. Нажмите **Получить ключ Enterprise**
3. Когда вы будете перенаправлены на Stripe, введите платёжные данные и подтвердите
4. Когда ваш ключ Enterprise будет отображён, вставьте его на странице настроек Enterprise и активируйте лицензию Organization

View File

@@ -0,0 +1,105 @@
---
title: FAQ по биллингу
description: Часто задаваемые вопросы о тарифах и выставлении счетов в Twenty.
---
## Цены
<AccordionGroup>
<Accordion title="Могу ли я использовать Twenty бесплатно, если я размещаю его сам?">
Да, вы можете использовать Twenty бесплатно при самостоятельном размещении. Вы получите доступ ко всему, что включено в план Pro (Облачно), за исключением поддержки от нашей основной команды. Поддержка доступна через наше сообщество Discord.
Если вы хотите использовать самостоятельный хостинг и вам нужны Премиум-функции (SSO, разрешения на уровне записей и другое), вы можете выбрать платную лицензию Organization (Self-Hosted). Это также включает поддержку от команды Twenty и снимает требование публиковать пользовательский код с открытым исходным кодом перед распространением.
</Accordion>
<Accordion title="Какие премиум‑функции доступны?">
Премиум-функции доступны только в планах Organization (облако или Self-Hosted):
* **Интеграция с SSO**: единый вход с вашим провайдером идентификации
* **Разрешения на уровне записей**: детализированное управление доступом на уровне записей
* **Данные об использовании ИИ**: Отслеживайте потребление ИИ в рабочем пространстве
* **Журналы аудита**: проверяйте, что делает каждый участник рабочего пространства
* **Email-кампании**: планируйте, какие письма должны быть отправлены (скоро будет доступно)
* **Неограниченное количество рабочих пространств**: Создавайте столько рабочих пространств, сколько хотите (только для самостоятельного размещения)
* **Частный исходный код**: не требуется публиковать изменения в общедоступном репозитории (только для самостоятельного хостинга)
</Accordion>
<Accordion title="Планирует ли Облако и Самостоятельная Организация?">
Они предлагают одинаковые премиум-функции. Однако облачную подписку нельзя использовать для развертываний на собственном хостинге. Для самостоятельно размещаемой версии требуется ключ Enterprise.
</Accordion>
<Accordion title="Предлагаете ли вы бесплатные места для пользователей с правами только просмотра?">
Мы не предлагаем бесплатные места. Цены указаны для каждого пользователя, и каждому пользователю нужна лицензия на доступ к Twenty.
</Accordion>
<Accordion title="Где я могу переключить свою подписку на план Organization?">
Вы можете сделать это в разделе `Settings → Billing → Plans`. Затем нажмите на `Переключить на Organization`.
</Accordion>
<Accordion title="Где я могу переключить свою подписку на план Pro?">
Вы можете сделать это в разделе `Settings → Billing → Plans`. Затем нажмите на `Switch to Pro`.
</Accordion>
<Accordion title="Где я могу переключить свою подписку на годовой период?">
Вы можете сделать это в разделе `Настройки → Оплата`. Затем нажмите на `Upgrade to yearly`.
</Accordion>
<Accordion title="Где я могу переключить свою подписку на ежемесячный период?">
Вы можете сделать это в разделе `Настройки → Оплата`. Затем нажмите на `Downgrade to monthly`.
</Accordion>
<Accordion title="Где я могу посмотреть расход кредитов?">
Вы найдете это в разделе `Настройки → Оплата`.
</Accordion>
<Accordion title="Сколько у нас кредитов для рабочих процессов?">
Кредиты привязаны к вашему платёжному циклу, а не к плану:
* **Ежемесячные подписки**: 5 кредитов в месяц
* **Годовые подписки**: 50 кредитов в год
</Accordion>
<Accordion title="Как работает расход кредитов для рабочих процессов?">
Каждое действие рабочего процесса потребляет кредиты в зависимости от своей сложности:
* **Основные внутренние операции** (например, поиск, обновление или создание записей) потребляют очень мало кредитов
* **Более сложные операции**, такие как узлы кода и запросы к внешним службам, потребляют больше кредитов
* **AI-промпты** также потребляют больше кредитов в зависимости от использования
* **Приложения** также расходуют больше кредитов подобно узлам кода
Кредиты списываются в режиме реального времени при выполнении рабочих процессов или приложений. Вы можете отслеживать использование в **Настройки → Биллинг**, чтобы контролировать расход и оставшиеся кредиты.
</Accordion>
<Accordion title="Могу ли я купить больше кредитов для рабочих процессов?">
Вы можете купить дополнительные кредиты в разделе `Настройки → Оплата`.
</Accordion>
<Accordion title="Могу ли я купить больше кредитов для рабочих процессов только на 1 месяц?">
Да, зайдите в `Settings → Billing`, нажмите кнопку `Increase`, выберите сколько кредитов вы хотите, и подтвердите. Они будут поданы на текущий расчетный период. Затем снова нажмите кнопку `Increase`, измените значение обратно на оригинал, и подтвердить — понижение будет применено начиная со следующего расчетного периода.
</Accordion>
</AccordionGroup>
## Биллинг
<AccordionGroup>
<Accordion title="Где я могу управлять данными счета?">
Вы можете сделать это в разделе `Настройки → Оплата`.
</Accordion>
<Accordion title="Где я могу обновить свой способ оплаты?">
Вы можете сделать это в разделе `Настройки → Оплата`. Затем нажмите на `Просмотр сведений о платеже`. Там вы сможете добавить новый способ оплаты.
</Accordion>
<Accordion title="Где я могу обновить свою платежную информацию?">
Вы можете сделать это в разделе `Настройки → Оплата`. Затем нажмите на `Просмотр сведений о платеже`. Там вы сможете изменить платежные данные.
</Accordion>
<Accordion title="Где я могу получить доступ к своим счетам?">
Вы можете сделать это в разделе `Настройки → Оплата`. Затем нажмите на `Просмотр сведений о платеже`. Все ваши счета будут видны в нижней части экрана.
</Accordion>
<Accordion title="Почему количество мест отличается от количества пользователей в моем рабочем пространстве?">
Количество мест рабочего пространства синхронизируется с платежной системой каждые 6 часов; счета корректируются на основе разницы.
</Accordion>
<Accordion title="Почему я получил счет за нового участника рабочего пространства?">
При добавлении нового участника проекта в рабочую область высылается счет-фактура на покрытие расхождения. Когда участник рабочего пространства удаляется, изменение применяется в следующем стандартном ежемесячном/годовом счете.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,39 @@
---
title: Биллинг
description: Разберитесь в тарифах Twenty и управляйте своей подпиской.
---
Twenty предлагает гибкие тарифные планы, соответствующие потребностям вашей команды. Управляйте подпиской, отслеживайте кредиты рабочих процессов и получайте доступ к счетам — всё в **Настройки → Выставление счетов**.
## Что в этом разделе
<CardGroup cols={2}>
<Card title="Тарифные планы" icon="tags" href="/l/ru/user-guide/billing/capabilities/pricing-plans">
Узнайте о тарифных планах Twenty и о том, что в них входит.
</Card>
<Card title="Часто задаваемые вопросы" icon="circle-question" href="/l/ru/user-guide/billing/how-tos/billing-faq">
Часто задаваемые вопросы о тарифах и выставлении счетов.
</Card>
</CardGroup>
## Краткий обзор
| План | Ключевые функции |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Бесплатно (самостоятельный хостинг)** | Все функции Pro, поддержка сообщества |
| **Pro (облако)** | Всё, кроме функций Premium (SSO, разрешения на уровне строк и другое), стандартная поддержка |
| **Организация (облако)** | Всё из Pro + функции Premium (SSO, разрешения на уровне строк и другое), приоритетная поддержка |
| **Организация (самостоятельный хостинг)** | Всё из Pro + функции Premium (SSO, разрешения на уровне строк и другое), поддержка команды Twenty, не требуется публиковать ваш пользовательский код как программное обеспечение с открытым исходным кодом перед распространением |
## Быстрые ответы
**Где управлять выставлением счетов?**
Перейдите в **Настройки → Выставление счетов**, чтобы просмотреть свой план, обновить способы оплаты и получить доступ к счетам.
**Могу ли я использовать Twenty бесплатно?**
Да! Самостоятельно разверните Twenty и получите все функции Pro бесплатно.
**Как выполнить обновление?**
Перейдите в **Настройки → Выставление счетов** и нажмите **Переключиться на «Организацию»** или **Переключиться на годовой план**.
Подробнее см. в [FAQ по выставлению счетов](/l/ru/user-guide/billing/how-tos/billing-faq).

View File

@@ -0,0 +1,43 @@
---
title: Календарь
description: Обзор возможностей интеграции календаря в Twenty.
---
**Примечание**: Чтобы подключить календарь и настроить параметры синхронизации, посетите [Настройка электронной почты и календаря](/l/ru/user-guide/calendar-emails/overview).
## Как работает интеграция календаря
Twenty автоматически синхронизирует события вашего календаря и связывает их с соответствующими записями CRM, предоставляя полный обзор истории встреч с контактами и компаниями.
## Вкладка Календарь
Рядом с вкладкой Электронная почта в записях вы найдете вкладку `Календарь`, которая содержит историю запланированных для этой записи встреч.
### Доступно для
* **Люди**: просмотр всех встреч, запланированных с определенным контактом
* **Компании**: просмотр всех встреч, связанных с компанией и её сотрудниками
* **Возможности**: доступ к истории встреч, связанных с компанией, связанной с этой возможностью
### Просмотр истории встреч
1. **Перейти на запись**: перейдите на любую запись персоны, компании или возможности
2. **Выберите вкладку Календарь**: нажмите на вкладку `Календарь` рядом с вкладкой Электронная почта
3. **Просмотр истории встреч**: посмотрите все запланированные встречи и их подробности
4. **Доступ к контексту встречи**: посмотрите участников встречи, время и связанную информацию
## Настройки видимости
Данные календаря следуют тем же настройкам видимости, что и электронные письма, обеспечивая последовательный контроль приватности в обоих каналах связи.
## Что синхронизируется
* **Внешние встречи**: все встречи с контактами вне вашей организации
* **Автоматическое связывание**: встречи связываются с существующими записями Людей и Компаний на основе адресов электронной почты участников
* **Данные встречи**: тема, время, продолжительность и участники
* **Обновления**: новые события календаря синхронизируются автоматически
## Что не синхронизируется
* **Внутренние встречи**: встречи только между коллегами (один и тот же домен) остаются частными
* **Частные события**: события, помеченные как частные в вашем календаре

View File

@@ -0,0 +1,102 @@
---
title: Почтовый ящик
description: Обзор возможностей интеграции электронной почты в Twenty.
---
**Примечание**: Чтобы подключить учетные записи электронной почты и настроить параметры синхронизации, посетите [Настройка электронной почты и календаря](/l/ru/user-guide/calendar-emails/overview).
## Как работает интеграция электронной почты
Twenty автоматически связывает письма из ваших подключенных почтовых ящиков с соответствующими записями CRM, сохраняя всю историю общения в одном месте.
### Объекты, в которых можно найти электронные письма
Переписки по электронной почте отображаются в трёх основных объектах:
* **Люди**: просмотр всех писем, обмененных с определенным контактом
* **Компании**: просмотр всех писем, связанных с компанией и её сотрудниками
* **Возможности**: доступ к потокам электронной почты, связанным с этой возможностью. Ветки электронной почты от отдельных людей по этой возможности пока не отображаются.
### Просмотр почтовых веток
1. **Перейти на запись**: перейдите на любую запись персоны, компании или возможности
2. **Выберите вкладку Электронная почта**: нажмите на вкладку `Электронная почта`, чтобы просмотреть синхронизированные письма
3. **Откройте почтовую ветку**: нажмите на любое письмо, чтобы открыть и прочитать весь диалог
4. **Просмотр истории**: прокрутите полную историю обмена электронными письмами с этим контактом
<img src="/images/user-guide/emails/show-inbox.png" style={{width:'100%'}} />
## Что вы увидите
### Просмотр ветки электронной почты
Когда вы открываете ветку электронной почты, вы можете:
* **Читать полные беседы**: просматривайте полный обмен электронными письмами
* **Просмотреть участников**: Посмотрите всех участников цепочки писем
* **Проверка меток времени**: узнавайте, когда было отправлено каждое письмо
* **Доступ к контексту**: поймите полную историю общения
### Видимость электронной почты
В зависимости от настроек вашего почтового ящика, вы можете видеть:
* **Полное содержимое**: полный текст и детали электронной почты
* **Тема и метаданные**: тема, отправитель, получатель и метка времени
* **Только метаданные**: основная информация без содержания письма
## Поведение синхронизации электронной почты
### Скорость синхронизации
Twenty импортирует письма примерно со скоростью **400 сообщений в минуту**. В настоящее время эта скорость ограничена лимитами частоты Gmail API (аналогичные ограничения действуют и у других провайдеров).
Для справки:
* 1,000 писем → ~2,5 минуты
* 10,000 писем → ~25 минут
* 50,000 писем → ~2 часа
### Что синхронизируется
* **Внешние письма**: все письма с контактами вне вашей организации
* **Автоматическое связывание**: электронные письма связываются с существующими записями Людей и Компаний
* **Несколько адресов**: письма с любого адреса связываются с той же контактной записью
* **Обновления**: новые письма появляются сразу
### Что не синхронизируется
* **Внутренние письма**: по умолчанию письма между коллегами (один домен) остаются приватными (настраивается в Настройки → Общие → Безопасность)
* **Групповые письма**: списки рассылки и групповые письма исключены
* **Исключенные папки**: папки, которые вы выбрали не синхронизировать (настроено в разделе Настройки → Аккаунты → Электронная почта)
### Внутренняя почта
Выберите, будут ли внутренние письма синхронизироваться в Twenty:
1. Перейдите в **Настройки → Общие → Безопасность**
2. Переключите **Синхронизировать внутренние письма** в положение вкл./выкл.
### Выборочная синхронизация папок
Управляйте, какие папки электронной почты синхронизируются с Twenty:
1. Перейдите в **Настройки → Аккаунты** и выберите подключённый аккаунт электронной почты
2. Настройте папки в разделе «Электронная почта»
3. Выберите конкретные папки для включения или исключения (Входящие, Отправленные, Архив, пользовательские папки)
## Устранение неполадок с синхронизацией электронной почты
### Общие проблемы синхронизации
* **Задержки синхронизации**: письма появляются сразу, но начальный импорт занимает больше времени
* **Отсутствующие письма**: проверьте, если:
* Папки исключены в настройках Папки сообщений
* Автоматическое создание контактов отключено (письма требуют существующих записей в Twenty)
* Письмо от коллег (один и тот же домен) или списков рассылки
* Почтовый ящик все еще завершает начальную синхронизацию
### Ограничения электронной почты
* **Системные папки**: некоторые папки электронной почты могут быть недоступны для синхронизации
* **Псевдонимы**: только настоящие почтовые ящики можно подключить (не псевдонимы электронной почты)

View File

@@ -0,0 +1,25 @@
---
title: Могу ли я назначать встречи из Twenty?
description: Информация о назначении встреч непосредственно из Twenty.
---
## Текущий статус
Интеграция календаря Twenty предназначена для того, чтобы **синхронизировать и отображать** ваши существующие события календаря.
## Планирование встреч через рабочие процессы
Хотя планировать встречи невозможно вручную, вы можете планировать их в двадцати используя рабочие процессы.
1. Создайте новый рабочий процесс
2. Выберите любой триггер в зависимости от ваших потребностей
3. Добавьте узел **Create Calendar Event**
4. Настройте все необходимые данные
5. Активируйте рабочий процесс
## Что вы можете сделать
* **Просматривать историю встреч** в записях Людей, Компаний и Возможностей
* **Просматривать предстоящие встречи** с контактами в вашей CRM
* **Отслеживать контекст встреч** наряду с электронной перепиской
* **Автоматически создавать контакты** из участников встреч

View File

@@ -0,0 +1,53 @@
---
title: Могу ли я отправлять письма из Twenty?
description: Информация об отправке писем непосредственно из Twenty.
---
## Текущий статус
Интеграция электронной почты Twenty предназначена для того, чтобы **синхронизировать и отображать** вашу историю переписки по электронной почте, а также создавать и отправлять письма.
Когда вы просматриваете цепочку писем на странице записи и нажимаете **Ответить**, вы можете напрямую создать и отправить письмо.
## Как отправить сообщение из Twenty
Предварительное условие: подключённая учётная запись почты с возможностью отправки писем
1. Откройте командное меню с помощью сочетания клавиш **Ctrl+K** или **Cmd+K**
2. Выберите пункт «Написать письмо»
3. Выберите получателей, добавьте тему, текст и вложения к вашему письму
4. Нажмите кнопку «Отправить», чтобы отправить письмо
## Что вы можете делать уже сегодня
* **Просматривать историю переписки** в записях Людей, Компаний и Возможностей
* **Читать полные цепочки писем** с контактами в вашей CRM
* **Отслеживать контекст переписки** вместе с событиями календаря
* **Автоматически создавать контакты** из взаимодействий по электронной почте
* **Отвечать через переадресацию** — нажмите «Ответить», чтобы перейти к своему почтовому ящику
## Отправка писем через рабочие процессы
Вы **можете автоматически отправлять письма с помощью рабочих процессов**. Это полезно для:
* Автоматические последующие письма
* Уведомления контактам
* Триггерные коммуникации на основе изменений записей
Письма, отправленные через рабочие процессы, проходят через подключённую учётную запись почтового ящика.
→ Узнайте больше о [действии «Отправить письмо»](/l/ru/user-guide/workflows/capabilities/workflow-actions#send-email)
## Последовательности писем и рассылки
Для последовательностей писем и рассылок мы рекомендуем использовать рабочие процессы, чтобы подключить Twenty к специализированному инструменту email-маркетинга.
<Warning>
Массовые письма не следует отправлять напрямую из вашего почтового ящика, чтобы защитить репутацию домена. Используйте специализированный инструмент для массовых рассылок.
</Warning>
→ См. [Как отправлять письма из рабочих процессов](/l/ru/user-guide/workflows/capabilities/send-emails-from-workflows) для получения инструкций по настройке
## Планы на будущее
В нашей дорожной карте запланирована возможность нативного создания писем прямо в Twenty. Присоединяйтесь к нашим [обсуждениям на GitHub](https://github.com/twentyhq/twenty/discussions), чтобы поделиться своим сценарием использования и помочь расставить приоритеты для этой функции.

View File

@@ -0,0 +1,35 @@
---
title: Могу ли я отслеживать активность электронной почты на всех объектах?
description: Как работает отслеживание активности электронной почты на разных объектах.
---
## Поддерживаемые объекты
Активность электронной почты в настоящее время доступна на **трёх стандартных объектах**:
| Объект | Что вы увидите |
| --------------- | ---------------------------------------------------------------------------------------------- |
| **Люди** | Все электронные письма, которыми обменивались с этим контактом |
| **Компании** | Все электронные письма с любым контактом из этой компании (на основе домена электронной почты) |
| **Возможности** | Электронные письма, связанные с компанией, привязанной к возможности |
## Почему только эти объекты?
Люди, Компании и Возможности — это ключевые объекты отношений, где контекст электронной почты даёт наибольшую ценность. Цепочки писем автоматически связываются на основании:
* **Адрес электронной почты** → сопоставляется с записями Людей
* **Домен электронной почты** → сопоставляется с записями Компаний
* **Связь с компанией** → сопоставляется с Возможностями
## Пользовательские объекты
**Отслеживание электронной почты недоступно на пользовательских объектах** в настоящее время.
Если вам нужен контекст электронной почты в пользовательском объекте, рассмотрите:
* Использование поля связи для привязки вашего пользовательского объекта к Людям или Компаниям
* Просмотр истории электронной почты в связанной записи человека/компании
## Планы на будущее
Рассматривается расширение видимости электронной почты на пользовательские объекты. Поделитесь своим сценарием использования в наших [обсуждениях на GitHub](https://github.com/twentyhq/twenty/discussions), чтобы помочь расставить приоритеты для этой функции.

View File

@@ -0,0 +1,42 @@
---
title: Подключение нескольких почтовых ящиков на пользователя
description: Подключайте несколько почтовых аккаунтов для одного пользователя.
---
## Обзор
Twenty поддерживает **неограниченное количество почтовых аккаунтов на пользователя**. Это полезно, если вы управляете несколькими почтовыми ящиками, например:
* Личная рабочая почта + общий командный почтовый ящик
* Несколько адресов электронной почты для работы с клиентами
* Разные почтовые аккаунты для разных ролей
## Как добавить несколько почтовых ящиков
1. Перейдите в **Настройки → Аккаунты**
2. Нажмите **Добавить аккаунт**
3. Подключите дополнительный аккаунт Google или Microsoft либо аккаунт любого другого почтового провайдера, поддерживающего протоколы IMAP/SMTP
4. Настройте параметры синхронизации для этого почтового ящика
5. Повторите для каждого почтового ящика, который вы хотите подключить
## Управление несколькими почтовыми аккаунтами
У каждого подключенного почтового ящика есть свои настройки:
* **Видимость электронной почты**: выберите, что смогут видеть участники команды
* **Автоматическое создание контактов**: включать/выключать для каждого почтового ящика
* **Выбор папок**: выберите, какие папки синхронизировать
## Как отображаются электронные письма
Письма из всех ваших подключенных почтовых ящиков синхронизируются с Twenty и отображаются в:
* **Записи людей**: на основе адреса электронной почты контакта
* **Записи компаний**: на основе домена электронной почты
* **Возможности**: на основе связанной компании
<Note>В каждом письме указано, из какого почтового ящика оно отправлено или в каком получено, поэтому вы можете отслеживать, какой аккаунт использовался для каждого общения.</Note>
## Важные замечания
<Warning>Подключать можно только полноценные почтовые ящики. Псевдонимы электронной почты, которые пересылают в другой почтовый ящик, нельзя подключать отдельно — они будут синхронизироваться через основной почтовый ящик.</Warning>

View File

@@ -0,0 +1,53 @@
---
title: Я не вижу электронных писем в записях
description: Устранение неполадок с отсутствующими электронными письмами в записях.
---
## Распространённые причины
### 1. Первичная синхронизация всё ещё выполняется
Синхронизация почты занимает время, особенно для больших почтовых ящиков. Twenty импортирует письма примерно со скоростью **400 сообщений в минуту** (ограничено лимитами частоты Gmail API).
* **Синхронизация календаря**: завершается за несколько минут
* **Синхронизация почты**: зависит от размера почтового ящика (например, 10,000 писем ≈ 25 минут, 50,000 писем ≈ 2 часа)
**Решение**: Дождитесь завершения первичного импорта. Вы можете оценить время в зависимости от размера вашего почтового ящика.
### 2. Контакт не существует в Twenty
Электронные письма отображаются только в существующих записях People. Если контакт ещё не создан:
* Включите **Contact Auto-Creation** в настройках вашего почтового ящика
* Или сначала вручную создайте запись Person
**Решение**: Перейдите в **Settings → Accounts**, выберите свой почтовый ящик и включите **Contact Auto-Creation**.
### 3. Внутренние электронные письма исключены
Электронные письма между коллегами (один и тот же домен электронной почты) никогда не синхронизируются для обеспечения конфиденциальности.
**Решение**: Это ожидаемое поведение. Синхронизируются только внешние электронные письма.
### 4. Письмо от группы или списка рассылки
Групповые письма и списки рассылки исключены из синхронизации.
**Решение**: Это ожидаемое поведение.
### 5. Папка не выбрана для синхронизации
Если вы используете функцию Message Folder, некоторые папки могут быть исключены.
**Решение**: Перейдите в **Settings → Accounts**, выберите свой почтовый ящик и проверьте настройки синхронизации папок.
### 6. Неверный адрес электронной почты в записи
В записи Person может быть указан другой адрес электронной почты, чем тот, который используется в письме.
**Решение**: Добавьте корректный адрес электронной почты в запись Person.
## Всё ещё не работает?
1. Попробуйте отключить и заново подключить ваш почтовый ящик
2. Обратитесь в поддержку, если проблемы сохраняются

View File

@@ -0,0 +1,58 @@
---
title: Ограничить Импортированные письма
description: Управляйте тем, какие письма импортируются в Twenty.
---
## Обзор
По умолчанию Twenty синхронизирует все внешние письма из вашего подключённого почтового ящика. Вы можете ограничить импорт с помощью **выбора папок** и **настроек видимости**.
## Способ 1: Выбор папок (рекомендуется)
Управляйте, какие папки электронной почты синхронизируются с Twenty:
1. Перейдите в **Настройки → Аккаунты**
2. Выберите подключённую учётную запись электронной почты
3. Выберите папки для синхронизации:
| Папка | Описание |
| -------------------------- | -------------------------------------- |
| **Входящие** | Основные входящие письма |
| **Отправленные** | Исходящие письма, которые вы отправили |
| **Архив** | Архивированные сообщения |
| **Пользовательские папки** | Любые нужные вам папки |
4. Исключите папки, которые вы не хотите синхронизировать (Спам, Корзина, личные папки)
<Note>Это даёт вам точный контроль над тем, какие письма отображаются в вашей CRM, без синхронизации всего.</Note>
## Способ 2: Настройки автоматического создания контактов
Управляйте тем, когда контакты создаются из писем:
1. Перейдите в **Настройки → Аккаунты**
2. Выберите подключённый почтовый ящик
3. Выберите вариант:
* **Отключено**: Контакты не создаются, но письма всё равно синхронизируются с существующими контактами
* **Отправленные и полученные**: Создавать контакты из всех внешних писем
* **Только отправленные**: Создавать контакты только из писем, которые вы отправляете
## Внутренние письма
Сообщения между коллегами (один и тот же домен) могут синхронизироваться в Twenty:
1. Перейдите в **Настройки → Общие → Безопасность**
2. Переключите **Синхронизировать внутренние письма** в положение вкл./выкл.
<Note>По умолчанию этот параметр отключен.</Note>
## Что всегда исключается
Эти письма никогда не синхронизируются, независимо от настроек:
* **Групповые письма**: списки рассылки и групповые сообщения
* **Спам/Корзина**: системные папки обычно исключаются
## Важное замечание
<Note>Пока мы не предоставляем адрес электронной почты CC для выборочной синхронизации. Используйте функцию выбора папок выше, чтобы добиться такого же уровня контроля.</Note>

View File

@@ -0,0 +1,144 @@
---
title: Календарь и электронная почта
description: Подключите свои учетные записи электронной почты и календаря к Twenty.
---
## Параметры подключения
### Учетная запись Google (Gmail и Календарь Google)
1. Перейдите в **Настройки → Аккаунты**
2. Нажмите **Добавить аккаунт**
3. Выберите **Продолжить с Google**
4. Авторизуйте Twenty на доступ к вашим Gmail и Google Календарю
5. Настройте параметры синхронизации электронной почты (видимость, автоматическое создание) → нажмите **Далее**
6. Настройте параметры синхронизации календаря (видимость, автоматическое создание) → нажмите **Добавить учетную запись**
7. Ваши электронные письма и события календаря начнут автоматически синхронизироваться
### Учетная запись Microsoft (Outlook и Календарь Microsoft)
1. Перейдите в **Настройки → Аккаунты**
2. Нажмите **Добавить аккаунт**
3. Выберите **Продолжить с Microsoft**
4. Авторизуйте Twenty на доступ к вашим Outlook и Microsoft Календарю
5. Настройте параметры синхронизации электронной почты (видимость, автоматическое создание) → нажмите **Далее**
6. Настройте параметры синхронизации календаря (видимость, автоматическое создание) → нажмите **Добавить учетную запись**
7. Ваши электронные письма и события календаря начнут автоматически синхронизироваться
### Настройка IMAP/SMTP/CalDAV (другие провайдеры)
Для других провайдеров электронной почты и календаря:
1. Перейдите в **Настройки → Аккаунты**
2. Настройте параметры IMAP для синхронизации входящей почты и параметры SMTP для отправки электронной почты
3. Настройте параметры CalDAV для календаря
4. Проверьте соединение
<Note>
**Самостоятельный хостинг в изолированной или внутренней сети**: По умолчанию Twenty отклоняет исходящие подключения к частным/внутренним IP-адресам (защита от SSRF). Если ваш почтовый или календарный сервер работает на локальном/частном IP (например, локальный сервер в сети LAN), подключения к нему будут заблокированы. Чтобы разрешить их, задайте на сервере следующую переменную окружения:
```
OUTBOUND_HTTP_SAFE_MODE_ENABLED=false
```
Это отключает безопасный режим для **всех** исходящих запросов (действий рабочих процессов HTTP, вебхуков и подключений IMAP/SMTP/CalDAV), поэтому задавайте эту переменную только в доверенных, изолированных сетях, где защита от SSRF не требуется.
</Note>
### Несколько почтовых ящиков
* **Неограниченное количество аккаунтов**: Подключайте несколько учетных записей электронной почты для каждого пользователя
* **Управление аккаунтами**: Переключайтесь между разными почтовыми ящиками
* **Настройки синхронизации**: Настройте различные параметры для каждого почтового ящика
<Warning>
Можно подключить только настоящие почтовые ящики (например, support@domain.com с собственным инбоксом). Электронные алиасы, которые перенаправляют на другой ящик, не могут быть подключены к Twenty.
</Warning>
## Конфигурация электронной почты
### Видимость сообщений
Выберите различные уровни видимости для ваших электронных писем:
* **Только метаданные**: Делитесь только базовой информацией (отправитель, получатель, дата, время)
* **Тема и метаданные**: Делитесь строкой темы и метаданными
* **Всё содержание письма**: Делитесь полным содержимым электронного письма, включая вложения
### Автоматическое создание контактов
* **Отключено**: Автоматическое создание контактов не производится
* **Для отправленных и полученных сообщений**: создание контактов для всех внешних взаимодействия по электронной почте
* **Только для отправленных сообщений**: Создайте контакты только для отправленных вами писем
* **Примечание**: по умолчанию внутренние письма (где все участники используют ваш домен) не синхронизируются для защиты конфиденциальности
<Note>Когда эта опция включена, контакты автоматически связываются с записями компании на основе их домена электронной почты. Если компании еще не существует, Twenty создаст ее для вас.</Note>
<Note>
**Синхронизация внутренних писем**: поведение «внутренние письма не синхронизируются» установлено по умолчанию, но его можно отключить. Переключатель находится в расширенных настройках:
1. Откройте **Настройки** и включите переключатель **Дополнительно** внизу страницы настроек
2. Перейдите в **Общие → Безопасность**
3. Включите переключатель **Синхронизировать внутренние письма**, чтобы включить письма, в которых все участники используют один и тот же домен
Это настройка для всего рабочего пространства (полезно для университетов или организаций с общим доменом).
</Note>
### Управляйте, какие электронные письма будут синхронизированы с выбором папок сообщений
Управляйте, какие папки электронной почты синхронизируются с Twenty:
1. Перейдите в **Настройки → Аккаунты** и выберите подключённый аккаунт электронной почты
2. Выберите папки для синхронизации:
* **Входящие**: Основные входящие письма
* **Отправленные**: Исходящие письма, которые вы отправили
* **Пользовательские папки**: Любые определенные папки, которые вы хотите включить
* **Исключение папок**: Пропускайте папки, такие как Спам, Корзина либо личные папки
Это позволяет вам тщательно управлять, какие письма появятся в вашей CRM без синхронизации всего.
**Что синхронизируется:**
* **Внешние письма**: Все письма с внешними контактами из выбранных папок
* **Внутренние письма**: по умолчанию не синхронизируются (письма с тем же доменом остаются приватными). Включите переключатель **Дополнительно** внизу **Настроек**, затем включите **Синхронизировать внутренние письма** в разделе **Общие → Безопасность**, чтобы включить их для всего рабочего пространства.
* **Вложения**: Будет доступно в H1 2026
**Примечание**: Мы не предоставляем адрес электронной почты CC для выборочной синхронизации. Вместо этого используйте функцию папки сообщений выше для получения такого же уровня контроля над тем, какие письма синхронизируются с Twenty.
## Конфигурация календаря
### Видимость событий
Выберите, что будет видно другим пользователям в вашем рабочем пространстве:
* **Всего**: вся информация о событии будет передана вашей команде
* **Метаданные**: Только дата и участники будут переданы вашей команде
### Авто создание контактов для встреч
* **Да**: Автоматически создавайте контакты для участников встречи, не находящихся в вашем CRM
* **Нет**: Связывайте встречи только с существующими контактами
<Note>Когда эта опция включена, контакты автоматически связываются с записями компании на основе их домена электронной почты. Если компании еще не существует, Twenty создаст ее для вас.</Note>
### Контролировать, какие события синхронизируются
* **Импорт встреч**: Автоматически импортируйте события в календаре
* **Связь с контактами**: Связывайте встречи с записями о людях и компаниях
**Что синхронизируется:**
* **Встречи**: События в календаре с внешними участниками
* **Связь с контактами**: События автоматически связаны с записями CRM
* **Командные события**: Видимость общего календаря
## Частота синхронизации
**Обновления каждые 5 минут**: Данные по электронной почте и календарю синхронизируются автоматически каждые 5 минут после начального импорта.
<Note>
**Сроки начальной синхронизации**: Синхронизация календаря завершается быстро (обычно в течение нескольких минут), а синхронизация почты занимает больше времени для больших почтовых ящиков. Twenty импортирует письма примерно со скоростью **400 сообщений в минуту** (ограничено лимитами частоты Gmail API), поэтому импорт почтового ящика с 10 000 письмами занимает около 25 минут. Не беспокойтесь, если вы видите, что контакты из событий календаря появляются раньше ваших контактов из электронной почты; это нормальное поведение.
</Note>
## Следующие шаги
* [Возможности почтового ящика](/l/ru/user-guide/calendar-emails/capabilities/mailbox)
* [Устранение неполадок с отсутствующими письмами](/l/ru/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)

View File

@@ -0,0 +1,275 @@
---
title: Настройки диаграмм
description: Настройте диаграммы, чтобы показывать данные именно так, как вам нужно.
---
import { ChartIcon } from '/snippets/chart-icon.mdx';
## Доступ к настройкам диаграмм
1. Нажмите кнопку **Редактировать** в правом верхнем углу дашборда
<img src="/images/user-guide/dashboard/dashboard-edit.png" alt="Режим редактирования" />
2. Панель переходит в режим редактирования
3. Нажмите на любой виджет, чтобы выбрать его
4. Справа откроется панель настроек
Настройки сгруппированы по разделам:
* **Данные**: какие данные получать и как их фильтровать
* **Ось X**: как группировать и сортировать категории (столбчатые/линейные диаграммы)
* **Ось Y**: что измерять и как отображать (столбчатые/линейные диаграммы)
* **Стиль**: цвета, подписи и визуальные параметры
<Note>
Некоторые настройки отображаются только после задания других настроек. Например, **Детализация по дате** появляется только при выборе поля даты.
</Note>
---
## Настройки данных
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="database" />Источник </span>
Выберите объект, из которого получать данные.
1. Нажмите **Источник**
2. Выберите объект (Сделки, Люди, Компании и т. д.)
Доступны все ваши стандартные и пользовательские объекты. Изменение источника сбрасывает другие настройки, поскольку параметры полей зависят от выбранного объекта.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-source.png" alt="Источник" />
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="filter" />Фильтр </span>
Ограничьте, какие записи включать в диаграмму.
1. Нажмите **Фильтр**
2. Откроется конструктор фильтров
3. Нажмите **+ Добавить фильтр**
4. Выберите поле, условие и значение
5. При необходимости добавьте ещё фильтры
Фильтры работают так же, как в табличных представлениях. Используйте их, чтобы сосредоточиться на конкретных сегментах данных.
**Пример**: отфильтруйте сделки, где этап равен "Won", чтобы показать только закрытые сделки.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-filters.png" alt="Фильтр" />
<Tip>
Для полей даты используйте **Относительно**, чтобы создать динамические фильтры вроде "За последние 7 дней" или "Этот месяц", которые обновляются автоматически.
</Tip>
<Tip>
Поддерживаются расширенные фильтры — добавляйте несколько правил фильтрации и комбинируйте их логикой **И** или **ИЛИ**.
</Tip>
---
## Настройки оси X
Эти настройки управляют горизонтальной осью столбчатых и линейных диаграмм — обычно тем, как ваши данные группируются по категориям.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="axis-x" />Отображаемые данные </span>
Выберите поле, по которому группировать данные. Это определяет категории, отображаемые на оси X.
**Пример**: выберите "Stage", чтобы видеть данные, сгруппированные по этапам воронки, или "Created date", чтобы видеть данные во времени.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-x-data-on-display.png" alt="Отображаемые данные" />
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="calendar" />Детализация по дате </span>
При группировке по полю даты выберите период группировки.
| Вариант | Группирует данные по | Пример результата |
| ---------------- | -------------------------- | ------------------------------------------------------ |
| **День** | Каждый календарный день | 1 янв., 2 янв., 3 янв.... |
| **Неделя** | Календарные недели | Неделя 1, Неделя 2, Неделя 3... |
| **Месяц** | Календарные месяцы | январь, февраль, март... |
| **Квартал** | Финансовые кварталы | Q1, Q2, Q3, Q4 |
| **Год** | Календарные годы | 2023, 2024, 2025 |
| **День недели** | День недели (агрегировано) | понедельник, вторник... (все понедельники объединены) |
| **Месяц года** | Месяц (агрегировано) | январь, февраль... (все январские значения объединены) |
| **Квартал года** | Квартал (агрегировано) | Q1, Q2, Q3, Q4 (все Q1 объединены) |
Варианты «день недели/месяц года/квартал года» агрегируют данные за весь период. Используйте **День недели**, чтобы увидеть, в какие дни обычно больше всего сделок. Используйте **Месяц**, чтобы видеть динамику по месяцам.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="arrows-sort" />Сортировка по </span>
Управляйте порядком категорий на оси X.
* **Позиция** — использует порядок, заданный в настройках поля Select
* **Алфавитный** — от A до Z (или хронологически для дат)
* **По значению** — упорядочено по метрике (сначала наибольшее или наименьшее)
* **Вручную** — перетащите, чтобы задать свой порядок
<img src="/images/user-guide/dashboard/dashboard-chart-settings-x-sort.png" alt="Сортировать по" />
**Совет**: для этапов воронки используйте **Позиция**, чтобы показать этапы в порядке вашего процесса продаж (Lead → Qualified → Proposal → Won).
<Note>
Доступные параметры зависят от типа поля. Поля Select имеют все варианты; поля даты и текста — меньше.
</Note>
<Tip>
При сортировке **Вручную** перетаскивайте категории, чтобы создать пользовательский порядок — идеально для выделения отдельных сегментов или для наглядного рассказа о ваших данных.
</Tip>
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="eye-off" />Исключить нулевые значения </span>
Скрывайте категории с нулевыми значениями или без данных.
* **Вкл.**: категории без записей скрываются
* **Выкл.**: отображаются все категории, даже пустые
Используйте это, чтобы «очистить» диаграммы с разреженными данными.
---
## Настройки оси Y
Эти настройки определяют, что вы измеряете и как это отображается.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="axis-y" />Отображаемые данные </span>
Выберите поле и операцию для расчёта метрики.
* **Подсчёты** — Подсчитать все, Подсчитать пустые, Подсчитать непустые, Подсчитать уникальные значения
* **Математика** — Сумма, Среднее, Мин., Макс. (числовые поля)
* **Проценты** — Процент пустых, Процент непустых
В полях Boolean доступен подсчёт true/false. В сводных диаграммах с полями даты доступны операции "Самая ранняя/самая поздняя".
**Пример**: выберите "Amount" с операцией Sum, чтобы увидеть общую сумму сделок по категориям, или Count all, чтобы увидеть количество сделок.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-y-data-on-display.png" alt="Отображаемые данные" />
<Note>
Доступные параметры зависят от типа поля и вида диаграммы. Если вы не видите ожидаемую операцию, проверьте тип поля.
</Note>
### Соотношение
Для полей Select, Multi-select или Boolean вы можете вычислить процент конкретного значения.
1. Выберите поле Select, Multi-select или Boolean
2. Включите **Соотношение**
3. Выберите вариант для измерения
**Пример**: покажите сделки со статусом "Won" в процентах от всех сделок. Если из 50 всего 10 со статусом "Won", диаграмма покажет 20%.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="filters" />Группировать по </span>
Добавьте второе измерение, чтобы создать несколько рядов (несколько столбцов или линий).
1. Сначала задайте поле для оси X
2. Нажмите **Группировать по**
3. Выберите второе поле
**Пример**: сгруппируйте сделки по Stage (ось X) И по Owner (Группировать по), чтобы увидеть разрез по воронке каждого человека рядом.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-y-group-by.png" alt="Группировать по" />
Когда задана группировка, на диаграмме появятся несколько цветов и отобразится легенда.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="calendar" />Детализация по дате </span>
Когда группировка выполняется по полю даты, выберите период (те же варианты, что и для оси X).
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="arrows-sort" />Сортировка по </span>
Когда **Группировать по** задано, управляйте порядком сгруппированных рядов (например, какой столбец владельца отображается первым в каждой категории).
Те же варианты, что и для сортировки по оси X — Позиция, Алфавитный и Вручную — за исключением того, что **сортировка по значениям недоступна** для вторичной группировки.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="chart-bar-popular" />Накопительный итог </span>
Показывать нарастающий итог вместо отдельных значений.
* **Выкл.**: каждый столбец/точка показывает своё значение
* **Вкл.**: каждый столбец/точка показывает сумму всех предыдущих значений плюс своё
**Пример**: январь = 10, февраль = 15
* Накопительный итог выкл.: показаны 10 и 15
* Накопительный итог вкл.: показаны 10 и 25 (10 + 15)
Используйте накопительный итог, чтобы отслеживать прогресс к цели во времени.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-y-cumulative.png" alt="Накопительный" />
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="math-min" />Мин. диапазон / <ChartIcon icon="math-max" />Макс. диапазон </span>
Установите фиксированные минимальные и максимальные значения для оси Y.
* Оставьте пустым для автоматического масштабирования
* Введите число, чтобы зафиксировать границу
**Когда использовать:**
* Установите минимум в 0 для корректных визуальных сравнений
* Установите оба значения для согласованных шкал на нескольких диаграммах
* Сфокусируйтесь на определённом диапазоне значений, задав оба параметра
---
## Настройки стиля
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="color-swatch" />Цвета </span>
Задайте цветовую схему для диаграммы. Выберите из множества цветовых палитр.
<Note>
При группировке по полю Select диаграмма автоматически использует цвета, заданные для каждой опции в настройках поля.
</Note>
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="gizmo" />Подписи осей </span>
Выберите, какие подписи осей показывать: **Нет**, **Ось X**, **Ось Y** или **Обе** (только для столбчатых и линейных диаграмм).
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="stack-2" />Накопительные столбцы / Накопительные линии </span>
Когда задана группировка, выберите, как отображать несколько рядов.
* **Выкл. (Группированные)**: ряды отображаются рядом друг с другом. Используйте для сравнения точных значений между группами.
* **Вкл. (Накопительные)**: ряды накладываются друг на друга. Используйте для показа состава — как части формируют целое.
**Пример**: сделки по этапам, сгруппированные по владельцу
* Группированные: точные значения каждого владельца рядом
* Накопительные: общее число сделок на этапе с вкладом каждого владельца
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="badge-2k" />Подписи данных </span>
Показывайте значения прямо на элементах диаграммы (столбцах, точках, секторах).
* **Вкл.**: значения отображаются на диаграмме
* **Выкл.**: значения не отображаются (чище внешний вид)
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="text-caption" />Легенда </span>
Показывать или скрывать легенду (отображается только при заданной группировке).
* **Вкл.**: легенда показывает, что означает каждый цвет
* **Выкл.**: легенда не отображается
<Tip>
**Наведите курсор** на элемент легенды, чтобы подсветить эту группу. **Нажмите**, чтобы временно скрыть её на диаграмме.
</Tip>
---
## Особенности отдельных диаграмм
### Круговые диаграммы
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="chart-pie" size={16} /></span> **Каждый сектор представляет** – Определите, как группируются секторы
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="eye-off" size={16} /></span> **Скрыть пустую категорию** – Удалить секторы с нулевым значением
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="number-123" size={16} /></span> **Показывать значение в центре** – Отображать агрегированное значение (сумма, среднее, количество и т. д.)
### Сводные диаграммы
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="caret-left" size={16} /></span> **Префикс** – Добавить текст перед числом (например, `$`)
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="caret-right" size={16} /></span> **Суффикс** – Добавить текст после числа (например, `%`)

View File

@@ -0,0 +1,92 @@
---
title: Панели управления
description: Создавайте и организуйте панели мониторинга с вкладками, чтобы визуализировать данные вашей CRM.
---
## Обзор
Панели мониторинга в Twenty организованы иерархически: **Панели мониторинга → Вкладки → Виджеты**. Каждая панель мониторинга может содержать несколько вкладок, и каждая вкладка включает виджеты (диаграммы, числа, iFrames).
## Создание панели мониторинга
1. Перейдите в раздел **Панели мониторинга** в меню навигации
2. Нажмите **+ Новая запись**
<img src="/images/user-guide/dashboard/dashboard-create-new.png" alt="Создать новую панель" />
3. Назовите панель мониторинга
4. Начните добавлять вкладки и виджеты
## Работа со вкладками
Вкладки помогают организовать панель мониторинга на логические разделы.
### Создание вкладок
1. В режиме редактирования, нажмите **+** в панели вкладок, а боковая панель откроется справа
2. Назовите вкладку (например, "Обзор воронки", "Результативность команды")
3. Добавьте виджеты на вкладку
### Изменение порядка вкладок
1. В режиме редактирования нажмите и удерживайте вкладку, которую хотите переместить
2. Перетащите на новую позицию
3. Вы также можете нажать на вкладку и использовать меню команд, чтобы переместить вкладку влево или вправо
### Удаление вкладок
1. В режиме редактирования нажмите на вкладку, которую хотите удалить
2. Нажмите кнопку **Удалить** в командном меню
### Дублирование вкладок
1. Нажмите на вкладку, которую хотите дублировать
2. Нажмите кнопку **Дублировать** на боковой панели
<img src="/images/user-guide/dashboard/dashboard-tabs.png" alt="Вкладка панели" />
## Макет панели мониторинга
### Расположение виджетов
* Перетаскивайте, чтобы расположить
* Изменяйте размер, чтобы выделить
* Группируйте связанные диаграммы вместе
### Дублирование панели мониторинга
1. Выберите панель, которую хотите дублировать
2. Откройте командную палитру с помощью **Cmd + K** (или **Ctrl + K** в Windows)
3. Выберите **Дублировать панель мониторинга**
<img src="/images/user-guide/dashboard/dashboard-duplicate.png" alt="Дублировать панель" />
### Лучшие практики
* **Логическая последовательность**: располагайте от общего к частному
* **Визуальная иерархия**: используйте более крупные диаграммы для ключевых метрик
* **Единый стиль**: используйте согласованные цвета и шрифты
## Видимость и доступ
### Видимость панели мониторинга
Панели мониторинга видны всем, у кого есть доступ к вашему рабочему пространству Twenty. В настоящее время опции приватной панели мониторинга нет.
### Избранное
Вы можете добавлять панели мониторинга в избранное для быстрого доступа. Это персональная настройка — ваше избранное не видно другим пользователям.
Чтобы добавить панель мониторинга в избранное, откройте панель мониторинга и нажмите значок звезды.
### Работа с часовыми поясами
Панели мониторинга сейчас отображают данные в соответствии с часовым поясом пользователя, который их просматривает. Это означает, что одна и та же панель мониторинга может отображать разные метрики для участников команды в разных регионах (например, APAC и США).
<Note>
**Скоро**: мы добавим возможность задавать конкретный часовой пояс для панели мониторинга, чтобы все пользователи видели согласованные данные независимо от их местоположения.
</Note>
<Note>
**Скоро**: фильтры на уровне панели мониторинга позволят применять фильтры ко всем виджетам сразу, что ускорит изучение ваших данных.
</Note>

View File

@@ -0,0 +1,169 @@
---
title: Виджеты
description: Изучите типы виджетов и варианты визуализации в Twenty.
---
import { ChartIcon } from '/snippets/chart-icon.mdx';
## Доступные виджеты
Twenty предоставляет различные типы виджетов для визуализации данных вашей CRM-системы.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="chart-bar-popular" />Гистограммы</span>
Отображайте данные в виде горизонтальных или вертикальных столбцов.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-bar-chart.png" alt="Гистограмма" />
</Frame>
**Лучше всего подходит для:**
* Сравнение значений по категориям
* Отображение рейтингов
* Отслеживание метрик по периодам времени
**Примеры использования:**
* Сделки по этапам
* Выручка по менеджерам по продажам
* Контакты, добавленные по месяцам
<Note>
**Ограничения отображения**: Гистограммы могут отображать максимум 100 столбцов и 50 групп на столбец при использовании "Group By". Если вы видите предупреждение "Undisplayed data: max X bars per chart", добавьте фильтры, чтобы сузить данные, или измените группировку (например, группируйте по неделям вместо дней).
</Note>
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="chart-pie" />Круговые диаграммы</span>
Показывайте доли целого.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-pie-chart.png" alt="Круговая диаграмма" />
</Frame>
**Лучше всего подходит для:**
* Отражение состава или распределения
* Сравнение частей с целым
* Выделение ключевых сегментов
**Примеры использования:**
* Распределение сделок по источникам
* Разбивка контактов по отраслям
* Состав воронки по ответственным
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="chart-line" />Линейные диаграммы</span>
Отображайте динамику во времени.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-line-chart.png" alt="Линейная диаграмма" />
</Frame>
**Лучше всего подходит для:**
* Отслеживание изменений во времени
* Определение тенденций
* Сравнение нескольких метрик
**Примеры использования:**
* Динамика количества сделок по месяцам
* Рост выручки по кварталам
* Динамика уровня активности
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="sum" />Сводные диаграммы</span>
Наглядно отображайте отдельные ключевые значения.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-aggregate-chart.png" alt="Сводная диаграмма" />
</Frame>
**Лучше всего подходит для:**
* Выделение KPI
* Показ итогов или средних значений
* Быстрые проверки статуса
**Примеры использования:**
* Общий объем воронки
* Число открытых сделок
* Коэффициент конверсии
**Расширенные параметры:**
* **Ratio**: Для полей типа Select вычисляйте соотношения между значениями. Перейдите в **Отображаемые данные** → выберите поле → включите параметр **Ratio**.
* **Префикс и суффикс**: Добавляйте произвольный текст до или после числа (например, префикс "$" или суффикс "%") для лучшей читаемости.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="frame" />iFrames</span>
Встраивайте внешние инструменты и контент прямо в ваш дашборд.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-table.png" alt="График таблицы" />
</Frame>
**Лучше всего подходит для:**
* Поиск отдельных записей
* Проверка точных значений
* Аудит или для справки
**Примеры использования:**
* Сделки, закрывающиеся в этом месяце
* Новые лиды на этой неделе
* Просроченные счета
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="table" />Таблица</span>
Просматривайте отфильтрованные записи прямо на вашей панели управления.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-iframe.png" alt="iFrame" />
</Frame>
**Лучше всего подходит для:**
* Отображение внешних отчетов или дашбордов
* Интеграция сторонних инструментов продаж
* Отображение данных в реальном времени из других систем
**Примеры использования:**
* Метрики из вашего сервиса поддержки
* Метрики из вашей системы обзвона
* Контент в реальном времени из вашего инструмента последовательностей продаж
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="align-box-left-top" />Форматированный текст</span>
Добавляйте форматированный текст и контент прямо в ваш дашборд.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-rich-text.png" alt="Форматированный текст" />
</Frame>
**Лучше всего подходит для:**
* Добавление контекста или инструкций
* Описания дашборда
* Заметки и аннотации
**Возможности:**
* Форматирование текста (полужирный, курсив, списки и т. д.)
* Загрузка изображений и файлов
* Редактирование в стиле Markdown
<Note>
**Скоро**: Индикаторные диаграммы пока недоступны, но есть в нашей дорожной карте.
</Note>
### Дублирование виджетов
1. Нажмите на виджет
2. Откройте **Параметры**
3. Нажмите **Дублировать виджет**

View File

@@ -0,0 +1,54 @@
---
title: Часто задаваемые вопросы о панелях управления
description: Часто задаваемые вопросы о панелях управления в Twenty.
---
<AccordionGroup>
<Accordion title="Могу ли я создавать частные панели управления?">
Нет, панели управления в настоящее время видны всем, у кого есть доступ к вашему рабочему пространству Twenty. Частные панели управления пока недоступны.
</Accordion>
<Accordion title="Почему мои метрики отличаются от метрик моего коллеги?">
Панели управления сейчас отображают данные в соответствии с часовым поясом пользователя, который их просматривает. Если вы находитесь в разных регионах (например, APAC и США), вы можете видеть немного разные значения для одной и той же панели управления. Мы работаем над добавлением настройки часового пояса для каждой панели управления, чтобы обеспечить一致ность данных между командами.
</Accordion>
<Accordion title="Могу ли я экспортировать свою панель управления?">
Экспорт панелей управления в настоящее время недоступен. Эта функция запланирована в нашей дорожной карте.
</Accordion>
<Accordion title="Могу ли я делиться панелями управления с внешними пользователями?">
Нет, совместное использование панелей управления с пользователями вне вашего рабочего пространства Twenty (пользователями, не использующими Twenty) в настоящее время не поддерживается.
</Accordion>
<Accordion title="Как добавить панель управления в избранное?">
Откройте панель управления, которую хотите добавить в избранное, затем нажмите значок звезды. Избранное — персональная настройка: оно не влияет на других пользователей.
</Accordion>
<Accordion title="В чём разница между вкладками и виджетами?">
* **Вкладки** разбивают панель управления на разделы (как страницы внутри панели)
* **Виджеты** — это отдельные визуализации (диаграммы, показатели, iFrames) внутри каждой вкладки
Структура: Панель управления → Вкладки → Виджеты
</Accordion>
<Accordion title="Могу ли я отфильтровать всю панель управления сразу?">
Фильтры на уровне панели управления пока недоступны, но эта функция запланирована в нашей дорожной карте. Сейчас фильтры нужно применять к каждому виджету отдельно.
</Accordion>
<Accordion title="Доступны ли диаграммы-спидометры?">
Пока нет. Диаграммы-спидометры запланированы в нашей дорожной карте и будут добавлены в одном из будущих релизов.
</Accordion>
<Accordion title="Как дублировать панель управления?">
1. Убедитесь, что вы находитесь в режиме просмотра (не редактирования)
2. Откройте командную палитру с помощью **Cmd + K** (или **Ctrl + K** в Windows)
3. Выберите **Дублировать панель управления**
</Accordion>
<Accordion title="Как часто обновляются данные панели управления?">
Виджеты обновляются автоматически по мере изменения ваших данных в CRM:
* Обновление в реальном времени для большинства метрик
* При необходимости используйте кнопку обновления для ручного обновления
* Исторические данные сохраняются для анализа тенденций
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,67 @@
---
title: FAQ по виджету
description: Разъяснение распространённых вопросов и сообщений об ошибках.
---
<AccordionGroup>
<Accordion title="Как отображать проценты вместо количества?">
Три варианта:
* **Процент пустых/непустых**: В разделе Отображаемые данные выберите Процент пустых или Процент непустых
* **Доля**: Для полей типа Выбор или Флажок включите параметр Доля, чтобы показывать конкретный вариант в процентах от всех записей
* **Суффикс**: Для агрегированных диаграмм добавьте `%` как суффикс в настройках стиля
</Accordion>
<Accordion title="В чём разница между сгруппированными столбцами и столбцами с накоплением?">
При использовании **Группировки по** можно отображать ряды двумя способами:
* **Сгруппировано**: Столбцы рядом — лучше для сравнения точных значений
* **С накоплением**: Столбцы один над другим — лучше для демонстрации состава
Переключите параметр **С накоплением** в настройках стиля, чтобы переключить режим.
</Accordion>
<Accordion title="Почему я не вижу параметры Сумма или Среднее?">
Доступные операции зависят от **типа поля**:
* **Числовые поля**: Сумма, Среднее, Минимум, Максимум
* **Поля даты**: Самая ранняя, Самая поздняя (только для агрегированных диаграмм)
* **Поля-флажки**: Количество true, Количество false
Если вы не видите нужный параметр, проверьте, что выбран совместимый тип поля.
</Accordion>
<Accordion title="Почему некоторые настройки неактивны или отсутствуют?">
Многие параметры отображаются только при выполнении предварительных условий:
* **Детализация даты**: сначала выберите поле с датой
* **Группировка по, Легенда, С накоплением**: сначала задайте Источник
* **Переключатели «Легенда» и «С накоплением»**: сначала задайте Группировку по
Если параметр отсутствует, сначала настройте его предварительное условие.
</Accordion>
<Accordion title="Что означает 'Нет данных'?">
Диаграмма не нашла записей, соответствующих вашей конфигурации.
**Как исправить:** Удалите или скорректируйте фильтры, убедитесь, что выбран правильный объект Источник, или проверьте, что для вашего диапазона дат существуют записи.
</Accordion>
<Accordion title="Что означает 'Недопустимая конфигурация'?">
Отсутствует обязательный параметр или он несовместим.
**Как исправить:** Убедитесь, что задан Источник, настроены Отображаемые данные и выбраны все обязательные поля группировки.
</Accordion>
<Accordion title="Что означает 'Неотображаемые данные'?">
Ваши данные превышают пределы отображения (100 столбцов, 100 точек данных или 100 секторов).
**Как исправить:** Добавьте фильтры, чтобы сузить данные, или измените детализацию даты с дня на неделю или месяц.
</Accordion>
<Accordion title="Почему на одной оси нет данных?">
В выбранном поле нет значений для записей, попадающих под ваш фильтр, или тип поля не соответствует ожидаемым данным.
**Как исправить:** Попробуйте другое поле или проверьте, что у записей есть значения для выбранного поля.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,75 @@
---
title: Панели управления
description: Изучите основы отчетности и панелей мониторинга в Twenty.
---
## Понимание панелей мониторинга
Панели мониторинга в Twenty обеспечивают визуальный способ отслеживать ключевые показатели эффективности и получать инсайты из данных вашей CRM-системы.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Панели управления" />
## Ключевые понятия
### Панели управления
Панель мониторинга — это набор вкладок, которые позволяют быстро просматривать данные вашей CRM-системы. Вы можете создавать несколько панелей мониторинга для разных целей:
* Эффективность продаж
* Активность команды
* Состояние воронки
* Пользовательские метрики
### Вкладки
Вкладки позволяют разделить панель мониторинга на разделы. Каждая вкладка содержит один или несколько виджетов.
### Виджеты
Виджеты — это отдельные визуализации, которые отображают конкретные данные. К типам относятся:
* Гистограммы
* Круговые диаграммы
* Линейные диаграммы
* Сводные диаграммы
* iFrames
* Форматированный текст
<Note>
**Текущие ограничения**:
* Экспорт панелей мониторинга и предоставление доступа внешним пользователям (не являющимся пользователями Twenty) в настоящее время недоступны.
* Индикаторные диаграммы пока недоступны.
</Note>
## Начало работы
### Создание первой панели мониторинга
1. Перейдите в раздел **Панели мониторинга**
2. Нажмите **+ Новая панель мониторинга**
3. Назовите панель мониторинга
4. Добавьте вкладки, чтобы организовать содержимое
5. Добавьте виджеты для отображения данных
6. Сохранить
### Добавление виджетов
1. Откройте вкладку на панели мониторинга
2. Нажмите **+ Добавить виджет**
3. Выберите тип виджета
4. Выберите источник данных (объект)
5. Настройте параметры виджета
6. Сохраните и просмотрите виджет
## Лучшие практики
* **Начните с простого**: выберите несколько ключевых метрик и со временем добавляйте новые
* **Сосредоточьтесь на данных, по которым можно действовать**: отображайте метрики, влияющие на принятие решений
* **Регулярный обзор**: проверяйте панели мониторинга, чтобы выявлять тенденции
* **Делитесь с командой**: сделайте панели мониторинга видимыми для соответствующих участников команды
## Следующие шаги
* [Виджеты и визуализации](/l/ru/user-guide/dashboards/capabilities/widgets)
* [Справочник по настройкам диаграмм](/l/ru/user-guide/dashboards/capabilities/chart-settings)
* [FAQ по панелям мониторинга](/l/ru/user-guide/dashboards/how-tos/dashboards-faq)

View File

@@ -0,0 +1,76 @@
---
title: Обработка ошибок и проверка
description: Просматривайте и исправляйте ошибки импорта прямо в интерфейсе перед подтверждением.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Предварительная проверка импорта
После загрузки файла и сопоставления полей Twenty проверяет ваши данные **перед** импортом. Это позволяет обнаруживать и исправлять ошибки, не затрагивая ваши существующие данные.
## Как это работает
1. **Загрузите** ваш CSV-файл
2. **Сопоставьте** столбцы с полями Twenty
3. **Просмотрите** потенциальные ошибки, выделенные желтым
4. **Исправляйте ошибки** прямо в интерфейсе
5. **Подтвердите** импорт
<VimeoEmbed videoId="1145273857" title="Видеодемонстрация" />
## Отображение ошибок
Строки с ошибками выделены **желтым**. Вы можете:
* **Отредактируйте ячейку напрямую**, чтобы исправить ошибку
* **Удалите строку**, чтобы пропустить её целиком
Такое встроенное редактирование экономит время — не нужно возвращаться к таблице, исправлять ошибки и загружать файл заново.
## Распространённые типы ошибок
### Дублирующиеся значения
**Причина**: значение уникального поля (email, домен) уже есть в Twenty или встречается дважды в вашем файле.
**Решение**:
* Отредактируйте дублирующееся значение в интерфейсе импорта
* Удалите одну из строк-дубликатов
См. [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints) для подробностей о том, как обеспечивается уникальность.
### Недопустимый формат
**Причина**: данные не соответствуют ожидаемому формату (например, некорректный email, неверный формат даты).
**Решение**: отредактируйте ячейку, указав правильный формат.
См. [Сопоставление полей](/l/ru/user-guide/data-migration/capabilities/field-mapping), чтобы узнать ожидаемый формат для каждого типа поля.
### Отсутствуют обязательные поля
**Причина**: обязательное поле пусто.
**Решение**: введите значение в обязательное поле или удалите строку.
### Связь не найдена
**Причина**: ссылочная запись не существует (например, домен компании, который не был импортирован).
**Решение**:
* Сначала импортируйте родительские записи
* Или исправьте ссылочное значение
См. [Импорт связей](/l/ru/user-guide/data-migration/capabilities/import-relations) для правильного порядка импорта и способов связывания записей.
## Советы для уменьшения количества ошибок
1. **Загрузите шаблон** для просмотра ожидаемого формата перед импортом вашего файла
2. **Очистите данные** сначала в таблице
3. **Импортируйте файлы в правильном порядке**, чтобы импортировать связи (Компании → Контакты → Сделки)
4. **Протестируйте на небольших партиях** перед полным импортом
5. **Проверьте наличие дублей** перед загрузкой
6. **Ограничить каждый файл до 10000 записей**

View File

@@ -0,0 +1,198 @@
---
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="Видеодемонстрация" />

View File

@@ -0,0 +1,48 @@
---
title: Поддерживаемые форматы файлов
description: Форматы файлов, поддерживаемые для импорта данных в Twenty.
---
## Поддерживаемые форматы
Twenty поддерживает три формата файлов для импорта:
| Формат | Расширение | Заметки |
| ---------------------- | ---------- | --------------------------------------- |
| **CSV** | .csv | Рекомендуется, наибольшая совместимость |
| **Excel** | .xlsx | Современный формат Excel |
| **Excel (устаревший)** | .xls | Старый формат Excel |
## Требования к файлам
| Требование | Значение |
| ----------------- | ------------------------------------------------- |
| **Кодировка** | Рекомендуется UTF-8 |
| **Лимит записей** | 10 000 записей на файл |
| **Структура** | Первая строка должна содержать заголовки столбцов |
| **Содержимое** | Один тип объекта в файле |
## Лучшие практики CSV
* **Разделитель**: используйте запятую (`,`) или точку с запятой (`;`)
* **Квалификатор текста**: используйте двойные кавычки (`"`) для текста, содержащего запятые
* **Окончания строк**: поддерживаются оба варианта — Windows (CRLF) и Unix (LF)
* **Пустые значения**: оставляйте ячейки пустыми, не используйте "NULL" или "N/A"
## Лучшие практики Excel
При экспорте из Excel:
* Удалите формулы (экспортируйте только значения)
* Удалите пустые строки в конце
* Убедитесь, что нет объединённых ячеек
* Используйте только первый лист
## Большие наборы данных
Для наборов данных более 10 000 записей:
* Разбейте на несколько файлов
* Или используйте [импорт через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api) для неограниченного количества записей
<Note>Для очень больших миграций (100 000+ записей) API значительно быстрее и надёжнее, чем импорт CSV.</Note>

View File

@@ -0,0 +1,148 @@
---
title: Импорт связей между объектами
description: Импорт связей между записями с помощью CSV.
---
## Обзор
Twenty поддерживает импорт связей между объектами при импорте CSV. Это позволяет связывать записи (например, прикреплять Людей к Компаниям) в рамках миграции данных.
<Note>**В настоящее время поддерживается для импорта**: связи «один-ко-многим», указывающие на один тип объекта с каждой стороны (например, Люди → Компании). Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта.</Note>
## Как работают связи в Twenty
### Один-ко-многим / Многие-к-одному
Twenty поддерживает стандартные связи, когда одна запись связана со многими другими:
* **Одна Компания → Многие Люди**: у компании может быть несколько сотрудников, но каждый человек принадлежит одной компании
* **Одна Компания → Многие Сделки**: у компании может быть несколько сделок, но каждая сделка принадлежит одной компании
### Связи, которые могут указывать на несколько типов объектов
Некоторые связи могут связывать разные типы объектов. Это работает двумя способами:
**Паттерн 1: Многие записи, каждая из которых связана с одной записью каждого типа объекта**
Несколько заметок или задач можно прикрепить к нескольким типам объектов:
* **Заметки** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
* **Задачи** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
Здесь Заметки/Задачи находятся на стороне «многие». Каждая из них связывается с одной записью каждого типа объекта.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Паттерн 2: Одна запись, получающая связи от многих записей разных типов объектов**
Проект может получать связи от множества записей разных типов объектов:
* **Проект** может иметь много связанных с ним Людей, много связанных Компаний и много прикреплённых к нему Заметок
Здесь Проект находится на стороне «один». Несколько записей из разных объектов могут ссылаться на один и тот же Проект.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Ограничение импорта/экспорта**: связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), **пока не поддерживаются** при импорте или экспорте CSV.
* **Импорт**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта с каждой стороны
* **Экспорт**: столбцы для связей, указывающих на несколько типов объектов, на данный момент остаются пустыми
Это запланировано в нашей дорожной карте.
</Warning>
### Что пока не поддерживается
**Связи «многие-ко-многим»** пока недоступны. Например, сейчас вы не можете создать связь, где:
* Многие Люди связаны со многими Проектами
<Note>Связи «многие-ко-многим» запланированы на 2 полугодие 2026 года.</Note>
## Связывание записей при импорте
<Note>**Напоминание**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта (например, Люди → Компании). Связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), пока не поддерживаются.</Note>
### Шаг 1: Определите стороны «один» и «многие»
Сначала определите, какой объект находится на стороне «один», а какой — на стороне «многие» в этой связи.
**Пример**:
* **Компания** — это сторона «один» (у одной компании много сотрудников)
* **Люди** — это сторона «многие» (каждый человек принадлежит одной компании)
### Шаг 2: Убедитесь, что записи стороны «один» существуют
Прежде чем импортировать сторону «многие», записи стороны «один» уже должны существовать в Twenty.
* Сначала импортируйте или создайте записи стороны «один» (например, Компании)
* Проверьте их уникальный идентификатор. Это может быть:
* `id` (UUID в Twenty)
* Поле, помеченное как уникальное (например, `domain` для Компаний или внешний идентификатор из вашей предыдущей системы)
<Warning>Импорт завершится с ошибкой, если ссылка указывает на несуществующую запись.</Warning>
### Шаг 3: Подготовьте файл CSV
Добавьте столбец в CSV-файл для стороны «многие», который ссылается на запись стороны «один».
**Пример**: для 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. Загрузите ваш CSV-файл через интерфейс импорта
2. На шаге сопоставления полей найдите столбец связи (например, `companyDomain`)
3. Сопоставьте его с полем связи (например, Компания)
4. Twenty автоматически свяжет каждую запись с соответствующим родителем
### Доступные уникальные поля для связей
| Объект | Доступные уникальные поля |
| ------------------------------------------------- | ------------------------------------------------------ |
| **Компании** | `id`, `domain`, любое пользовательское уникальное поле |
| **Люди** | `id`, `email`, любое пользовательское уникальное поле |
| **Участники рабочего пространства** | `id`, `email` (не имя) |
| **Прочие стандартные и пользовательские объекты** | `id`, любое поле, помеченное как уникальное |
<Note>**Связь с участниками рабочего пространства**: когда связь указывает на Участников рабочего пространства (ваша команда, входящая в Twenty), указывайте их по **адресу электронной почты**, а не по имени.</Note>
<Note>Мы рекомендуем использовать `domain` для Компаний и `email` для Людей, так как эти значения человекочитаемы и их легко поддерживать в таблицах.</Note>
<Note>**Напоминание**: Мягко удалённые записи (видны в Командном меню → Показать удалённые записи) учитываются при проверке уникальности. Если вы импортируете запись с тем же уникальным значением, что и у удалённой записи, удалённая запись будет восстановлена. См. [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints) для подробностей.</Note>
## Правило порядка импорта
<Warning>
**Всегда сначала импортируйте сторону «один»!**
1. **Компании** в первую очередь (без зависимостей)
2. **Люди** во вторую очередь (связаны с Компаниями)
3. **Сделки** в третью очередь (связаны с Компаниями/Людьми)
4. **Пользовательские объекты** с учётом их зависимостей
Родительская запись должна существовать до того, как вы сможете на неё сослаться.
</Warning>

View File

@@ -0,0 +1,72 @@
---
title: Ограничения уникальности
description: Как Twenty обеспечивает уникальность данных при импорте.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Обзор
Twenty обеспечивает уникальность для определённых полей, чтобы предотвратить дублирование записей и обеспечить целостность данных. Понимание этих ограничений важно для успешного импорта.
## Уникальные поля по умолчанию
| Объект | Уникальные поля |
| ---------------------------- | -------------------------- |
| **Люди** | `id`, `email` |
| **Компании** | `id`, `domain` |
| **Пользовательские объекты** | Только `id` (по умолчанию) |
<Note>Поле `id` — внутренний идентификатор Twenty, автоматически создаётся для каждой записи. Используется формат UUID (например, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
## Пользовательские уникальные поля
Вы можете задать дополнительные уникальные поля в разделе **Настройки → Модель данных**:
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект
3. Нажмите на поле
4. Включите **Уникальность** в настройках поля
### Сценарии использования пользовательских уникальных полей
* **Внешние идентификаторы**: храните идентификаторы из других систем (Salesforce ID, HubSpot ID)
* **Бизнес-идентификаторы**: номера сотрудников, коды клиентов
* **Альтернативные контактные данные**: профиль LinkedIn, номер телефона
<Note>Имя поля `id` зарезервировано для внутреннего идентификатора Twenty. Для внешних идентификаторов используйте другое имя, например `externalId` или `legacyId`.</Note>
## Поведение при импорте
### Создание новых записей
Если значение уникального поля отсутствует, создаётся новая запись.
### Обновление существующих записей
Если значение уникального поля совпадает с существующей записью, эта запись будет **обновлена** новыми данными.
<Warning>Чтобы **обновлять существующие записи**, рекомендуется **сопоставлять только одно уникальное поле**.</Warning>
### Записи, помеченные как удалённые
<Warning>
**Записи, помеченные как удалённые, учитываются при проверке уникальности.**
Записи, помеченные как удалённые (видны в Командном меню → Показать удалённые записи), учитываются при проверке уникальности. Если вы импортируете запись с тем же уникальным значением, что и у удалённой записи, удалённая запись будет **восстановлена** с новыми данными.
</Warning>
## Обнаружение дубликатов при импорте
На этапе проверки:
* Дубликаты в вашем файле подсвечиваются жёлтым
* Вы можете отредактировать или удалить строки-дубликаты в интерфейсе перед началом импорта
<VimeoEmbed videoId="1145246326" title="Видеодемонстрация" />
## Лучшие практики
1. **Удалите дубликаты** из файла перед импортом
2. **Проверьте наличие существующих записей** в Twenty перед импортом
3. **Используйте внешние идентификаторы** при миграции из других систем
4. **Указывайте уникальные поля**, если хотите обновлять существующие записи

View File

@@ -0,0 +1,32 @@
---
title: Экспорт FAQ
description: Часто задаваемые вопросы об экспорте данных.
---
<AccordionGroup>
<Accordion title="Можем ли мы экспортировать все данные рабочей области до отмены, включая пользовательские объекты, пользовательские поля, отношения, заметки, задачи, вложения, потоки, права доступа и историю аудита?">
Данные проекта могут быть экспортированы перед отменой за некоторыми исключениями: панели управления, процессы и разрешения должны быть переданы вручную; журналы аудита не могут быть переданы.
</Accordion>
<Accordion title="Какие элементы не могут быть экспортированы или перенесены?">
Большинство элементов можно экспортировать или мигрировать за некоторыми исключениями:
* рабочие процессы, панели инструментов и все настройки (ключи API, вебхуки, журналы аудита, пользовательские настройки и т.д.) должно быть перенесено вручную
* Объекты и поля приложения, созданные приложением, могут быть перенесены путем установки указанного приложения в другом проекте. Они не должны быть перенесены вручную
* некоторые записи, такие как версии рабочего процесса и рабочий процесс, не передаются вообще, и ожидается потеря
* некоторые объекты, такие как сообщения и связанные с календарем объекты, не должны экспортироваться, так как они создаются, когда аккаунт подключен и периодически синхронизируется. Они будут синхронизированы снова, как только вы подключите свою учетную запись (пока у вас есть доступ к указанной учетной записи) если это аккаунт члена команды, который покинул вашу компанию, то эти сообщения должны быть экспортированы, в противном случае они будут утеряны)
</Accordion>
<Accordion title="Есть ли официальное облако для самостоятельной процедуры миграции или для службы миграции?">
На данный момент отсутствует официальная процедура миграции с использованием облака на самообслуживание. Общая идея заключается в следующем:
* сначала установите приложения для создания объектов и полей
* репликация пользовательских объектов и полей, добавленных пользователями
* использовать скрипт с клавишами API или инструменты ИИ для переноса всех данных из одной рабочей области в другую
* все непередаваемые объекты должны быть перенесены вручную
Пожалуйста, имейте в виду:
* Вы можете отправить до 50 запросов в минуту на план Pro или 100 запросов в минуту на план организации перед тем, как попасть в запрос / мин. лимит
* каждый запрос API может иметь до 200 записей
* некоторые данные в таких полях, как Created by Timeline активностей и Updated by будут потеряны во время импорта и перезаписаны системой
</Accordion>
<Accordion title="Экспортируются ли файлы в открытых и документированных форматах?">
Экспортированные файлы в интерфейсе находятся в формате Excel, все API запросы могут быть сохранены в формате JSON.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,209 @@
---
title: Экспортируйте ваши данные
description: Полное пошаговое руководство по экспорту данных из Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Обзор
Экспортируйте данные своего рабочего пространства в CSV для резервного копирования, отчетности или миграции.
**Сценарии использования:**
* **Регулярные резервные копии** — храните копии ваших данных
* **Внешняя отчетность** — анализируйте данные в Excel, Google Sheets или инструментах BI
* **Миграция** — перенесите данные в другую систему
* **Массовые обновления** — экспортируйте, редактируйте и повторно импортируйте для обновления записей
## Что нужно знать
### Ограничения экспорта
* **Максимум 20 000 записей** на один экспорт
* Экспортируются только **видимые столбцы**
* Экспортируются только **отфильтрованные записи** (на основе вашего текущего представления)
<Note>Для больших объемов экспорта (20 000+ записей) используйте фильтры для пакетного экспорта или [API](/l/ru/developers/extend/api).</Note>
### Разрешения
Для экспорта данных вам требуется разрешение **"Export CSV"**. Свяжитесь с администратором рабочего пространства, если у вас нет этой опции.
## Шаг 1: Перейдите к объекту
Перейдите к объекту, который хотите экспортировать:
* **People** — для контактов
* **Companies** — для организаций
* **Opportunities** — для сделок
* **Пользовательские объекты** — любой объект, который вы создали
## Шаг 2: Настройте ваше представление
**Важно:** Экспорт включает только то, что видно в вашем текущем представлении.
### Добавление/удаление столбцов
1. Нажмите **Параметры → Поля** (или **+** в конце столбцов)
2. Отметьте поля, которые хотите экспортировать
3. Снимите отметку с полей, которые вам не нужны
### Фильтрация записей (необязательно)
Если вам нужен только поднабор данных:
1. Нажмите **Фильтр**
2. Добавьте условия фильтра (например, "Created date > January 1, 2024")
3. Будут экспортированы только соответствующие записи
### Сортировка записей (необязательно)
1. Нажмите заголовок столбца, чтобы отсортировать
2. Экспорт сохранит ваш порядок сортировки
<Note>**Создайте отдельное представление для экспорта.** Сохраните представление, специально настроенное для экспорта, чтобы вам не приходилось перенастраивать его каждый раз.</Note>
## Шаг 3: Экспорт данных
1. Нажмите значок **⋮** в правом верхнем углу таблицы
2. Выберите **Экспорт представления**
3. Выберите, куда сохранить файл CSV
4. Дождитесь завершения загрузки
## Что экспортируется
| Включено | Не включено |
| ---------------------------------------- | ----------------------------------- |
| Все видимые столбцы | Скрытые столбцы |
| Записи, соответствующие текущим фильтрам | Записи, исключенные фильтрами |
| Значения пользовательских полей | Поля, отсутствующие в представлении |
| ID записей | Файловые вложения |
| ID связей | Изображения |
### Поля связи
Идентификаторы связей экспортируются только на стороне **"many"** связи:
* **Экспорт People** включает столбец `companyId` (связь People → Company)
* **Экспорт Companies** НЕ включает `peopleIds` (Companies — это сторона "one")
Это означает, что вы можете использовать экспорт People для повторного импорта и сохранения связи с Company, но вам нужно будет повторно импортировать People после Companies, чтобы восстановить связи.
## Экспорт для конкретных целей
### Для резервного копирования
1. Создайте представление, в котором видны **все поля**
2. Удалите все фильтры, чтобы включить все записи
3. Экспортируйте каждый тип объекта отдельно
4. Храните экспортированные файлы в защищенном месте
5. Настройте регулярное напоминание (еженедельно/ежемесячно)
### Для внешней отчетности
1. Включайте только те поля, которые нужны для анализа
2. Примените фильтры, чтобы сосредоточиться на релевантных данных
3. Рассмотрите сортировку по полю, которое вы будете анализировать
### Для массовых обновлений
1. Экспортируйте записи, которые хотите обновить
2. Включайте уникальный идентификатор (`email`, `domain` или `id`)
3. Отредактируйте экспортированный файл
4. Импортируйте повторно, чтобы обновить записи
См.: [Как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import)
### Для миграции
Если вы экспортируете для миграции в другую систему:
1. **Экспортируйте каждый объект отдельно** — People, Companies, Opportunities и т. д.
2. **Включайте поля с ID** — они помогают сохранять связи
3. **Задокументируйте сопоставления полей** — отметьте, как поля Twenty соответствуют вашей целевой системе
## Обработка больших наборов данных (20 000+ записей)
Лимит экспорта — 20 000 записей. Для больших наборов данных:
### Вариант 1: Экспорт партиями
1. Добавьте фильтр (например, диапазоны "Created date")
2. Экспортируйте первую партию
3. Измените фильтр
4. Экспортируйте следующую партию
5. Объедините файлы в вашей таблице
**Примеры фильтров для разбиения на партии:**
* По диапазону дат (январь, февраль, март...)
* По владельцу (участник команды A, участник команды B...)
* По статусу (Активен, Неактивен...)
### Вариант 2: Используйте API
В API нет ограничения по числу записей:
1. Получите ключ API в **Настройки → Разработчики**
2. Используйте GraphQL API для выборки записей
3. Обрабатывайте результаты в вашем приложении
См.: [Документация по API](/l/ru/developers/extend/api)
## Советы и лучшие практики
### Создавайте представления для экспорта
Сохраняйте представления, специально настроенные для экспорта:
1. Настройте столбцы и фильтры
2. Нажмите **Параметры представления** → **Сохранить как новое представление**
3. Назовите его "Export - [Purpose]"
### Защитите экспортируемые данные
Экспортированные файлы могут содержать конфиденциальные данные:
* Храните в защищенных местах
* Удаляйте старые экспортированные файлы, когда они больше не нужны
* Будьте осторожны при обмене экспортированными файлами
### Проверьте перед экспортом
<Check>Отображаются нужные столбцы</Check>
<Check>Фильтры настроены корректно (или отключены для полного экспорта)</Check>
<Check>У вас есть разрешение на экспорт</Check>
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Почему в моем экспорте отсутствуют некоторые столбцы?">
Экспортируются только видимые столбцы. Перед экспортом добавьте нужные столбцы через **Параметры → Поля**.
</Accordion>
<Accordion title="Почему мой экспорт содержит не все записи?">
Проверьте ваши фильтры. Экспорт включает только записи, соответствующие фильтрам вашего текущего представления. Удалите фильтры, чтобы экспортировать все записи.
</Accordion>
<Accordion title="Могу ли я экспортировать более 20 000 записей?">
Не одним экспортом. Используйте фильтры для экспорта партиями или используйте API для больших наборов данных.
</Accordion>
<Accordion title="В каком формате файл экспорта?">
CSV (значения, разделенные запятыми). Открывается в Excel, Google Sheets или любом табличном приложении.
</Accordion>
<Accordion title="Включаются ли идентификаторы связей?">
Да, но только на стороне "many" в связях. Например, экспорт People включает `companyId`, а экспорт Companies не включает ID людей.
</Accordion>
<Accordion title="Могу ли я автоматизировать экспорт?">
Не напрямую через интерфейс. Используйте API, чтобы создать автоматизированные рабочие процессы экспорта.
</Accordion>
</AccordionGroup>
## Следующие шаги
* [Как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) — отредактируйте и импортируйте ваш экспорт повторно
* [Как импортировать данные через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api) — для больших наборов данных
* [Документация по API](/l/ru/developers/extend/api) — создавайте собственные рабочие процессы экспорта

View File

@@ -0,0 +1,430 @@
---
title: Устранение ошибок импорта
description: Полное руководство по устранению ошибок импорта CSV.
---
## Обзор
Импорт не работает? Это руководство поможет вам поэтапно выявлять и устранять распространённые ошибки импорта.
## Как работает проверка импорта
После загрузки файла и сопоставления столбцов Twenty проверяет ваши данные:
1. **Запускается проверка** — Twenty проверяет каждую строку на ошибки
2. **Ошибки подсвечиваются** — проблемные строки отображаются **жёлтым**
3. **Исправляйте на месте** — редактируйте ячейки прямо в интерфейсе импорта
4. **Или удалите строки** — полностью пропустите проблемные записи
<Note>**Исправляйте ошибки в интерфейсе.** Вам не нужно возвращаться к своей таблице. Редактируйте ячейки прямо во время импорта, чтобы сэкономить время.</Note>
## Пошаговое устранение неполадок
### Шаг 1: Определите тип ошибки
Нажмите на подсвеченную строку, чтобы увидеть конкретное сообщение об ошибке. Распространённые типы ошибок:
| Сообщение об ошибке | Что это означает |
| ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Дублирующиеся значения, подсвеченные жёлтым | Значение уже существует в Twenty или встречается дважды в вашем файле |
| `{field} не является допустимым {type}` (наведите курсор на жёлтую ячейку) | Данные не соответствуют ожидаемому формату |
| Подсвечено обязательное поле | Обязательное поле пусто |
| `Не удаётся подключиться к {object}. Уникальная запись не найдена...` (импорт не удался) | Связанная запись не существует |
| `Слишком много записей. Разрешено не более 10000` (загрузка заблокирована) | В файле более 10 000 записей |
### Шаг 2: Исправьте ошибку
Следуйте приведённым ниже инструкциям для каждого типа ошибки.
---
## Ошибка: Дублирующееся значение
### Что вы увидите
Строки с дублирующимися значениями **подсвечиваются жёлтым** в интерфейсе импорта до начала импорта.
### Что это означает
Уникальное поле (email, домен) либо:
* Уже существует в Twenty
* Встречается дважды в вашем файле
### Как исправить
**Вариант 1: Измените дублирующееся значение**
1. Нажмите на ячейку с ошибкой
2. Измените на уникальное значение
3. Продолжайте импорт
**Вариант 2: Удалите строку-дубликат**
1. Нажмите X рядом со строкой
2. Эта строка будет пропущена при импорте
**Вариант 3: Разрешите Twenty обновить существующую запись**
1. Убедитесь, что ваш файл содержит уникальный идентификатор (`email`, `domain` или `id`)
2. Сопоставьте поле уникального идентификатора
3. Twenty обновит существующую запись вместо создания дубликата
<Note>
**Можно обновлять и уникальные поля.**
* Если вы оставите `id`, но измените `email` → адрес электронной почты будет обновлён
* Если вы оставите `email`, но измените `id` → идентификатор будет обновлён
Пока совпадает хотя бы один уникальный идентификатор, Twenty обновит запись.
</Note>
### Как предотвратить эту ошибку
Перед импортом:
1. Отсортируйте таблицу по уникальному полю
2. Удалите строки-дубликаты
3. Проверьте, существуют ли записи уже в Twenty
<Warning>
**Записи, помеченные как удалённые, учитываются при проверке уникальности.**
Откройте Командное меню → Просмотреть удалённые записи. Записи там по-прежнему учитываются при проверке уникальности. Удалите их окончательно или восстановите и обновите.
</Warning>
Подробнее: [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Ошибка: Неверный формат
### Что вы увидите
Значение ячейки подсвечено жёлтым. Наведите на него курсор, чтобы увидеть сообщение об ошибке:
```
{field name} is not a valid {field type}
```
### Что это означает
Данные не соответствуют ожидаемому формату для этого типа поля.
### Как исправить — по типам полей
#### Электронная почта
**Проблема:** Неверный формат email
**Решение:** Используйте формат `name@domain.com`
```
❌ john.smith@
❌ john smith@acme.com
✓ john.smith@acme.com
```
#### Домен
**Проблема:** Несогласованный формат может вызывать дубликаты
**Решение:** Используйте формат `https://domain.com` (рекомендуется)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
```
<Note>Все форматы допустимы, но `https://domain.com` рекомендуется, потому что он соответствует формату, используемому при синхронизации почты/календаря. Использование других форматов может привести к созданию дублирующихся компаний.</Note>
#### Дата
**Проблема:** Нераспознанный формат даты
**Решение:** Используйте формат `YYYY-MM-DD` последовательно по всему файлу
```
✓ 2024-03-15 (YYYY-MM-DD)
❌ 03/15/2024 (MM/DD/YYYY)
❌ 15/03/2024 (DD/MM/YYYY)
```
#### Телефон
**Проблема:** Отсутствуют обязательные столбцы
**Решение:** Добавьте все столбцы для телефонов
| Столбец | Пример |
| ---------------------------------------------- | ------------ |
| **Телефоны / Основной номер телефона** | `4159095555` |
| **Телефоны / Код страны основного номера** | `US` |
| **Телефоны / Телефонный код основного номера** | `+1` |
#### Логический тип
**Проблема:** Неверное логическое значение
**Решение:** Используйте прописные `TRUE` или `FALSE`
```
❌ true
❌ yes
❌ 1
✓ TRUE
✓ FALSE
```
#### Выбор / Множественный выбор
**Проблема:** Значение не совпадает с существующими опциями
**Решение:** Используйте **имена API**, а не отображаемые метки
Как найти имена API:
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект и поле
3. Включите **Расширенный режим** (переключатель внизу справа)
4. Используйте имя API (например, `OPTION_1`, а не "Option 1")
```
❌ High Priority
✓ HIGH_PRIORITY
```
#### Валюта
**Проблема:** Отсутствует сумма или код валюты
**Решение:** Заполните оба столбца
| Столбец | Пример |
| ------------------ | --------- |
| **Сумма / Сумма** | `1234.56` |
| **Сумма / Валюта** | `USD` |
#### Число
**Проблема:** Нечисловые символы
**Решение:** Только цифры, точка для десятичных дробей
```
❌ $1,234.56
❌ 1,234.56
✓ 1234.56
```
Полная справка по форматам: [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)
---
## Ошибка: Отсутствует обязательное поле
### Что вы увидите
Строка подсвечена жёлтым, а ячейка обязательного поля отмечена.
### Что это означает
В этой строке не заполнено обязательное поле.
### Как исправить
**Вариант 1: Введите значение**
1. Нажмите на пустую ячейку
2. Введите значение
3. Продолжайте импорт
**Вариант 2: Удалите строку**
1. Если данных нет, нажмите X, чтобы пропустить строку
### Как предотвратить эту ошибку
Перед импортом определите обязательные поля:
1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш объект
3. Проверьте, какие поля помечены как обязательные
---
## Ошибка: Связь не найдена
### Что вы увидите
Эта ошибка возникает **после начала импорта** — импорт завершается с сообщением вроде:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
Это означает, что в Twenty нет компании с таким идентификатором.
<Note>В отличие от других ошибок, эта не обнаруживается на этапе проверки данных. Импорт начнётся, а затем завершится с ошибкой, когда встретит отсутствующую связь.</Note>
### Что это означает
Вы пытаетесь сослаться на запись, которой не существует в Twenty.
### Как исправить
**Вариант 1: Сначала импортируйте родительские записи**
1. Отмените текущий импорт
2. Импортируйте родительские записи (например, Компании)
3. Затем импортируйте дочерние записи (например, Контакты)
**Вариант 2: Исправьте ссылочное значение**
1. Проверьте ссылочное значение в вашем файле
2. Убедитесь, что оно в точности совпадает с существующей записью
3. Проверьте формат: домены должны быть в виде `https://domain.com`
**Вариант 3: Удалите связь**
1. Очистите ячейку, чтобы импортировать без связи
2. Добавьте связь вручную позже
### Как предотвратить эту ошибку
1. **Импортируйте в правильном порядке:**
* Сначала — Компании
* Затем — Контакты (со ссылками на компании)
* Третьими — Возможности
2. **Проверьте ссылочные значения:**
* Экспортируйте родительские записи, чтобы получить точные идентификаторы
* Используйте формат домена `https://domain.com`
* Проверьте опечатки и учтите регистр
<Warning>
**Импорт завершится с ошибкой, если ссылка указывает на несуществующую запись.**
Всегда импортируйте родительские объекты перед дочерними объектами.
</Warning>
Подробнее: [Импорт связей](/l/ru/user-guide/data-migration/capabilities/import-relations)
---
## Ошибка: Слишком большой файл
### Что вы увидите
Эта ошибка появляется **при загрузке файла** — загрузка полностью блокируется:
```
Too many records. Up to 10000 allowed
```
Вы не сможете перейти к этапу проверки данных, пока не уменьшите размер файла.
### Что это означает
В вашем файле более 10 000 записей.
### Как исправить
**Вариант 1: Разделите на несколько файлов**
1. Разделите данные на файлы по 10 000 записей или меньше
2. Импортируйте каждый файл отдельно
3. Соблюдайте порядок импорта (Компании перед Контактами)
**Вариант 2: Используйте импорт через API**
Для очень больших наборов данных используйте API, у которого нет ограничения по количеству записей.
См.: [Как импортировать данные через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api)
---
## Ошибка: Поле не распознано
### Что это означает
Столбец в вашем файле нельзя сопоставить, потому что такого поля нет в Twenty.
### Как исправить
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект, который вы импортируете
3. Нажмите **+ Добавить поле**
4. Создайте настраиваемое поле с соответствующим типом
5. Загрузите файл повторно
<Note>Импорт CSV создаёт записи, а не поля. Все поля должны существовать до начала импорта.</Note>
---
## Ошибка: Пустая связь с пользователем
### Что это означает
Вы пытаетесь назначить запись пользователю (Owner, Assignee), но связь не сопоставляется.
### Распространённые причины
1. **Пользователь не принял приглашение** — пользователь ещё не существует в Twenty
2. **Используется ID пользователя из старой системы** — Twenty не может сопоставить идентификаторы из другой системы
3. **Неверный формат email** — адрес электронной почты не совпадает с аккаунтом пользователя в Twenty
### Как исправить
1. Убедитесь, что все пользователи **приняли приглашение** в ваше рабочее пространство Twenty
2. Используйте **адрес электронной почты** пользователя (не его имя и не ID из старой системы)
3. Используйте тот же адрес электронной почты, который использовался для присоединения к Twenty
<Warning>
**Пользователи должны принять приглашения до начала импорта.**
Если пользователь не принял приглашение, у записей, ссылающихся на него, будет пустая пользовательская связь.
</Warning>
---
## Контрольный список перед импортом
Избегайте ошибок, проверив следующее перед импортом:
### Требования к файлу
<Check>Файл в формате CSV, XLSX или XLS</Check>
<Check>В файле менее 10 000 записей</Check>
<Check>Файл использует кодировку UTF-8</Check>
### Качество данных
<Check>Нет дублирующихся адресов электронной почты (для Контактов)</Check>
<Check>Нет дублирующихся доменов (для Компаний)</Check>
<Check>Все даты используют единый формат</Check>
<Check>Все домены в формате `https://domain.com`</Check>
### Форматы полей
<Check>Логические поля используют `TRUE` или `FALSE` (прописные)</Check>
<Check>Поля типа Select используют имена API, а не отображаемые метки</Check>
<Check>Телефонные поля содержат все обязательные столбцы</Check>
<Check>Поля валюты содержат и сумму, и код валюты</Check>
### Связи
<Check>Родительские записи импортированы до дочерних записей</Check>
<Check>Столбцы со связями ссылаются на существующие записи</Check>
<Check>Формат домена точно соответствует формату Twenty</Check>
### Модель данных
<Check>Все настраиваемые поля существуют в Настройки → Модель данных</Check>
<Check>Опции для Select созданы до импорта</Check>
---
## Всё ещё возникают проблемы?
Если вы попробовали решения выше:
1. **Скачайте пример файла** — посмотрите точный формат, который ожидает Twenty
2. **Экспортируйте существующие записи** — сравните свой файл с рабочими данными
3. **Протестируйте на небольшой выборке** — сначала попробуйте 5–10 строк
4. **Ознакомьтесь со справочными статьями:**
* [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)
* [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Импорт связей](/l/ru/user-guide/data-migration/capabilities/import-relations)
* [Обработка ошибок](/l/ru/user-guide/data-migration/capabilities/error-handling)

View File

@@ -0,0 +1,201 @@
---
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)

View File

@@ -0,0 +1,242 @@
---
title: Импорт контактов через CSV
description: Полное пошаговое руководство по импорту людей/контактов в Twenty.
---
## Обзор
Это руководство проведет вас через процесс импорта ваших контактов (People) в Twenty.
## Перед началом
### Контрольный список предварительных требований
<Check>
Ваш файл в формате CSV, XLSX или XLS
</Check>
<Check>
В файле менее 10 000 записей
</Check>
<Check>
В вашем файле нет повторяющихся адресов электронной почты
</Check>
<Check>
**Компании импортированы первыми** (если вы связываете Людей с Компаниями)
</Check>
<Check>
Все пользовательские поля созданы в **Настройки → Модель данных**
</Check>
<Warning>
**Импортируйте Компании перед импортом Людей**
Если вы хотите связать Людей с Компаниями, сначала импортируйте Компании. Компания должна существовать до того, как вы сможете на неё сослаться.
</Warning>
## Шаг 1: Подготовьте данные контактов
### Обязательные и рекомендуемые поля
| Поле | Обязательно? | Формат | Заметки |
| ------------------------- | ------------- | ------------------ | ----------------------------------- |
| **Электронная почта** | Рекомендуется | `name@domain.com` | Должен быть уникальным |
| **Имя** | Рекомендуется | Текст | |
| **Фамилия** | Рекомендуется | Текст | |
| **Компания** | Необязательно | Домен или ID | Связывает с существующей Компанией |
| **Телефон** | Необязательно | Несколько столбцов | См. ниже |
| **Должность** | Необязательно | Текст | |
| **Пользовательские поля** | Необязательно | Различается | Должны существовать в модели данных |
### Формат электронной почты
* Должен быть корректный формат электронной почты: `name@domain.com`
* **Должен быть уникальным** — без дубликатов в вашем файле или в Twenty
* Для дополнительных адресов используйте столбец **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Формат телефона
Телефон — это **вложенное поле**, требующее нескольких столбцов:
| Столбец | Пример |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Связывание с компаниями
Добавьте столбец с уникальным идентификатором компании:
| Название столбца | Формат | Пример |
| ---------------- | ---------- | -------------------------------------- |
| `companyDomain` | Формат URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Используйте формат URL домена** (`https://acme.com`), а не метку. Это соответствует тому, как Компании хранятся в Twenty.
</Note>
### Пример структуры CSV
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
John,Smith,john@acme.com,CEO,https://acme.com,4159095555,US
Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<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** для столбцов, которые вы не хотите импортировать
### Важные правила сопоставления
| Тип столбца | Сопоставить с | Заметки |
| --------------------------------------- | ------------------------------ | --------------------------------- |
| Ссылка на Компанию | Поле связи **Компания** | Используйте домен ИЛИ id, не оба |
| Электронная почта | **Электронная почта** | Основной адрес электронной почты |
| Дополнительные адреса электронной почты | **Emails / Additional Emails** | Формат массива |
| Телефон | Отдельные столбцы | Номер, код страны, телефонный код |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Сопоставление связи с Компанией
При сопоставлении столбца компании:
1. Найдите столбец ссылки на компанию (например, `companyDomain`)
2. Сопоставьте его с полем связи **Компания**
3. Twenty свяжет каждого человека с соответствующей Компанией
<Warning>
**Сопоставляйте только ОДИН уникальный идентификатор для связей.**
Не сопоставляйте одновременно `companyId` И `companyDomain`. Выберите один — предпочтительно домен, так как он понятен человеку.
</Warning>
## Шаг 5: Сопоставление значений полей Select
Если у вас есть поля Select или Multi-Select (например, Lead Source):
1. Twenty показывает ваши значения рядом с существующими вариантами
2. Сопоставьте каждое значение в вашем файле с вариантом Twenty
3. Или при необходимости создайте новые варианты
<Note>
Для вариантов Select используются **имена API**, а не отображаемые метки. Перейдите в **Настройки → Модель данных** → включите **Расширенный режим**, чтобы увидеть имена API.
</Note>
## Шаг 6: Проверьте и исправьте ошибки
Перед завершением импорта Twenty проверяет ваши данные:
1. Нажмите **Следующие шаги**
2. Строки с ошибками выделены **желтым**
3. **Исправляйте ошибки напрямую** — нажмите на ячейку и отредактируйте значение
4. **Удалите проблемные строки** — нажмите X, чтобы пропустить эту строку
### Распространенные ошибки импорта контактов
| Ошибка | Причина | Решение |
| ------------------------------------------------ | ----------------------------------------------------------- | -------------------------------------------------- |
| **Дублирующийся адрес электронной почты** | Адрес электронной почты уже существует в Twenty или в файле | Удалите дубликат или обновите существующую запись |
| **Недопустимый формат адреса электронной почты** | Неверный формат адреса электронной почты | Исправьте на `name@domain.com` |
| **Связь не найдена** | Компания не существует | Сначала импортируйте Компании или исправьте ссылку |
| **Отсутствует обязательное поле** | Обязательное поле пусто | Заполните значение или удалите строку |
## Шаг 7: Завершите импорт
1. Просмотрите сводку импорта
2. Нажмите **Подтвердить**, чтобы импортировать
3. Дождитесь завершения импорта
4. Проверьте, открыв несколько записей и их ссылки на Компанию
## После импорта контактов
Ваши контакты теперь в Twenty! Следующие шаги:
1. **Проверьте связи с Компанией** — откройте несколько записей Людей, чтобы убедиться, что они связаны с нужной Компанией
2. **Импортируйте Сделки** — при необходимости свяжите их с Людьми и Компаниями
3. **Настройте синхронизацию электронной почты** — подключите свой почтовый ящик, чтобы видеть историю писем в записях контактов
## Обновление существующих контактов
Чтобы обновлять контакты вместо создания новых:
1. Добавьте в файл столбец `email` или `id`
2. Twenty сопоставляет записи по этому уникальному идентификатору
3. Существующие контакты обновляются; новые создаются
См. [Как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) для подробностей.
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Почему у двух Людей не может быть один и тот же адрес электронной почты?">
Адрес электронной почты — уникальный идентификатор в Twenty. Это предотвращает дубли контактов и обеспечивает корректную привязку писем к нужному контакту при синхронизации электронной почты.
</Accordion>
<Accordion title="Что делать, если у некоторых Людей нет адреса электронной почты?">
Вы можете оставить поле email пустым. Однако мы рекомендуем по возможности добавлять адреса электронной почты для лучшего качества данных и корректной работы синхронизации электронной почты.
</Accordion>
<Accordion title="Как связать Людей с Компаниями при импорте?">
Добавьте столбец с доменом Компании (например, `https://acme.com`) или ID. При сопоставлении свяжите этот столбец с полем связи с Компанией.
</Accordion>
<Accordion title="Что, если Компания еще не существует?">
Сначала импортируйте Компании, затем импортируйте Людей. Компания должна существовать до того, как вы сможете на нее сослаться.
</Accordion>
<Accordion title="Можно ли импортировать ID из предыдущей CRM?">
Да! Создайте настраиваемое поле с пометкой "уникальное" в вашей модели данных для хранения внешнего ID. Примечание: имя поля `id` зарезервировано для внутреннего ID Twenty.
</Accordion>
<Accordion title="Как исправить ошибки 'relation not found'?">
Компания, на которую вы ссылаетесь, не существует. Либо сначала импортируйте Компанию, либо проверьте, что домен/ID в точности совпадает с существующей Компанией.
</Accordion>
</AccordionGroup>
## Устранение неполадок
Возникли проблемы? Проверьте:
* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,176 @@
---
title: Импорт данных через API
description: Когда и как использовать API Twenty для массового импорта данных.
---
## Обзор
Twenty предоставляет как **GraphQL**, так и **REST API** для программного импорта данных. Используйте API, когда импорт CSV непрактичен для вашего объёма данных или когда вам нужен автоматизированный регулярный импорт.
## Когда использовать импорт через API
| Сценарий | Рекомендуемый метод |
| ------------------------------------ | -------------------------------------------- |
| Менее 10,000 записей | Импорт CSV |
| 10,000 - 50,000 записей | Импорт CSV (разбить на файлы) |
| **50,000+ записей** | **Импорт через API** |
| Однократная миграция | Любой из вариантов (в зависимости от объёма) |
| **Регулярный импорт** | **Импорт через API** |
| **Синхронизация в реальном времени** | **Импорт через API** |
| **Интеграция с другими системами** | **Импорт через API** |
<Note>Для наборов данных в сотни тысяч записей API значительно быстрее и надёжнее, чем многократный импорт CSV.</Note>
## Лимиты скорости API
Twenty применяет лимиты скорости для обеспечения стабильности системы:
| Лимит | Значение |
| --------------------------------------- | ------------------ |
| **Запросов в минуту** | 100 |
| **Записей на один пакетный вызов** | 60 |
| **Максимальная пропускная способность** | ~6,000 записей/мин |
<Warning>
**Планируйте импорт с учётом этих ограничений.**
Для 100,000 записей при максимальной пропускной способности ожидайте примерно 17 минут на импорт. Добавьте запас времени на обработку ошибок и повторные попытки.
</Warning>
## Начало работы
### Шаг 1: Получите свой API-ключ
1. Перейдите в **Настройки → Разработчики**
2. Нажмите **+ Создать API-ключ**
3. Дайте вашему ключу информативное имя
4. Сразу скопируйте API-ключ (он больше не будет показан)
5. Храните его в защищённом месте
<Warning>
**Держите ваш API-ключ в секрете.**
Любой, у кого есть ваш API-ключ, может получить доступ к данным вашего рабочего пространства и изменять их. Никогда не добавляйте его в репозитории кода и не публикуйте публично.
</Warning>
### Шаг 2: Выберите API
Twenty поддерживает два типа API:
| API | Лучше всего подходит для | Документация |
| ----------- | ------------------------------------------------------------ | --------------------------------------------- |
| **GraphQL** | Гибкие запросы, получение связанных данных, сложные операции | [Документация по API](/l/ru/developers/extend/api) |
| **REST** | Простые операции CRUD, привычные шаблоны REST | [Документация по API](/l/ru/developers/extend/api) |
Оба API поддерживают:
* Создание, чтение, обновление и удаление записей
* **Пакетные операции** — создание или обновление до 60 записей за один вызов
**Для импорта используйте пакетные операции**, чтобы максимизировать пропускную способность в рамках лимитов.
### Шаг 3: Спланируйте порядок импорта
Как и при импорте CSV, для связей **важен порядок**:
1. **Компании** в первую очередь (без зависимостей)
2. **Контакты** во вторую очередь (могут быть связаны с компаниями)
3. **Возможности** в третью очередь (могут быть связаны с компаниями и контактами)
4. **Задачи/Заметки** (могут быть связаны с любым из вышеперечисленных)
5. **Пользовательские объекты** (с учётом их зависимостей)
## Лучшие практики
### Объединяйте запросы в пакеты
* Не отправляйте записи по одной
* Группируйте до **60 записей на один вызов API**
* Так вы максимально используете пропускную способность в рамках лимитов
### Обрабатывайте ограничения скорости
* Реализуйте задержки между запросами (минимум 600 мс для длительных импортов)
* При достижении лимитов используйте экспоненциальное увеличение интервала повторных попыток
* Отслеживайте ответы 429 (Too Many Requests)
### Сначала проверьте данные
* Очистите и проверьте данные перед импортом
* Проверьте, что обязательные поля заполнены
* Убедитесь, что форматы соответствуют требованиям Twenty (см. [Сопоставление полей](/l/ru/user-guide/data-migration/capabilities/field-mapping))
### Логируйте всё
* Логируйте каждую импортированную запись (включая идентификаторы)
* Логируйте ошибки с полным контекстом
* Это помогает устранять неполадки и подтверждать завершение
### Сначала протестируйте
* Протестируйте на небольшой выборке (10-20 записей)
* Проверьте, что данные корректно отображаются в Twenty
* Затем запустите полный импорт
### Upsert для предотвращения дубликатов
GraphQL API поддерживает **пакетный upsert** — обновление, если запись существует, и создание, если нет. Это предотвращает дубликаты при повторном запуске импорта.
## Поиск названий объектов и полей
Чтобы увидеть доступные объекты и поля:
1. Перейдите в **Настройки → API и вебхуки**
2. Просмотрите **Metadata API**
3. Просмотрите все стандартные и пользовательские объекты и их поля
В документации перечислены все стандартные и пользовательские объекты, их поля и ожидаемые типы данных.
## Профессиональные услуги
Для сложных миграций по API наши партнёры могут помочь:
| Услуга | Что включено |
| -------------------------------- | ------------------------------------------------- |
| **Проектирование модели данных** | проектирование оптимальной структуры данных |
| **Скрипты миграции** | написание и запуск скриптов импорта |
| **Преобразование данных** | обработка сложного сопоставления и очистки данных |
| **Проверка и контроль качества** | проверка завершённости миграции |
**Лучше всего подходит для:**
* Миграции объёмом 100 000+ записей
* Сложные преобразования данных
* Сжатые сроки
* Команды без ресурсов на разработку
Свяжитесь с нами по адресу [contact@twenty.com](mailto:contact@twenty.com) или изучите наши [услуги по внедрению](/l/ru/user-guide/getting-started/capabilities/implementation-services).
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="В чём разница между GraphQL и REST?">
GraphQL позволяет запрашивать ровно те данные, которые нужны, в одном запросе и лучше подходит для сложных операций. REST использует стандартные методы HTTP (GET, POST, PUT, DELETE) и может быть более привычен, если вы работали с традиционными API.
</Accordion>
<Accordion title="Могу ли я обновлять существующие записи через API?">
Да! Используйте мутации обновления (GraphQL) или запросы PUT/PATCH (REST) с `id` записи.
</Accordion>
<Accordion title="Как обрабатывать дубликаты?">
Сначала запросите существующие записи, используя уникальные идентификаторы (email, домен). Обновляйте, если запись существует, и создавайте, если нет.
</Accordion>
<Accordion title="Могу ли я удалять записи через API?">
Да, используйте мутации удаления (GraphQL) или запросы DELETE (REST).
</Accordion>
<Accordion title="Есть ли SDK для Python или Node.js?">
Пока нет, но оба API работают с любым HTTP-клиентом на любом языке.
</Accordion>
</AccordionGroup>
## Документация по API
Полная информация о реализации, примеры кода и справочник по схеме:
* [Документация по API](/l/ru/developers/extend/api)

View File

@@ -0,0 +1,225 @@
---
title: Импорт связей между объектами с помощью CSV
description: Полное пошаговое руководство по связыванию записей при импорте 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
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
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)

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>

View File

@@ -0,0 +1,173 @@
---
title: Миграция с локального на облако
description: Пошаговое руководство по миграции вашего самостоятельно размещённого экземпляра Twenty в Twenty Cloud.
---
## Обзор
В этом руководстве описан процесс переноса ваших данных из самостоятельно размещённого экземпляра Twenty в Twenty Cloud. Процесс включает настройку облачного рабочего пространства, экспорт данных и их повторный импорт.
<Note>Представления, рабочие процессы и роли необходимо воссоздать вручную после миграции. Запланируйте время на эту настройку.</Note>
## Шаг 1: Создайте облачное рабочее пространство
1. Перейдите на [app.twenty.com](https://app.twenty.com) и создайте новое рабочее пространство
2. Пройдите начальный мастер настройки
3. Запишите URL нового рабочего пространства
## Шаг 2: Воссоздайте модель данных
Перед импортом данных воссоздайте ваши пользовательские объекты и поля:
1. Перейдите в **Настройки → Модель данных** в вашем облачном экземпляре
2. Создайте пользовательские объекты, соответствующие вашей конфигурации в самостоятельно размещённом экземпляре
3. Добавьте пользовательские поля к стандартным и пользовательским объектам
4. Настройте параметры полей (уникальность, обязательность и т. д.)
<Note>Сделайте скриншоты модели данных вашего самостоятельно размещённого экземпляра для справки или держите оба экземпляра открытыми рядом.</Note>
## Шаг 3: Пригласите всех пользователей
<Warning>
**Важно: Пригласите пользователей ПЕРЕД импортом данных.**
Пользователи должны принять приглашения до импорта любых записей, которые на них ссылаются (например, поля владельца аккаунта). Если пользователи ещё не существуют, эти связи нельзя будет сопоставить.
</Warning>
1. Перейдите в **Настройки → Участники** в вашем облачном экземпляре
2. Пригласите всех участников команды, у которых были аккаунты в самостоятельно размещённой версии
3. **Дождитесь, пока все примут** приглашения
4. Проверьте, что все пользователи отображаются в списке «Участники»
## Шаг 4: Экспортируйте данные из самостоятельно размещённой версии
Экспортируйте каждый объект из вашего самостоятельно размещённого экземпляра:
1. Перейдите к каждому объекту (Компании, Люди, Возможности и т. д.)
2. Настройте представление так, чтобы отображались **все столбцы**, которые вы хотите перенести
3. Нажмите **⋮ → Экспорт представления**
4. Сохраните каждый CSV-файл с понятным именем (например, `companies-export.csv`)
**Экспортируйте в следующем порядке** (для справки при импорте):
1. Компании
2. Люди
3. Возможности
4. Пользовательские объекты (с учётом зависимостей)
5. Задачи, заметки
## Шаг 5: Обновите ссылки на участников рабочего пространства
Экспортированные CSV-файлы содержат идентификаторы пользователей из вашего самостоятельно размещённого экземпляра. Эти идентификаторы не совпадут с облачным экземпляром, поэтому их нужно заменить на адреса электронной почты.
**Для каждого CSV-файла со ссылками на пользователей (владелец, исполнитель и т. д.):**
1. Откройте CSV в табличном редакторе
2. Добавьте новый столбец рядом с каждым столбцом идентификатора пользователя (например, `accountOwnerEmail` рядом с `accountOwnerId`)
3. Укажите **адрес электронной почты** каждого пользователя
4. Вы можете удалить старый столбец с идентификатором или оставить его (при импорте он будет пропущен)
**Пример:**
До:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
После:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>Используйте те же адреса электронной почты, которые пользователи использовали для принятия приглашения в облачное рабочее пространство.</Note>
## Шаг 6: Спланируйте порядок импорта
Импортируйте файлы в правильном порядке, чтобы сохранить связи:
1. **Компании** в первую очередь (без зависимостей)
2. **Люди** во вторую очередь (связь с компаниями)
3. **Возможности** в третью очередь (связь с компаниями и людьми)
4. **Пользовательские объекты** (с учётом зависимостей)
5. **Задачи и заметки** в последнюю очередь (связь с другими записями)
См. [как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) для подробностей о сохранении связей.
## Шаг 7: Импорт в облако
Для каждого CSV-файла, по порядку:
1. Перейдите к объекту в вашем облачном экземпляре
2. Нажмите **⋮ → Импорт записей**
3. Загрузите файл CSV
4. Сопоставьте столбцы с полями:
* Сопоставьте столбцы с адресами электронной почты пользователей соответствующим полям связей
* Сопоставьте остальные столбцы как обычно
5. Проверьте и исправьте любые ошибки
6. Подтвердите импорт
7. Проверьте несколько записей, прежде чем переходить к следующему файлу
## Шаг 8: Воссоздайте конфигурацию
После импорта данных вручную воссоздайте:
### Представления
* Воссоздайте сохранённые представления с фильтрами, сортировками и настройками столбцов
* Настройте канбан- и календарные представления
### Рабочие процессы
* Воссоздайте автоматизации в **Настройки → Рабочие процессы**
* Протестируйте каждый рабочий процесс, прежде чем полагаться на него
### Роли и разрешения
* Настройте роли в **Настройки → Участники → Роли**
* Назначьте пользователям соответствующие роли
### Интеграции
* Подключите заново синхронизацию почты и календаря для каждого пользователя
* Перенастройте любые интеграции API с новыми ключами API
## Послемиграционный контрольный список
<Check>Все данные успешно импортированы</Check>
<Check>Связи между объектами работают корректно</Check>
<Check>Назначения пользователей (владелец, исполнитель) сопоставлены корректно</Check>
<Check>Представления воссозданы</Check>
<Check>Рабочие процессы воссозданы и протестированы</Check>
<Check>Роли и разрешения настроены</Check>
<Check>Синхронизация почты/календаря восстановлена</Check>
<Check>Интеграции API обновлены новыми ключами</Check>
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Можно ли автоматически перенести рабочие процессы?">
Пока нет. Рабочие процессы необходимо воссоздать вручную в вашем облачном экземпляре.
</Accordion>
<Accordion title="Что насчёт вложений и изображений?">
Вложения не включаются в экспорт CSV. Вам потребуется повторно загрузить все вложения вручную, перенести их через API или связаться с нашей командой для помощи при крупных миграциях.
</Accordion>
<Accordion title="Можно ли держать оба экземпляра запущенными во время миграции?">
Да, мы рекомендуем оставлять самостоятельно размещённый экземпляр запущенным, пока вы не убедитесь, что миграция в облако завершена. Просто следите, чтобы не создавать новые данные в обеих системах.
</Accordion>
<Accordion title="Что делать, если пользователь ещё не принял приглашение?">
Записи, ссылающиеся на этого пользователя, не будут импортированы, либо связь останется пустой. Убедитесь, что все пользователи приняли приглашения перед импортом данных.
</Accordion>
</AccordionGroup>
## Нужна Помощь?
<Tip>
Мигрируете крупное или сложное рабочее пространство? [Найдите сертифицированного партнёра Twenty](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud), который возьмёт перенос на себя от начала и до конца. *(Или подключите нашу команду: [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>

View File

@@ -0,0 +1,267 @@
---
title: Подготовить файлы CSV
description: Полное пошаговое руководство по форматированию ваших данных для импорта в Twenty.
---
## Обзор
Это руководство проведет вас через подготовку файла CSV для успешного импорта. Следуйте этим шагам, чтобы избежать ошибок.
## Шаг 1: Проверьте требования к файлу
Прежде чем начать, убедитесь, что ваш файл соответствует этим требованиям:
| Требование | Подробности |
| ----------------------- | ------------------------ |
| **Формат** | CSV, XLSX или XLS |
| **Ограничение размера** | 10 000 записей на файл |
| **Кодировка** | Рекомендуется UTF-8 |
| **Структура** | Один тип объекта на файл |
<Note>Для наборов данных более 10 000 записей разделите их на несколько файлов или используйте [импорт через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## Шаг 2: Скачайте образец файла
**Это самый важный шаг.** Образец файла показывает точные названия столбцов и формат, который ожидает Twenty.
1. Перейдите к объекту (Люди, Компании и т. д.)
2. Нажмите **⋮** → **Импортировать записи**
3. Нажмите **Скачать образец файла**
4. Используйте этот файл как шаблон
<Note>**Профессиональный совет:** Экспортируйте несколько существующих записей. Это даст вам реальные примеры того, как должны быть отформатированы данные, а названия столбцов будут сопоставлены автоматически во время импорта.</Note>
## Шаг 3: Удалите повторяющиеся значения
Twenty требует уникальности для некоторых полей. Дубликаты вызовут ошибки импорта.
| Объект | Уникальные поля |
| ---------------------------- | ------------------------------------------------------------ |
| **Люди** | `id`, `email` |
| **Компании** | `id`, `domain` |
| **Пользовательские объекты** | `id`, а также любое поле, которое вы пометили как уникальное |
**Перед импортом:**
1. Отсортируйте таблицу по уникальному полю (email или домен)
2. Удалите или объедините дублирующиеся строки
3. Проверьте наличие дубликатов, которые уже существуют в Twenty
<Warning>**Записи, помеченные как удалённые, учитываются при проверке уникальности.** Записи в Командном меню → Просмотреть удалённые записи вызовут ошибки из‑за дубликатов. Удалите их окончательно или восстановите и обновите.</Warning>
## Шаг 4: Правильно отформатируйте каждый тип поля
Разные типы полей требуют специфического формата. Полная справка:
### Текстовые поля
* Специальное форматирование не требуется
* Начальные и конечные пробелы автоматически удаляются
### Поля электронной почты
* Должны быть в корректном формате email: `name@domain.com`
* Должны быть уникальными (без дубликатов в файле и в Twenty)
* Для дополнительных адресов используйте этот формат в столбце **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Поля домена
* **Рекомендуемый формат**: `https://domain.com`
* Это соответствует формату, используемому синхронизацией почты/календаря (предотвращает дубликаты)
* Заполните оба столбца:
* **Domain / Domain Label**: `domain.com`
* **Domain / Domain URL**: `https://domain.com`
* Должны быть уникальными в вашем файле и в Twenty
### Поля телефона
Телефон — это **вложенное поле**, требующее нескольких столбцов:
| Столбец | Пример |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Поля адреса
Адрес — это **вложенное поле** с несколькими столбцами (некоторые можно оставить пустыми):
* **Адрес / Адрес 1**: Первая строка адреса
* **Адрес / Адрес 2**: Вторая строка адреса (необязательно)
* **Адрес / Город**: Название города
* **Адрес / Штат**: Штат или провинция
* **Адрес / Страна**: Название страны
* **Адрес / Почтовый индекс**: Почтовый индекс/ZIP-код
### Поля даты
Используйте единый формат по всему файлу:
* `YYYY-MM-DD` (рекомендуется): `2024-03-15`
* ISO 8601: `2024-03-15T10:30:00Z`
### Числовые поля
* Только числа (без текста)
* Используйте точку в качестве десятичного разделителя: `1234.56`
* Без разделителей тысяч (не `1,234.56`)
### Валютные поля
Валюта — это **вложенное поле**, требующее двух столбцов, которые **оба должны быть заполнены**:
| Столбец | Пример |
| ------------------ | --------- |
| **Сумма / Сумма** | `1234.56` |
| **Сумма / Валюта** | `USD` |
### Булевы поля
Используйте верхний регистр: `TRUE` или `FALSE`
<Warning>Строчные `true` или `false` не будут работать.</Warning>
### Выбор полей
Используйте **имя API** варианта, а не отображаемую метку.
**Как найти имена API:**
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект и поле
3. Включите **Расширенный режим** (переключатель внизу справа)
4. Скопируйте имя API (например, `OPTION_1`, а не "Option 1")
<Note>Новые варианты списка не создаются автоматически. Добавьте их в **Настройки → Модель данных** перед импортом.</Note>
### Поля множественного выбора
Используйте имена API в формате массива:
```
["VALUE1","VALUE2"]
```
### Поля массива
Используйте формат массива JSON:
```
["value1","value2"]
```
### Поля рейтинга
Используйте формат: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4` или `RATING_5`
### Поля ссылок/URL
Заполните оба столбца:
* **Ссылки / Метка ссылки**: `Twenty`
* **Ссылки / URL ссылки**: `https://twenty.com`
Для дополнительных ссылок используйте столбец **Ссылки / Дополнительные ссылки**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Поля JSON
Используйте допустимый формат JSON:
```
{"key":"value","key2":"value2"}
```
### Поля идентификаторов
* **Необязательно**: Twenty автоматически генерирует идентификаторы, если они не указаны
* **Формат**: UUID (например, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Сценарий использования**: укажите идентификатор, чтобы обновить существующие записи вместо создания новых
## Шаг 5: Добавьте столбцы связей (если связываете записи)
Чтобы связать записи с другими объектами (например, контакты с компаниями), добавьте столбец с уникальным идентификатором связанной записи.
**Пример**: связывание контактов с компаниями
Добавьте столбец в CSV контактов:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Важные правила для связей:**
* Родительская запись должна уже существовать в Twenty
* Используйте формат URL домена (`https://domain.com`), а не метку
* Сопоставляйте только ОДИН уникальный идентификатор (не указывайте одновременно `companyId` И `companyDomain`)
* Для участников рабочей области используйте их email (а не имя)
<Warning>
**Порядок импорта имеет значение!**
Сначала импортируйте сторону «один», затем сторону «многие»:
1. Сначала — **Компании**
2. Затем — **Контакты** (со ссылкой на компанию)
3. Третьими — **Возможности**
Родительская запись должна существовать до того, как вы сможете на неё сослаться.
</Warning>
См. [как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) для подробных инструкций.
## Шаг 6: Убедитесь, что поля существуют в Twenty
Импорт создаёт записи, а не поля. Все поля, которые вы хотите импортировать, должны уже существовать в вашей модели данных.
**Перед импортом:**
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект
3. Создайте все необходимые пользовательские поля
4. Запишите точные названия полей (они должны совпадать с заголовками столбцов)
## Шаг 7: Итоговый контрольный список
Перед загрузкой файла убедитесь, что:
<Check>Файл в формате CSV, XLSX или XLS</Check>
<Check>В файле менее 10 000 записей</Check>
<Check>Кодировка — UTF-8</Check>
<Check>Нет повторяющихся email-адресов (для контактов) или доменов (для компаний)</Check>
<Check>Даты используют единый формат по всему файлу</Check>
<Check>Домены в формате `https://domain.com`</Check>
<Check>Булевы поля используют `TRUE` или `FALSE` (в верхнем регистре)</Check>
<Check>Поля выбора используют имена API, а не отображаемые метки</Check>
<Check>Все пользовательские поля существуют в Настройках → Модели данных</Check>
<Check>Родительские записи импортированы до дочерних</Check>
<Check>Столбцы связей ссылаются на существующие записи</Check>
## Распространённые ошибки, которых следует избегать
| Ошибка | Решение |
| ---------------------------------------------------- | -------------------------------------------------- |
| Использование `true` вместо `TRUE` | Логические значения должны быть в верхнем регистре |
| Использование отображаемых меток для полей выбора | Найдите и используйте имена API в Настройках |
| Импорт контактов раньше компаний | Всегда импортируйте сначала родительские объекты |
| Отсутствует код валюты для валютных полей | Заполните столбцы «Сумма» и «Валюта» |
| Неверный формат домена | Последовательно используйте `https://domain.com` |
| Сопоставление нескольких уникальных полей для связей | Сопоставляйте только ОДИН (домен ИЛИ id, не оба) |
## Следующие шаги
Ваш файл готов! Теперь:
* [Импорт компаний](/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/fix-import-errors)

View File

@@ -0,0 +1,198 @@
---
title: Обновление существующих записей через импорт
description: Полное пошаговое руководство по массовому обновлению записей с помощью импорта CSV.
---
## Обзор
Нужно обновить много записей сразу? Вместо того чтобы редактировать их по одной, используйте импорт CSV для массового обновления существующих записей.
**Сценарии использования:**
* Обновить должности для нескольких людей
* Массово изменить информацию о компаниях
* Добавить данные в новые настраиваемые поля
* Исправить ошибки данных во множестве записей
## Как это работает
Когда вы импортируете файл, содержащий **уникальный идентификатор**, который совпадает с существующей записью, Twenty обновляет эту запись вместо создания дубликата.
| Если уникальный идентификатор... | Twenty выполнит... |
| -------------------------------- | ------------------------------------------------------------- |
| Совпадает с существующей записью | **Обновит** существующую запись |
| Не совпадает ни с одной записью | **Создаст** новую запись |
| Отсутствует в вашем файле | **Создаст** новую запись (с автоматически сгенерированным ID) |
<Warning>
**Поля с множественным выбором перезаписываются, а не объединяются.**
Если в записи выбраны `Option A` и `Option B`, и вы импортируете `["Option C"]`, после импорта в записи останется только `Option C`. Импорт заменяет все предыдущие выбранные значения — он не добавляет к ним новые.
Чтобы сохранить существующие значения, включите их все в импорт: `["Option A","Option B","Option C"]`
</Warning>
## Шаг 1: Экспортируйте текущие данные
Сначала экспортируйте записи, которые хотите обновить:
1. Перейдите к объекту (Люди, Компании и т. д.)
2. **Добавьте нужные столбцы** — нажмите **Options → Fields**, чтобы отобразить поля, которые хотите обновить
3. **При необходимости примените фильтр** — сузьте выборку до тех записей, которые хотите обновить
4. Нажмите **⋮** → **Экспорт представления**
5. Сохраните файл CSV
<Note>**Зачем сначала экспорт?** Экспортированный файл имеет корректный формат, включает уникальные идентификаторы и автоматически сопоставляется при импорте.</Note>
### Что экспортируется
* Все видимые столбцы в текущем представлении
* Уникальные идентификаторы записи (`id`, `email`, `domain`)
* Текущие значения полей, которые можно изменить
## Шаг 2: Отредактируйте файл CSV
Откройте экспортированный файл в табличном редакторе (Excel, Google Sheets и т. д.):
1. **Сохраните столбец с уникальным идентификатором** — не удаляйте `id`, `email` или `domain`
2. **Обновите значения** в столбцах, которые хотите изменить
3. **Удалите столбцы, которые не нужно обновлять** (необязательно, но так будет аккуратнее)
4. **Не изменяйте значения уникальных идентификаторов** — иначе Twenty создаст новые записи
### Пример: обновление должностей
**Экспортированный файл:**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Sales Rep
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Sales Rep
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**После ваших изменений:**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Account Executive
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Senior Account Executive
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Account Executive
```
<Warning>
**Не изменяйте значения уникальных идентификаторов.**
Если вы измените `john@acme.com` на `john.smith@acme.com`, Twenty создаст новую запись вместо обновления существующей.
</Warning>
## Шаг 3: Импортируйте обновлённый файл
1. Перейдите к объекту
2. Нажмите **⋮** → **Импорт записей**
3. Загрузите отредактированный файл CSV
4. **Убедитесь, что уникальный идентификатор сопоставлен** — проверьте, что `email`, `domain` или `id` сопоставлены корректно
5. Проверьте сопоставление полей
6. Проверьте наличие ошибок
7. Нажмите **Подтвердить**
Twenty сопоставляет записи по уникальному идентификатору и обновляет их новыми значениями.
## Выбор подходящего уникального идентификатора
| Объект | Рекомендуется | Альтернатива | Заметки |
| ---------------------------- | --------------------- | ------------ | ------------------------------------------------- |
| **Люди** | `электронная почта` | `id` | Email человекочитаем |
| **Компании** | `домен` | `id` | Домен человекочитаем |
| **Пользовательские объекты** | Любое уникальное поле | `id` | Используйте своё пользовательское уникальное поле |
<Note>**Используйте только ОДИН уникальный идентификатор.** Не сопоставляйте одновременно `email` И `id`. Это может привести к путанице и ошибкам.</Note>
### Использование пользовательских уникальных полей
Если у вас есть пользовательское поле, помеченное как уникальное (например, внешний ID из другой системы):
1. Включите это поле в экспорт и импорт
2. Сопоставьте его при импорте
3. Twenty будет сопоставлять по этому полю
## Шаг 4: Проверьте обновления
После импорта:
1. Откройте несколько обновлённых записей
2. Убедитесь, что изменения применены
3. Проверьте, что не были созданы дубликаты записей
## Что с полями, которых нет в вашем файле?
**Поля, не включённые в файл импорта, остаются без изменений.**
| Ваш файл включает... | Результат |
| ---------------------------- | --------------------------------------------------------------- |
| `email`, `jobTitle` | Обновляется только `jobTitle`; остальные поля остаются прежними |
| `email`, `jobTitle`, `phone` | Обновляются `jobTitle` и `phone` |
Это означает, что нужно включать только те поля, которые вы хотите изменить (плюс уникальный идентификатор).
## Совмещение обновлений и новых записей
Вы можете обновлять существующие записи И создавать новые в одном и том же импорте:
```csv
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Распространённые ошибки, которых следует избегать
| Ошибка | Проблема | Результат | Решение |
| ---------------------------------------- | ----------------------------------------------------- | -------------------------------------- | ------------------------------------------------------- |
| **Изменение уникального идентификатора** | Заменили `john@acme.com` на `john.smith@acme.com` | Создаёт новую запись вместо обновления | Не изменяйте уникальные идентификаторы |
| **Несколько уникальных полей** | Сопоставлены одновременно `email` И `id` | Возможные конфликты сопоставления | Сопоставляйте только ОДИН уникальный идентификатор |
| **Нет уникального идентификатора** | В файле только `firstName`, `lastName`, `jobTitle` | Все строки создают новые записи | Всегда включайте `email`, `domain` или `id` |
| **Несовпадение регистра** | В файле `John@acme.com`, а в Twenty — `john@acme.com` | Создаёт новую запись | Экспортируйте из Twenty, чтобы получить точные значения |
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Что, если некоторых записей ещё нет?">
Записи с уникальными идентификаторами, которые не совпадают с существующими, будут созданы как новые. Это позволяет обновлять и создавать в одном импорте.
</Accordion>
<Accordion title="Можно ли очистить значение поля?">
Да, оставьте ячейку пустой в вашем CSV. Импорт очистит значение этого поля в существующей записи.
</Accordion>
<Accordion title="Что происходит с полями, которые я не включаю в импорт?">
Поля, отсутствующие в файле импорта, остаются без изменений в существующих записях. Обновляются только включённые вами поля.
</Accordion>
<Accordion title="Можно ли обновлять поля связей (например, Company)?">
Да! Включите уникальный идентификатор связи (например, `companyDomain`) и сопоставьте его с полем связи. Связь будет обновлена.
</Accordion>
<Accordion title="Как узнать, какие записи будут обновлены, а какие созданы?">
На этапе проверки импорта Twenty показывает, сколько записей будет обновлено и сколько создано, исходя из совпадений уникальных идентификаторов.
</Accordion>
<Accordion title="Можно ли отменить массовое обновление?">
Автоматической отмены нет. Рекомендуем экспортировать ваши данные в качестве резервной копии перед массовыми обновлениями.
</Accordion>
</AccordionGroup>
## Лучшие практики
1. **Сначала экспорт** — всегда начинайте с экспорта, чтобы обеспечить корректный формат
2. **Создайте резервную копию перед обновлением** — экспортируйте данные перед массовыми изменениями
3. **Протестируйте на нескольких записях** — сначала попробуйте обновить 5–10 записей, прежде чем делать большой пакет
4. **Используйте человекочитаемые идентификаторы** — `email` и `domain` легче проверить, чем `id`
5. **Включайте только нужные столбцы** — меньше столбцов означает меньший риск ошибок
## Устранение неполадок
Возникли проблемы? Проверьте:
* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,83 @@
---
title: Миграция данных
description: Импортируйте и экспортируйте данные вашей CRM через файлы CSV или API.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Способы импорта
Twenty поддерживает два основных способа импорта данных:
| Метод | Лучше всего подходит | Ограничение объема |
| -------------- | ------------------------------------------- | ---------------------- |
| **Импорт CSV** | Стандартные миграции, регулярные обновления | 10 000 записей на файл |
| **Импорт API** | Крупномасштабные миграции, автоматизация | Без ограничений |
<Note>Для очень больших наборов данных (сотни тысяч записей) используйте API. Наши [партнеры по внедрению](/l/ru/user-guide/getting-started/capabilities/implementation-services) при необходимости помогут запустить эти скрипты.</Note>
## Основы импорта CSV
Вы можете импортировать данные для любого объекта, используя файлы CSV, XLSX или XLS. Каждый файл должен содержать **только один тип объекта** (например, только записи «Люди»).
<Note>**Поля должны существовать до импорта.** Загрузка CSV создает записи, но не создает поля. Если вам нужны настраиваемые поля, сначала создайте их в разделе **Settings → Data Model**.</Note>
### Шаги
1. Перейдите к объекту, в который вы хотите импортировать данные
2. Нажмите значок **⋮** в правом верхнем углу (это Командное меню) и выберите **Импорт записей**
3. Скачайте шаблон файла, чтобы убедиться, что ваши данные в ожидаемом формате
4. Загрузите подготовленный файл CSV
5. Сопоставьте ваши столбцы с полями Twenty
6. Просмотрите ошибки (выделены желтым) и исправьте их, редактируя прямо в интерфейсе
7. Подтвердите импорт
### Импорт связей между объектами
Вы можете импортировать связи между объектами с помощью функции импорта CSV. Вам нужно ссылаться на связанный объект, используя уникальное поле этого объекта: `id`, `email` для «Люди» и участников рабочего пространства, `domain` для компаний, либо любое другое поле, помеченное как уникальное в модели данных для любого другого объекта.
<Note>**Удаленные записи учитываются при проверке уникальности.** Мягко удаленные записи (видны в Командном меню → See deleted records) включаются в проверки уникальности. Если вы импортируете запись с тем же уникальным значением, что и у удаленной записи, удаленная запись будет восстановлена.</Note>
<Warning>
**Порядок импорта имеет значение!**
При импорте связанных объектов загружайте файлы в следующем порядке:
1. Сначала **Компании** (сторона «один» в отношениях)
2. **Люди** во вторую очередь (связаны с Компаниями через companyId)
3. **Сделки** в третью очередь (связаны с Компаниями/Людьми)
4. **Пользовательские объекты** со связями — в последнюю очередь
Почему? Сторона «один» в связи типа «один-ко-многим» должна существовать, прежде чем вы сможете на нее ссылаться. Например, запись компании должна существовать до импорта человека с идентификатором этой компании.
</Warning>
Обратитесь к [этой статье](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) за пошаговым руководством.
## Экспорт данных
Экспортируйте данные вашего рабочего пространства для резервного копирования, отчетности или миграции.
### Шаги
1. Перейдите к объекту, который вы хотите экспортировать
2. Настройте представление с нужными столбцами
3. Нажмите **⋮** → **Экспортировать представление**
4. Сохраните файл CSV
<Note>**Экспортируются только видимые столбцы.** Файл CSV будет содержать только столбцы, отображаемые в вашем текущем представлении. Добавьте или скройте столбцы перед экспортом, чтобы управлять тем, какие данные будут включены.</Note>
<Note>**Ограничения экспорта**: до 20 000 записей за один экспорт.</Note>
## Разрешения
Импорт и экспорт данных требуют определенных разрешений:
* **Импорт**: требуется разрешение "Import CSV"
* **Экспорт**: требуется разрешение "Export CSV"
Свяжитесь с администратором вашего рабочего пространства, если у вас нет этих разрешений.
## Следующие шаги
* [Подготовьте файлы CSV](/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [Импорт связей между объектами](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Импорт через API для больших наборов данных](/l/ru/user-guide/data-migration/how-tos/import-data-via-api)

View File

@@ -0,0 +1,122 @@
---
title: Поля
description: Разберитесь в роли полей и в том, как ими управлять.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## О полях
Поля похожи на столбцы в электронной таблице. Они хранят различные типы данных, такие как текст, числа или даты. Поля могут быть стандартными (встроенными) или пользовательскими (те, которые вы создаете).
### Стандартные Поля
Стандартные поля встроены в Twenty для решения общих бизнес-задач.
Например, `Имя` и `Фамилия` являются стандартными полями в объекте `Люди`. Они хранят текстовые данные для отдельных имен.
Вы не можете удалить стандартные поля, но можете деактивировать их, если они вам не нужны.
Вы также можете настраивать параметры стандартных полей типа `SELECT`, например параметры для поля `Stage` в «Сделках».
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}} />
### Пользовательские Поля
Пользовательские поля можно добавлять к любому объекту. Вы можете хранить текст, числа, даты, выпадающие списки и многое другое. Используйте пользовательские поля для отслеживания информации, специфичной для вашего бизнеса.
Например, пользовательское поле для SpaceX может быть `Статус Активности Ракеты`, указывающее, работает ли ракета.
<img src="/images/user-guide/fields/custom-fields.png" style={{width:'100%'}} />
## Типы полей
Twenty поддерживает различные типы полей:
| Тип | Описание | Пример |
| ------------------- | --------------------------------------------------------------------------------------- | --------------------------- |
| Адрес | Структурированный адрес с улицей, городом, штатом/регионом, страной и почтовым индексом | Адрес офиса |
| Массив | Список текстовых значений | Теги |
| Булево | Флажок «истина/ложь» | Активен |
| Валюта | Денежное значение с кодом валюты | Сумма сделки (USD) |
| Дата | Значения дат | Дата закрытия |
| Дата и время | Дата со временем | Время встречи |
| Домен | Домен сайта (используется для компаний) | acme.com |
| Электронная почта | Адреса электронной почты (основной + дополнительные) | Электронная почта контакта |
| JSON | Структурированные данные JSON | Пользовательские метаданные |
| Ссылки | URL-адреса с метками (основной + дополнительный) | Веб-сайт, LinkedIn |
| Длинный текст | Многострочный текст | Описание, примечания |
| Множественный выбор | Несколько вариантов из предопределенного списка | Теги, категории |
| Число | Числовые значения (целые или десятичные) | Количество, оценка |
| Телефон | Телефонные номера с кодом страны | Рабочий телефон |
| Рейтинг | Рейтинг в звездах (1–5) | Приоритет, оценка |
| Связь | Ссылки на записи в других объектах | Компания → Люди |
| Выбрать | Один вариант из предопределенного списка | Этап, статус |
| Текст | Однострочный текст | Имя, должность |
## Создать пользовательское поле
Чтобы добавить пользовательское поле к любому объекту, выполните следующие шаги:
1. Перейдите в `Настройки` в левой боковой панели.
2. Перейдите в `Модель Данных`, затем выберите объект, который хотите настроить.
3. Продолжайте, нажав `+ Новое Поле`.
4. Выберите имя и тип поля, которые подходят вашим требованиям. Рассмотрите возможность добавления описания поля для лучшего понимания.
Ваше новосозданное поле теперь доступно в приложении среди других полей. Чтобы отобразить его в конкретном представлении, откройте меню параметров, затем выберите `Поля`.
<VimeoEmbed videoId="927628219" title="Видеодемонстрация" />
**Быстрый способ:** Нажмите кнопку **+** в верхнем правом углу любой таблицы объектов, затем выберите `Настроить поля`. Это автоматически откроет настройки Модели Данных.
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}} />
## Деактивировать поле
Вы можете деактивировать поле, чтобы скрыть его из приложения, не потеряв ваши данные. Считайте, что это что-то вроде скрытия поля, а не его удаления.
Вот как это можно сделать:
1. Найдите поле, которое вы хотите деактивировать, в настройках вашего объекта.
2. Щелкните на три точки `⋮` рядом с полем, чтобы открыть меню.
3. Выберите `Деактивировать` из выпадающего списка.
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}} />
Что происходит, когда вы деактивируете поле?
1. **В приложении:** Поле исчезает, и вы не можете добавлять в него новые значения.
2. **Существующие связи:** Если это реляционное поле, существующие связи остаются, но вы не можете создавать новые.
3. **Доступ по API:** Вы все еще можете получить доступ к полю и его данным через API.
Вы можете реактивировать Стандартные и Пользовательские Поля или выбрать их окончательное удаление.
## Сделать поля уникальными
Уникальность поля гарантирует, что разные записи не могут иметь одно и то же значение. Например, адреса электронной почты уникальны для каждого человека.
Если вы получаете ошибку при установке уникальности, проверьте дублирующиеся значения в ваших данных (включая удаленные записи).
## Индексы (расширенный режим)
Индексы базы данных управляются автоматически — добавлять собственные почти никогда не требуется и при этом легко допустить ошибку. При включенном расширенном режиме у каждого объекта есть раздел **Индексы** в `Settings → Data Model → <object>` для случаев, когда вы знаете, что вам нужен индекс.
## Лучшие практики в настройке полей
### Именование и ограничения
* **Имена в единственном и множественном числе должны различаться**: наш GraphQL API требует различных имен для мутаций
* **Защищенные имена полей**: некоторые имена зарезервированы для использования системой (например, `Type`, `Application`)
### Поля для валюты и телефона
* **Валюта по умолчанию**: может быть настроена через модель данных
* **Коды стран по умолчанию**: можно настроить для телефонных полей через модель данных
### Выбор полей
* **Можно выбрать стандартный вариант** для каждого поля Select
### Записать текстовые поля
* **Каждый объект имеет одно основное поле отображения**: Это поле отображается в крайнем левом столбце и представляет запись при ее связи с другими объектами. Это должно быть текстовое поле. Например, Люди используют `Имя` как основное поле, поэтому при связи человека с компанией вы увидите его имя во встраивании компании.

View File

@@ -0,0 +1,92 @@
---
title: Объекты
description: Узнайте о стандартных и пользовательских объектах в Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Стандартные объекты
Стандартные объекты - это предварительно определенные сущности в вашем рабочем пространстве, которые помогут вам начать работу. Они являются частью общей модели данных, доступной всем пользователям Twenty. Вы можете использовать их как есть, настраивать их или деактивировать.
<img src="/images/user-guide/objects/standard-objects.png" style={{width:'100%'}} />
### Люди
Объект `People` хранит ваши контакты. Он включает в себя контактные данные и историю взаимодействия, чтобы вы могли видеть все ваши взаимодействия с клиентами в одном месте.
### Компании
Объект `Companies` хранит ваши бизнес-аккаунты. В него входят такие данные, как индустрия, размер и местоположение. Компания связана с объектами `People` и `Opportunities`.
### Возможности
Объект `Opportunities` хранит данные, связанные со сделками. Он отслеживает продвижение потенциальных продаж от поиска до закрытия, фиксируя этапы, размеры сделок, связанные учетные записи, и ожидаемую дату закрытия. Вы можете просмотреть вашу воронку продаж в виде канбана.
### Заметки
Объект `Notes` хранит произвольные заметки, которые можно прикреплять к записям «Люди», «Компании», «Сделки» и другим записям. Используйте заметки, чтобы фиксировать итоги встреч, важные подробности и другую контекстную информацию.
### Задачи
Объект `Tasks` хранит задачи и поручения. Задачи можно связывать с записями «Люди», «Компании», «Сделки» и другими записями. Отслеживайте сроки, исполнителей и статус выполнения, чтобы не упускать последующие действия.
## Пользовательские объекты
Пользовательские объекты позволяют хранить информацию, уникальную для вашей организации, с которой стандартные объекты не справляются. Например, если вы SpaceX, вы можете создать пользовательский объект для Ракет и Запусков.
<img src="/images/user-guide/objects/custom-objects.png" style={{width:'100%'}} />
### Создание нового пользовательского объекта
Чтобы создать новый пользовательский объект:
1. Перейдите в Настройки в боковой панели слева.
2. В рабочей области перейдите к модели данных. Здесь вы сможете увидеть обзор всех ваших существующих стандартных и пользовательских объектов (как активных, так и деактивированных).
<VimeoEmbed videoId="926288174" title="Видеодемонстрация" />
3. Нажмите на `+ Новый объект` вверху. Введите имя (как в единственном, так и во множественном числе), выберите значок и добавьте описание для вашего пользовательского объекта, а затем нажмите Сохранить (в правом верхнем углу). Используя Листинг как пример пользовательского объекта, единственное число будет "листинг", а множественное - "листинги", вместе с описанием, например, "Листинги, которые хозяева создали для показа своей собственности."
4. Ваш пользовательский объект создан и появится в боковой панели. Вы можете сразу начать добавлять в него записи.
## Управление объектами
### Деактивация объектов
Если вам не нужен стандартный или пользовательский объект:
1. Перейдите в Настройки → Модель данных
2. Найти объект, который вы хотите деактивировать и нажать на него
3. Перейти на вкладку **Настройки** объекта
4. Нажмите кнопку `Deactivate`
5. Объект будет скрыт в вашем рабочем пространстве, но данные сохранятся
### Повторная активация объектов
Чтобы вернуть деактивированный объект:
1. Перейдите в Настройки → Модель данных
2. Включить фильтр `Деактивированные`
3. Искать деактивированные объекты (у них есть `Деактивированные` рядом с их именем)
4. Щелкните `⋮`, а затем `Activate`, чтобы снова активировать его
5. Объект и все его данные будут восстановлены
## Лучшие практики
### Когда создавать пользовательские объекты
* **Уникальные бизнес-сущности**: Объекты, специфичные для вашей отрасли или процесса
* **Сложные связи**: Когда нужно отслеживать связи между несколькими сущностями
* **Масштабируемые данные**: Когда у чего-то может быть много экземпляров
### Когда лучше использовать поля
* **Простые атрибуты**: Свойства, описывающие существующие объекты
* **Категории или метки**: Способы классификации существующих записей
* **Одиночные значения**: Информация, которой не требуется собственный жизненный цикл
### Именование объектов
* **Используйте понятные, описательные названия**: Сделайте очевидным, что представляет собой объект
* **Следуйте соглашениям**: Используйте единственное число для названия объекта и множественное — для коллекции
* **Учитывайте свою команду**: Выбирайте названия, которые будут понятны всем

View File

@@ -0,0 +1,94 @@
---
title: Поля связи
description: Связывайте записи между разными объектами с помощью полей связи.
---
## Типы связей
### Один-ко-многим
Одна запись в объекте A может быть связана со многими записями в объекте B.
**Пример:** Одна Компания может иметь много Людей (сотрудников).
### Многие-к-одному
Много записей в объекте A могут быть связаны с одной записью в объекте B.
**Пример:** Многие Люди могут принадлежать одной Компании.
### Связи с несколькими типами объектов
Некоторые объекты могут быть связаны с несколькими типами объектов на одной стороне связи.
**Пример:** Заметка может одновременно быть прикреплена к одному Человеку И одной Компании И одной Сделке. Заметка — на стороне «многие», связываясь с несколькими сторонами «один».
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
Аналогично, Проект (на стороне «один») может получать связи от нескольких Людей, нескольких Компаний и нескольких Заметок.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Ограничение импорта/экспорта**: Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта CSV. Это запланировано в нашей дорожной карте.
</Warning>
### Многие-ко-многим
Много записей в объекте A могут быть связаны с множеством записей в объекте B.
**Пример:** Многие Люди могут быть связаны со многими Проектами, и наоборот.
Связи многие-ко-многим используют шаблон **объекта-связки**: промежуточный объект, который соединяет обе стороны. С функцией связей через объект-связку Twenty напрямую отображает конечные связанные записи, скрывая промежуточный объект из интерфейса.
<Warning>
**Бета-функция**: Связи через объект-связку необходимо включить в **Settings → Community → Features** перед использованием.
</Warning>
См. раздел [Как создать отношения «многие-ко-многим»](/l/ru/user-guide/data-model/how-tos/create-many-to-many-relations) для получения полного пошагового руководства.
## Создание поля связи
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект, в который вы хотите добавить связь
3. Нажмите **+ Новое поле**
4. Выберите **Связь** как тип поля
5. Выберите целевые объекты, с которыми нужно установить связь
6. Настройте параметры связи:
* **Имя поля на исходном объекте**: Название поля связи на объекте, который вы редактируете
* **Имя поля на целевом объекте**: Название поля связи, которое будет отображаться на целевом объекте
* Тип связи (один-ко-многим, многие-к-одному)
7. Нажмите **Сохранить**
## Стандартные связи
В Twenty есть предустановленные связи между стандартными объектами:
| Исходный объект | Целевой объект | Тип связи |
| --------------- | -------------- | --------------- |
| Люди | Компании | Многие-к-одному |
| Возможности | Компании | Многие-к-одному |
| Возможности | Люди | Многие-к-одному |
## Лучшие практики
### Планирование связей
* **Составьте карту модели данных**: Планируйте связи перед их созданием
* **Учитывайте направление**: Подумайте, какой объект «владеет» связью
* **Избегайте циклических зависимостей**: Поддерживайте модель данных в чистоте
### Именование связей
* **Используйте понятные названия**: Сделайте так, чтобы было ясно, что представляет собой связь
* **Соблюдайте последовательность**: Используйте единые шаблоны именования для всех связей
* **Учитывайте обе стороны**: Корректно назовите обе стороны связи
### Производительность
* **Не злоупотребляйте связями**: Слишком много связей может замедлить ваше рабочее пространство
## Ограничения
* **Удаление связей** удаляет связи, но не связанные записи
* **Циклических связей** следует избегать для обеспечения целостности данных

View File

@@ -0,0 +1,72 @@
---
title: Создание пользовательских полей
description: Пошаговое руководство по добавлению пользовательских полей в любой объект.
---
Пользовательские поля позволяют собирать информацию, характерную для вашего бизнеса. Добавляйте их в любой объект — стандартный или пользовательский.
## Шаги
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект, в который вы хотите добавить поле
3. Нажмите **+ Новое поле**
4. Выберите **тип поля** (все типы см. в разделе [Поля](/l/ru/user-guide/data-model/capabilities/fields))
5. Введите **имя поля** и при необходимости описание
6. Настройте параметры, специфичные для поля (см. ниже)
7. Нажмите **Сохранить**
**Быстрый способ:** нажмите **+** в конце заголовков столбцов в любом табличном представлении → **Настроить поля**.
## Отображение поля в представлениях
Новые поля не отображаются автоматически. Чтобы отобразить:
1. Откройте табличное представление объекта
2. Нажмите **Параметры → Поля**
3. Нажмите **значок глаза** рядом с вашим полем, чтобы отобразить его
4. Перетащите, чтобы изменить порядок
## Параметры настройки
### Для полей «Выбор» / «Множественный выбор»
1. Нажмите **+ Добавить вариант**, чтобы создать варианты выбора
2. При необходимости задайте **вариант по умолчанию**
3. Перетащите, чтобы изменить порядок вариантов
<Note>
**Используйте имена API для импорта.** Включите **Расширенный режим** в Настройках, чтобы видеть имена API. См. [Сопоставление полей](/l/ru/user-guide/data-migration/capabilities/field-mapping).
</Note>
### Для валютных полей
Установите **валюту по умолчанию** (USD, EUR и т. д.) для новых записей.
### Для телефонных полей
Установите **код страны по умолчанию** для автозаполнения новых телефонных номеров.
### Уникальность поля
Включите **Уникальность**, чтобы предотвратить дубли значений между записями.
<Note>
Если уже есть дубликаты (включая удалённые записи), вы получите ошибку. Сначала устраните дубликаты.
</Note>
### Установка значений по умолчанию
Для полей «Выбор» вы можете указать, какой вариант будет предварительно выбран для новых записей. Для полей «Флажок» задайте, будет ли он установлен или снят по умолчанию.
## Деактивация поля
1. Перейдите в **Настройки → Модель данных**
2. Найдите поле
3. Нажмите **⋮ → Деактивировать**
Данные сохраняются. Позже вы сможете повторно активировать или удалить навсегда.
## Связанные материалы
* [Поля](/l/ru/user-guide/data-model/capabilities/fields) — описание всех типов полей
* [Частые вопросы о модели данных](/l/ru/user-guide/data-model/how-tos/data-model-faq) — распространённые вопросы

View File

@@ -0,0 +1,51 @@
---
title: Создание пользовательских объектов
description: Пошаговое руководство по созданию пользовательских объектов в Twenty.
---
Пользовательские объекты позволяют хранить информацию, уникальную для вашего бизнеса, которую стандартные объекты не охватывают. Например: проекты, товары, заявки или объявления.
<Note>
**Не уверены, нужен объект или поле?** См. [Понимание вашей модели данных](/l/ru/user-guide/data-model/overview) для получения рекомендаций.
</Note>
## Шаги
1. Перейдите в **Настройки → Модель данных**
2. Нажмите **+ Добавить объект**
3. Заполните:
* **Имя в единственном числе** (например, "Listing")
* **Имя во множественном числе** (например, "Listings")
* **Иконка**
* **Описание** (необязательно)
4. Нажмите **Сохранить**
Ваш объект сразу появится в боковой панели.
## Далее: добавьте поля
Новые объекты изначально содержат базовые поля. Добавьте пользовательские поля, чтобы собирать нужные данные:
1. В разделе **Настройки → Модель данных** выберите свой объект
2. Нажмите **+ Новое поле**
3. Выберите тип поля, настройте и сохраните
См. [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields) для подробностей о типах полей и настройке.
## Связывание с другими объектами
Чтобы связать ваш объект с людьми, компаниями или другими объектами, создайте поле связи. См. [Как создать поля связей](/l/ru/user-guide/data-model/how-tos/create-relation-fields).
## Деактивация объекта
Если объект больше не нужен:
1. Перейдите в **Настройки → Модель данных → объект по вашему выбору → Настройки**
2. Нажмите на кнопку **Отключить**
Объект будет скрыт, но данные сохранятся. Позже вы сможете повторно активировать или удалить навсегда.
## Связанные материалы
* [Объекты](/l/ru/user-guide/data-model/capabilities/objects) — стандартные и пользовательские объекты
* [Частые вопросы о модели данных](/l/ru/user-guide/data-model/how-tos/data-model-faq) — распространённые вопросы

View File

@@ -0,0 +1,175 @@
---
title: Создание связей многие-ко-многим
description: Связывайте записи, где множество элементов по обе стороны могут быть связаны между собой с помощью объектов-связок.
---
Связи многие-ко-многим позволяют связывать несколько записей с обеих сторон. Например: много людей могут работать над многими проектами, и у каждого проекта может быть много людей.
<Warning>
**Бета-функция**: связи через объект-связку сейчас находятся в бета-версии. Включите их в **Настройки → Сообщество → Функции** прежде чем следовать этому руководству.
</Warning>
<Note>
Для этой функции также требуется включить **Расширенный режим** (переключатель внизу слева в Настройках).
</Note>
## Когда использовать связи многие-ко-многим
Используйте связь многие-ко-многим, когда обе стороны отношений могут иметь несколько связей:
| Связь | Пример |
| --------------- | --------------------------------------------------------------------------------------- |
| Люди ↔ Проекты | Один человек работает над несколькими проектами; у проекта несколько участников команды |
| Компании ↔ Теги | У компании может быть несколько тегов; один тег может относиться к нескольким компаниям |
| Товары ↔ Заказы | Товар может входить в несколько заказов; заказ содержит несколько товаров |
## Как это работает
Twenty использует шаблон **объекта-связки** для связей многие-ко-многим. Объект-связка находится между двумя объектами и хранит связи:
```
People ←→ Project Assignments ←→ Projects
```
У объекта **Project Assignments** (объект-связка) есть:
* Связь с Людьми (многие-к-одному)
* Связь с Проектами (многие-к-одному)
Когда вы включаете переключатель связи через объект-связку, Twenty отображает связанные записи напрямую вместо показа промежуточных записей объекта-связки.
## Требования
1. **Включите Junction Relations в Beta Features**: Перейдите в **Настройки → Сообщество → Функции** и включите **Junction Relations**
2. **Включите Расширенный режим**: переключите **Расширенный режим** внизу слева боковой панели Настроек
3. Спланируйте вашу модель данных:
* Какие два объекта вы соединяете?
* Как назвать объект-связку?
## Шаг 1: Создайте объект-связку
Сначала создайте промежуточный объект, который будет хранить связи.
1. Перейдите в **Настройки → Модель данных**
2. Нажмите **+ Добавить объект**
3. Дайте ему понятное имя (например, "Project Assignment", "Team Member", "Product Order")
4. Включите переключатель «Пропустить создание поля „Имя“»
<img src="/images/user-guide/fields/new-pivot-object.png" alt="Новый объект-связка" />
5. Нажмите **Сохранить**
<Tip>
**Рекомендации по именованию**: Используйте название, описывающее связь, например "Project Assignment" или "Team Membership". Так модель данных становится более понятной.
</Tip>
## Шаг 2: Создайте связи между объектами и объектом-связкой
Добавьте поля связи из каждого из двух объектов в объект-связку.
### Первая связь (Объект A → Объект-связка)
1. Выберите ваш первый объект в **Настройках → Модель данных**
2. Нажмите **+ Добавить связь**
3. Выберите объект-связку (например, "Назначения по проектам")
4. Установите тип связи **Один-ко-многим** (один человек может быть связан со многими назначениями)
5. Назовите поля:
* Поле в объекте Люди: например, "Project Assignments"
* Поле на объекте-связке: например, "Person"
6. Нажмите **Сохранить**
### Вторая связь (Объект B → Объект-связка)
1. Выберите ваш второй объект в **Настройках → Модель данных**
2. Нажмите **+ Добавить связь**
3. Выберите объект-связку (например, "Назначения по проектам")
4. Установите тип связи **Один-ко-многим** (один проект может быть связан со многими назначениями)
5. Включите **"Это связь с объектом-связкой"**
<img src="/images/user-guide/fields/junction-relation-toggle.png" style={{width:'100%'}} />
6. Назовите поля:
* Поле на объекте-связке: например, "Project"
* Поле в объекте Проекты: например, "Team Members"
7. Нажмите **Сохранить**
## Шаг 3: Настройте отображение связи через объект-связку
Теперь настройте исходные объекты так, чтобы отображать связанные записи напрямую, минуя промежуточный объект-связку.
1. Перейдите в **Настройки → Модель данных**
2. Выберите первый объект (например, "Люди")
3. Найдите поле связи, указывающее на объект-связку (например, "Project Assignments")
4. Нажмите, чтобы отредактировать поле
5. Включите **"Это связь с объектом-связкой"**
6. Выберите **Целевую связь** (например, "Project" — поле на объекте-связке, указывающее на другую сторону)
7. Нажмите **Сохранить**
## Результат
После настройки:
* В записи **Person** поле "Project Assignments" показывает **Проекты** напрямую (не записи назначений)
* В записи **Project** поле "Team Members" показывает **Людей** напрямую
Объект-связка по-прежнему существует и хранит связи, но интерфейс показывает более чистое представление многие-ко-многим.
## Пример: Люди ↔ Проекты
Полный пошаговый пример:
### Создайте объект-связку
* Имя: **Project Assignment**
* Описание: "Связывает людей с проектами, над которыми они работают"
### Добавьте связи
1. **Люди → Назначение на проект**
* Тип: Один-ко-многим
* Поле в объекте Люди: "Project Assignments"
* Поле в объекте Assignment: "Person"
2. **Проекты → Назначение на проект**
* Тип: Один-ко-многим
* Поле в объекте Проекты: "Team Members"
* Поле в объекте Assignment: "Project"
### Настройте отображение объекта-связки
1. В объекте **Люди**:
* Отредактируйте поле "Project Assignments"
* Включите переключатель объекта-связки
* Цель: "Project"
2. В объекте **Проекты**:
* Отредактируйте поле "Team Members"
* Включите переключатель объекта-связки
* Цель: "Person"
### Использование
* Откройте запись Person → Просмотрите её проекты напрямую
* Откройте запись Project → Просмотрите участников команды напрямую
* Создавайте новые связи с любой стороны
## Добавление дополнительных данных к связям
Поскольку объект-связка — это настоящий объект, вы можете добавить пользовательские поля для хранения информации о связи:
* **Роль**: "Developer", "Designer", "Manager"
* **Дата начала**: когда человек присоединился к проекту
* **Выделенные часы**: Еженедельное количество часов на этот проект
Чтобы получить доступ к этим данным, перейдите непосредственно к объекту-связке или выполните запрос к нему через API.
## Ограничения
* **Импорт/экспорт CSV**: Прямой импорт связей многие-ко-многим не поддерживается. Вместо этого импортируйте записи в объект-связку.
* **Фильтры**: Фильтрация по связям многие-ко-многим может иметь ограниченные возможности.
## Связанные материалы
* [Поля связей](/l/ru/user-guide/data-model/capabilities/relation-fields) — объяснение типов связей
* [Создание пользовательских объектов](/l/ru/user-guide/data-model/how-tos/create-custom-objects) — как создавать объекты
* [Создание полей связи](/l/ru/user-guide/data-model/how-tos/create-relation-fields) — базовая настройка связей

View File

@@ -0,0 +1,70 @@
---
title: Создание полей связи
description: Пошаговое руководство по связыванию объектов с помощью полей связи.
---
Поля связи соединяют записи из разных объектов — например, связывают контакты с компаниями.
<Note>
**Имена связей нельзя изменить после создания** (они влияют на API). Тщательно продумайте имена.
</Note>
## Перед началом
Решите:
* Какие объекты вы соединяете? (например, Контакты → Компании)
* Какая сторона — «один»? (например, Компания)
* Какая сторона — «многие»? (например, Контакты — много контактов работают в одной компании)
* Как должно называться поле на каждой стороне?
См. [Поля связей](/l/ru/user-guide/data-model/capabilities/relation-fields) — там объясняются типы связей.
## Шаги
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект, где нужна связь (обычно это сторона «многие»)
3. Нажмите **+ Новое поле**
4. Выберите **Связь** как тип поля
5. Выберите **целевой объект**
6. Выберите **Один-ко-многим** или **Многие-к-одному**
7. Введите названия полей для обеих сторон связи
8. Нажмите **Сохранить**
## Пример: Контакты → Компании
* Перейдите в **Настройки → Модель данных → Контакты**
* Добавьте поле связи
* Целевой объект: **Компании**
* Тип: **Многие-к-одному**
* Поле у Контактов: **Компания**
* Поле у Компаний: **Сотрудники**
Теперь каждый контакт может быть связан с компанией, и каждая компания показывает свои контакты.
## Деактивация связи
1. Перейдите в **Настройки → Модель данных → нужный объект**
2. Найдите поле связи и нажмите на него
3. Нажмите кнопку **Деактивировать**
Связи сохраняются, но скрыты. Повторно активируйте, чтобы восстановить.
<Note>
**Деактивация связи не удаляет записи.** Удаляется только связь между ними.
</Note>
## Удаление связи
1. Перейдите в **Настройки → Модель данных → нужный объект**
2. Найдите поле связи и нажмите на него
3. Нажмите кнопку **Удалить**
<Note>
Применяется только к пользовательским связям. Стандартные связи можно только деактивировать.
</Note>
## Связанные материалы
* [Поля связей](/l/ru/user-guide/data-model/capabilities/relation-fields) — типы и ограничения
* [Как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) — массовый импорт связанных записей

View File

@@ -0,0 +1,22 @@
---
title: Настройте свою модель данных
description: Обзор вариантов настройки модели данных.
---
Модель данных Twenty полностью настраиваемая. Создавайте объекты, поля и связи в соответствии с вашим бизнесом.
## Быстрые ссылки
| Я хочу... | Руководство |
| --------------------------- | -------------------------------------------------------------------------------------------- |
| Создать новый объект | [Как создать пользовательские объекты](/l/ru/user-guide/data-model/how-tos/create-custom-objects) |
| Добавить поля в объект | [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields) |
| Связать объекты между собой | [Как создать поля связей](/l/ru/user-guide/data-model/how-tos/create-relation-fields) |
## Подробнее
* [Понимание вашей модели данных](/l/ru/user-guide/data-model/overview) — ключевые концепции и советы по планированию
* [Объекты](/l/ru/user-guide/data-model/capabilities/objects) — стандартные и пользовательские объекты
* [Поля](/l/ru/user-guide/data-model/capabilities/fields) — все типы полей
* [Поля связей](/l/ru/user-guide/data-model/capabilities/relation-fields) — связывание объектов
* [Частые вопросы о модели данных](/l/ru/user-guide/data-model/how-tos/data-model-faq) — распространённые вопросы

View File

@@ -0,0 +1,157 @@
---
title: Часто задаваемые вопросы о модели данных
description: Часто задаваемые вопросы о модели данных Twenty.
---
## Управление объектами
<AccordionGroup>
<Accordion title="Могу ли я удалить пользовательский объект?">
Да, пользовательские объекты можно удалять. Вы также можете сначала деактивировать их, что скрывает объект и его данные из интерфейса, сохраняя при этом данные.
</Accordion>
<Accordion title="Могу ли я удалить стандартные объекты (Люди, Компании и т.д.)?">
Нет, стандартные объекты не могут быть удалены. Их можно только деактивировать: это скрывает их из интерфейса, но сохраняет данные.
</Accordion>
<Accordion title="Сколько пользовательских объектов я могу создать?">
Вы можете создать столько пользовательских объектов и полей, сколько вам нужно — цена не изменится.
</Accordion>
<Accordion title="Могу ли я переименовать стандартный объект?">
Вы можете переименовать метку стандартных объектов (Люди, Компании, Сделки), но не их имена API. Имена API фиксированы для единообразия во всех рабочих пространствах Twenty.
</Accordion>
<Accordion title="Могу ли я изменить значок объекта?">
Да, вы можете изменить значок как стандартных, так и пользовательских объектов в разделе **Настройки → Модель данных**.
</Accordion>
<Accordion title="Могу ли я переупорядочить объекты в левой панели навигации?">
Пока нет. На данный момент последовательность объектов фиксирована, но эта функция планируется в будущем выпуске.
</Accordion>
<Accordion title="Могу ли я скрыть объекты из левой панели навигации?">
Все активные объекты отображаются в навигации. Вы можете деактивировать ненужные объекты через **Настройки → Модель данных**.
</Accordion>
</AccordionGroup>
## Возможности полей
<AccordionGroup>
<Accordion title="Могу ли я изменить тип поля после создания?">
Нет, типы полей нельзя изменить после создания. Если вам нужен другой тип, создайте новое поле с правильным типом, перенесите данные, затем деактивируйте старое поле.
</Accordion>
<Accordion title="Почему мне нужны разные формы для единственного и множественного числа?">
Наш GraphQL API использует обе формы для различных операций:
* `createPerson` (единственное число) для действий с одной записью
* `createPeople` (множественное число) для массовых операций
Это создает ограничения, когда формы единственного и множественного числа совпадают, но улучшает опыт разработчика.
</Accordion>
<Accordion title="Почему некоторые названия полей защищены?">
Определенные названия полей, такие как `Тип` или `Приложение`, зарезервированы для системного использования. Выбирайте альтернативные названия, такие как `Категория` или `Классификация`.
</Accordion>
<Accordion title="Что происходит, когда я деактивирую поле?">
* Поле скрывается из интерфейса
* Существующие данные сохраняются
* Вы по-прежнему можете получить доступ к полю через API
* Существующие отношения сохраняются, но вы не можете создавать новые
* Вы можете повторно активировать поле позже
</Accordion>
<Accordion title="Могу ли я сделать поле обязательным?">
На данный момент сделать пользовательские поля обязательными нельзя. Все поля допускают пустые значения. Вы можете использовать рабочие процессы, чтобы обеспечить обязательность полей, отправляя уведомления или блокируя действия, когда поля пусты.
</Accordion>
<Accordion title="В чём разница между уникальным и обязательным?">
* **Уникальное**: две записи не могут иметь одно и то же значение в этом поле
* **Обязательное**: в поле должно быть значение (в настоящее время не поддерживается для пользовательских полей)
</Accordion>
<Accordion title="Могу ли я создавать поля-формулы?">
Формула поля наступают в **H2 2026**. До тех пор вы можете использовать рабочие процессы для автоматического вычисления и обновления значений полей.
</Accordion>
<Accordion title="Могу ли я использовать вложенные поля в моих объектах?">
Вложенные поля появляются в **H2 2026**. На данный момент вы можете использовать рабочие процессы для извлечения значений полей из связанных объектов. Например, чтобы отображать отрасль компании на записи Персоны, создайте пользовательское поле в Людях и используйте рабочий процесс для синхронизации значения.
</Accordion>
<Accordion title="Могу ли я переупорядочивать поля в объектах?">
Да, перейдите в Настройки → Модель данных → Объект по вашему выбору → Макет и нажмите **Настроить страницу записи**. Если эта кнопка отключена, вы должны создать запись.
</Accordion>
</AccordionGroup>
## Связи
<AccordionGroup>
<Accordion title="Могу ли я создать отношение, указывающее на тот же объект?">
Да! Отношения, ссылающиеся на тот же объект, поддерживаются и рекомендуются для таких случаев, как иерархии учётных записей. Например, создайте отношение из Компаний к Компаниям, чтобы отслеживать родительские и дочерние учётные записи.
</Accordion>
<Accordion title="Могу ли я создавать отношения многие-ко-многим?">
В **H2 2026** появятся отношения с многими. На данный момент создайте промежуточный объект с двумя отношениями один-ко-многим в качестве временного решения.
Например, чтобы связать Людей и Проекты (многие-ко-многим), создайте объект "Назначения по проектам" с:
* Связь с Людьми (много назначений → один человек)
* Связь с Проектами (много назначений → один проект)
</Accordion>
<Accordion title="Что такое отношения к нескольким типам объектов (Morph-отношения)?">
Они позволяют одному объекту связываться с несколькими различными типами объектов через одно поле. Например, Заметки могут одновременно быть прикреплены к Людям И Компаниям И Сделкам.
Каждая Заметка одновременно связана с одним Человеком, одной Компанией и одной Сделкой.
Подробнее см. в разделе [Поля связей](/l/ru/user-guide/data-model/capabilities/relation-fields).
</Accordion>
<Accordion title="Могу ли я создать несколько отношений между одними и теми же объектами?">
Да, вы можете создать несколько отношений между одними и теми же двумя объектами. Например, у Компании могут быть отношения "Основной контакт" и "Контакт для выставления счетов" к Людям.
</Accordion>
<Accordion title="Что происходит с отношениями, когда я удаляю запись?">
Когда вы удаляете запись, связь удаляется из связанных записей. Связанные записи не удаляются.
</Accordion>
<Accordion title="Могу ли я создать циклические отношения?">
Хотя это технически возможно, циклических отношений (A → B → C → A) следует избегать, поскольку они могут вызывать путаницу и потенциальные проблемы с производительностью.
</Accordion>
</AccordionGroup>
## Доступ и разрешения
<AccordionGroup>
<Accordion title="Где я могу увидеть и изменить мою модель данных?">
Перейдите в раздел **Настройки → Модель данных**, чтобы просмотреть и редактировать все свои объекты и поля.
</Accordion>
<Accordion title="Почему я не вижу Модель данных в настройках?">
Обратитесь к администратору вашего рабочего пространства. Доступ к модели данных обычно ограничен только администраторами.
</Accordion>
</AccordionGroup>
## Управление данными
<AccordionGroup>
<Accordion title="Есть ли ограничение на количество записей?">
Жёстких ограничений на количество записей нет. Однако очень большие наборы данных могут повлиять на производительность в некоторых представлениях. Используйте фильтры и представления, чтобы эффективно работать с большими наборами данных.
</Accordion>
<Accordion title="Могу ли я импортировать данные в пользовательские объекты?">
Да, вы можете импортировать данные CSV в любой объект, включая пользовательские объекты. Процесс импорта поддерживает сопоставление пользовательских полей. См. [как подготовить файлы CSV](/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files).
</Accordion>
<Accordion title="Могу ли я экспортировать конфигурацию модели данных?">
На данный момент встроенного экспорта конфигурации модели данных нет. Свяжитесь со службой поддержки, если вам нужно перенести модель данных между рабочими пространствами.
</Accordion>
<Accordion title="Сколько полей может иметь один объект?">
Максимальное количество полей, которое может иметь один объект, - 1600 полей в пределах одного объекта, включая как существующие, так и удаленные поля. Имейте в виду, что двадцать полей не будут исправлены в вашем проекте, если достигнут лимит в 1600 полей в соответствии с нашей политикой использования на ярмарке.
</Accordion>
</AccordionGroup>
## Нужна дополнительная помощь?
Ознакомьтесь с нашими [услугами по внедрению](/l/ru/user-guide/getting-started/capabilities/implementation-services), чтобы получить помощь в разработке сложной модели данных.

View File

@@ -0,0 +1,177 @@
---
title: Модель данных
description: Узнайте, что такое модель данных и как спроектировать её под ваш бизнес.
---
## Что такое модель данных?
Модель данных — это структура, определяющая, как информация организована в вашей CRM. Представьте это как **чертёж** ваших данных о клиентах — вы проектируете его один раз, а затем заполняете фактическими данными.
## Ключевые понятия
### Объекты
**Объекты** — это основные категории данных в вашей CRM. Каждый объект представляет тип сущности, которую вы хотите отслеживать.
В Twenty предусмотрены стандартные объекты:
* **People** — физические лица (контакты, лиды, партнёры)
* **Companies** — организации
* **Opportunities** — сделки или продажи
* **Примечания** — заметки, прикрепленные к записям
* **Tasks** — задачи, связанные с записями
Вы также можете создать **пользовательские объекты** для всего, что специфично для вашего бизнеса (например, Projects, Subscriptions, Events).
### Поля
**Поля** — это свойства или атрибуты, которые описывают каждый объект. Они хранят фактическую информацию.
Например, у объекта **People** есть такие поля, как:
* Имя
* Электронная почта
* Телефон
* Должность
* Company (связь с объектом Companies)
Поля имеют разные **типы**: текст, число, дата, список, множественный выбор, связь и другие. Вы можете добавлять пользовательские поля к любому объекту.
### Записи
**Записи** — это отдельные элементы внутри объекта — реальные данные, которые вы создаёте и которыми управляете.
Например:
* "John Smith" — это **запись** в объекте People
* "Acme Corp" — это **запись** в объекте Companies
**Аналогия:**
| Концепция модели данных | Аналогия из реального мира |
| ----------------------- | ---------------------------------------------- |
| **Объекты** | Разделы в книге (категории) |
| **Поля** | Столбцы в электронной таблице (свойства) |
| **Записи** | Строки в электронной таблице (реальные записи) |
Вы проектируете модель данных (объекты + поля) один раз, затем создаёте множество записей в рамках этой структуры.
## Зачем настраивать вашу модель данных?
Каждый бизнес работает по-своему. Настройка вашей модели данных означает, что вы можете адаптировать Twenty под **ваши** процессы, а не загонять их в жёсткую систему.
Twenty предоставляет полную гибкость:
* Создавайте столько пользовательских объектов, сколько вам нужно
* Добавляйте неограниченное количество пользовательских полей
* Цена не меняется в зависимости от настроек
## Советы по проектированию вашей модели данных
### 1. Начните с основных объектов
Определите основные сущности, с которыми вы работаете. В Twenty уже предусмотрено:
* **People** — ваши контакты
* **Companies** — ваши компании
* **Opportunities** — ваши сделки
Подумайте, что ещё может понадобиться:
* Stripe нужен объект `Subscriptions`
* Airbnb нужен объект `Trips`
* Акселератору нужен объект `Batches`
### 2. Используйте поля для вариаций, а не новые объекты
Если что-то является лишь характеристикой существующего объекта, сделайте это **полем**.
**Используйте поля для:**
* Категорий и меток (например, `Industry` для Companies)
* Значений статуса (например, `Stage` для Opportunities)
* Атрибутов и свойств
### 3. Создавайте объект, если он существует сам по себе
Если у концепции есть свой жизненный цикл, свойства или отношения, она заслуживает отдельного объекта.
**Создавайте объект для:**
* **Projects** — со сроками, владельцами и задачами
* **Subscriptions** — связывают компании, продукты и счета
* **Events** — включают участников и последующие действия
Они выходят за рамки одного поля, поскольку несут свои данные и связи.
### 4. Создавайте объект, когда число записей не ограничено
Если что-то может связываться многократно, и вы не знаете, сколько раз, используйте объект.
**Плохой подход:**
Создание полей вроде `Product 1`, `Product 2`, `Product 3`...
**Хороший подход:**
Создайте объект `Products` и свяжите его с записями. Таким образом, вы можете поддерживать один, два или сто товаров без изменения вашей модели.
### 5. Сначала — простота
Начните с полей. Переходите к новым объектам только когда почувствуете ограничения:
* Слишком много полей в одном объекте
* Повторяющиеся записи, которые должны быть отдельными
* Связи, которые не вписываются должным образом
## Специальная заметка по Людям, Компаниям и Возможностям
<Warning>
**Синхронизация электронной почты и календаря работает только с Людьми, Компаниями и Возможностями.**
Это единственные объекты, в которых вы можете получить доступ к синхронизированным письмам и встречам из вашего почтового ящика/календаря. Рекомендуем по возможности использовать их.
</Warning>
**Лучшие практики:**
* Если вам нужны категории Людей, используйте поля (а не новые объекты)
* Пример: используйте поле `Person Type` со значениями "Потенциальный клиент" и "Партнёр" вместо создания отдельных объектов
* Создайте разные **представления** для фильтрации: одно — для партнёров, другое — для потенциальных клиентов
**Допустимо иметь поля, которые применимы не к каждой записи.** Например, поле `Referral Link` у Людей, которое применяется только когда `Person Type = Partner`. Скройте это поле в представлениях, где оно не актуально.
## Вопросы, которые помогут сделать выбор
Спросите себя:
<Check>Является ли это просто свойством того, что у меня уже есть, или ему нужны свои собственные свойства?</Check>
<Check>Понадобится ли мне когда-нибудь отслеживать несколько таких для одной записи, не зная заранее, сколько?</Check>
<Check>Связывается ли эта концепция с несколькими разными объектами, а не только с одним?</Check>
<Check>Будет ли у неё собственный жизненный цикл (стадии, даты начала/окончания)?</Check>
Если хотя бы на один из них ответ «да», вероятно, пришло время для нового объекта.
## Доступ к вашей модели данных
1. Перейдите в **Настройки** в левой боковой панели
2. Нажмите **Модель данных**
3. Просмотрите все ваши объекты (стандартные и пользовательские)
4. Нажмите любой объект, чтобы просмотреть и отредактировать его поля
<Note>
**Не видите «Модель данных» в настройках?**
Доступ к модели данных обычно ограничен администраторами. Свяжитесь с администратором рабочего пространства, если вам нужен доступ.
</Note>
## Следующие шаги
После того как вы спланировали модель данных:
* [Как создать пользовательские объекты](/l/ru/user-guide/data-model/how-tos/create-custom-objects)
* [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields)
* [Как создать поля связей](/l/ru/user-guide/data-model/how-tos/create-relation-fields)
## Нужна Помощь?
<Tip>
Нужна помощь в проектировании вашей модели данных? [Найти сертифицированного партнера](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-data-model) для проектирования и построения ваших объектов, полей и отношений.
</Tip>

View File

@@ -0,0 +1,104 @@
---
title: Глоссарий
description: Ознакомьтесь с основными терминами, используемыми в Twenty.
---
## API
API (интерфейс программирования приложений) позволяет подключать Twenty к другим программным системам и создавать пользовательские интеграции.
## Приложения
Приложения — это настраиваемые расширения, создаваемые в виде кода, которые могут определять модели данных и функции бизнес-логики. Они позволяют разработчикам создавать повторно используемые пользовательские настройки, которые можно развертывать в нескольких рабочих пространствах.
## Действия кода
Действия кода — это шаги рабочего процесса, которые позволяют писать пользовательский JavaScript для преобразования данных, выполнения вычислений или реализации сложной логики, недоступной во встроенных действиях.
## Меню команд
Меню команд — это интерфейс быстрого доступа (открывается с помощью `Cmd + K` на Mac и `Ctrl + K` на Windows), который позволяет выполнять действия, создавать записи и эффективно перемещаться по рабочему пространству.
## Компания и Люди
CRM имеет два основных типа записей:
* «Компания» представляет собой бизнес или организацию.
* «Люди» представляют собой текущих и потенциальных клиентов вашей компании.
## Пользовательские поля
Пользовательские поля — это поля данных, которые вы создаете для сбора информации, специфичной для ваших бизнес-потребностей и процессов.
## Модель данных
Модель данных — это структура, которая определяет, как информация организована в вашей CRM, включая какие объекты существуют, их свойства (поля) и как они связаны друг с другом.
## Избранное
Избранное — это записи, которые вы пометили для быстрого доступа, они появляются в вашей боковой панели для мгновенной навигации к важным данным.
## Поле
Поле относится к определенной области, в которой хранится конкретная информация для объекта.
## Итератор
Итератор — это действие рабочего процесса, которое перебирает массив элементов, выполняя последующие действия для каждого элемента в списке.
## Канбан
Канбан — это визуальный способ отслеживания бизнес-процессов с использованием карточек и колонок. Каждая колонка представляет этап в вашем процессе (например: новые, в работе, выиграны, потеряны), и вы перемещаете записи через эти этапы по мере их продвижения.
## Объект
Объект — это структура данных, представляющая определенный тип сущности в вашей CRM (например, Люди, Компании или Возможности). Объекты могут быть стандартными (встроенными) или пользовательскими (созданными вами).
## Возможности
Возможности в Twenty CRM — это потенциальные сделки или продажи с аккаунтами или контактами.
## Запись
Запись - это экземпляр объекта, как конкретная учетная запись или контакт.
## Поля связи
Поля связи создают связи между различными объектами, позволяя связывать записи друг с другом (например, связывать Человека с Компанией).
## Стандартные поля
Стандартные поля — это предустановленные поля данных, которые включены в объекты по умолчанию и обеспечивают общую функциональность во всех рабочих пространствах.
## Задачи
Задачи в Twenty CRM — это назначенные действия, связанные с контактами, аккаунтами или возможностями.
## Триггеры
Триггеры — отправная точка рабочего процесса — событие или условие, которое инициирует автоматизацию. К примерам относятся создание и обновление записей, вебхуки или запланированное время.
## Представления
Вы можете настраивать отображение своих записей, используя представления, устанавливая различные фильтры, макеты и параметры сортировки для каждого представления.
## Upsert
Upsert — это операция, сочетающая "update" и "insert" — она обновляет существующую запись, если найдено совпадение, или создает новую запись, если совпадения нет.
## Вебхуки
Вебхуки — это автоматизированные сообщения, отправляемые от Twenty в другие приложения при возникновении определенных событий, обеспечивая синхронизацию данных в реальном времени.
## Рабочие процессы
Рабочие процессы — это автоматизированные процессы, которые запускают действия на основе определенных условий, помогая автоматизировать повторяющиеся задачи и бизнес-процессы.
## Рабочее пространство
Рабочее пространство обычно представляет собой компанию, использующую Twenty. В нем хранятся все записи и данные, которые вы и участники вашей команды добавляете в Twenty.
У него одно доменное имя — обычно то, которое ваша компания использует для адресов электронной почты сотрудников.
## Участники рабочего пространства
Участники рабочего пространства — это пользователи Twenty из вашей команды, которые имеют доступ к вашему рабочему пространству. Они могут быть назначены в качестве владельцев или ответственных за записи.

View File

@@ -0,0 +1,17 @@
---
title: Услуги по внедрению
description: Нужна ли вам помощь в начале работы или в создании сложных настроек, у нас есть решение.
---
## Партнеры по внедрению
Работайте с сертифицированными партнерами Twenty для расширенных настроек, интеграций и выделенной поддержки внедрения.
<CardGroup cols={2}>
<Card title="Просмотреть сертифицированных партнеров" icon="magnifying-glass" href="https://twenty.com/partners/list?ref=docs-implementation-services">
Найдите партнера и свяжитесь с ним напрямую — отфильтруйте по региону, языку и области экспертизы.
</Card>
<Card title="Получить рекомендации от Twenty" icon="envelope" href="mailto:contact@twenty.com">
Расскажите нам, что вам нужно, и мы свяжем вас с подходящим партнером.
</Card>
</CardGroup>

View File

@@ -0,0 +1,42 @@
---
title: Что такое Twenty
description: Twenty — это CRM с открытым исходным кодом, которая предоставляет вам строительные блоки, чтобы создать именно то, что нужно вашему бизнесу.
---
## Видение
Создать хорошую CRM сложно, потому что это вопрос баланса.
Для каждого бизнеса требования кажутся простыми, но у всех потребности разные.
В итоге получается либо слишком простая CRM, либо та, что пытается быть «мастером на все руки», но в итоге не преуспевает ни в чем.
Сначала Twenty выглядит как большинство известных вам CRM: вы можете отслеживать сделки, организовывать контакты, управлять задачами и заметками.
**Но что отличает его, так это наш подход к расширяемости. Мы создаем открытую платформу, которая предоставляет строительные блоки для решения уникальных бизнес-задач.**
Мы отдаем предпочтение универсальным принципам и общим шаблонам, а не спискам функций.
Мы не претендуем на знание всех ответов и вместо этого даем возможность пользователям найти то, что для них лучше всего.
Открытый код является основой нашего подхода, обеспечивающей, что Twenty развивается вместе со своим сообществом и для своего сообщества.
## Преимущества
**Настраиваемый:** Спроектирован с учетом потребностей вашего бизнеса.
**Ведётся сообществом:** Создан и поддерживается большим сообществом с открытым исходным кодом.
**Экономичный:** Вы никогда не будете зависеть от поставщика, потому что всегда можете разместить его у себя.
## Основные функции
* **Календарь и электронная почта:** Синхронизируйте свой почтовый ящик и календарь, чтобы видеть все коммуникации в записях CRM. [Узнать больше](/l/ru/user-guide/calendar-emails/overview).
* **Модель данных:** Создавайте пользовательские объекты и поля, соответствующие вашим уникальным бизнес-процессам. [Подробнее](/l/ru/user-guide/data-model/overview).
* **Миграция данных:** Импортируйте и экспортируйте свои данные в CSV или через API. [Начните](/l/ru/user-guide/data-migration/overview).
* **Представления и воронки:** Организуйте данные с помощью табличных представлений, досок канбан и воронок продаж. [Подробнее](/l/ru/user-guide/views-pipelines/overview).
* **Рабочие процессы:** Автоматизируйте свои бизнес-процессы и интегрируйтесь с внешними инструментами. [Создать автоматизации](/l/ru/user-guide/workflows/overview).
* **ИИ:** Расширьте возможности вашей CRM с помощью функций и агентов на базе ИИ. [Подробнее об ИИ](/l/ru/user-guide/ai/overview).
* **Панели управления:** Отслеживайте производительность с помощью индивидуальных отчетов и визуализаций. [Посмотреть панели управления](/l/ru/user-guide/dashboards/overview).
* **Права и доступ:** Управляйте тем, кто может просматривать, редактировать и управлять вашими данными, с помощью ролевых прав доступа. [Настроить доступ](/l/ru/user-guide/permissions-access/overview).
* **Заметки и задачи:** Создавайте заметки и задачи, связанные с вашими записями, для более эффективной совместной работы.
* **API и Вебхуки:** Подключайтесь к другим приложениям и создавайте индивидуальные интеграции. [Начать интеграцию](/l/ru/developers/extend/api).
## Присоединяйтесь сейчас
[Зарегистрируйтесь здесь](https://app.twenty.com) или [станьте участником на GitHub](https://github.com/twentyhq/twenty).

View File

@@ -0,0 +1,77 @@
---
title: Настройка вашего рабочего пространства
description: Каждый бизнес работает по-своему. Начните с этих 3 шагов, чтобы настроить Twenty под ваши потребности.
---
<Note>**Быстрый результат**: Начните с подключения вашего почтового ящика. Это обеспечивает мгновенную отдачу и помогает вашей команде увидеть Twenty в действии с реальными данными. Вы можете сделать это в разделе Настройки → Учетные записи.</Note>
## 1. Настройте свою модель данных
Twenty предлагает гибкость, необходимую для создания модели данных, которая наилучшим образом поддерживает вашу повседневную работу.
Создавайте объекты и поля любого типа, включая отношения между различными объектами. Вы можете сделать это в разделе Настройки → Модель данных.
Вот несколько советов:
* **Количество пользовательских полей или пользовательских объектов не ограничено**. Добавление пользовательских объектов и полей не приведет к повышению вашего тарифа.
* **Люди, Компании и Возможности — это три объекта, через которые вы можете получить доступ к электронным письмам и встречам, синхронизированным с вашей почтой и календарём**. Мы рекомендуем использовать их как можно чаще, добавляя поля для категоризации ваших записей, если это необходимо. Вот пример:
* Лучше всего использовать объект Люди для ваших перспектив и партнеров, создав поле на объекте Люди под названием \`\`\`Person Type\`\`, вместо того чтобы создавать пользовательский объект партнера, потому что вы не сможете получить доступ к электронной почте обменяться с этим человеком из записей партнера.
* Создайте разные представления в разделе Люди, одно для отображения партнёров и одно для отображения клиентов.
* Два человека не могут иметь один и тот же адрес электронной почты. Две компании не могут использовать один и тот же домен.
* Вы можете деактивировать стандартные поля и объекты, которые не хотите использовать.
* Вы можете скрыть поля из представлений: не бойтесь создавать поля, вам не нужно будет показывать их все.
Прочитайте [эту статью](/l/ru/user-guide/data-model/overview), чтобы узнать, как разработать свою модель данных.
## 2. Принесите свои данные
Перенос ваших существующих данных в Twenty дает вашей команде контекст с самого начала.
### Подключите свою почту
Если вы еще не сделали этого при создании рабочего пространства, подключите свой **аккаунт Google или Microsoft** в разделе Настройки → Учетные записи. Это позволяет Twenty:
* Импортировать ваши сообщения и встречи
* Автоматически создавать контакты на основе взаимодействий (опционально)
* Сохранять историю общения видимой для вашей команды
**Используете другого провайдера?**
Вы можете добавить другую почту через SMTP или другой календарь через CalDAV. Перейдите в **Настройки → Учетные записи**, чтобы настроить.
### Импорт данных через CSV
Используйте меню команд (`Cmd + K` или `Ctrl + K`), чтобы импортировать Людей, Компании, Возможности или любые пользовательские объекты с помощью CSV.
**Ключевые рекомендации**:
* Скачайте пример файла, чтобы понять ожидаемый формат
* Ограничьте каждый файл 10k записями
* Удалите дубликаты электронной почты для объектов Люди или дублирующиеся домены для Компаний
* Проверьте и исправьте ошибки (выделены желтым цветом) перед импортом
Прочитайте [эту статью](/l/ru/user-guide/data-migration/overview), чтобы узнать больше об импорте данных.
## 3. Создайте своё первое представление
Создание различных представлений - это ключ к действию данных для вашей команды.
Вот как действовать:
* **Добавить или скрыть столбцы**
Управляйте полями, видимыми в данном представлении, нажав на Опции → Поля (сверху справа). Вы можете показать/скрыть поля оттуда.
* **Переупорядочить поля**
Изменить порядок полей в данном представлении, нажав на Опции → Поля (сверху справа). Перетаскивайте поля, чтобы изменить их порядок.
* **Отфильтруйте своё представление**
Сузьте круг отображаемых записей, используя фильтры справа вверху.
* **Отсортируйте записи**
Упорядочьте отображаемые записи с помощью функции сортировки справа вверху или нажатием на название столбца.
* **Выберите макет**
Вы можете переключиться на макет **Kanban** или список **Группировать по**, если объект имеет поле типа `Этап` или аналогичное select-тип поле.
* **Сохраните своё представление как Избранное**
Это можно сделать с помощью выпадающего меню, отображающего различные представления.
## Что дальше?
Начните создавать автоматизацию, используя [рабочие процессы](/l/ru/user-guide/workflows/overview).

View File

@@ -0,0 +1,48 @@
---
title: Создать рабочее пространство
description: Следуйте пошаговому руководству о том, как зарегистрироваться на Twenty, выбрать тарифный план и настроить учетную запись.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Шаг 1: Регистрация
1. Перейдите на [Twenty Sign Up](https://app.twenty.com).
2. Выберите предпочтительный способ регистрации:
* **Продолжить с Google** для регистрации с учетной записью Google.
* **Продолжить с Microsoft** для регистрации с учетной записью Microsoft.
* Или **Продолжить с Email** для регистрации по электронной почте.
<VimeoEmbed videoId="927066829" title="Видеодемонстрация" />
## Шаг 2: Выбор пробного периода
Выберите один из двух пробных периодов:
### 30 дней
С кредитной картой
### 7 дней
Без кредитной карты
Оба пробных периода включают:
* Полный доступ
* Неограниченное количество контактов
* Интеграция электронной почты
* Пользовательские объекты
* API и Вебхуки
Вы можете нажать на "Изменить план", чтобы выбрать другой план или интервал оплаты.
<img src="/images/user-guide/create-workspace/choose-plan.png" style={{width:'100%'}} />
## Шаг 3: Подтверждение платежа и настройка учетной записи
После подтверждения оплаты через Stripe, вы будете перенаправлены на создание вашего проекта и профиля пользователя. Помните, что вы можете отменить подписку в любое время.
## Поддержка
По вопросам или за помощью обращайтесь в службу поддержки по адресу [contact@twenty.com](mailto:contact@twenty.com) или отправьте сообщение в [Discord](https://discord.gg/cx5n4Jzs57).

View File

@@ -0,0 +1,84 @@
---
title: Навигация по Twenty
description: Быстрый обзор навигации по платформе и выполнению различных типов действий.
---
## Основная компоновка
Центр экрана — это **место, где живут ваши записи**: люди, компании, сделки, задачи, заметки, дашборды, рабочие процессы и любые другие созданные вами объекты. Здесь происходит повседневная работа.
Вы можете **просматривать, изменять или удалять записи** оттуда, а также **создавать новые представления**.
<img src="/images/user-guide/home/main-layout.png" style={{width:'100%'}} />
## Панель навигации
Слева, сверху вниз, вы сможете:
* Переключайтесь между несколькими рабочими пространствами с помощью выпадающего меню или создайте новое рабочее пространство
* Используйте строку поиска (нажмите `/`, чтобы быстро перейти к ней)
* Откройте раздел «Настройки»
* Получать прямой доступ к своим **избранным представлениям**. Избранное уникально для каждого пользователя.
* Переключайтесь между разными объектами
* **Создавайте автоматизации** с помощью рабочих процессов
<img src="/images/user-guide/home/navigation-bar.png" style={{width:'100%'}} />
## Меню команд
Меню команд предоставляет **быстрый доступ к действиям** в Twenty. Вы можете получить к нему доступ двумя способами:
* **Клавиатурное сочетание**: Нажмите `Cmd + K` (Mac) или `Ctrl + K` (Windows)
* **Мышь**: Щелкните по трем точкам в верхнем правом углу
Оттуда вы можете:
* Создавать новые записи
* **Импортировать и экспортировать данные в формате CSV**
* Создавать новые представления
* Получать доступ к удалённым записям (в Twenty поддерживаются мягкое и жёсткое удаление)
* Просмотреть клавиатурные сочетания для быстрого доступа к объектам в вашем рабочем пространстве
<img src="/images/user-guide/home/command-menu.png" style={{width:'100%'}} />
## Строка поиска
К строке поиска можно получить доступ через Меню команд в верхней части панели навигации или нажав `/`, чтобы сразу перейти к ней. Поиск работает по всем объектам.
<img src="/images/user-guide/home/search-bar.png" style={{width:'100%'}} />
## Боковая панель
Когда вы щелкаете по записи, справа появляется боковая панель. Это дает вам быстрый обзор ключевой информации о записи, при этом вы не переходите на другую страницу. Оттуда вы можете закрыть этот обзор или получить дополнительную информацию об этой записи, нажав кнопку «Открыть».
<img src="/images/user-guide/home/side-panel.png" style={{width:'100%'}} />
## Представления
Каждый объект (например, Сделки или Люди) поддерживает несколько представлений. Вы не ограничены в количестве представлений для объекта.
Используйте выпадающее меню в верхнем левом углу основной компоновки, чтобы переключаться между различными представлениями. Например:
* Используйте представление Kanban для отслеживания возможностей по стадиям
* Используйте представление Group By для создания секций и повышения эффективности
* Используйте фильтры, чтобы сосредоточиться на конкретных записях (например, лидах, созданных на прошлой неделе)
* Сохраняйте отфильтрованные представления для повторного использования
* Избранные представления для быстрого доступа
<img src="/images/user-guide/home/view-menu.png" style={{width:'100%'}} />
Если вы впервые работаете с представлениями, прочитайте наше [руководство по представлениям и воронкам](/l/ru/user-guide/views-pipelines/overview), чтобы узнать, как их создавать и настраивать.
## Настройки
Откройте раздел «Настройки» в левом верхнем углу, чтобы:
* **Подключите свои аккаунты почты и календаря** для синхронизации электронной почты и календаря
* Настройте свою модель данных: создавайте пользовательские объекты, поля и отношения
* **Откройте песочницу API и настройте вебхуки**
* **Управляйте разрешениями пользователей и контролем доступа к рабочему пространству**
* Пригласите членов команды и управляйте ролями пользователей
* Редактируйте свой профиль и параметры рабочего пространства
* Настройте выставление счетов и отслеживайте использование кредитов рабочих процессов
* Открывайте и включайте новые функции (в разделе Обновления → Ранний доступ)
* **Откройте Поддержку**, чтобы обратиться в онлайн-чат
* **Откройте документацию**, чтобы просматривать Руководство пользователя и документацию для разработчиков
<Note>Если вы не видите все эти разделы в Настройках, обратитесь к администратору рабочего пространства — к некоторым из них доступ ограничен.</Note>

View File

@@ -0,0 +1,59 @@
---
title: Руководство пользователя
description: Добро пожаловать в Руководство пользователя Twenty — ваш ресурс по расширенным настройкам и лучшим практикам.
---
import { CardTitle } from "/snippets/card-title.mdx"
<CardGroup cols={3}>
<Card href="/l/ru/user-guide/data-model/overview" img="/images/user-guide/halftone/data-model.png">
<CardTitle>Модель данных</CardTitle>
Настройте модель данных под процессы вашего бизнеса.
</Card>
<Card href="/l/ru/user-guide/data-migration/overview" img="/images/user-guide/halftone/data-migration.png">
<CardTitle>Миграция данных</CardTitle>
Импортируйте и экспортируйте свои данные в CSV или через API.
</Card>
<Card href="/l/ru/user-guide/calendar-emails/overview" img="/images/user-guide/halftone/calendar-emails.png">
<CardTitle>Календарь и электронная почта</CardTitle>
Соберите встречи и письма вашей команды в одном месте.
</Card>
<Card href="/l/ru/user-guide/workflows/overview" img="/images/user-guide/halftone/workflows.png">
<CardTitle>Рабочие процессы</CardTitle>
Автоматизируйте процессы и интегрируйте с внешними инструментами.
</Card>
<Card href="/l/ru/user-guide/ai/overview" img="/images/user-guide/halftone/ai.png">
<CardTitle>ИИ</CardTitle>
Усильте команду агентами ИИ.
</Card>
<Card href="/l/ru/user-guide/layout/overview" img="/images/user-guide/halftone/layout.png">
<CardTitle>Макет</CardTitle>
Настройка навигации, представлений и страницы записи.
</Card>
<Card href="/l/ru/user-guide/dashboards/overview" img="/images/user-guide/halftone/dashboards.png">
<CardTitle>Панели управления</CardTitle>
Аналитика в реальном времени для отслеживания эффективности.
</Card>
<Card href="/l/ru/user-guide/permissions-access/overview" img="/images/user-guide/halftone/permissions.png">
<CardTitle>Разрешения и доступ</CardTitle>
Управляйте ролями и доступом к Twenty.
</Card>
<Card href="/l/ru/user-guide/billing/overview" img="/images/user-guide/halftone/billing.png">
<CardTitle>Выставление счетов</CardTitle>
Разберитесь, как устроены цены и выставление счетов в Twenty.
</Card>
<Card href="/l/ru/user-guide/settings/overview" img="/images/user-guide/halftone/settings.png">
<CardTitle>Настройки</CardTitle>
Настройте параметры рабочего пространства.
</Card>
</CardGroup>

View File

@@ -0,0 +1,38 @@
---
title: Навигация
description: Настройте левую боковую панель под то, как работает ваша команда.
---
Левая боковая панель — основной способ навигации в Twenty. Она полностью настраивается — вы можете переупорядочить её под свой рабочий процесс, не открывая никаких страниц настроек.
## Изменение порядка элементов
Перетащите любой элемент в боковой панели, чтобы изменить его положение. Порядок сохраняется для каждого пользователя, поэтому каждый участник команды может настроить свою боковую панель.
## Папки
Группируйте связанные элементы в папки. Например, вы можете создать папку "Продажи" с представлениями вашей воронки, папку "Поддержка" для заявок или папку "Операции" для внутренних объектов.
Чтобы создать папку, щёлкните правой кнопкой мыши в боковой панели или используйте кнопку `+`.
## Скрытие объектов
Объекты, которые вы не используете, можно скрыть из боковой панели. Они не удаляются — просто скрыты из виду. Вы можете снова показать их в любое время из Настройки → Модель данных.
## Избранное
Закрепляйте представления, записи или поисковые запросы в разделе "Избранное" в верхней части боковой панели для быстрого доступа в один клик. Раздел "Избранное" персональный — каждый пользователь управляет своим.
## Пользовательские ссылки
Добавляйте ссылки на внешние инструменты прямо в боковую панель. Полезно для ссылок на вашу вики, панели мониторинга в других инструментах или любые URL-адреса, которые ваша команда использует регулярно.
## Меню команд
Нажмите `Cmd+K` (или `Ctrl+K`), чтобы открыть меню команд — строку быстрого поиска для перехода к любой записи, представлению или действию, не используя боковую панель.
## Настройка боковой панели
Чтобы настроить боковую панель, наведите курсор на раздел "Workspace" на боковой панели и нажмите значок гаечного ключа.
<img src="/images/user-guide/layout/navigation-edit-icon.png" alt="Значок редактирования навигации" />

View File

@@ -0,0 +1,61 @@
---
title: Страницы записей
description: Настройте макет отдельных страниц сведений о записях с вкладками и виджетами.
---
## Обзор
Когда вы открываете запись в Twenty, страница сведений состоит из **вкладок** и **виджетов**. Оба полностью настраиваются для каждого типа объекта.
## Вкладки
Каждая страница записи может иметь несколько вкладок — аналогично вкладкам в браузере. Используйте их, чтобы упорядочить различные аспекты записи. Например, у записи «Компания» могут быть вкладки «Обзор», «Коммуникации», «Задачи» и «Файлы».
Вы можете:
* Добавляйте и удаляйте вкладки
* Переименовывайте вкладки
* Меняйте порядок вкладок перетаскиванием
* Установите, какая вкладка отображается по умолчанию
## Виджеты
Виджеты — это строительные блоки внутри каждой вкладки. Доступные типы виджетов:
| Виджет | Что отображает |
| ------------------------- | --------------------------------------------------------- |
| **Поля** | Поля записи, сгруппированные или по отдельности |
| **Связанные записи** | Таблица записей, связанных отношением |
| **Электронные письма** | История электронных писем из подключенных учетных записей |
| **Календарь** | События календаря, связанные с записью |
| **Временная шкала** | История активности и событий |
| **Задачи** | Связанные задачи |
| **Заметки** | Заметки с форматированным текстом |
| **Файлы** | Файловые вложения |
| **Диаграммы** | Визуальные данные из связанных записей |
| **iFrame** | Встроенный внешний контент |
| **Форматированный текст** | Статический контент или описания |
## Настройка страницы записи
1. Откройте любую запись
2. Нажмите `Cmd+K` и найдите "Изменить макет страницы записи"
или
1. Перейдите в Настройки → Модель данных → объект по вашему выбору → Макет
2. Нажмите кнопку "Настроить страницу записи" для этого объекта
3. Теперь вы в режиме настройки:
* **Добавляйте виджеты** из списка виджетов
* **Перетаскивайте виджеты**, чтобы изменить их положение на сетке
* **Изменяйте размер виджетов**, перетаскивая их границы
* **Настраивайте поля**, отображаемые в каждом виджете
* **Управляйте вкладками** — добавляйте, удаляйте, переименовывайте, меняйте порядок
4. Сохраните изменения — они применятся ко всем записям этого типа объекта
## Видимость полей
В виджете «Поля» вы можете контролировать, какие поля видны и в каком порядке. Это позволяет создавать сфокусированные макеты — например, показывать только самые важные поля на вкладке «Обзор», а подробные поля размещать на отдельной вкладке.

View File

@@ -0,0 +1,45 @@
---
title: Макет
description: Настройте навигацию, просмотр и отображение записей в Twenty.
---
Макет Twenty настраивается на трёх уровнях: как вы перемещаетесь по приложению, как просматриваете списки записей и что видите при открытии отдельной записи.
## Навигация
Левая боковая панель полностью настраиваемая. Вы можете:
* **Изменяйте порядок элементов**, перетаскивая их
* **Создавайте папки**, чтобы группировать связанные объекты и представления
* **Скрывайте объекты**, которые вы не используете
* **Добавляйте пользовательские ссылки** на внешние инструменты
* **Закрепляйте избранное** для быстрого доступа к представлениям, записям или поисковым запросам
[Справочник по навигации →](/l/ru/user-guide/layout/capabilities/navigation)
## Представления
Представления определяют, как отображаются списки записей. Twenty поддерживает три типа представлений:
| Представление | Лучше всего подходит для |
| ------------- | ------------------------------------------------------------------------------------------------ |
| **Таблица** | Работа с большим количеством записей одновременно — строки и столбцы в стиле электронной таблицы |
| **Канбан** | Отслеживание воронки — перетаскиваемые карточки, организованные по этапам |
| **Календарь** | Планирование во времени — записи отображаются по полю даты |
Каждое представление хранит свои фильтры, сортировку, видимость полей и настройки группировки. Представления можно сделать доступными во всём рабочем пространстве или оставить приватными.
[Представления «Таблица» →](/l/ru/user-guide/views-pipelines/capabilities/table-views) · [Канбан-представления →](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) · [Представление «Календарь» →](/l/ru/user-guide/views-pipelines/capabilities/calendar-view)
## Страницы записей
Когда вы открываете запись, страница сведений формируется из настраиваемых вкладок и виджетов. Вы можете:
* **Добавляйте, удаляйте и меняйте порядок вкладок** для любого типа записи
* **Настраивайте виджеты** — поля, связанные записи, электронные письма, ленту активности, календарь, задачи, заметки, файлы, диаграммы, iframes и многое другое
* **Перетаскивайте и изменяйте размер виджетов** в сетке
* **Управляйте видимостью полей** для каждого виджета
Перейдите в режим настройки макета через командное меню (`Cmd+K` → "Редактировать макет страницы записи").
[Справочник по страницам записей →](/l/ru/user-guide/layout/capabilities/record-pages)

View File

@@ -0,0 +1,125 @@
---
title: ЧаВо по правовым вопросам
description: Часто задаваемые правовые вопросы.
---
## Данные и международные переводы
<AccordionGroup>
<Accordion title="В какой стране и регионе будут храниться наши данные рабочей области, вложения, журналы и резервные копии?">
Двадцать облачных работает на серверах AWS, расположенных во Франкфурте, Германия.
</Accordion>
<Accordion title="Можно ли в договорном порядке исправить регион хостинга для нашей рабочей области?">
Выбор региона размещения будет доступен начиная с 2027 года, изначально для новых рабочих пространств. Пользователи смогут запросить смену региона для существующего рабочего пространства позднее. В качестве альтернативы вы можете обратиться к [нашим партнерам](https://twenty.com/partners/list?categories=HOSTING), чтобы они помогли вам настроить ваш инстанс.
</Accordion>
<Accordion title="Какие субпроцессоры могут обрабатывать или получать доступ к нашим данным CRM, и в каких странах они находятся?">
Список всех субпроцессоров доступен в [нашем Центре доверия](https://trust.twenty.com/?tab=subprocessors).
</Accordion>
<Accordion title="Какие гарантии применяются к международным передачам данных?">
Стандартные договорные положения ЕС, вместе с дополнением для Великобритании и поправками для Швейцарии, применяются к международной передаче данных за пределы ЕС, включая передачи всем субпроцессорам.
</Accordion>
</AccordionGroup>
## Соглашение о обработке данных и правовые роли
<AccordionGroup>
<Accordion title="Где можно найти текущий Договор об обработке данных (DPA)?">
Вы можете сгенерировать подписанный DPA по адресу https://{your-domain}/settings/legal/dpa (например, https://getting-started.twenty.com/settings/legal/dpa).
</Accordion>
<Accordion title="Имеет ли двадцать функций обработчика данных для продавца и хранения контактной информации в CRM, в то время как наша компания остается контролером данных?">
В соответствии с нашей [Политикой конфиденциальности](https://twenty.com/privacy-policy) двадцать выполняет функции обработчика данных для продавца и контактной информации, хранящейся в CRM, пока ваша компания остается контроллером данных.
</Accordion>
<Accordion title="Является ли содержание CRM когда-либо использоваться для обучения двадцать или третьих сторонних AI моделей?">
Контент CRM может использоваться для обучения моделей ИИ в зависимости от Условий и положений субпроцессоров. У Twenty нет собственной модели ИИ — все модели ИИ, доступные в Twenty Cloud, предоставляются нашими субпроцессорами.
</Accordion>
<Accordion title="Если необязательная обработка AI существует, может быть полностью отключена для нашей рабочей области?">
ИИ можно полностью отключить, выключив все модели ИИ в Настройках → AI → Models. Кроме того, данные не отправляются в ИИ, если вы не взаимодействуете с чатом ИИ или узлом ИИ в рабочем процессе.
</Accordion>
</AccordionGroup>
## Контроль безопасности и доступа
<AccordionGroup>
<Accordion title="Используется ли шифрование при передаче и в состоянии покоя, каковы ваши практики управления ключами и как изолируются данные арендаторов?">
Все данные шифруются при передаче и в состоянии покоя. Данные арендаторов изолируются с помощью схемы "отдельная схема на арендатора", а ключи шифрования периодически ротируются.
</Accordion>
<Accordion title="Какие двадцать сотрудников или субпроцессорных работников могут получить доступ к рабочим местам клиента, для каких целей и как получить одобренный и зарегистрированный доступ?">
Команды инженеров и поддержки Twenty могут получать доступ к рабочим пространствам клиентов для расследования и устранения проблем. Владельцы рабочих пространств управляют этим: доступ службы поддержки можно отключить в любое время в разделе Settings → General → Security, и он останется отключённым, пока вы снова его не включите.
</Accordion>
<Accordion title="Какой процесс оповещения о происшествиях и временные рамки уведомлений после подтвержденного инцидента в области безопасности, затрагивающего наши данные?">
В случае подтверждения нарушения личных данных, затрагивающих ваши данные, мы уведомим Вас без неоправданной задержки и в любом случае в течение 48 часов после того, как узнаем об этом. Наше уведомление будет включать в себя, насколько известно в то время, когда речь идет о характере нарушения, категории и примерный объем данных и затронутых лиц, вероятных последствий, а также принятые или запланированные меры по восстановлению и смягчению последствий. По мере прохождения расследования мы сообщим обновленную информацию.
</Accordion>
</AccordionGroup>
## Сохранение и удаление данных
<AccordionGroup>
<Accordion title="Когда удалена отдельная CRM запись, когда она удаляется из активных систем?">
Когда запись удаляется, она сначала помечается как мягко удаленная (soft-delete) и все еще может быть восстановлена. Она безвозвратно удаляется и исключается из активных систем, как только истекает срок хранения или пользователь вручную уничтожает её.
</Accordion>
<Accordion title="Как долго мягко удаленные записи хранятся в системе?">
По умолчанию мягко удаленные записи хранятся в течение 14 дней, после чего они безвозвратно удаляются из системы. Период хранения мягко удалённых записей можно изменить в Настройках → General → Security.
</Accordion>
<Accordion title="Как долго эта запись может оставаться в резервных копиях или технических журналах?">
Удаленная запись остается в резервных копиях в течение 30 дней, после чего она безвозвратно удаляется.
</Accordion>
<Accordion title="Когда проектное пространство запрашивается или полностью удаляется, какой точный график применяется к производственным данным, вложениям, журналам и резервным копиям?">
Когда рабочее пространство удаляется, его данные удаляются из рабочих систем в течение примерно 90 дней после прекращения оказания услуг, а обычно и гораздо раньше. Резервные и архивные копии затем перезаписываются или очищаются в течение следующих 90 дней, после чего все данные безвозвратно удаляются. В течение обоих этих периодов данные изолированы от какого-либо использования в рабочих системах. По запросу мы можем предоставить письменное подтверждение после завершения очистки. Полные условия см. в пункте 4.9 вашего Соглашения об обработке данных (Data Processing Agreement).
</Accordion>
<Accordion title="В течение любого периода резервного копирования удаляются данные, изолированные от оперативного доступа и использования?">
Да, в любой период резервного копирования удалённые данные изолированы от операционного использования.
</Accordion>
<Accordion title="Остаются ли какие-либо категории данных дольше для целей законного, выставления счетов, предотвращения мошенничества, обеспечения безопасности или аудита? Если да, какая категория и на сколько долгой?">
Для получения дополнительной информации о сохранении данных вы можете запросить нашу политику управления данными и их удержания в [нашем Центре доверия](https://trust.twenty.com/?tab=documents).
</Accordion>
<Accordion title="Можно ли представить 20 письменных подтверждений после завершения полного запроса на удаление?">
Мы подтверждаем стирание запросов и предоставляем письменное подтверждение после завершения удаления.
</Accordion>
</AccordionGroup>
## Резервные копии и устойчивость
<AccordionGroup>
<Accordion title="Какой срок резервного копирования и хранения данных?">
Резервные копии создаются непрерывно с ежедневными снапшотами, а период хранения составляет 30 дней.
</Accordion>
<Accordion title="Какова цель в отношении двадцати облаков и сроки восстановления?">
RTO и RPO - это и 6 часов (по нашей DPA).
</Accordion>
<Accordion title="Каков процесс запроса или выполнения восстановления?">
Чтобы запросить восстановление, обратитесь к нашей команде через чат поддержки или по электронной почте на адрес [contact@twenty.com](mailto:contact@twenty.com).
</Accordion>
<Accordion title="Зашифрованы ли резервные копии и хранятся в том же регионе, что и основные данные рабочей области?">
Все резервные копии зашифрованы и хранятся в географически отдельных местах в пределах одной и той же юрисдикции (например, в рамках ЕС для данных ЕС).
</Accordion>
</AccordionGroup>
## Соблюдение
<AccordionGroup>
<Accordion title="Двадцать GDPR совместимы?">
Да, двадцать это [GDPR совместимое] (https://trust.twenty.com/?tab=securityControls&frameworks=gdpr_v1).
</Accordion>
<Accordion title="Соответствует ли двадцать SOC 2?">
Да, двадцать - [SOC 2 compliant](https://trust.twenty.com/?tab=securityControls\&frameworks=soc2_v1).
</Accordion>
<Accordion title="Двадцать ли HIPAA соблюдаются?">
Нет, двадцать лет находится в процессе обеспечения соблюдения требований в отношении HIPAA.
</Accordion>
</AccordionGroup>
## Лицензирование
<AccordionGroup>
<Accordion title="Если я изменю код, чтобы добавить функции только для внутреннего использования моей командой, должен ли я публиковать эти изменения?">
Нет. Запуск модифицированной версии только для вашей собственной команды не является распространением, поэтому не возникает обязанности по публикации. Сетевое положение AGPL применяется, когда люди вне вашей организации взаимодействуют с вашим модифицированным экземпляром по сети.
</Accordion>
<Accordion title="Если я создам отдельный фронтенд и буду использовать Twenty как бэкенд без изменений, должен ли я публиковать эти изменения?">
Нет. Ваш фронтенд является вашим собственным, отдельным произведением, и тот факт, что он взаимодействует с Twenty через его API, не меняет этого. Поскольку Twenty само по себе не модифицировано, публиковать нечего.
</Accordion>
<Accordion title="Если я изменю код, чтобы добавить функции и затем перепродавать его, должен ли я публиковать эти изменения?">
Да, поскольку вы модифицируете код, чтобы распространять его другим, вы обязаны публиковать эти изменения. Если вы не хотите публиковать свои изменения, вы можете получить лицензию Organization.
</Accordion>
</AccordionGroup>
Если у вас есть дополнительные вопросы, ознакомьтесь, пожалуйста, с нашими [Условиями и положениями](https://twenty.com/terms), [Политикой конфиденциальности](https://twenty.com/privacy-policy) и [Центром доверия](https://trust.twenty.com/). Если на ваши вопросы все еще нет ответа, отправьте их на [contact@twenty.com](mailto:contact@twenty.com) или через чат поддержки.

View File

@@ -0,0 +1,12 @@
---
title: Юридическая информация
description: Юридические вопросы
---
Ознакомьтесь с нашим [FAQ](/l/ru/user-guide/legal/how-tos/legal-faq).
## Полезные ссылки
* [Правила и условия](https://twenty.com/terms)
* [Политика конфиденциальности](https://twenty.com/privacy-policy)
* [Центр доверия](https://trust.twenty.com/)

View File

@@ -0,0 +1,213 @@
---
title: Разрешения
description: Управляйте доступом к объектам, полям и настройкам с помощью разрешений на основе ролей.
---
Система разрешений Twenty позволяет вам контролировать доступ к трем основным областям:
* **Объекты и поля**: Контролировать, кто может просматривать, редактировать или удалять записи и отдельные поля
* **Настройки**: Управление доступом к конфигурации рабочего пространства и административным функциям
* **Действия**: Контролировать общие действия рабочего пространства, такие как импорт данных или отправка писем
## Создать роль
Чтобы создать новую роль:
1. Перейдите в **Настройки → Участники → Роли**
2. В разделе **Все роли** нажмите **+ Создать роль**
3. Введите имя роли
4. На вкладке **Разрешения** по умолчанию [настройте разрешения](#customize-permissions)
5. Нажмите **Сохранить**, чтобы завершить
## Удалить роль
Чтобы удалить роль:
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую хотите удалить
3. Откройте вкладку **Настройки**, затем нажмите **Удалить роль**
4. Нажмите **Подтвердить** в модальном окне
<Note>
Если роль удалена, любой участник рабочего пространства, назначенный на неё, будет автоматически переназначен на роль по умолчанию. Все роли кроме роли **Администратора** могут быть удалены. Всегда должен быть назначен хотя бы один участник на роль **Администратора**.
</Note>
## Назначение ролей участникам
### Просмотр текущих назначений
* Перейдите в **Настройки → Участники → Роли**
* Просмотрите все роли и количество назначенных им участников
* Просмотрите, какие роли у каких участников
### Назначить роль участнику
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. Нажмите **+ Назначить участнику**
5. Выберите участника рабочего пространства из списка
6. Подтвердите назначение
### Установить роль по умолчанию
1. Перейдите в **Настройки → Участники → Роли**
2. В разделе **Опции** найдите **Роль по умолчанию**
3. Выберите, какую роль новые участники должны получать автоматически
4. Новые участники рабочего пространства будут получать эту роль при присоединении
<Note>
Вы можете назначать роли только существующим участникам рабочего пространства. Чтобы пригласить новых участников, используйте [Управление членами](/l/ru/user-guide/settings/capabilities/member-management).
</Note>
## Настроить разрешения
Разрешения определяют, что каждая роль может получить доступ к вашей рабочей области или изменять ее, включая объекты, записи, настройки и действия.
### Разрешения на уровне объекта
Раздел **Объекты** определяет, что эта роль может делать с записями во всём вашем рабочем пространстве.
#### Задать разрешения по умолчанию (для всех объектов)
Сначала настройте базовые разрешения, которые по умолчанию применяются ко **всем объектам**:
| Разрешение | Описание |
| ------------------------------------------- | --------------------------------------------------------------------- |
| **Просмотр записей на всех объектах** | Просматривать записи в списках и на страницах с подробной информацией |
| **Редактирование записей на всех объектах** | Изменять существующие записи |
| **Удаление записей на всех объектах** | Мягко удалять записи (их можно восстановить) |
| **Уничтожение записей на всех объектах** | Безвозвратно удалять записи |
Включайте или отключайте в зависимости от того, каким должно быть поведение по умолчанию для этой роли.
<Note>
**Пример — роль стажёра**: По умолчанию стажёр должен видеть все объекты, но не редактировать их. Включите "Просмотр записей для всех объектов", но оставьте "Редактирование записей для всех объектов" не отмеченным.
</Note>
#### Добавить исключения на уровне объекта
После настройки значений по умолчанию используйте подраздел **На уровне объекта**, чтобы добавить правила, которые переопределяют значения по умолчанию для конкретных объектов.
Нажмите **+ Добавить правило** и выберите объект, чтобы создать исключение.
**Примеры правил для роли стажёра:**
| Правило | Результат |
| -------------------------------------------- | ---------------------------------------------------------------- |
| Opportunities → отключить "Просмотр записей" | Стажёр вообще не видит объект Opportunities |
| People → включить "Редактирование записей" | Стажёр может редактировать записи People (но не других объектов) |
### Разрешения на уровне строк
<Note>
Разрешения на уровне строк — это **премиальная функция**, доступная в тарифе **Organization** (Cloud и Self-Hosted).
</Note>
Разрешения на уровне строк позволяют ограничить, какие отдельные записи может просматривать или редактировать роль, на основе динамических критериев. В отличие от разрешений на объекты (которые применяются ко всему типу объекта), разрешения на уровне строк оценивают каждую запись независимо.
**Примеры случаев использования:**
* Торговые представители могут видеть только свои сделки
* Менеджеры могут видеть все записи в своём регионе
* Сотрудники службы поддержки могут просматривать только назначенные им заявки
Чтобы настроить разрешения на уровне строк, откройте роль, перейдите на вкладку **Objects** и используйте раздел **Row-Level** для определения условий фильтрации для конкретного объекта.
### Разрешения на уровне поля
В рамках каждого правила на уровне объекта вы можете дополнительно настроить **разрешения на уровне поля**, чтобы управлять доступом к конкретным полям.
| Разрешение | Описание |
| ----------------------- | --------------------------- |
| **Просмотр поля** | Просматривать значение поля |
| **Редактирование поля** | Изменять значение поля |
| **Нет доступа** | Поле полностью скрыто |
**Пример — ограничение доступа к конфиденциальным полям:**
Для роли стажёра с правом редактирования People вы можете ограничить некоторые поля:
* People → Email → только **Просмотр поля** (редактирование недоступно)
* People → Address → **Нет доступа** (полностью скрыто)
Это позволяет стажёру редактировать большинство полей People, при этом защищая конфиденциальную информацию.
### Как работает наследование разрешений
Разрешения применяются каскадно — от общих к конкретным:
1. **Все объекты** → задаёт базовый уровень для всех объектов
2. **Правила на уровне объекта** → переопределяют базовые настройки для конкретных объектов
3. **Правила на уровне поля** → переопределяют настройки объекта для конкретных полей
Более конкретные настройки всегда имеют приоритет.
### Управление переопределениями разрешений
Чтобы переопределить унаследованные разрешения:
1. Нажмите **X**, чтобы удалить унаследованное правило
2. Выберите нужные конкретные разрешения
3. Нажмите оранжевую **Отмена** (круглая стрелка), чтобы отменить изменения
Когда закончите, нажмите **Завершить**, затем **Сохранить**, после чего вас перенаправит на страницу роли.
### Разрешения для настроек рабочего пространства
Контролируйте доступ к настройкам рабочего пространства двумя способами:
* Переключатель **Все доступ к настройкам** для предоставления полного доступа
* Или включите специальные разрешения (например, генерация API-ключей, предпочтения рабочего пространства, назначение ролей, настройка модели данных, настройки безопасности и управление Workflows)
<Note>
**Текущее ограничение**: Для ручного запуска рабочих процессов в настоящее время требуется доступ к управлению рабочими процессами. Это поведение может измениться в будущих версиях.
</Note>
### Разрешения на действия в рабочем пространстве
Контролируйте доступ к общим действиям рабочего пространства:
* Переключатель **Все доступ к приложениям** для предоставления полных разрешений
* Или включите индивидуальные действия, такие как **Отправить email**, **Импортировать CSV** и **Экспортировать CSV**
## Назначить роли агентам API и API
Помимо участников рабочего пространства, роли также можно назначать **ключам API** и **AI-агентам**. Это особенно полезно для команд, которые хотят точно контролировать, «кто» что может делать в их рабочем пространстве — включая автоматизированные процессы и интеграции.
### Зачем назначать роли ключам API и AI-агентам?
* **Безопасность**: Ограничьте доступ и возможность изменений для автоматизированных процессов
* **Соответствие требованиям**: Обеспечьте, чтобы интеграции получали доступ только к необходимым данным
* **Контроль**: Предотвратите случайные изменения данных из-за неверно настроенных автоматизаций
* **Аудит**: Отслеживайте, какие действия выполнены какой интеграцией или каким агентом
### Назначить роль ключу API
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **Ключи API** нажмите **+ Назначить ключу API**
5. Выберите ключ API из списка
6. Подтвердите назначение
Теперь ключ API унаследует все разрешения, определённые этой ролью. Любые вызовы API, выполненные с этим ключом, будут соответствующим образом ограничены.
<Note>
Ключи API без назначенной роли используют разрешения по умолчанию. Для повышения безопасности всегда назначайте конкретную роль производственным ключам API.
</Note>
### Назначить роль AI-агенту
1. Перейдите в **Настройки → Участники → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **AI-агенты** нажмите **+ Назначить AI-агенту**
5. Выберите AI-агента из списка
6. Подтвердите назначение
AI-агент сможет получать доступ к данным и выполнять действия только в пределах разрешений назначенной ему роли.
<Note>
Для AI-агентов, работающих в рамках рабочих процессов, это гарантирует, что агент не сможет получать доступ к данным или изменять их вне своей предназначенной области — даже если у рабочего процесса есть более широкие разрешения.
</Note>

View File

@@ -0,0 +1,125 @@
---
title: Конфигурация SSO
description: Настройте единый вход (SSO) для безопасной корпоративной аутентификации.
---
## О SSO
Единый вход (SSO) позволяет участникам вашей команды входить в Twenty, используя провайдера идентификации вашей организации. Это обеспечивает:
* **Централизованное управление доступом**: управляйте доступом из одного места
* **Повышенная безопасность**: используйте существующие политики безопасности
* **Лучший пользовательский опыт**: один набор учетных данных для всех инструментов
## Поддерживаемые провайдеры
Twenty поддерживает SSO с:
* **SAML 2.0**: работает с большинством корпоративных провайдеров идентификации
* **Google Workspace**: для организаций, использующих Google
* **Microsoft Entra ID** (ранее Azure AD): Для среды Microsoft
## Настройка SSO
### Требования
* План Organization (облачные и самостоятельно размещённые рабочие пространства)
* Доступ администратора к вашему провайдеру идентификации
* Админ доступ к вашему двадцать проекту
### Шаги настройки
#### 1. Доступ к настройкам SSO
1. Перейдите в **Настройки → Безопасность**
2. Найдите раздел **Конфигурация SSO**
3. Нажмите **Настроить SSO**
#### 2) Выберите своего провайдера
Выберите вашего провайдера идентификации из списка или выберите "Custom SAML" для других провайдеров.
#### 3. Настройте вашего провайдера идентификации
Вам потребуется настроить вашего провайдера идентификации со следующими параметрами:
* **Entity ID**: предоставляется Twenty
* **ACS URL**: URL обратного вызова для аутентификации
* **Сертификат**: для защищённой связи
#### 4. Введите данные провайдера в Twenty
* **SSO URL**: URL для входа от вашего провайдера
* **Entity ID**: идентификатор вашего провайдера
* **Сертификат**: сертификат X.509 от вашего провайдера
#### 5. Проверка и включение
1. Нажмите **Проверить конфигурацию**, чтобы проверить настройку
2. Включите SSO, когда проверка пройдёт успешно
3. Настройте параметры подготовки пользователей
## Подготовка пользователей
### Подготовка Just-in-Time (JIT)
* Пользователи создаются автоматически при первом входе
* Пользователям назначена роль по умолчанию автоматически
* Ручное создание пользователей не требуется
### Ручная подготовка
* Пригласите пользователей до того, как они смогут войти
* Предварительно назначьте конкретные роли
* Дополнительный контроль над тем, кто может получить доступ к проекту
## Управление пользователями SSO
### Назначение ролей
Пользователям SSO можно назначать роли так же, как обычным пользователям:
1. Перейдите в **Настройки → Участники**
2. Найдите пользователя
3. Измените их роль при необходимости
### Отзыв доступа
Чтобы удалить доступ для пользователей SSO:
* Удалите их из вашего провайдера идентификации или
* Удалите их из рабочего пространства Twenty
## Лучшие практики
### Безопасность
* **Требовать SSO**: отключите вход по паролю для пользователей SSO
* **Регулярные аудиты**: периодически пересматривайте доступ
* **Строгие политики IdP**: обеспечьте MFA на стороне провайдера идентификации
### Управление пользователями
* **Понятные названия**: используйте единообразные наименования из вашего каталога
* **Сопоставление групп**: сопоставьте группы IdP с ролями Twenty (если доступно)
* **Процесс офбординга**: включите Twenty в ваш рабочий процесс отзыва доступов
## Устранение неполадок
### Распространённые проблемы
* **Ошибки сертификата**: убедитесь, что сертификат не истек
* **Несоответствие URL**: Проверьте соответствие ACS URL
* **Пользователь не найден**: проверьте настройки JIT-подготовки
### Получение помощи
Если вы столкнётесь с проблемами, обратитесь в поддержку, указав:
* Полученные сообщения об ошибках
* Используемый провайдер идентификации
* Подробности конфигурации (без конфиденциальных данных)
<Tip>
Нужно настроить SSO для вашей организации? [Найдите сертифицированного партнёра Twenty](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-sso), который специализируется на настройке SSO и систем идентификации. *(Предпочитаете связаться с Twenty напрямую? [contact@twenty.com](mailto:contact@twenty.com))*
</Tip>

View File

@@ -0,0 +1,120 @@
---
title: Часто задаваемые вопросы о разрешениях.
description: Часто задаваемые вопросы о ролях и разрешениях.
---
## Роли
<AccordionGroup>
<Accordion title="Какие роли доступны в Twenty по умолчанию?">
Двадцать поставляется с **Администраторами** и **Участником** по умолчанию. Вы можете создавать дополнительные пользовательские роли в зависимости от потребностей вашей команды (например, торговый представитель, менеджер, пользователь только для чтения).
</Accordion>
<Accordion title="Могу ли я удалить роль Администратора?">
Нет, роль Администратора удалить нельзя. На роль Администратора всегда должен быть назначен как минимум один участник.
</Accordion>
<Accordion title="Что произойдёт, если я удалю роль?">
Любой участник рабочего пространства, назначенный на эту роль, будет автоматически переназначен на роль по умолчанию.
</Accordion>
<Accordion title="Как установить роль по умолчанию для новых участников?">
Перейдите в **Настройки → Участники → Роли**, найдите параметр **Роль по умолчанию** и выберите, какую роль новые участники должны автоматически получать при присоединении.
</Accordion>
<Accordion title="Могу ли я назначить одному пользователю несколько ролей?">
Нет, у каждого пользователя может быть только одна роль одновременно. Создайте пользовательскую роль, если вам нужна комбинация разрешений.
</Accordion>
</AccordionGroup>
## Разрешения
<AccordionGroup>
<Accordion title="В чём разница между разрешениями на объекты и на поля?">
* **Разрешения на объекты**: Управляют доступом ко всем записям целиком (например, можно видеть/редактировать/удалять записи объекта «Люди»)
* **Разрешения на поля**: Управляют доступом к конкретным полям внутри объекта (например, можно видеть, но не редактировать поле «Зарплата»)
Разрешения на поля позволяют более тонко контролировать доступ к конфиденциальным данным.
</Accordion>
<Accordion title="Как работает переопределение разрешений?">
Разрешения применяются каскадно — от общих к конкретным:
1. **Все объекты** задаёт базовый уровень для всех объектов
2. **Разрешения на уровне объекта** могут переопределять глобальные настройки для конкретных объектов
3. **Разрешения на уровне поля** могут переопределять настройки объекта для конкретных полей
Более конкретные настройки всегда имеют приоритет.
</Accordion>
<Accordion title="Что означают разные уровни разрешений?">
Для объектов:
* **Просмотр записей**: Просмотр записей в списках и на страницах подробной информации
* **Редактирование записей**: Изменение существующих записей
* **Удаление записей**: Мягкое удаление записей (их можно восстановить)
* **Полное удаление записей**: Безвозвратное удаление записей
Для полей:
* **Просмотр поля**: Просмотр значения поля
* **Редактирование поля**: Изменение значения поля
* **Нет доступа**: Поле полностью скрыто
</Accordion>
<Accordion title="Могу ли я ограничить доступ к отдельным записям (разрешения на уровне строки)?">
Разрешения на уровне строки доступны в тарифе **Organization**. Это позволит ограничивать доступ к отдельным записям на основе критериев (например, видеть только собственные сделки).
</Accordion>
<Accordion title="Как сделать поле доступным только для чтения для отдельных пользователей?">
1. Перейдите в **Настройки → Участники → Роли**
2. Выберите роль
3. Перейдите к объекту, который содержит это поле
4. Установите для поля разрешение **Просмотр поля** (без **Редактирование поля**)
</Accordion>
</AccordionGroup>
## Настройки и действия
<AccordionGroup>
<Accordion title="Какие разрешения на настройки доступны?">
Вы можете управлять доступом к:
* Создание ключей API
* Настройки рабочего пространства
* Назначение ролей
* Настройка модели данных
* Настройки безопасности
* Управление рабочими процессами
Используйте **Settings All Access**, чтобы предоставить полный доступ, или включайте конкретные разрешения.
</Accordion>
<Accordion title="Какие разрешения на действия доступны?">
Вы можете управлять:
* **Отправка электронной почты**: Возможность отправлять письма из Twenty
* **Импорт CSV**: Возможность импортировать данные через CSV
* **Экспорт CSV**: Возможность экспортировать данные в CSV
Используйте **Application All Access**, чтобы предоставить все действия, либо включайте отдельные.
</Accordion>
</AccordionGroup>
## Единая система идентификации
<AccordionGroup>
<Accordion title="Доступна ли SSO во всех тарифах?">
Нет, SSO — это премиум-функция, доступная только в тарифе **Organization**.
</Accordion>
<Accordion title="Какие поставщики идентификации поддерживаются?">
Twenty поддерживает:
* **SAML 2.0** (работает с большинством корпоративных поставщиков идентификации)
* **Google Workspace**
* **Microsoft Entra ID** (ранее Azure AD)
</Accordion>
<Accordion title="Что такое подготовка Just-in-Time (JIT)?">
При JIT-подготовке учетные записи пользователей автоматически создаются в Twenty, когда кто-то впервые входит через SSO. Им автоматически назначается роль по умолчанию.
</Accordion>
<Accordion title="Могу ли я обязать всех пользователей использовать SSO?">
Да, после настройки SSO вы можете отключить вход по паролю для пользователей SSO, чтобы принудительно обеспечивать аутентификацию через вашего поставщика идентификации.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,34 @@
---
title: Права доступа и доступ
description: Управляйте ролями, разрешениями и контролем доступа в вашем рабочем пространстве.
---
Система разрешений Twenty позволяет контролировать, кто может получать доступ и изменять данные в вашем рабочем пространстве. Создавайте роли, назначайте разрешения и настраивайте SSO для безопасного доступа.
## Что в этом разделе
<CardGroup cols={2}>
<Card title="Разрешения" icon="lock" href="/l/ru/user-guide/permissions-access/capabilities/permissions">
Создавайте роли и настраивайте разрешения для объектов, полей и настроек.
</Card>
<Card title="Конфигурация SSO" icon="key" href="/l/ru/user-guide/permissions-access/capabilities/sso-configuration">
Настройте единый вход (SSO) с вашим провайдером удостоверений.
</Card>
<Card title="Частые вопросы" icon="circle-question" href="/l/ru/user-guide/permissions-access/how-tos/permissions-faq">
Распространенные вопросы о ролях, разрешениях и SSO.
</Card>
</CardGroup>
## Ключевые возможности
* **Доступ на основе ролей**: создавайте пользовательские роли с определенными разрешениями
* **Разрешения для объектов**: контролируйте, кто может просматривать, редактировать или удалять записи
* **Разрешения для полей**: ограничивайте доступ к конфиденциальным полям
* **Разрешения для настроек**: управляйте доступом к конфигурации рабочего пространства
* **Интеграция SSO**: настройте единый вход (SSO) для корпоративной безопасности (план Organization)
## Быстрые ссылки
* [Создать роль](/l/ru/user-guide/permissions-access/capabilities/permissions#create-a-role)
* [Настроить SSO](/l/ru/user-guide/permissions-access/capabilities/sso-configuration)
* [Управлять участниками команды](/l/ru/user-guide/settings/capabilities/member-management)

View File

@@ -0,0 +1,36 @@
---
title: Настройки сообщества
description: Включите функции раннего доступа в Twenty.
---
## О настройках сообщества
Раздел «Сообщество» позволяет включать функции раннего доступа до того, как они станут общедоступными, а также искать партнёров Twenty.
## Функции раннего доступа
Функции раннего доступа — это возможности, которые всё ещё тестируются перед общим релизом.
**Сейчас в раннем доступе:**
* **Junction relations** — Связи «многие ко многим»
### Как включить функции раннего доступа
1. Перейдите в **Настройки → Сообщество**
2. Перейдите в раздел **Функции**
3. Найдите функцию, которую хотите включить
4. Включите переключатель
5. Функция станет доступна сразу
<Note>
Функции раннего доступа могут изменяться в зависимости от отзывов пользователей. Ваша обратная связь помогает улучшать Twenty!
</Note>
## Обратная связь по функциям
Ваша обратная связь помогает улучшать Twenty:
* Сообщайте о проблемах с функциями раннего доступа
* Расскажите, как вы используете новые функции
* Предлагайте улучшения через [сообщество в Discord](https://discord.gg/cx5n4Jzs57)

View File

@@ -0,0 +1,52 @@
---
title: Настройки доменов
description: Настройте домен рабочего пространства, утверждённые домены доступа и собственные домены приложения.
---
Настройки доменов находятся в трёх местах, в зависимости от того, что вы настраиваете.
## Домен рабочей области
Настройте в разделе **Settings → General**.
Измените имя своего субдомена или установите собственный домен для вашего рабочего пространства.
### Настроить домен
1. Нажмите на **Subdomain** для редактирования поддомена (например, `yourcompany.twenty.com`)
2. Или нажмите на **Пользовательский домен** для настройки пользовательского домена (например, `crm.yourcompany.com`)
Для собственных доменов вам потребуется настроить параметры DNS у вашего провайдера домена.
## Утвержденные домены
Настройте в **Настройки → Участники → Пригласить**.
Добавьте домен вашей компании, чтобы члены команды могли автоматически зарегистрироваться на этот проект.
### Добавить утвержденный домен доступа
1. Нажмите **Добавить утверждённый домен доступа**
2. Введите домен вашей компании (например, `yourcompany.com`)
3. Сохранить
После настройки любой пользователь с адресом электронной почты в этом домене сможет присоединиться к вашему рабочему пространству без прямого приглашения.
<Note>
Это удобно: вся ваша команда сможет самостоятельно зарегистрироваться, при этом рабочее пространство останется доступным только для вашей организации.
</Note>
## Собственные домены приложения
Настройте в **Настройки → Приложения → ваше приложение → Настройки → App URL**.
Приложения, предоставляющие маршруты в Интернете, обслуживаются по отдельному URL-адресу, указанному в разделе **App URL**. Вместо этого вы можете обслуживать приложение на принадлежащем вам домене.
### Добавить собственный домен
1. Нажмите на **Пользовательский домен**
2. Введите домен, который вы хотите использовать (например, `app.yourcompany.com`)
3. Настройте параметры DNS согласно инструкциям
4. Подтвердите домен
Только маршруты этого приложения будут доступны на этом домене. SSL-сертификаты выдаются автоматически.

View File

@@ -0,0 +1,38 @@
---
title: Опыт - Настройки
description: Настройте тему интерфейса и региональные предпочтения.
---
Персонализируйте свой опыт использования Twenty в разделе **Настройки → Опыт**.
## Внешний вид
Выберите визуальную тему:
* **Светлая**: Чистый, светлый интерфейс
* **Тёмная**: Менее напрягает глаза в условиях слабого освещения
* **Системные настройки**: Автоматически соответствует теме вашего устройства
## Язык
Выберите предпочитаемый язык для интерфейса Twenty в раскрывающемся списке.
## Форматы
Настройте дату, время, числовой формат, часовой пояс и первый день недели.
| Настройка | Описание |
| ---------------------- | ------------------------------------------------------------------ |
| **Часовой пояс** | Ваш местный часовой пояс для точных отметок времени и планирования |
| **Формат даты** | Как отображаются даты (например, 12 дек. 2025) |
| **Формат времени** | 12-часовой (7:22 PM) или 24-часовой формат |
| **Числовой формат** | Разделители десятичной части и тысяч (например, 1,234.56) |
| **Первый день недели** | Первый день недели (воскресенье или понедельник) |
Для каждой настройки можно выбрать **Системные настройки**, чтобы автоматически соответствовать предпочтениям вашего устройства, или указать конкретный формат.
## Как обновить
1. Перейдите в **Настройки → Опыт**
2. Настройте свои предпочтения в каждом разделе
3. Изменения сохраняются автоматически

View File

@@ -0,0 +1,86 @@
---
title: Управление участниками
description: Пригласите членов команды и управляйте доступом к рабочему пространству.
---
Управляйте тем, кто имеет доступ к вашему рабочему пространству, в разделе **Настройки → Участники**.
## Приглашение новых участников
### Использование приглашения по электронной почте
1. Перейдите в **Настройки → Участники → Пригласить**
2. Нажмите **+ Пригласить**
3. Введите адрес электронной почты получателя
4. Выберите роль для нового участника
5. Нажмите **Отправить приглашение**
Приглашённый получит письмо со ссылкой для присоединения к вашему рабочему пространству.
### Использование ссылки-приглашения
1. Перейдите в **Настройки → Участники → Пригласить**
2. Скопируйте ссылку приглашения в рабочее пространство
3. Поделитесь ссылкой с новыми участниками команды
4. Они получат доступ после регистрации
## Просмотр и управление участниками
### Просмотр всех участников
Перейдите в **Настройки → Члены → Команда**, чтобы увидеть всех активных участников
Перейдите в **Настройки → Участники → Приглашение** чтобы увидеть нерассмотренные приглашения
### Редактирование профиля участника
Нажмите на участника, чтобы открыть его страницу профиля. Как администратор, вы можете:
* Изменить **имя**
* Обновить **фотографию профиля**
* **Войти от имени** пользователя (полезно для устранения неполадок)
* **Удалить** учётную запись
### Изменение роли участника
На странице профиля участника:
1. Откройте вкладку **Разрешения**
2. Просмотрите текущую назначенную роль
3. Выберите другую роль из выпадающего списка
4. Изменение вступает в силу немедленно
→ [Подробнее о ролях и разрешениях](/l/ru/user-guide/permissions-access/capabilities/permissions)
### Удаление участника
1. Нажмите на участника, чтобы открыть его профиль
2. Нажмите на **Удалить учетную запись** для удаления их из проекта
<Warning>
Удалённые участники сразу теряют доступ. Их данные (записи, заметки, задачи) остаются в рабочем пространстве.
</Warning>
<Note>
Письма и календарные события удаленного участника архивируются и доступны для других участников.
</Note>
## Ожидающие приглашения
Управляйте приглашениями, которые ещё не приняты:
* **Отправить снова**: отправить письмо-приглашение ещё раз
* **Отменить**: отозвать приглашение до его принятия
## Одобренные домены доступа
Разрешите участникам команды присоединяться автоматически на основе домена их электронной почты:
1. Перейдите в **Настройки → Участники → Пригласить**
2. Добавьте домен вашей компании (например, `yourcompany.com`)
3. Любой с таким доменом электронной почты сможет присоединиться без приглашения
## Связанные материалы
* [Разрешения](/l/ru/user-guide/permissions-access/capabilities/permissions) — настройте, что может делать каждая роль
* [Настройки домена](/l/ru/user-guide/settings/capabilities/domains-settings) — настройте одобренные домены

View File

@@ -0,0 +1,43 @@
---
title: Настройки профиля
description: Управляйте вашим личным профилем и настройками безопасности.
---
## Личная информация
### Имя и электронная почта
* **Отображаемое имя**: Обновите, как ваше имя будет отображаться другим участникам рабочего пространства
* **Адрес электронной почты**: Измените ваш логин (требуется подтверждение)
* **Изображение профиля**: Загрузите пользовательский аватар или используйте свои инициалы
## Настройки безопасности
### Двухфакторная аутентификация (2FA)
Включите 2FA, чтобы добавить дополнительный уровень безопасности к вашему аккаунту:
1. Перейдите в **Настройки → Профиль**
2. Нажмите **Приложение-аутентификатор**
3. Сканируйте QR-код с помощью вашего приложения аутентификатора
4. Введите код подтверждения, чтобы подтвердить
### Управление паролями
* **Изменить пароль**: Обновите ваш текущий пароль
* **Требования к паролю**: Должен содержать не менее 8 символов
## Управление профилем
### Удаление аккаунта
<Warning>
Удаление вашего аккаунта навсегда лишит вас доступа ко всем рабочим пространствам. Это действие нельзя отменить. Вы потеряете доступ ко всем рабочим пространствам, в которых вы являетесь участником. Если вы хотите выйти только из определённых команд, рассмотрите возможность покинуть отдельные рабочие пространства вместо этого.
</Warning>
Чтобы удалить ваш аккаунт:
1. Перейдите в **Настройки → Профиль**
2. Прокрутите до **Опасной зоны**
3. Нажмите **Удалить аккаунт**
4. Подтвердите, введя свой адрес электронной почты

View File

@@ -0,0 +1,30 @@
---
title: Настройки рабочей области
description: Настройте название и брендинг вашей рабочей области.
---
Ваши настройки изображения, имени и удаления рабочей области доступны в разделе **Настройки → Общие**.
## Изображение рабочей области
* **Загрузить лого**: Добавить пользовательский логотип рабочей области
* **Поддерживаемые форматы**: файлы PNG, JPEG и GIF до 10MB
* **Удалить**: Удалить текущий логотип рабочей области
## Название рабочей области
* **Название**: Измените отображаемое имя рабочей области
* Это имя отображается для всех участников рабочей области
## Опасная зона
<Warning>
Удаление вашего проекта навсегда удаляет все данные и немедленно отменяет доступ для всех участников — это действие не может быть отменено.
</Warning>
Чтобы удалить вашу рабочую область:
1. Нажмите на кнопку **Удалить проект**
2. Подтвердите удаление, когда будет предложено
**Примечание**: Только администраторы рабочей области могут ее удалять.

View File

@@ -0,0 +1,171 @@
---
title: Настройки FAQ
description: Часто задаваемые вопросы о настройках Twenty.
---
## Настройки рабочей области
<AccordionGroup>
<Accordion title="Как изменить название рабочего пространства?">
1. Перейдите в **Настройки → Общие**
2. Найдите поле "Название рабочего пространства"
3. Введите новое название
4. Изменения сохраняются автоматически
</Accordion>
<Accordion title="Как обновить логотип рабочего пространства?">
1. Перейдите в **Настройки → Общие**
2. Нажмите на текущий логотип или область загрузки
3. Выберите файл изображения (PNG, JPEG или GIF размером до 10 МБ)
4. Логотип обновится сразу
</Accordion>
<Accordion title="Могу ли я иметь несколько рабочих пространств?">
Да, вы можете создавать несколько рабочих пространств и быть их участником. У каждого рабочего пространства есть собственные данные, настройки и подписка.
</Accordion>
<Accordion title="Как удалить рабочее пространство?">
1. Перейдите в **Настройки → Общие**
2. Прокрутите до раздела "Опасная зона"
3. Нажмите **Удалить рабочее пространство**
4. Подтвердите удаление
Примечание: это навсегда удалит все данные, и это действие нельзя отменить.
</Accordion>
<Accordion title="Я случайно создал несколько рабочих пространств. Что мне делать?">
Удалите рабочие пространства, которые больше не нужны, в разделе **Настройки → Общие → Удалить рабочее пространство**.
<Warning>
Не удаляйте свою **учетную запись** (доступна в Настройках → Профиль): ваша учетная запись используется во всех ваших рабочих пространствах. Удаление учетной записи лишит вас доступа ко ВСЕМ рабочим пространствам.
</Warning>
</Accordion>
<Accordion title="Как отключить рабочее пространство, не удаляя его?">
Если вы хотите временно отключить рабочее пространство (а не удалять его навсегда), перейдите в **Настройки → Оплата** и нажмите **Отменить план**. Ваши данные будут сохранены в течение льготного периода.
</Accordion>
</AccordionGroup>
## Настройки профиля
<AccordionGroup>
<Accordion title="Как изменить пароль?">
1. Перейдите в **Настройки → Профиль**
2. Найдите раздел "Пароль"
3. Введите текущий пароль
4. Введите новый пароль
5. Сохраните изменения
</Accordion>
<Accordion title="Как включить двухфакторную аутентификацию?">
1. Перейдите в **Настройки → Профиль**
2. Найдите раздел 2FA
3. Нажмите **Включить 2FA**
4. Сканируйте QR-код с помощью вашего приложения аутентификатора
5. Введите код подтверждения
</Accordion>
<Accordion title="Могу ли я изменить адрес электронной почты?">
Чтобы изменить адрес электронной почты, свяжитесь с [contact@twenty.com](mailto:contact@twenty.com).
</Accordion>
<Accordion title="Как удалить учетную запись?">
1. Перейдите в **Настройки → Профиль**
2. Прокрутите до раздела "Опасная зона"
3. Нажмите **Удалить аккаунт**
4. Подтвердите, введя свой адрес электронной почты
Примечание: это лишит вас доступа ко всем рабочим пространствам и удалит все письма, синхронизированные из ваших подключенных учетных записей.
</Accordion>
</AccordionGroup>
## Опыт - Настройки
<AccordionGroup>
<Accordion title="Как переключаться между светлым и темным режимами?">
1. Перейдите в **Настройки → Опыт**
2. Найдите раздел "Тема"
3. Выберите «Светлая», «Тёмная» или «Системная»
</Accordion>
<Accordion title="Как изменить формат даты?">
1. Перейдите в **Настройки → Опыт**
2. Найдите "Формат даты"
3. Выберите предпочитаемый формат
4. Изменения применяются сразу
</Accordion>
<Accordion title="Как изменить часовой пояс?">
1. Перейдите в **Настройки → Опыт**
2. Найдите "Часовой пояс"
3. Выберите свой местный часовой пояс
4. Все временные метки будут скорректированы
</Accordion>
<Accordion title="Могу ли я изменить язык?">
1. Перейдите в **Настройки → Опыт**
2. Найдите "Язык"
3. Выберите один из доступных языков
4. Интерфейс обновится согласно вашему выбору
</Accordion>
</AccordionGroup>
## Настройки учетной записи
<AccordionGroup>
<Accordion title="Как подключить почтовую учетную запись?">
1. Перейдите в **Настройки → Аккаунты**
2. Нажмите **Добавить аккаунт**
3. Выберите Google или Microsoft
4. Предоставьте доступ
5. Настройте параметры синхронизации
</Accordion>
<Accordion title="Могу ли я подключить несколько почтовых учетных записей?">
Да, вы можете подключить несколько почтовых учетных записей. Перейдите в **Настройки → Учетные записи** и при необходимости добавьте дополнительные учетные записи.
</Accordion>
<Accordion title="Как отключить почтовую учетную запись?">
1. Перейдите в **Настройки → Аккаунты**
2. Найдите учетную запись, которую нужно удалить
3. Нажмите **Отключить**
4. Подтвердите действие
</Accordion>
</AccordionGroup>
## Домены
<AccordionGroup>
<Accordion title="Могу ли я настроить домен моего рабочего пространства?">
Да! Перейдите в **Настройки → Общие → Домен рабочего пространства** и нажмите **Настроить домен**. У вас есть два варианта:
* **Поддомен**: используйте поддомен Twenty, например `yourcompany.twenty.com`
* **Пользовательский домен**: используйте собственный домен, например `crm.yourcompany.com` (требуется настройка DNS)
Поддомен настраивается быстро, тогда как пользовательский домен обеспечивает вашей команде полностью фирменный опыт работы.
</Accordion>
<Accordion title="Как работают утвержденные домены доступа?">
Вы можете настроить утвержденные домены доступа, чтобы участники команды с корпоративными адресами электронной почты могли автоматически присоединяться к вашему рабочему пространству. Перейдите в **Настройки → Участники → Пригласить** и добавьте домен вашей компании (например, `yourcompany.com`).
</Accordion>
</AccordionGroup>
## Функции раннего доступа
<AccordionGroup>
<Accordion title="Что такое функции раннего доступа?">
Функции раннего доступа — это возможности, которые тестируются перед общим релизом.
</Accordion>
<Accordion title="Безопасно ли использовать функции раннего доступа?">
Функции раннего доступа являются функциональными и безопасными для использования, но могут измениться в зависимости от обратной связи пользователя до общей доступности.
</Accordion>
<Accordion title="Как включить функции раннего доступа?">
1. Перейдите в **Настройки → Сообщество**
2. Прокрутите вниз до секции **Особенности**
3. Найдите нужную функцию
4. Включите переключатель
5. Функция станет доступна сразу
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,62 @@
---
title: Настройки
description: Настройте рабочее пространство Twenty с основными настройками.
---
## Начальная настройка
Когда вы впервые создаете рабочее пространство, необходимо настроить несколько ключевых параметров.
### Название рабочего пространства и логотип
1. Перейдите в **Настройки → Общие**
2. Обновите название рабочего пространства
3. Загрузите логотип вашей компании
4. Сохраните изменения
### Часовой пояс и формат даты
1. Перейдите в **Настройки → Опыт**
2. Выберите часовой пояс
3. Выберите предпочитаемый формат даты
4. Сохраните изменения
## Основные настройки
### Подключите электронную почту и календарь
Настройте синхронизацию электронной почты и календаря:
1. Перейдите в **Настройки → Аккаунты**
2. Нажмите **Добавить аккаунт**
3. Подключите учетную запись Google или Microsoft
4. Настройте параметры синхронизации
→ [Полное руководство по настройке электронной почты и календаря](/l/ru/user-guide/calendar-emails/overview)
### Пригласите свою команду
Добавьте участников команды в ваше рабочее пространство:
1. Перейдите в **Настройки → Участники**
2. Нажмите **+ Пригласить**
3. Введите адреса электронной почты
4. Назначьте соответствующие роли
<Note>
Прежде чем приглашать команду, проверьте роль по умолчанию в разделе **Настройки → Участники → Роли**. Новые участники автоматически получают эту роль при присоединении.
</Note>
## Контрольный список настроек рабочего пространства
* Название рабочего пространства и логотип настроены
* Часовой пояс и формат даты установлены
* Почта и календарь подключены
* Участники команды приглашены
* Роли и разрешения настроены
## Следующие шаги
* [Настройки рабочего пространства](/l/ru/user-guide/settings/capabilities/workspace-settings)
* [Настройки профиля](/l/ru/user-guide/settings/capabilities/profile-settings)
* [Настройки интерфейса](/l/ru/user-guide/settings/capabilities/experience-settings)

View File

@@ -0,0 +1,46 @@
---
title: Календарное представление
description: Отображайте записи с полями даты в календаре.
---
## О календарном представлении
Календарное представление отображает ваши записи в календаре на основе поля даты. Каждая запись отображается как событие в соответствующую дату.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Создание календарного представления
1. Перейдите к объекту с полями даты
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите представление и нажмите **Создать**
4. Откройте **Параметры** справа
5. Выберите **Календарь** в качестве макета
6. Выберите **поле даты**, которое будет использоваться для размещения записей
7. Нажмите **Обновить представление**
## Настройка календаря
### Выберите поле даты
В разделе **Параметры** выберите, какое поле даты определяет, где записи отображаются в календаре.
### Отображаемые поля
Настройте, какие поля отображаются в каждом событии календаря:
1. Нажмите **Параметры → Поля**
2. Включайте и отключайте поля
3. Перетащите, чтобы изменить порядок
## Сценарии использования
* **Встречи и звонки**: просматривайте предстоящие встречи
* **Сроки**: отслеживайте даты выполнения и закрытия
* **События**: планируйте и визуализируйте запланированные активности
* **Последующие действия**: смотрите, когда наступает срок выполнения задач
## Связанные материалы
* [Обзор представлений](/l/ru/user-guide/views-pipelines/overview) — создание и управление представлениями
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — фильтрация данных календаря

View File

@@ -0,0 +1,52 @@
---
title: Поля и столбцы
description: Выберите, какие поля отображать, и как их упорядочить.
---
## Выбор полей для отображения
Каждое представление может отображать разный набор полей. Настройте, что отображается, чтобы сосредоточиться на важной информации.
### Показ или скрытие полей
1. Нажмите **Параметры** в правом верхнем углу
2. Нажмите **Поля**
3. Нажмите **значок глаза** рядом с каждым полем, чтобы показать/скрыть его
### Изменение порядка полей
Измените порядок отображения полей в вашем представлении:
1. Нажмите **Параметры → Поля**
2. Перетаскивайте поля вверх или вниз
3. Изменения сохраняются автоматически
## Отображение полей по типу представления
### Табличные представления
* Поля отображаются в виде столбцов
* Изменяйте размер столбцов, перетаскивая границы
### Канбан-представления
* Поля отображаются на карточках
* Измените порядок через Параметры → Поля
* Используйте Компактный вид, чтобы скрыть все поля
### Календарные представления
* Выбранные поля отображаются в событиях календаря
* Настройте через Параметры → Поля
## Лучшие практики
* **Показать только что нужно** — слишком много полей, не позволяющих увидеть
* **Размещайте важные поля первыми** — самые часто используемые столбцы слева
* **Создавайте несколько представлений** — разные наборы полей для разных задач
* **Используйте видимость полей для каждого представления** — один и тот же объект, разные акценты
## Связанные материалы
* [Табличные представления](/l/ru/user-guide/views-pipelines/capabilities/table-views) — возможности табличных представлений
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) — карточные представления

View File

@@ -0,0 +1,78 @@
---
title: Фильтры и сортировка
description: Фильтруйте и сортируйте записи, чтобы найти именно то, что вам нужно.
---
## Фильтрация данных
Фильтры помогают сосредоточиться на конкретных записях, показывая только те, которые соответствуют вашим критериям.
### Добавление фильтра
1. Нажмите кнопку **Фильтр** на панели инструментов
2. Выберите поле для фильтрации
3. Выберите оператор (равно, содержит и т. д.)
4. Введите значение фильтра
5. Нажмите **Применить**
### Операторы фильтра
| Тип поля | Доступные операторы |
| -------- | ------------------------------------------------------ |
| Текст | Равно, Содержит, Начинается с, Заканчивается на, Пусто |
| Число | Равно, Больше чем, Меньше чем, Пусто |
| Дата | Равно, До, После, Пусто |
| Выбрать | Равно, Любое из, Пусто |
| Флажок | Истинно, Ложно |
| Связь | Равно, Пусто |
### Несколько фильтров
Комбинируйте несколько фильтров, чтобы сузить результаты:
* Все фильтры применяются с логикой И
* Каждый дополнительный фильтр ещё больше сужает результаты
### Удаление фильтров
* Нажмите **X** на отдельных чипах фильтров
* Нажмите **Очистить всё**, чтобы удалить все фильтры
## Сортировка данных
Сортировка определяет порядок отображения записей.
### Добавление сортировки
1. Нажмите кнопку **Сортировка** на панели инструментов
2. Выберите поле для сортировки
3. Выберите по возрастанию (A–Z, 0–9) или по убыванию (Z–A, 9–0)
4. Нажмите **Применить**
### Несколько сортировок
Добавьте несколько уровней сортировки:
* Первая сортировка — основная
* Последующие сортировки применяются внутри групп равных значений
### Быстрая сортировка столбцов
Нажмите заголовок любого столбца, чтобы отсортировать:
* Первое нажатие: по возрастанию
* Второе нажатие: по убыванию
* Третье нажатие: убрать сортировку
## Сохранение настроек фильтров и сортировки
Фильтры и сортировки сохраняются вместе с представлением:
1. Настройте фильтры и сортировки
2. Нажмите **Сохранить**, чтобы обновить текущее представление
3. Или нажмите **Сохранить как новое представление**, чтобы создать вариант
## Связанные материалы
* [Табличные представления](/l/ru/user-guide/views-pipelines/capabilities/table-views) — функция группировки
* [Обзор представлений](/l/ru/user-guide/views-pipelines/overview) — создание и управление представлениями

View File

@@ -0,0 +1,98 @@
---
title: Представления канбан-доски
description: Узнайте, как использовать канбан-представления для визуализации и управления вашими рабочими процессами.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## О канбан-представлениях
Канбан-представления наглядно отображают потоки процессов: каждый столбец соответствует отдельному этапу, а каждая карточка представляет запись.
## Перемещайте карточки между этапами
Вы можете перемещать каждую карточку между этапами по мере прохождения рабочего процесса, нажав и удерживая карточку, а затем перетащив её на следующий этап.
<VimeoEmbed videoId="927888627" title="Видеодемонстрация" />
## Добавление и удаление этапов
Вы можете настроить ваш рабочий процесс в соответствии с вашими нуждами, используя этапы, каждый из которых представляет значение в поле выбора:
### Добавить стадии
Чтобы добавить этап, откройте настройки поля выбора, перейдя в Настройки > Модель данных, выберите объект, а затем поле, от которого зависит ваша канбан-доска.
<VimeoEmbed videoId="927890428" title="Видеодемонстрация" />
### Удалить стадии
Чтобы удалить этап, наведите курсор на название этапа или значок `⋮`, щёлкните `Редактировать в настройках` в настройках поля выбора, затем нажмите **Удалить** рядом с соответствующим этапом.
## Отображаемые поля
Вы можете настроить доску Канбан для отображения некоторых полей и скрытия других. Чтобы показать или скрыть поле, нажмите **Параметры** в правом верхнем углу, затем **Поля**, чтобы открыть список параметров, и нажмите на значок глаза рядом с полем, чтобы показать или скрыть его.
Вы также можете изменить порядок полей, удерживая имя поля и перетаскивая его туда, где хотите видеть.
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
## Компактный вид
Вы можете скрыть все поля и получить обзор всех записей одним взглядом. Чтобы включить:
1. Нажмите **Параметры** в правом верхнем углу
2. Включите переключатель **Компактный вид**
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
## Агрегирование в столбцах
Каждый столбец в канбан-представлении может отображать вверху агрегированные значения, что помогает быстро оценить данные.
### Доступные агрегирования
| Агрегирование | Описание |
| -------------- | ------------------------------------------------------ |
| **Количество** | Количество записей в столбце |
| **Сумма** | Сумма значений числового поля (например, суммы сделок) |
| **Среднее** | Среднее значение числового поля |
| **Минимум** | Минимальное значение |
| **Максимум** | Максимальное значение |
### Настройка агрегирования
1. Щёлкните по числу, отображаемому рядом со значением этапа вверху столбца
2. Выберите тип агрегирования
3. Выберите поле для агрегирования
**Пример:** Показать общую стоимость сделок по этапам, агрегируя поле Amount с помощью Sum.
## Когда использовать канбан-представления
Канбан-представления лучше всего подходят для:
* **Воронки продаж**: Отслеживайте сделки по этапам — от лида до закрытия
* **Управление проектами**: Отслеживайте задачи по состояниям рабочего процесса
* **Подбор персонала**: Отслеживайте кандидатов по этапам найма
* **Любой поэтапный процесс**: Визуализируйте любой рабочий процесс с определёнными этапами
## Лучшие практики
### Организуйте этапы
* **Ограничьте число этапов**: 5-7 этапов — оптимально для наглядности
* **Понятные названия**: Используйте описательные названия этапов
* **Логичный порядок**: Расположите этапы в порядке процесса
### Оптимизируйте отображение карточек
* **Показывайте ключевые поля**: Отображайте только самую важную информацию
* **Используйте компактный вид**: Для общего обзора
* **Цветовое кодирование**: Используйте цвета этапов для быстрого определения статуса
### Поддерживайте качество данных
* **Регулярно обновляйте**: Продвигайте карточки по этапам
* **Архивируйте завершённые**: Перемещайте закрытые элементы из активного представления
* **Проверяйте «застаивающиеся» карточки**: Отслеживайте карточки, застрявшие на этапах

View File

@@ -0,0 +1,64 @@
---
title: Табличные представления
description: Отображайте данные в списке, подобном электронной таблице.
---
## О табличных представлениях
Табличные представления отображают записи в строках с настраиваемыми столбцами — как в электронной таблице. Это тип представления по умолчанию для большинства объектов.
<img src="/images/user-guide/table-views/table-view.png" style={{width:'100%'}} />
## Возможности
### Настройка столбцов
* Показывайте или скрывайте столбцы (поля)
* Изменяйте ширину столбцов
* Меняйте порядок столбцов перетаскиванием
### Группировка по полю выбора
Организуйте записи в сворачиваемые группы по значению поля выбора.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
1. Нажмите **Параметры**
2. Выберите **Группировка**
3. Выберите поле выбора
4. Настройте порядок групп в **Параметры → Группировка → Сортировка**:
* **По алфавиту** или **В обратном алфавитном порядке**
* **Вручную**: Перетащите группы в разделе "Видимые группы", чтобы изменить порядок
* Нажмите **значок глаза** рядом с группой, чтобы скрыть её
**Сценарии использования:**
* Сгруппируйте компании по типу
* Сгруппируйте сделки по этапам
* Сгруппируйте задачи по статусу
<Note>
**Для лучшей производительности ограничьте количество видимых групп до 10–15 в одном представлении.** Если нужно больше групп, рассмотрите возможность использования вместо этого панели мониторинга.
</Note>
### Ширина столбцов
Изменяйте размер столбцов, чтобы показывать больше или меньше содержимого:
1. Наведите курсор между двумя заголовками столбцов
2. Щёлкните и перетащите границу столбца
3. Отпустите, чтобы установить новую ширину
## Когда использовать табличные представления
Табличные представления лучше всего подходят для:
* **Просмотра больших наборов данных** — быстро просматривать множество записей
* **Ввода данных** — эффективно редактировать несколько записей
* **Детального анализа** — видеть множество полей одновременно
* **Сортировки и фильтрации** — находить конкретные записи
## Связанные материалы
* [Поля и столбцы](/l/ru/user-guide/views-pipelines/capabilities/fields-and-columns) — настройка отображаемых полей
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — сужение списка записей

View File

@@ -0,0 +1,74 @@
---
title: Настройки представления
description: Управляйте видимостью представлений, их названиями, значками и организацией.
---
## Видимость представления
Настройте, кто может видеть ваши настраиваемые представления.
### Настройки видимости
| Настройка | Кто может видеть |
| ------------------------ | ----------------------------------- |
| **Рабочее пространство** | Все участники рабочего пространства |
| **Неуказанный** | Только вы |
### Изменение видимости
1. Откройте представление
2. Нажмите **Параметры → Видимость**
3. Выберите **Рабочее пространство** или **Неуказанный**
<Note>
Для представлений по умолчанию "All [Object Name]" нельзя изменить видимость.
</Note>
## Переименовать представление
1. Откройте выпадающее меню представления
2. Нажмите меню **⋮** рядом с представлением
3. Выберите **Изменить**
4. Введите новое название
## Изменить значок представления
1. Откройте выпадающее меню представления
2. Нажмите меню **⋮** рядом с представлением
3. Выберите **Изменить**
4. Нажмите на значок, чтобы изменить его
## Изменить порядок представлений
Измените порядок отображения представлений в раскрывающемся списке:
1. Откройте выпадающее меню представления
2. Перетаскивайте представления за область перетаскивания
3. Отпустите в нужной позиции
4. Порядок сохраняется автоматически
## Избранное
Закрепите часто используемые представления для быстрого доступа:
1. Откройте выпадающее меню представления
2. Нажмите меню **⋮** рядом с представлением
3. Выберите **Добавить в избранное**
Избранные представления отображаются в отдельном разделе для быстрого доступа.
## Удалить представление
1. Откройте выпадающее меню представления
2. Нажмите меню **⋮** рядом с представлением
3. Выберите **Удалить**
4. Подтвердите удаление
<Warning>
Удалённые представления невозможно восстановить.
</Warning>
## Связанные материалы
* [Обзор представлений](/l/ru/user-guide/views-pipelines/overview) — создание представлений
* [Как ограничить доступ](/l/ru/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — пошаговое руководство

View File

@@ -0,0 +1,61 @@
---
title: Создайте календарное представление задач по срокам
description: Отображайте задачи и сроки в календаре.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Требования
В объекте **Tasks** должно быть поле **Due Date** (типа Date или Date & Time).
## Шаги
1. Перейдите в **Tasks**
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите представление (например, "Календарь задач")
4. Нажмите **Создать**
5. Нажмите **Параметры** и выберите **Календарь** в качестве макета
6. Выберите **Due Date** в качестве поля даты
7. Нажмите **Сохранить**
## Настройка календаря
### Отображение полей на событиях
1. Нажмите **Параметры → Поля**
2. Нажмите **значок глаза**, чтобы показать/скрыть поля
3. Перетащите, чтобы изменить порядок
Рекомендуемые поля для отображения:
* **Title** — название задачи
* **Assignee** — ответственный
* **Status** — текущий прогресс
### Фильтрация календаря
Создавайте целевые представления:
* **Мои задачи**: Фильтр по ответственному = Я
* **Эта неделя**: Фильтр по дате выполнения = Эта неделя
* **Просроченные**: Фильтр по дате выполнения < Сегодня, статус ≠ Выполнено
## Другие сценарии использования календаря
| Объект | Поле даты | Назначение |
| ------------------------ | ------------- | ------------------------------ |
| Возможности | Дата закрытия | Отслеживать ожидаемые закрытия |
| Пользовательские события | Дата события | Планировать активности |
| Проекты | Крайний срок | Отслеживать сроки проектов |
## Советы
* **Проверяйте еженедельно**: Начинайте каждую неделю с проверки представления календаря
* **Совмещайте с табличным представлением**: Используйте календарь для обзора, таблицу — для деталей
* **Настройте видимость**: Держите личные календари задач со статусом «Не в списке»
## Связанные материалы
* [Представление «Календарь»](/l/ru/user-guide/views-pipelines/capabilities/calendar-view) — все возможности календаря
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — фильтрация данных календаря

View File

@@ -0,0 +1,80 @@
---
title: Создайте канбан-представление для проектов
description: Отслеживайте проекты по стадиям с помощью визуальной доски.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Используйте канбан-представление, чтобы визуализировать ваши проекты (или любой объект со стадиями) в виде карточек, перемещающихся между столбцами.
<VimeoEmbed videoId="927888627" title="Видеодемонстрация" />
## Требования
Вашему объекту нужно **поле Select**, которое будет использоваться в качестве столбцов (например, Статус, Стадия, Этап).
Если его нет:
1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш объект
3. Добавьте поле Select с вариантами стадий
## Шаги
1. Перейдите к вашему объекту (например, Проекты, Задачи)
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите представление (например, "Доска проекта")
4. Нажмите **Создать**
5. Нажмите **Параметры** и выберите **Kanban** в качестве макета
6. Представление автоматически использует ваше поле Select в качестве столбцов
7. Нажмите **Сохранить**
## Настройка вашей доски
### Отображение ключевых полей на карточках
1. Нажмите **Параметры → Поля**
2. Найдите поля в разделе «Скрытые поля»
3. Нажмите **значок глаза**, чтобы отобразить их на карточках
4. Перетащите, чтобы изменить порядок
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
### Включить компактный вид
Для общего обзора:
1. Нажмите **Параметры**
2. Включите **Компактный вид**
Карточки показывают только название записи.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
### Добавление агрегаций
Показывайте количество или итоги вверху каждого столбца:
1. Нажмите на число рядом с названием столбца
2. Выберите агрегацию (Count, Sum и т. д.)
3. Выберите поле, если нужно
## Перемещение карточек
Перетаскивайте карточки между столбцами, чтобы обновить их статус.
<VimeoEmbed videoId="927888627" title="Видеодемонстрация" />
## Пример: доска задач
| Столбец (статус) | Карточки |
| ---------------- | ------------------- |
| **К выполнению** | Новые задачи |
| **В процессе** | Активная работа |
| **Проверка** | Ожидает утверждения |
| **Готово** | Завершено |
## Связанные материалы
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) — агрегации, компактный вид, стадии
* [Как настроить воронку продаж](/l/ru/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline) — Канбан для возможностей

View File

@@ -0,0 +1,51 @@
---
title: Создание табличного представления с группировкой
description: Организуйте записи в сворачиваемые группы по значению поля.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Сгруппируйте табличное представление по полю Select, чтобы организовать записи в сворачиваемые разделы.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Шаги
1. Перейдите к объекту (Люди, Компании и т. д.)
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите представление (например, "Компании по типу")
4. Нажмите **Создать**
5. Нажмите **Параметры → Группировка**
6. Выберите поле Select для группировки
7. Нажмите **Сохранить**
## Настройка порядка групп
В **Параметры → Группировка → Сортировка** выберите порядок групп:
| Вариант | Описание |
| --------------------------------- | --------------------------------------------------------------------- |
| **По алфавиту** | От A до Z |
| **В обратном алфавитном порядке** | От Z до A |
| **Ручной порядок** | Перетащите группы, чтобы изменить порядок, в разделе "Видимые группы" |
Нажмите **значок глаза** рядом с группой, чтобы скрыть её в представлении.
<Note>
**Для лучшей производительности ограничьте количество видимых групп до 10–15.** Если нужно больше, рассмотрите возможность использования вместо этого панели мониторинга.
</Note>
## Пример: Компании по отрасли
1. Перейдите в **Компании**
2. Создайте новое представление с названием "По отрасли"
3. Нажмите **Параметры → Группировка**
4. Выберите поле **Отрасль**
5. Сохранить
Теперь ваши компании организованы по отраслям, что позволяет легко сосредоточиться на одном сегменте.
## Связанные материалы
* [Табличные представления](/l/ru/user-guide/views-pipelines/capabilities/table-views) — все возможности табличных представлений
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — сочетайте группировку с фильтрами

View File

@@ -0,0 +1,32 @@
---
title: Ограничьте доступ к своему представлению
description: Контролируйте, кто может видеть ваши настраиваемые представления.
---
Каждое представление (за исключением представлений по умолчанию "All [Object Name]") имеет собственную настройку видимости.
## Шаги
1. Откройте представление, доступ к которому вы хотите ограничить
2. Нажмите **Параметры** в правом верхнем углу
3. Нажмите **Видимость**
4. Выберите **Не в списке**
Теперь ваше представление видно только вам.
## Параметры видимости
| Настройка | Кто может видеть |
| ------------------------ | ----------------------------------- |
| **Рабочее пространство** | Все участники рабочего пространства |
| **Не в списке** | Только вы |
## Заметки
* Представления по умолчанию "All [Object Name]" нельзя перевести в режим "Не в списке"
* Представления в режиме "Не в списке" не отображаются в выпадающем списке представлений у других пользователей
* Вы можете в любой момент изменить видимость обратно на "Рабочее пространство"
## Связанные материалы
* [Настройки представления](/l/ru/user-guide/views-pipelines/capabilities/view-settings) — все параметры настройки представления

View File

@@ -0,0 +1,120 @@
---
title: Настройка воронки продаж
description: Настройте воронку продаж для отслеживания возможностей по стадиям.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
В Twenty воронка продаж — это представление Канбан объекта «Возможности», где каждый столбец соответствует стадии вашего процесса продаж.
## Шаг 1: Настройте стадии
Стадии задаются в поле **Stage** объекта «Возможности».
1. Перейдите в **Настройки → Модель данных**
2. Выберите **Возможности**
3. Найдите и нажмите поле **Stage**
4. Добавьте, удалите или переименуйте стадии в соответствии с вашим процессом
<VimeoEmbed videoId="927890428" title="Видеодемонстрация" />
### Рекомендуемые стадии
| Этап | Назначение |
| ----------------------- | --------------------------------- |
| **Новый** | Только что выявленные возможности |
| **Квалифицированные** | Подтверждённое соответствие |
| **Встреча** | Ведутся обсуждения |
| **Предложение** | Предложение отправлено |
| **Переговоры** | Обсуждение условий |
| **Закрыта — выиграно** | Сделка успешно завершена |
| **Закрыта — проиграно** | Сделка неуспешна |
<Note>
**5-7 этапов оптимальны.** Слишком много этапов затрудняют сканирование трубопровода. Слишком мало кто теряет видимость в прогрессе.
</Note>
## Шаг 2: Создайте представление воронки
1. Перейдите в **Возможности**
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите его «Воронка продаж»
4. Нажмите **Создать**
5. Откройте **Параметры** и выберите **Канбан** в качестве макета
Представление автоматически использует поле Stage для столбцов.
## Шаг 3: Настройте ваше представление
### Отображение ключевых полей
1. Нажмите **Параметры → Поля**
2. Найдите поля в разделе «Скрытые поля»
3. Нажмите **значок глаза**, чтобы отобразить: Company, Amount, Close Date, Owner
### Включите агрегирование
Показывайте итоги вверху каждого столбца:
1. Щёлкните по числу, отображаемому рядом с названием стадии вверху столбца
2. Выберите тип агрегации (Count, Sum, Average и т. д.)
3. Выберите поле для агрегации (например, Amount)
**Пример:** Показать общую стоимость сделок по этапам, агрегируя поле Amount с помощью Sum.
### Компактный вид (необязательно)
Для обзорного вида с минимальным содержимым карточек:
1. Нажмите **Параметры**
2. Включите переключатель **Компактный вид**
## Шаг 4: Создайте личные и командные представления
### "Моя воронка"
* **Фильтр**: Owner = Me
* **Видимость**: Unlisted (личное представление)
### "Командная воронка"
* **Фильтр**: None (показать всё)
* **Видимость**: Workspace (общее представление)
### "Закрытия в этом месяце"
* **Тип**: Table
* **Фильтр**: Close Date = This month, Stage ≠ Closed Won, Stage ≠ Closed Lost
* **Сортировка**: Close Date по возрастанию
## Работа с возможностями
### Создание возможностей
* Нажмите **+ New** в представлении «Возможности»
* Либо нажмите **+** в столбце нужной стадии
### Переход между стадиями
Перетаскивайте карточки возможностей между столбцами, чтобы обновить их стадию.
<VimeoEmbed videoId="927888627" title="Видеодемонстрация" />
## Лучшие практики
### Гигиена воронки
* Ежедневно обновляйте сделки по мере их продвижения
* Своевременно перемещайте или закрывайте «застоявшиеся» сделки
* Поддерживайте реалистичные даты закрытия
### Дисциплина стадий
* Определите чёткие критерии для каждой стадии
* Своевременно переводите сделки при выполнении критериев
* Не допускайте, чтобы сделки слишком долго застревали на стадиях
## Связанные материалы
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) — агрегации и компактный вид
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — создание отфильтрованных представлений

View File

@@ -0,0 +1,149 @@
---
title: Показать ожидаемую сумму на вашей конвейере
description: Рассчитывайте и отображайте взвешенные значения сделок на основе вероятности по этапам.
---
«Ожидаемая сумма» — вычисляемое значение: **Сумма × Вероятность**. Это помогает прогнозировать выручку, взвешивая сделки по вероятности их закрытия.
<Tip>
Это пример создания [Полей формул](/l/ru/user-guide/workflows/how-tos/crm-automations/formula-fields) с помощью рабочих процессов.
</Tip>
В этом руководстве показана настройка пользовательских полей и рабочих процессов, необходимых для расчета и отображения ожидаемых сумм в вашей воронке.
## Шаг 1: Создайте пользовательские поля
В объекте «Сделки» вам нужны два пользовательских поля.
### Создайте поле «Вероятность»
1. Перейдите в **Настройки → Модель данных → Сделки**
2. Нажмите **+ Добавить поле**
3. Настроить:
* **Название**: Вероятность
* **Тип**: Число
* **Описание**: Вероятность в зависимости от этапа (0–100%)
4. Нажмите **Сохранить**
### Создайте поле «Ожидаемая сумма»
1. Нажмите **+ Добавить поле**
2. Настроить:
* **Название**: Ожидаемая сумма
* **Тип**: Валюта
* **Описание**: Вычисляется: Сумма × Вероятность
3. Нажмите **Сохранить**
### Необязательно: сделайте поля доступными только для чтения для пользователей
Если вы не хотите, чтобы пользователи вручную редактировали эти вычисляемые поля:
1. Перейдите в **Настройки → Участники → Роли**
2. Выберите роль для настройки
3. Найдите объект «Сделки»
4. Установите поля **Вероятность** и **Ожидаемая сумма** как доступные только для чтения
Это гарантирует, что обновлять эти значения смогут только рабочие процессы.
## Шаг 2: Создайте рабочий процесс №1 — обновление вероятности при изменении этапа
Этот рабочий процесс автоматически устанавливает «Вероятность», когда сделка переходит на новый этап.
### Создайте рабочий процесс
1. Перейдите в **Рабочие процессы**
2. Нажмите **+ Новый рабочий процесс**
3. Назовите его "Обновление вероятности при изменении этапа"
### Настройте триггер
1. Добавьте триггер **Запись создана или обновлена**
2. Выберите **Сделки** в качестве объекта
3. Фильтр: поле **Этап** обновлено
### Добавьте ветки для каждого этапа
Создайте ветку для каждого этапа с его вероятностью:
| Этап | Вероятность |
| ------------------- | ----------- |
| Новый | 10% |
| Проверенные | 25% |
| Встреча | 40% |
| Предложение | 60% |
| Переговоры | 80% |
| Закрыта — Выиграна | 100% |
| Закрыта — Проиграна | 0% |
<Note>
Чтобы создать новую ветку, щелкните правой кнопкой мыши на холсте рабочего процесса и нажмите **Новое действие**. Затем свяжите это действие с предыдущим узлом, перетащив стрелку от предыдущего узла к этому новому действию.
</Note>
Для каждого этапа:
1. Добавьте узел **Фильтр**: Этап = [название этапа]
2. Добавьте действие **Обновить запись**:
* Запись: инициировавшая срабатывание сделка
* Поле: Вероятность
* Значение: [вероятность для этого этапа]
### Рассчитать «Ожидаемую сумму»
После объединения веток:
1. Добавьте узел **Фильтр**: поле Сумма не пусто
2. Добавьте действие **Обновить запись**:
* Запись: инициировавшая срабатывание сделка
* Поле: Ожидаемая сумма
* Значение: Сумма × Вероятность
## Шаг 3: Создайте рабочий процесс №2 — пересчет при изменении суммы
Этот рабочий процесс обновляет «Ожидаемую сумму», когда изменяется «Сумма» сделки.
### Создайте рабочий процесс
1. Перейдите в **Рабочие процессы**
2. Нажмите **+ Новый рабочий процесс**
3. Назовите его "Пересчет «Ожидаемой суммы» при изменении «Суммы»"
### Настройте триггер
1. Добавьте триггер **Запись создана или обновлена**
2. Выберите **Сделки** в качестве объекта
3. Фильтр: поле **Сумма** обновлено
### Добавьте логику
1. Добавьте узел **Фильтр**: поле Сумма не пусто
2. Добавьте действие **Обновить запись**:
* Запись: инициировавшая срабатывание сделка
* Поле: Ожидаемая сумма
* Значение: Сумма × Вероятность
## Шаг 4: Отображение в вашей воронке
Теперь покажите итоги по «Ожидаемой сумме» в вашем канбан-представлении:
1. Откройте канбан-представление **Воронка продаж**
2. Нажмите на **число** рядом с названием любого этапа в верхней части столбца
3. Выберите **Сумма**
4. Выберите **Ожидаемая сумма**
Теперь каждый столбец показывает общую взвешенную сумму воронки для этого этапа.
## Резюме
| Компонент | Назначение |
| -------------------------- | ------------------------------------------------------------------------------------ |
| **Поле «Вероятность»** | Хранит вероятность выигрыша в зависимости от этапа |
| **Поле «Ожидаемая сумма»** | Хранит значение «Сумма × Вероятность» |
| **Рабочий процесс №1** | Обновляет «Вероятность» при изменении «Этапа», затем пересчитывает «Ожидаемую сумму» |
| **Рабочий процесс №2** | Пересчитывает «Ожидаемую сумму» при изменении «Суммы» |
| **Агрегация** | Отображает сумму поля «Ожидаемая сумма» по каждому этапу |
## Связанные материалы
* [Поля формул](/l/ru/user-guide/workflows/how-tos/crm-automations/formula-fields) — создавайте вычисляемые поля с помощью рабочих процессов
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) — агрегации столбцов
* [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields) — настройка полей

View File

@@ -0,0 +1,231 @@
---
title: Отслеживать как долгое время осталось на каждом этапе
description: Отслеживайте скорость сделок, фиксируя момент входа сделок на каждый этап.
---
<Tip>
Это пример создания [полей формулы](/l/ru/user-guide/workflows/how-tos/crm-automations/formula-fields) с помощью рабочих процессов — в частности вычислений дат.
</Tip>
Отслеживание моментов входа сделок на каждый этап помогает выявлять узкие места и измерять скорость сделок.
В этом руководстве показано, как настроить пользовательские поля и рабочий процесс для автоматической фиксации момента перехода сделки на каждый этап и вычисления количества дней, проведённых на предыдущем этапе.
## Шаг 1: Создайте пользовательские поля
Для каждого этапа вам нужны два типа полей:
* **Поля «Дата и время»**: фиксируют, когда сделка вошла на каждый этап
* **Числовые поля**: хранят, сколько дней сделка провела на каждом этапе
### Создайте поля «Последний вход»
1. Перейдите в **Настройки → Модель данных → Сделки**
2. Для каждого этапа нажмите **+ Добавить поле** и настройте:
* **Имя**: Последний вход в [название этапа] (например, «Последний вход — Новый», «Последний вход — Квалификация»)
* **Тип**: Дата и время
* **Описание**: Метка времени, когда сделка вошла на этот этап
3. Нажмите **Сохранить**
Создайте эти поля:
* Последний вход — Новый
* Последний вход — Квалификация
* Последний вход — Встреча
* Последний вход — Предложение
* Последний вход — Переговоры
* Последний вход — Закрыта — выиграна
* Последний вход — Закрыта — проиграна
### Создайте поля «Дней на этапе»
1. Для каждого этапа нажмите **+ Добавить поле** и настройте:
* **Имя**: Дней на [название этапа] (например, «Дней на Новом», «Дней на Квалификации»)
* **Тип**: Число
* **Описание**: Количество дней, проведённых на этом этапе
2. Нажмите **Сохранить**
Создайте эти поля:
* Дней на Новом
* Дней на Квалификации
* Дней на Встрече
* Дней на Предложении
* Дней на Переговорах
<Note>
Поля «Дней на этапе» не нужны для этапов «Закрыта — выиграна» и «Закрыта — проиграна», так как это финальные этапы.
</Note>
### Необязательно: сделайте поля только для чтения
Если вы не хотите, чтобы пользователи вручную редактировали эти вычисляемые поля:
1. Перейдите в **Настройки → Участники → Роли**
2. Выберите роль для настройки
3. Найдите объект «Сделки»
4. Сделайте поля «Последний вход» и «Дней на этапе» доступными только для чтения
## Шаг 2: Создайте рабочий процесс
Один рабочий процесс решает обе задачи:
* Записывает метку времени при входе на новый этап
* Вычисляет количество дней, проведённых на предыдущем этапе
### Создайте рабочий процесс
1. Перейдите в **Рабочие процессы**
2. Нажмите **+ Новый рабочий процесс**
3. Назовите его «Отслеживание времени по этапам»
### Настройте триггер
1. Добавьте триггер **Record Updated**
2. Выберите **Сделки** как объект
3. Фильтр: обновлено поле **Этап**
### Добавьте ветви для каждого этапа
<Note>
Чтобы создать новую ветвь, щёлкните правой кнопкой мыши на холсте рабочего процесса и нажмите **Новое действие**. Затем свяжите это действие с предыдущим узлом, перетащив стрелку от предыдущего узла к новому действию.
</Note>
---
**Ветвь 1: Этап = Новый (первый этап)**
Поскольку это первый этап, фиксируется только время входа — предыдущего этапа, от которого можно было бы производить вычисления, не существует.
1. Добавьте узел **Filter**: Этап = Новый
2. Добавьте действие **Code**:
```javascript
export const main = async (): Promise<object> => {
return { now: new Date().toISOString() };
};
```
3. Добавьте действие **Update Record**:
* Запись: инициировавшая триггер сделка
* Поле: Последний вход — Новый
* Значение: `now` из узла Code
---
**Ветвь 2: Этап = Квалификация**
При переходе к «Квалификации» запишите время входа И рассчитайте дни, проведённые на «Новом».
1. Добавьте узел **Filter**: Этап = Квалификация
2. Добавьте действие **Code**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Настройте вход узла Code: сопоставьте `lastEnteredPreviousStage` с полем **Последний вход — Новый**
4. Добавьте действие **Update Record**:
* Запись: инициировавшая триггер сделка
* Поля для обновления:
* Последний вход — Квалификация = `now`
* Дней на Новом = `daysInPreviousStage`
---
**Ветвь 3: Этап = Встреча**
При переходе к «Встрече» запишите время входа И рассчитайте дни, проведённые на «Квалификации».
1. Добавьте узел **Filter**: Этап = Встреча
2. Добавьте действие **Code**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Настройте вход узла Code: сопоставьте `lastEnteredPreviousStage` с полем **Последний вход — Квалификация**
4. Добавьте действие **Update Record**:
* Запись: инициировавшая триггер сделка
* Поля для обновления:
* Последний вход — Встреча = `now`
* Дней на Квалификации = `daysInPreviousStage`
---
**Продолжите для оставшихся этапов:**
| Этап | Записи | Вычисляет |
| ------------------- | ------------------------------------ | ------------------- |
| Предложение | Последний вход — Предложение | Дней на Встрече |
| Переговоры | Последний вход — Переговоры | Дней на Предложении |
| Закрыта — выиграна | Последний вход — Закрыта — выиграна | Дней на Переговорах |
| Закрыта — проиграна | Последний вход — Закрыта — проиграна | Дней на Переговорах |
Ветви не обязаны сходиться — каждая выполняется независимо, когда выполняется условие её этапа.
## Шаг 3: Проанализируйте время на этапе
Имея метки времени и количество дней, вы можете анализировать скорость сделок.
### Создайте представление «Медленные сделки»
1. Создайте табличное представление «Сделки»
2. Добавьте столбцы: Название, Этап, Дней на [предыдущем этапе], Сумма
3. Отсортируйте по полю «Дней на этапе» (по убыванию)
4. Отфильтруйте по полю «Этап», чтобы сосредоточиться на одном этапе
Сделки вверху провели больше всего времени на предыдущем этапе.
### Используйте агрегации
В канбан-представлении вашей воронки:
1. Нажмите на число рядом с названием этапа
2. Выберите **Среднее**
3. Выберите поле «Дней на этапе»
Это покажет среднее время, которое сделки проводят на каждом этапе.
## Резюме
| Компонент | Назначение |
| ----------------------------- | ------------------------------------------------------- |
| **Поля «Последний вход»** | Хранят момент входа сделки на каждый этап |
| **Поля «Дней на этапе»** | Хранят количество дней, проведённых на каждом этапе |
| **Рабочий процесс** | Записывает метку времени И вычисляет дни за один проход |
| **Представления и агрегации** | Анализируйте скорость сделок и выявляйте узкие места |
## Связанные материалы
* [Рабочие процессы](/l/ru/user-guide/workflows/overview) — основы автоматизации
* [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields) — настройка полей
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) — агрегации

View File

@@ -0,0 +1,132 @@
---
title: Представления и воронки
description: Узнайте, как создавать и управлять представлениями в Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Понимание представлений
Представления — это сохранённые конфигурации, которые определяют, как отображаются ваши данные. У каждого представления могут быть:
* **Макет**: таблица, канбан или календарь
* **Фильтры**: какие записи показывать
* **Сортировка**: как упорядочены записи
* **Поля**: какие столбцы отображаются
## Типы представлений
### Табличное представление
Представление по умолчанию в виде электронной таблицы, показывающее записи в строках с настраиваемыми столбцами.
### Канбан-представление
Визуальная доска, где записи отображаются карточками, организованными по этапам. Идеально для:
* Воронки продаж
* Отслеживание проектов
* Любой рабочий процесс с определёнными этапами
### Просмотр Календаря
Календарное представление, отображающее записи с полями даты. Отлично подходит для:
* Встречи и мероприятия
* Крайние сроки и даты выполнения
* Планирование по времени
## Создание Просмотра
Есть два способа создать новый просмотр.
### Используйте выпадающее меню представлений
1. Перейдите к любому объекту (Люди, Компании и т. д.)
2. Нажмите название представления в левом верхнем углу (там показано текущее представление со стрелкой раскрытия)
3. Нажмите **+ Добавить представление**
4. Назовите представление и нажмите **Создать**
5. Выберите макет (Таблица, Канбан или Календарь) в разделе **Параметры**
6. При необходимости добавьте фильтры и сортировку
7. Выберите, какие поля отображать, и измените их порядок
8. Нажмите **Сохранить**
<VimeoEmbed videoId="1145648745" title="Видеодемонстрация" />
### Начните с редактирования существующего представления
1. Перейдите к любому объекту (Люди, Компании и т. д.)
2. Выберите макет (Таблица, Канбан или Календарь) в разделе **Параметры** и при необходимости добавьте фильтры и сортировку
3. Нажмите **Сохранить как новое представление**
4. Назовите представление и нажмите **Создать**
5. Продолжайте редактировать новое представление
6. Нажмите **Обновить представление**, чтобы сохранить дополнительные настройки
<VimeoEmbed videoId="1145654005" title="Видеодемонстрация" />
## Управление представлениями
### Редактирование представления
1. Выберите представление из выпадающего списка
2. Внесите изменения (фильтры, сортировка, столбцы)
3. Нажмите **Сохранить**, чтобы обновить представление
### Переименовать представление или изменить его значок
1. Откройте выпадающее меню представления
2. Нажмите меню **⋮** рядом с названием представления
3. Выберите **Изменить**
4. Измените название или значок
5. Нажмите **Сохранить**
### Изменить порядок представлений
1. Откройте выпадающее меню представления
2. Нажмите и перетащите представление за его «ручку»
3. Отпустите его в нужной позиции
4. Новый порядок сохраняется автоматически
### Добавить в избранное
Закрепите часто используемые представления для быстрого доступа:
1. Откройте выпадающее меню представления
2. Нажмите меню **⋮** рядом с представлением
3. Выберите **Добавить в избранное**
4. Представление появится в разделе «Избранное»
### Удалить представление
1. Выберите представление для удаления
2. Откройте выпадающее меню представления
3. Нажмите меню **⋮** рядом с представлением
4. Выберите **Удалить**
5. Подтвердите удаление
<Warning>
Удалённые представления невозможно восстановить. Перед подтверждением убедитесь, что вы действительно хотите удалить представление.
</Warning>
## Видимость представления
Каждое представление (за исключением представлений по умолчанию "All [Object Name]") имеет собственную настройку видимости.
Чтобы изменить видимость:
1. Откройте представление
2. Нажмите **Параметры → Видимость**
3. Выберите:
* **Рабочая область**: видно всем участникам рабочей области
* **Не в списке**: видно только вам
<Note>
Для представлений по умолчанию "All [Object Name]" нельзя изменить видимость.
</Note>
## Следующие шаги
* [Табличные представления](/l/ru/user-guide/views-pipelines/capabilities/table-views)
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views)
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting)
* [Настройки представления](/l/ru/user-guide/views-pipelines/capabilities/view-settings)

View File

@@ -0,0 +1,167 @@
---
title: Отправка писем через рабочие процессы
description: Отправляйте персонализированные письма автоматически с помощью действий рабочего процесса.
---
Автоматически отправляйте письма при наступлении определённых событий в вашей CRM — приветствуйте новых контактов, делайте последующие касания по возможностям или уведомляйте членов команды.
## Требования
Прежде чем отправлять письма из рабочих процессов:
1. Подключите учетную запись электронной почты в разделе **Настройки → Учетные записи**
2. Убедитесь, что для учетной записи включены разрешения на отправку
## Базовый рабочий процесс электронной почты
### Пример: приветственное письмо для новых контактов
**Цель**: отправлять приветственное письмо, когда в CRM добавляется новый контакт.
**Настройка**:
1. **Создайте рабочий процесс**: перейдите в **Настройки → Рабочие процессы** и нажмите **+ Новый рабочий процесс**
2. **Добавьте триггер**: выберите **Запись создана** → **Люди**
3. **Добавьте действие Отправить письмо**:
* Нажмите **+**, чтобы добавить действие
* Выберите **Отправить письмо**
* Настройте письмо:
| Поле | Значение |
| -------------- | ------------------------------------------ |
| **Кому** | `{{trigger.object.email}}` |
| **Тема** | `Добро пожаловать в {{Your Company Name}}` |
| **Содержимое** | `Hi {{trigger.object.firstName}}, ...` |
4. **Протестируйте и активируйте**: протестируйте на тестовой записи, затем активируйте
## Использование переменных в письмах
Ссылайтесь на данные из предыдущих шагов, используя синтаксис `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
Thank you for connecting with us!
Your company, {{trigger.object.company.name}}, is now in our system.
Best regards,
The Team
```
### Доступные переменные из триггеров
| Тип триггера | Общие переменные |
| ---------------------------- | -------------------------------------- |
| **Запись создана/обновлена** | `{{trigger.object.fieldName}}` |
| **Вручную** | `{{trigger.selectedRecord.fieldName}}` |
| **Вебхук** | `{{trigger.body.fieldName}}` |
## Продвинутое: условные письма
### Пример: разные письма в зависимости от источника лида
**Цель**: отправлять разные приветственные письма в зависимости от того, откуда пришёл лид.
**Настройка**:
1. **Триггер**: запись создана (Люди)
2. **Добавьте действие Фильтр**:
* Условие: `{{trigger.object.source}}` равно `"Website"`
* Если верно → перейти к приветственному письму для сайта
3. **Ветка для других источников**:
* Создайте параллельные ветки для разных источников
* В каждой ветке есть собственное действие Отправить письмо
## Отправка писем нескольким получателям
### Пример: уведомление команды при закрытии сделки
**Цель**: отправить письмо менеджеру по продажам и его руководителю, когда возможность помечена как выигранная.
**Настройка**:
1. **Триггер**: запись обновлена (Возможности, стадия = "Закрыта выиграна")
2. **Поиск записей**: найдите руководителя владельца возможности
3. **Отправить письмо №1**: владельцу возможности
* Кому: `{{trigger.object.owner.email}}`
* Тема: `Congratulations on closing {{trigger.object.name}}!`
4. **Отправить письмо №2**: руководителю
* Кому: `{{searchRecords.manager.email}}`
* Тема: `Deal Won: {{trigger.object.name}}`
## Запланированные последующие письма
### Пример: последующее письмо через 3 дня после встречи
**Цель**: отправить последующее письмо через 3 дня после регистрации встречи.
**Настройка**:
1. **Триггер**: запись создана (Активности, тип = "Встреча")
2. **Действие Задержка**: подождите 3 дня
3. **Отправить письмо**:
* Кому: участнику встречи
* Тема: Продолжение нашего разговора
* Содержимое: укажите детали встречи из триггера
## Вложения к электронным письмам
Вы можете прикреплять файлы к электронным письмам, отправляемым из рабочих процессов. Вложение — это статический файл, который вы загружаете при настройке рабочего процесса.
### Как добавить вложение
1. В действии **Отправить письмо** нажмите кнопку **Вложения**
2. Нажмите, чтобы загрузить файл со своего компьютера
3. Файл будет прикреплен ко всем электронным письмам, отправляемым этим действием
### Типичные случаи использования
| Сценарий использования | Пример файла |
| ---------------------------------------- | -------------------------------------- |
| **Приветственные письма** | Брошюра компании (PDF) |
| **Последовательности внедрения** | Руководство по началу работы |
| **Контроль за продажами** | Каталог товаров или прайс-лист |
| **Подтверждения участия в мероприятиях** | Информация о мероприятии или программа |
<Note>
Вложения статичны — один и тот же файл отправляется всем получателям. Для динамических документов (например, персонализированных коммерческих предложений) генерируйте и прикрепляйте файлы с помощью [Logic Function](/l/ru/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty).
</Note>
## Лучшие практики
### Содержимое письма
* Делайте темы писем краткими и по существу
* Персонализируйте, используя имя получателя
* Добавляйте чёткий призыв к действию
* Тестируйте письма перед активацией
### Доставляемость
* Не отправляйте слишком много писем за короткое время
* Используйте профессиональные подписи в письмах
* Избегайте слов, которые запускают спам-фильтры
* Обеспечьте наличие опции отписки для маркетинговых писем
### Устранение неполадок
* Убедитесь, что учетная запись электронной почты подключена и активна
* Проверьте, что адрес электронной почты получателя действителен
* Проверьте запуски рабочего процесса на наличие сообщений об ошибках
* Сначала протестируйте на собственном адресе электронной почты
## Связанные материалы
* [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)

View File

@@ -0,0 +1,88 @@
---
title: Использование веток в рабочих процессах
description: Разберитесь, как работают ветки и как управлять тем, какой путь выполняется.
---
## Как работают ветки
В редакторе рабочего процесса вы можете создавать несколько путей (веток), выходящих из одного узла. Это позволяет строить сложные автоматизации с разными результатами.
**Важно**: при запуске рабочего процесса **все ветки по умолчанию выполняются параллельно**. Нет встроенной логики "if/else" для выбора одной ветки вместо другой — каждый путь будет запускаться одновременно.
## Управление тем, какая ветка запускается
Чтобы выполнять только одну ветку на основании определённых условий, **добавьте узел Filter в начале каждой ветки**.
### Пример настройки
1. Создайте рабочий процесс с несколькими ветками от одного узла
2. Добавьте узел **Filter** в качестве первого шага в каждой ветке
3. Задайте условия на каждом узле Filter, чтобы определить, когда эта ветка должна продолжить выполнение
4. Продолжат выполнение только те ветки, для которых выполнены условия узла Filter
### Как работают фильтры
* Если условие Filter выполнено: ветка продолжает выполнение
* Если условие Filter не выполнено: ветка останавливается на узле Filter
Это фактически создаёт условную логику, при которой на основе ваших данных выполняется только соответствующая ветка.
## Пример: маршрутизация по размеру сделки
**Сценарий**: когда сделка закрывается, отправляйте разные уведомления в зависимости от её размера.
1. **Триггер**: сделка обновлена (стадия = «Закрыта — выиграна»)
2. **Ветка 1**: фильтр по сумме > $10,000 → отправить сообщение в Slack в #big-deals
3. **Ветка 2**: фильтр по сумме ≤ $10,000 → отправить письмо менеджеру по продажам
Обе ветки запускаются, но продолжит выполнение после своего Filter только та, что соответствует сумме сделки.
## Создание веток
<Note>
Чтобы создать новую ветку из существующего шага, нажмите кнопку **+** на этом шаге и добавьте действие. Вы можете добавить несколько веток, нажав **+** несколько раз.
</Note>
1. В редакторе рабочего процесса выберите шаг, от которого вы хотите создать ветку
2. Нажмите **+**, чтобы добавить действие
3. Будет создана одна ветка
4. Нажмите **+** ещё раз на том же шаге, чтобы создать дополнительные ветки
5. Каждая ветка может иметь собственную последовательность действий
## Объединение веток
После того как параллельные ветки завершат работу, вы можете объединить их обратно в один путь:
1. Завершите действия в ветках
2. Добавьте новый шаг, который должен выполняться после всех веток
3. Перетащите соединение с последнего шага каждой ветки к этому новому шагу
4. Объединенный шаг ожидает завершения всех подключенных веток перед выполнением
### Пример: обработка, затем уведомление
```
Trigger
│
├── Branch A: Update Customer Record
│
└── Branch B: Create Support Ticket
↘ ↙
Merged Step: Send Confirmation Email
```
Письмо с подтверждением отправляется только после завершения обновления и создания заявки.
## Лучшие практики
* Всегда используйте **узлы Filter** в начале веток, когда требуется условное выполнение
* Делайте условия веток **взаимно исключающимися**, чтобы избежать дублирования действий
* Тестируйте рабочие процессы с разными данными, чтобы убедиться, что запускаются правильные ветки
* **Переименовывайте шаги веток** так, чтобы было ясно, что делает каждая ветка
* **Объединяйте ветки**, когда нужно финальное действие после параллельной обработки
## Связанные материалы
* [FAQ по рабочим процессам](/l/ru/user-guide/workflows/how-tos/need-more-help/workflows-faq) — ответы о параллельном выполнении
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions) — доступные действия для веток

View File

@@ -0,0 +1,183 @@
---
title: Использование итератора
description: Перебирайте массивы записей и выполняйте действия для каждого элемента.
---
Итератор позволяет перебирать массив записей и выполнять действия для каждой из них. Он необходим для рабочих процессов, которым нужно обрабатывать несколько записей, возвращённых действием Search Records или полученных через вебхуки.
## Когда использовать итератор
| Сценарий | Пример |
| -------------------------------- | ----------------------------------------------------- |
| **Обработка результатов поиска** | Отправить письмо каждому найденному человеку |
| **Обработка массивов вебхуков** | Создать записи для каждого элемента по порядку |
| **Массовые обновления** | Обновить несколько записей с рассчитанными значениями |
| **Уведомления** | Оповестить нескольких людей о событии |
## Понимание итератора
Итератор ожидает на входе **массив**. Затем он:
1. Берёт первый элемент массива
2. Выполняет все действия внутри итератора с этим элементом
3. Переходит к следующему элементу
4. Повторяет, пока все элементы не будут обработаны
### Выбор массива для перебора
Большинство источников массивов (Search Records, поле массива вебхука, ручной триггер Bulk) можно выбрать непосредственно в селекторе переменных.
Когда шаг **Code** или **Logic Function** возвращает *массив верхнего уровня*, его вывод отображается в селекторе переменных как индексированные элементы (`0`, `1`, `2`, …). Чтобы перебирать массив целиком, выберите для этого шага параметр **Whole list** — тогда Iterator автоматически определит структуру каждого элемента списка.
## Базовая настройка
### Пример: отправка письма всем из результатов поиска
**Цель**: найти всех контактов в определённой компании и отправить каждому персонализированное письмо.
### Шаг 1: Поиск записей
1. Добавьте действие **Search Records**
2. Объект: **Люди**
3. Фильтр: Company равно "Acme Inc"
4. Это возвращает массив людей
### Шаг 2: Проверка наличия результатов
1. Добавьте действие **Фильтр**
2. Условие: `{{searchRecords.length}}` больше 0
3. Это предотвращает ошибки итератора при пустых результатах
### Шаг 3: Добавьте итератор
1. Добавьте действие **Iterator**
2. Входной массив: выберите `{{searchRecords}}`
3. Это создаёт цикл
### Шаг 4: Добавьте действия внутри итератора
Действия, добавленные после итератора, выполняются для каждого элемента:
1. Добавьте действие **Send Email** (внутри итератора)
2. Кому: `{{iterator.currentItem.email}}`
3. Тема: Привет, `{{iterator.currentItem.firstName}}`!
4. Текст письма: персонализированное сообщение с использованием полей текущего элемента
### Результат
Если Search Records возвращает 5 человек, то итератор:
* Отправляет письмо первому человеку
* Отправляет письмо второму человеку
* ... и так для всех 5
## Доступ к данным текущего элемента
Внутри итератора используйте `{{iterator.currentItem}}`, чтобы обратиться к текущей записи:
| Переменная | Описание |
| --------------------------------------- | ---------------------------------- |
| `{{iterator.currentItem}}` | Весь объект текущей записи |
| `{{iterator.currentItem.id}}` | ID записи |
| `{{iterator.currentItem.email}}` | Поле электронной почты |
| `{{iterator.currentItem.company.name}}` | Название связанной компании |
| `{{iterator.index}}` | Текущая позиция в массиве (с нуля) |
В селекторе переменных вы можете либо перейти к конкретному полю текущего элемента, либо выбрать **Use the whole item**, чтобы сослаться на весь текущий элемент (`{{iterator.currentItem}}`). Выбор всего элемента удобен, когда вы хотите передать полную запись непосредственно в следующий шаг по цепочке, вместо того чтобы заново собирать ее по полям.
## Типовые шаблоны
### Обновление нескольких записей
**Цель**: пометить все просроченные задачи как "Late"
```
1. Search Records (Tasks, Due Date < Today, Status ≠ Completed)
2. Filter (length > 0)
3. Iterator (searchRecords)
└── Update Record
- Object: Tasks
- Record: {{iterator.currentItem.id}}
- Status: Late
```
### Создание записей из массива
**Цель**: вебхук получает заказ с несколькими позициями; создайте запись для каждой
```
1. Webhook Trigger (receives items array)
2. Filter (items.length > 0)
3. Iterator (trigger.body.items)
└── Create Record
- Object: Order Items
- Name: {{iterator.currentItem.name}}
- Quantity: {{iterator.currentItem.qty}}
- Related Order: {{trigger.body.orderId}}
```
### Условная обработка внутри цикла
**Цель**: отправлять письма только контактам с действительными адресами электронной почты
```
1. Search Records (People)
2. Iterator (searchRecords)
└── Filter (currentItem.email is not empty)
└── Send Email
- To: {{iterator.currentItem.email}}
```
## Устранение неполадок
### "Iterator expects an array"
**Причина**: вы передали одну запись вместо массива.
**Решение**: убедитесь, что вы передаёте результат действия Search Records или поле-массив, а не одну запись.
```
✅ Correct: {{searchRecords}}
❌ Wrong: {{searchRecords[0]}}
```
### Итератор не запускается
**Причина**: массив пуст.
**Решение**: добавьте фильтр перед итератором, чтобы проверить длину массива:
```
Filter: {{searchRecords.length}} > 0
```
### Действия выполняются слишком много раз
**Причина**: действие Search Records вернуло больше записей, чем ожидалось.
**Решение**:
* Добавьте более точные фильтры в Search Records
* Установите ограничение в Search Records (макс. 200)
* Добавьте фильтр внутри итератора для дополнительных условий
## Особенности производительности
* **Расход кредитов**: каждая итерация потребляет кредиты на свои действия
* **Время**: обработка больших массивов занимает больше времени
* **Ограничения**: рассмотрите пакетную обработку очень больших операций
* **Лимиты скорости**: при большом числе итераций внешние вызовы API могут упираться в лимиты скорости
## Лучшие практики
1. **Всегда проверяйте длину массива** перед итератором, чтобы избежать ошибок
2. **Добавляйте фильтры внутри циклов**, если обрабатывать нужно не все элементы
3. **Переименуйте шаг Iterator**, чтобы он описывал, что именно перебирается
4. **Тестируйте на небольших массивах** перед обработкой больших наборов данных
5. Отслеживайте выполнения рабочих процессов, чтобы убедиться, что итерации завершаются как ожидается
## Связанные материалы
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Как использовать ветвления](/l/ru/user-guide/workflows/capabilities/use-branches-in-workflows)
* [Частые вопросы о рабочих процессах](/l/ru/user-guide/workflows/how-tos/need-more-help/workflows-faq)

View File

@@ -0,0 +1,332 @@
---
title: Действия рабочего процесса
description: Узнайте о действиях, доступных в рабочих процессах Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## О действиях
Действия определяют, что произойдет после срабатывания триггера. Вы можете связывать несколько действий вместе, чтобы создавать сложные автоматизации.
<Tip>
* Используйте средство выбора переменных (нажмите значок `(x+)`), чтобы просматривать доступные данные из предыдущих шагов
* Наведите курсор на любое поле ввода, чтобы увидеть, из какого шага поступает переменная — это полезно, когда одно и то же поле (например, ID) существует в нескольких предыдущих шагах
* Присваивайте каждому действию описательное имя для упрощения сопровождения
</Tip>
## Действия с записями
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Создать запись
Добавляет новую запись в выбранный объект.
**Настройка**:
* Выберите целевой объект
* Заполните обязательные и необязательные поля
* Используйте данные из предыдущих шагов или введите значения вручную, чтобы заполнить поля
**Вывод**: Данные вновь созданной записи доступны для использования на последующих шагах.
### Обновление записи
Изменяет существующую запись в выбранном объекте.
<img src="/images/user-guide/workflows/update_record.png" style={{width:'100%'}} />
**Настройка**:
* Выберите целевой объект
* Выберите конкретную запись для обновления.
* Вы можете либо выбрать конкретную запись, используя раскрывающееся меню, где показаны все доступные записи.
* Либо можно выбрать запись динамически, указав запись, найденную на предыдущем шаге, с помощью `(x+)`. На этом этапе вы не можете искать запись по различным критериям. Если вы ещё не определили запись, добавьте шаг `Search Record` перед шагом `Update Record`.
* Выберите поля для изменения и введите новые значения
**Вывод**: Данные обновленной записи доступны для использования в последующих шагах.
### Удаление записи
Удаляет запись из выбранного объекта.
**Настройка**:
* Выберите целевой объект
* Выберите конкретную запись для удаления
**Вывод**: Данные удаленной записи остаются доступными для использования в последующих шагах.
### Поиск записей
Находит записи в выбранном объекте, используя условия фильтрации.
**Настройка**:
* Выберите объект для поиска
* Установите критерии фильтра для сужения результатов
* Настройте сортировку и ограничения
**Вывод**: Возвращает записи, которые могут быть использованы в последующих шагах.
<Note>
**Ограничение**: Search Records возвращает максимум **200 записей**. Если нужно обработать больше, добавьте точные фильтры, чтобы сократить результаты, или используйте запланированные рабочие процессы для пакетной обработки.
</Note>
**Рекомендация**: Используйте [ветвления](/l/ru/user-guide/workflows/capabilities/workflow-branches) после Search Records для обработки сценариев "найдено" и "не найдено".
### Добавить или обновить запись
Создаёт новую запись или обновляет существующую на основе критериев сопоставления. Это полезно, если вы не уверены, существует ли уже запись.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Настройка**:
* Выберите целевой объект
* Обратите внимание, какие поля можно использовать для сопоставления: email — для People, домен — для Companies, ID — для любого объекта или любое поле, помеченное как Unique. Ниже нужно заполнить как минимум одно из них.
* Заполните значения полей. Не забудьте указать как минимум один уникальный идентификатор.
<Note>
**Сопоставление обычно работает даже лучше, если указывать только один уникальный идентификатор.** Например, на скриншоте ниже компании сопоставляются по их домену. Указывать ID не обязательно.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
* Используйте данные из предыдущих шагов для заполнения полей
**Как это работает**:
1. Ищет запись, соответствующую вашим критериям
2. Если найдена → обновляет существующую запись
3. Если не найдена → создает новую запись
**Вывод**: Данные созданной или обновленной записи доступны для использования в последующих шагах.
## Действия потока
### Итератор
**Перебирает массив записей**, возвращенный на предыдущем этапе, позволяя выполнять действия для каждой записи по отдельности.
**Настройка**:
* Выберите массив записей из предыдущего шага (например, результаты поиска записей, из ручного триггера с массовым доступом, из узла кода). Когда шаг Code или «Логическая функция» возвращает массив верхнего уровня, выберите параметр **Whole list**, чтобы выполнить цикл по всему результату.
* Определите действия, которые нужно выполнить для каждой записи в цикле.
<Note>
- Вы можете добавить несколько действий в Итератор.
- При использовании ветвей внутри Итератора убедитесь, что последний шаг каждой ветви соединяется с Итератором для закрытия цикла.
</Note>
* Доступ к полям `Current Item`: чтобы использовать поля записи, которая обрабатывается в данный момент, нажмите на шаг **Iterator**, затем выберите **Current item**. Будет отображен список доступных полей этой записи, и их можно выбрать для использования в последующих действиях. Вы также можете выбрать **Use the whole item**, чтобы передать весь текущий элемент на следующий шаг.
<VimeoEmbed videoId="1146577247" title="Видеодемонстрация" />
### Фильтр
Фильтрует записи на основе указанных условий, пропуская только записи, соответствующие критериям.
**Настройка**:
* Выберите запись для фильтрации
* Определите условия фильтрации и критерии
* Настройте, какие записи должны пройти через последующие шаги
<Note>
1. **Вывод**: Узлы фильтра не возвращают данные — они работают как шлюзы. Если условия выполнены, рабочий процесс продолжается. Если нет, рабочий процесс останавливается на этой ветке.
2. Оператор `IS` можно использовать с числовыми полями. Он работает как `EQUAL`.
</Note>
### Задержка
Приостанавливает выполнение рабочего процесса на указанное время или до определенной даты/времени.
**Типы задержек**:
| Тип | Описание |
| ------------------------ | ---------------------------------------------------------------- |
| **Длительность** | Ожидать заданный промежуток времени (дни, часы, минуты, секунды) |
| **Запланированная дата** | Ждать до определенной даты и времени |
**Настройка длительности**:
* Укажите дни, часы, минуты и/или секунды
* Объединяйте несколько единиц (например, 2 дня и 4 часа)
**Настройка запланированной даты**:
* Выберите дату и время
* Можно ссылаться на поле даты с предыдущего шага (например, связаться повторно через 3 дня после встречи)
**Сценарии использования**:
* Подождать 24 часа перед отправкой повторного письма
* Пауза до даты закрытия сделки
* Запланировать действия на рабочие часы
<Note>
Запланированная дата не может быть в прошлом. Если используется поле даты с предыдущего шага и эта дата уже прошла, рабочий процесс завершится с ошибкой.
</Note>
**Ограничения и кредиты**:
* **Нет максимального ограничения по длительности** — вы можете задавать задержки в минутах, днях, неделях или больше
* **Списывается 1 кредит** при выполнении узла Задержка, независимо от длительности
* **Кредиты не списываются** во время ожидания — задержка на 5 минут стоит столько же, сколько задержка на 5 дней
## Коммуникационные действия
### Отправить письмо
Отправляет email из вашего рабочего процесса. Подходит для шаблонных групповых писем. Письма будут выглядеть так же, как те, что вы отправляете из своего почтового ящика.
Это не подходит для рассылок (которые требуют более насыщенного форматирования) или автоматических последовательностей писем.
**Предварительные условия**: добавьте учетную запись электронной почты в Настройки → Учетные записи
**Настройка**:
* Выберите учетную запись электронной почты отправителя
<Note>
Вы можете отправлять письма только из почтовых ящиков, синхронизированных с вашей собственной учетной записью Twenty. Отправка из почтовых ящиков других участников команды (например, из электронной почты владельца учетной записи) запланирована.
</Note>
Для всех следующих шагов вы можете использовать переменные из предыдущих шагов для персонализации.
* Введите email-адрес получателя.
<Note>
На данный момент возможен только один получатель.
</Note>
* Установите строку темы.
* Составьте текст сообщения. Вы можете форматировать ссылки, создавать нумерованные списки, списки точек и добавлять вложения.
<Note>
Добавление HTML-подписей пока невозможно.
</Note>
### Форма
Выводит форму во время выполнения рабочего процесса для сбора информации от пользователя. Ответы затем можно использовать на последующих шагах для создания записей, отправки писем или выполнения любых других действий на основе введенных данных.
<Warning>
**Формы предназначены только для ручных триггеров**. Для рабочих процессов с другими триггерами (запись создана, обновлена и т. д.) формы доступны только через интерфейс запуска рабочего процесса, и это не ожидаемый пользователем опыт. В 2026 году будет открыт центр уведомлений, который будет надлежащим образом поддерживать формы в автоматизированных рабочих процессах.
</Warning>
**Настройка**:
* Настройте поля, которые пользователям предложат заполнить. Для каждого поля выберите
* тип: текст, число, дата, заданная запись, поле выбора. Поля из всех объектов доступны для выбора.
* метку
* значение по умолчанию в `Placeholder` (необязательно)
* Отредактируйте заголовок формы
**Вывод**: ответы формы доступны для использования в последующих шагах.
**Пример**: Рабочий процесс «Quick Lead» доступен по умолчанию во всех рабочих областях, доступных в любом месте в меню командного меню «Cmd+K».
**Как заполнить форму**:
* Запустите ручной рабочий процесс из командного меню `Cmd+K`
* Заполните форму, отображаемую в боковой панели, и нажмите `Submit`.
<Note>
Поля нельзя сделать обязательными.
</Note>
<VimeoEmbed videoId="1147277989" title="Видеодемонстрация" />
## Интеграционные действия
### Код
Выполняет кастомный JavaScript в вашем рабочем процессе.
Под капотом каждое действие Code поддерживается собственной **логической функцией** — серверной функцией на TypeScript, которая выполняется на платформе Twenty. Когда вы добавляете действие Code, Twenty создает для этого шага отдельную логическую функцию и открывает ее редактор прямо в интерфейсе, поэтому написанный вами код хранится вместе с рабочим процессом.
**Настройка**:
* Получайте доступ к переменным из предыдущих шагов. Вы можете динамически редактировать имена переменных.
<VimeoEmbed videoId="1147281795" title="Видеодемонстрация" />
* Напишите код JavaScript в редакторе
* Возвращайте переменные для использования в последующих шагах
* Проверяйте код непосредственно в шаге
<Note>
Если вам нужно использовать внешние ключи API в вашем коде, их необходимо вводить прямо в тело функции. Нельзя настроить ключи API в другом месте и ссылаться на них в логической функции.
</Note>
<Tip>
**Работаете с массивами?** Массивы из внешних систем или с предыдущих шагов могут приходить как строки. См. [Как обрабатывать массивы в действиях Code](/l/ru/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) для решения.
</Tip>
<Tip>
Нажмите квадратный значок в правом верхнем углу редактора кода, чтобы отобразить его на весь экран — это полезно, поскольку ширина редактора по умолчанию ограничена.
</Tip>
#### Повторное использование логической функции в рабочих процессах
Встроенное действие Code отлично подходит для разовой логики, но код, который оно содержит, принадлежит только этому одному шагу. Когда вы хотите использовать одну и ту же логику в нескольких рабочих процессах — или вести ее как версионируемый исходный код в приложении — определите **повторно используемую логическую функцию** вместо копирования и вставки кода в каждое действие Code.
Логическая функция определяется один раз в приложении (с помощью SDK-функции `defineLogicFunction`) и становится доступной в конструкторе рабочих процессов при добавлении `workflowActionTriggerSettings`. После установки вашего приложения эта функция появляется как отдельное действие в конструкторе рабочих процессов, наряду со встроенными действиями. При выборе этого действия отображаются объявленные вами поля ввода (с селекторами переменных, как и в других действиях) и выполняется ваш общий код — встроенный JavaScript не требуется.
| | Действие Code | Повторно используемая логическая функция |
| ---------------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------- |
| **Где «живет» код** | Встроенный редактор, привязанный к одному шагу рабочего процесса | Определена в приложении, версионируется в системе контроля версий |
| **Повторное использование** | Копируется и вставляется для каждого шага | Добавляется как действие в любой рабочий процесс |
| **Вводы** | Переменные, подключенные в редакторе | Поля, отображаемые из объявленной вами схемы ввода |
| **Лучше всего подходит для** | Быстрая логика, специфичная для рабочего процесса | Общая логика, используемая в нескольких рабочих процессах |
Оба варианта работают в одной и той же среде выполнения логических функций, поэтому действие Code, которое вы прототипировали во встроенном режиме, позже можно с минимальными изменениями превратить в повторно используемую логическую функцию.
<Tip>
Разработчикам, которым нужна документация по определению логических функций и их публикации в конструкторе рабочих процессов, следует обратиться к разделу [Logic Functions](/l/ru/developers/extend/apps/logic/logic-functions) — в частности, к разделу **Exposing a function as an AI tool or workflow action** и настройкам `workflowActionTriggerSettings`.
</Tip>
### HTTP-запрос
Отправляет запрос внешнему API в рамках вашего рабочего процесса.
<img src="/images/user-guide/workflows/http_action.png" style={{width:'100%'}} />
**Настройка**:
* Введите URL конечной точки API. Можно использовать параметры из предыдущих шагов.
* Выберите метод HTTP (GET, POST, PUT, PATCH, DELETE)
* Добавьте необходимые заголовки и значения
* Предоставьте пример ответа для предварительного просмотра структуры
## Действия ИИ
### ИИ-агент — скоро
Запускает ИИ-агента внутри вашего рабочего процесса для выполнения интеллектуальных задач.
**Настройка**:
* **Агент**: Выберите существующего ИИ-агента или используйте агента по умолчанию
* **Промпт**: Напишите инструкцию для ИИ-агента
* Ссылайтесь на переменные из предыдущих шагов в промпте
**Что могут делать ИИ-агенты**:
* Анализировать и резюмировать данные
* Классифицировать или категоризировать записи
* Генерировать текстовый контент
* Принимать решения на основе данных
* Взаимодействовать с данными вашей CRM с помощью инструментов
**Вывод**: Ответ ИИ-агента доступен для использования в последующих шагах. Если у агента есть схема структурированного вывода, ответ будет соответствовать этому формату.
<Note>
Действия ИИ-агента потребляют кредиты рабочего процесса в зависимости от используемой модели ИИ. См. [Кредиты рабочих процессов](/l/ru/user-guide/workflows/capabilities/workflow-credits) для подробностей.
</Note>
<Note>
ИИ-агенты соблюдают права доступа на основе ролей. Вы можете назначать агентам конкретные роли в разделе **Настройки → Участники → Роли**, чтобы контролировать, к каким данным у них есть доступ. См. [Разрешения](/l/ru/user-guide/permissions-access/capabilities/permissions) для подробностей.
</Note>

View File

@@ -0,0 +1,66 @@
---
title: Ветки рабочего процесса
description: Создавайте параллельные пути и условную логику в ваших рабочих процессах.
---
Ветви позволяют разделить рабочий процесс на несколько путей, которые могут выполняться одновременно или условно, в зависимости от ваших данных.
<img src="/images/user-guide/workflows/branches.png" style={{width:'100%'}} />
## Как работают ветви
Когда вы создаёте несколько соединений от одного узла, каждый путь становится ветвью. По умолчанию **все ветви выполняются параллельно** — они не ждут друг друга.
## Создание ветвей
### Добавить новую ветвь
1. **Щёлкните правой кнопкой мыши по основному полотну** рабочего процесса (не по существующему узлу)
2. Нажмите **Добавить узел**
3. Выберите тип узла для новой ветви
4. Перетащите стрелку от нижней части предыдущего шага к верхней части этого нового действия
5. Повторите, чтобы добавить больше ветвей от того же узла
<Note>
Каждая ветвь независима. Добавление ветви не влияет на другие существующие пути от этого узла.
</Note>
### Визуальный макет
В редакторе рабочего процесса ветви отображаются как параллельные пути. Вы можете перетаскивать узлы, чтобы изменить визуальный макет, не влияя на выполнение.
## Условные ветви
Поскольку по умолчанию все ветви выполняются, используйте узлы **Фильтр**, чтобы контролировать, какие пути фактически выполняются:
| Ветвь | Условие фильтра | Действие |
| ----- | ------------------- | -------------------------------------------- |
| A | Этап = "Выиграно" | Отправить поздравительное электронное письмо |
| B | Этап = "Проиграно" | Создать задачу последующих действий |
| С | Этап = "Переговоры" | Уведомить менеджера |
1. Создавайте ветви от вашего триггера или действия
2. Добавьте узел **Фильтр** как первый шаг каждой ветви
3. Настройте каждый фильтр с взаимоисключающими условиями
4. Добавьте свои действия после каждого фильтра
Продолжит выполняться только та ветвь (ветви), где условие фильтра выполнено.
## Объединение ветвей
**Ветви не объединяются автоматически.** Каждая ветвь выполняется независимо, пока не завершится. У вас полная свобода в том, как с этим поступать:
* **Вариант 1: Оставить ветви раздельно**
Каждая ветвь самостоятельно обрабатывает свои последующие действия. Это самый простой подход, когда ветвям не нужно сходиться.
* **Вариант 2: Объединить ветви вручную**
При создании рабочего процесса вы можете вручную подключить несколько ветвей к одному последующему действию. Просто перетащите стрелки от конца каждой ветви к общему узлу.
<Note>
Хотя вы можете использовать узел [Задержка](/l/ru/user-guide/workflows/capabilities/workflow-actions#delay) для приостановки выполнения, его пока нельзя настроить на ожидание "пока не завершится другая ветвь".
</Note>
## Связанные материалы
* [Как использовать ветви в рабочих процессах](/l/ru/user-guide/workflows/capabilities/use-branches-in-workflows) - Пошаговое руководство
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions) - Доступные действия, включая Фильтр

View File

@@ -0,0 +1,75 @@
---
title: Кредиты рабочих процессов
description: Разберитесь с потреблением и управлением кредитами рабочих процессов.
---
Кредиты рабочих процессов обеспечивают работу ваших автоматизаций в Twenty. Понимание принципов их работы помогает оптимизировать затраты и эффективно управлять бюджетом автоматизации.
## Распределение кредитов
Кредиты рабочих процессов начисляются по вашему платёжному циклу, а не по уровню плана:
| Платёжный цикл | Кредиты |
| ------------------------ | ------------------ |
| **Ежемесячная подписка** | 5 кредитов в месяц |
| **Годовая подписка** | 50 кредитов в год |
<Note>
5 кредитов в месяц — щедрый лимит для стандартных автоматизаций. Большинство команд не превысят этот лимит при типичном использовании рабочих процессов. Дополнительные кредиты в основном нужны для продвинутых действий Code и рабочих процессов на базе ИИ.
</Note>
## Как работает потребление кредитов
Кредиты расходуются при выполнении рабочих процессов, а не при их создании. Каждое действие рабочего процесса потребляет кредиты в зависимости от своей сложности:
### Потребление кредитов по типу действия
* **Основные внутренние операции**: Очень низкое потребление кредитов
* Поиск записей
* Создать запись
* Обновление записи
* Удаление записи
* Действия с формой
* **Сложные операции**: Более высокое потребление кредитов
* Действия с кодом (выполнение JavaScript)
* HTTP-запросы к внешним сервисам
* **Функции ИИ**: Более высокое потребление кредитов
* Действия ИИ-агента потребляют кредиты в зависимости от используемой модели ИИ
* Более сложные запросы и более длинные ответы расходуют больше кредитов
* **Действия Delay**: Минимальное потребление кредитов
* Узел Delay потребляет **1 кредит** при выполнении
* **Во время ожидания кредиты не потребляются**
* Задержка на 5 минут стоит столько же, сколько задержка на 5 дней
### Списание в реальном времени
Кредиты списываются в режиме реального времени при выполнении рабочих процессов. Это означает, что:
* Черновые рабочие процессы не потребляют кредиты
* Только активные, выполняемые рабочие процессы используют ваш кредитный лимит
* Неудавшиеся рабочие процессы все равно потребляют кредиты за выполненные шаги
## Управление кредитами
### Проверить использование кредитов
1. Перейдите в **Настройки → Оплата**
2. Просмотрите текущее потребление кредитов и оставшийся баланс
3. Отслеживайте шаблоны использования, чтобы оптимизировать ваши рабочие процессы
### Приобретение дополнительных кредитов
Если вам нужно больше кредитов, чем в вашем лимите плана:
1. Перейдите в **Настройки → Оплата**
2. Нажмите на опцию, чтобы приобрести дополнительные кредиты. Доступны пакеты разного размера.
3. Кредиты добавляются к вашему текущему балансу
## Лучшие практики
* **Пакетная обработка**: Используйте массовые операции и действия с Итератором эффективно, чтобы сократить количество отдельных вызовов действий
* **Оптимизация ручного запуска**: Для ручных триггеров выберите вариант `Bulk`, чтобы обработать несколько записей за один запуск рабочего процесса
* Оптимизируйте действия с кодом для повышения эффективности

View File

@@ -0,0 +1,93 @@
---
title: Запуски рабочего процесса
description: Отслеживайте и управляйте запусками рабочих процессов.
---
## О запусках
**Запуск** — это запись выполнения рабочего процесса. Каждый раз, когда срабатывает триггер рабочего процесса — будь то событие записи, расписание, ручное действие или вебхук — создаётся новый запуск.
## Просмотр запусков
### В редакторе рабочего процесса
1. Откройте рабочий процесс, который хотите отслеживать
2. Нажмите на панель **Запуски** справа
3. Посмотрите список последних запусков со статусами
### В разделе «Запуски рабочего процесса»
1. Перейдите в **Запуски рабочего процесса** в боковой панели
2. Просматривайте запуски по всем рабочим процессам
3. Фильтруйте по статусу, рабочему процессу или дате
## Статусы запусков
| Статус | Описание |
| --------------- | ---------------------------------------------------------------------------------------- |
| **Выполняется** | Рабочий процесс выполняется |
| **Завершено** | Рабочий процесс успешно завершён |
| **Не удалось** | Рабочий процесс столкнулся с ошибкой и остановился |
| **Ожидание** | Рабочий процесс приостановлен (например, ожидает действия «Задержка» или отправки формы) |
## Сведения о запуске
Нажмите на любой запуск, чтобы просмотреть:
* **Статус**: текущее состояние запуска
* **Начато**: время начала запуска
* **Длительность**: сколько времени занял запуск
* **Данные триггера**: входные данные, запустившие рабочий процесс
* **Результаты шагов**: данные, возвращённые каждым шагом
* **Сообщения об ошибках**: если запуск не удался, что пошло не так
## Пошаговое выполнение
Каждый запуск показывает прохождение по вашему рабочему процессу:
1. Смотрите, какие шаги завершились успешно
2. Определите, где произошли сбои
3. Просматривайте данные, передаваемые между шагами
4. Отлаживайте проблемы, изучая входные и выходные данные шагов
## Обработка ошибок
Если запуск не удался:
1. Откройте запуск со сбоем
2. Найдите шаг, вызвавший сбой
3. Посмотрите подробности в сообщении об ошибке
Распространённые проблемы:
* Отсутствуют обязательные поля
* Недопустимый формат данных
* Ошибки внешнего API
* Проблемы с правами доступа
## Повторный запуск рабочих процессов
Если запуск не удался, вы можете:
* Исправьте основную проблему и дождитесь следующего срабатывания триггера
* Для ручных рабочих процессов запустите снова с теми же или обновлёнными данными
* Проверьте логику рабочего процесса, чтобы предотвратить будущие сбои
## Рекомендации по производительности
### Управление историей запусков
* Запуски сохраняются для истории
* Очень старые запуски могут архивироваться автоматически
* Экспортируйте данные запусков, если нужно сохранить их для учёта
### Лучшие практики мониторинга
* Регулярно проверяйте запуски после активации новых рабочих процессов
* Анализируйте неудавшиеся запуски, чтобы выявить закономерности
## Связанные материалы
* [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Устранение неполадок рабочего процесса](/l/ru/user-guide/workflows/how-tos/need-more-help/workflow-troubleshooting)

View File

@@ -0,0 +1,136 @@
---
title: Триггеры рабочего процесса
description: Узнайте о различных триггерах, которые запускают ваши рабочие процессы.
---
## О триггерах
Рабочие процессы всегда начинаются с единственного триггера, который определяет, когда должна выполняться автоматизация.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Поддерживаются расширенные объекты!** Помимо стандартных объектов CRM (люди, компании, сделки), вы также можете запускать рабочие процессы и выполнять действия с:
* Участники рабочего пространства
* События календаря
* Сообщения (электронные письма)
* Задачи, заметки и многие другие системные объекты
Это открывает возможности мощной автоматизации, например уведомление участников команды при создании событий календаря или автоматическую обработку входящих писем.
</Tip>
## Запись создана
Запускает рабочий процесс, когда новая запись создается в выбранном объекте (Люди, Компании, Возможности или любой пользовательский объект).
**Настройка**: Выберите тип объекта для отслеживания новых записей.
<Note>
* Этот триггер отлично подходит для записей, созданных CSV, почтового ящика и синхронизации календаря или API.
* **Не рекомендуется для записей, создаваемых вручную**: с этим триггером рабочие процессы запускаются сразу после создания записи. Поскольку двадцать пользовательский интерфейс предлагает автосохранение на лету (нет режима редактирования, а затем проверка для сохранения записей), рабочий процесс будет срабатывать перед вводом пользователем всех полей.
Чтобы запускать этот рабочий процесс для записей, создаваемых вручную, рекомендуется вместо этого использовать триггер `Record is created or updated`.
</Note>
## Запись обновлена
Запускает рабочий процесс, когда в существующую запись вносятся изменения.
**Настройка**:
* Выберите тип объекта
* При необходимости укажите, какие поля отслеживать на предмет изменений
## Запись обновлена или создана
Запускает рабочий процесс, когда запись либо создается, либо обновляется в выбранном объекте.
**Почему это важно**: Этот триггер особенно полезен, потому что записи, созданные разными методами, ведут себя по-разному:
* **Импорт через API/CSV**: Записи создаются сразу со всеми заполненными полями
* **Ручное создание**: Записи создаются сначала, затем поля добавляются в последующих обновлениях
**Настройка**:
* Выберите тип объекта для отслеживания
* При необходимости укажите, какие поля отслеживать на предмет изменений
* Рабочий процесс будет запускаться как при первоначальном создании, так и при последующих обновлениях
## Запись удалена
Запускает рабочий процесс при удалении записи из объекта.
**Настройка**: Выберите тип объекта для отслеживания удалений.
## Ручной триггер
Запускает рабочий процесс, когда он инициируется пользователем. Доступ к этому триггеру можно получить через меню `Cmd+K` или с помощью настраиваемой кнопки, которая будет отображаться на верхней панели навигации после выбора записей.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Настройка доступности**: Выберите, как рабочий процесс должен обрабатывать выбор записи:
* **Глобально**: Для запуска этого рабочего процесса запись не требуется. Рабочий процесс запускается из командного меню «Cmd+K» где угодно (из любого объекта) и не использует запись(и) в качестве входа.
Для доступности **сингл** и **Bulk**, выбранная запись (ы) будет передана вашему рабочему процессу. Это настроено для данного объекта, и можно выбрать несколько записей перед запуском рабочего процесса.
* **Сингл**: Рабочий процесс будет работать от начала до конца столько раз, сколько будут выбраны записи.
<Note>
**Мягкий лимит: 100 запусков в минуту**. При превышении этого значения рабочие процессы остаются в статусе "Not Started" и обрабатываются постепенно — либо фоновой задачей, либо когда другой рабочий процесс попадает в очередь. Это означает, что вы можете выбрать более 100 записей с помощью одного триггера; выполнение просто будет медленнее.
</Note>
* **Bulk**: Рабочий процесс будет работать один раз, представляя весь список записей в качестве входных данных. Это означает, что рабочий процесс должен содержать [действие Iterator](/l/ru/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
Это более продвинутый вариант и лучше всего подходит для тех, кто хочет оптимизировать количество запусков рабочего процесса.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
**Дополнительная настройка**:
* Выберите целевой объект (для одиночной и групповой доступности)
* Выберите значок команды для запуска рабочего процесса
* Настройте размещение в навигационной панели (Закреплено или Не закреплено)
**Методы доступа**:
* Меню `Cmd+K` для поиска и запуска ручных рабочих процессов
* Пользовательская кнопка в верхней навигационной панели (если настроено)
## Триггер по времени: по расписанию
Запускает рабочий процесс на регулярной основе, которую вы определяете.
**Настройка**:
* Выберите единицу времени (минуты, часы, дни)
* Введите значение или используйте пользовательские cron-выражения для сложного планирования
<Note>
**Часовой пояс**: Запланированные рабочие процессы выполняются в **UTC**. При указании часов для ежедневных расписаний переводите ваше местное время в UTC.
</Note>
## Внешний триггер: вебхук
Запускает рабочий процесс при получении GET или POST-запроса от внешнего сервиса.
<img src="/images/user-guide/workflows/webhook_trigger.png" style={{width:'100%'}} />
**Настройка**:
* Рабочий процесс предоставляет уникальный URL вебхука — скопируйте его и добавьте в вашу внешнюю систему в качестве вызываемой конечной точки.
* Для запросов POST определите ожидаемую структуру тела, чтобы система Twenty понимала, какие данные ожидать. Добавьте здесь поля, которые вы получите и которые понадобятся ниже в вашем рабочем процессе.
* Настройте аутентификацию (скоро будет).
## Выбор подходящего триггера
| Сценарий использования | Рекомендуемый триггер |
| -------------------------------------- | ---------------------------- |
| Новые лиды требуют обработки | Запись создана |
| Изменения данных требуют синхронизации | Запись обновлена |
| Импорт/ручная обработка данных | Запись обновлена или создана |
| Очистка после удаления | Запись удалена |
| Действие, инициированное пользователем | Запуск вручную |
| Регулярные отчеты | По расписанию |
| Внешняя интеграция | Вебхук или по расписанию |

View File

@@ -0,0 +1,84 @@
---
title: Версии рабочего процесса
description: Управление версиями и черновиками рабочего процесса.
---
## О версиях
Каждый раз, когда вы активируете рабочий процесс, создается новая версия. Это позволяет отслеживать изменения со временем и при необходимости возвращаться к предыдущим конфигурациям.
## Статусы версий
| Статус | Описание |
| ----------------- | ---------------------------------------- |
| **Черновик** | Редактируется, еще не опубликован |
| **Активный** | Активная версия, реагирующая на триггеры |
| **Деактивирован** | Ранее активная, но остановлена вручную |
| **Архивирован** | Прошлые версии, сохраненные для истории |
## Работа с черновиками
Когда вы редактируете активный рабочий процесс, ваши изменения сохраняются как **черновик**. Активная версия продолжает работать, пока вы работаете над обновлениями.
По завершении редактирования вы можете:
* **Активировать**: опубликовать черновик как новую активную версию (предыдущая версия будет архивирована)
* **Удалить**: удалить черновик и сохранить текущую активную версию
## История версий
### Просмотр прошлых версий
1. Откройте рабочий процесс
2. Нажмите вкладку **Версии**
3. Просмотрите все предыдущие версии с временными метками
### Восстановление версии
1. Найдите версию, которую хотите восстановить
2. Нажмите **Использовать как черновик**
3. Версия копируется в новый черновик
4. Внесите все необходимые изменения
5. Активируйте, когда будете готовы
## Лучшие практики
### Управление версиями
* Активируйте только когда готовы к использованию в продакшене
* Вносите между версиями только значимые изменения
* Документируйте существенные изменения в названиях или описаниях рабочих процессов
* Тестируйте в режиме черновика перед активацией
### Откат изменений
* Если новая версия вызывает проблемы, восстановите предыдущую версию
* Используйте историю версий, чтобы отслеживать, что изменилось
* Всегда тестируйте восстановленные версии перед активацией
## Распространенные рабочие процессы
### Быстрое редактирование
1. Внесите небольшие изменения в активный рабочий процесс
2. Протестируйте в режиме черновика
3. Активируйте новую версию
### Существенная переработка
1. Используйте предыдущую версию в качестве отправной точки
2. Вносите существенные изменения в черновике
3. Тщательно протестируйте все сценарии
4. Активируйте, когда будете уверены
### Откат
1. Определите проблему в текущей версии
2. Найдите последнюю рабочую версию в истории
3. Нажмите **Использовать как черновик**
4. Активируйте, чтобы восстановить прежнее поведение
## Связанные материалы
* [Начало работы с рабочими процессами](/l/ru/user-guide/workflows/overview)
* [Запуски рабочих процессов](/l/ru/user-guide/workflows/capabilities/workflow-runs)

View File

@@ -0,0 +1,82 @@
---
title: Работа с массивами в действиях Code
description: Узнайте, как правильно обрабатывать входные массивы в действиях Code в рабочих процессах.
---
При работе с массивами в действиях Code вы можете столкнуться с двумя распространёнными проблемами:
1. **Массивы, передаваемые как строки** — данные из внешних систем или предыдущих шагов приходят строкой, а не как настоящий массив
2. **Невозможно выбрать отдельные элементы** — можно выбрать только весь массив, а не конкретные поля внутри него
Обе проблемы решаются с помощью узла Code.
## Разбор массивов из строк
Массивы часто передаются между шагами рабочего процесса как строки или JSON, а не как нативные массивы. Это происходит, когда:
* Получение данных из внешних API через HTTP Request
* Обработка полезной нагрузки вебхуков
* Передача данных между шагами рабочего процесса
**Решение**: Добавьте этот шаблон в начало вашего действия Code:
```javascript
export const main = async (params: {
users: any;
}): Promise<object> => {
const { users } = params;
// Handle input that may come as a string or an array
const usersFormatted = typeof users === "string" ? JSON.parse(users) : users;
// Now you can safely work with usersFormatted as an array
return {
users: usersFormatted.map((user) => ({
...user,
activityStatus: String(user.activityStatus).toUpperCase(),
})),
};
};
```
Ключевая строка `typeof users === "string" ? JSON.parse(users) : users` проверяет, является ли входное значение строкой, парсит его при необходимости или использует напрямую, если это уже массив.
## Извлечение отдельных полей из массивов
Вебхук может вернуть массив вида `answers: [...]`, но на последующих шагах рабочего процесса вы сможете выбрать только **весь массив** — не отдельные элементы внутри него.
**Решение**: Добавьте узел Code, чтобы извлечь нужные поля и вернуть их в виде структурированного объекта:
```javascript
export const main = async (params: {
answers: any;
}): Promise<object> => {
const { answers } = params;
// Handle input that may come as a string or an array
const answersFormatted = typeof answers === "string"
? JSON.parse(answers)
: answers;
// Extract specific fields from the array
const firstname = answersFormatted[0]?.text || "";
const name = answersFormatted[1]?.text || "";
return {
answer: {
firstname,
name
}
};
};
```
Узел Code возвращает структурированный объект вместо массива. На последующих шагах теперь можно выбирать отдельные поля, такие как `answer.firstname` и `answer.name`, в селекторе переменных.
<Tip>
**Хотите перебирать массив в цикле вместо извлечения полей?** Когда шаг Code или Logic Function возвращает массив верхнего уровня, вы можете передать его напрямую в [Iterator](/l/ru/user-guide/workflows/capabilities/use-iterator): выберите параметр шага **Whole list** в качестве входных данных Iterator, а затем обращайтесь к каждому элементу с помощью `{{iterator.currentItem}}` внутри цикла. В этом случае вам не нужно преобразовывать массив в объект.
</Tip>
<Tip>
Нажмите квадратный значок в правом верхнем углу редактора кода, чтобы отобразить его на весь экран — это полезно, поскольку ширина редактора по умолчанию ограничена.
</Tip>

Some files were not shown because too many files have changed in this diff Show More