i18n - docs translations (#17008)

Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2026-01-08 11:26:54 +01:00
committed by GitHub
parent 3e08f295d5
commit 0d9245b684
8 changed files with 720 additions and 720 deletions
@@ -5,118 +5,118 @@ description: Полное руководство по устранению ош
## Обзор
Импорт не работает? This guide helps you identify and fix common import errors step by step.
Импорт не работает? Это руководство поможет вам поэтапно выявлять и устранять распространённые ошибки импорта.
## How Import Validation Works
## Как работает проверка импорта
After uploading your file and mapping columns, Twenty validates your data:
После загрузки файла и сопоставления столбцов Twenty проверяет ваши данные:
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **Запускается проверка** — Twenty проверяет каждую строку на ошибки
2. **Ошибки подсвечиваются** — проблемные строки отображаются **жёлтым**
3. **Исправляйте на месте** — редактируйте ячейки прямо в интерфейсе импорта
4. **Или удалите строки** — полностью пропустите проблемные записи
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**Исправляйте ошибки в интерфейсе.** Вам не нужно возвращаться к своей таблице. Редактируйте ячейки прямо во время импорта, чтобы сэкономить время.</Note>
## Step-by-Step Troubleshooting
## Пошаговое устранение неполадок
### Step 1: Identify the Error Type
### Шаг 1: Определите тип ошибки
Click on a highlighted row to see the specific error message. Common error types:
Нажмите на подсвеченную строку, чтобы увидеть конкретное сообщение об ошибке. Распространённые типы ошибок:
| Сообщение об ошибке | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| Сообщение об ошибке | Что это означает |
| ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Дублирующиеся значения, подсвеченные жёлтым | Значение уже существует в Twenty или встречается дважды в вашем файле |
| `{field} не является допустимым {type}` (наведите курсор на жёлтую ячейку) | Данные не соответствуют ожидаемому формату |
| Подсвечено обязательное поле | Обязательное поле пусто |
| `Не удаётся подключиться к {object}. Уникальная запись не найдена...` (импорт не удался) | Связанная запись не существует |
| `Слишком много записей. Разрешено не более 10000` (загрузка заблокирована) | В файле более 10 000 записей |
### Step 2: Fix the Error
### Шаг 2: Исправьте ошибку
Follow the specific instructions below for each error type.
Следуйте приведённым ниже инструкциям для каждого типа ошибки.
---
## Error: Duplicate Value
## Ошибка: Дублирующееся значение
### Что вы увидите
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
Строки с дублирующимися значениями **подсвечиваются жёлтым** в интерфейсе импорта до начала импорта.
### What It Means
### Что это означает
A unique field (email, domain) either:
Уникальное поле (email, домен) либо:
* Already exists in Twenty
* Appears twice in your file
* Уже существует в Twenty
* Встречается дважды в вашем файле
### How to Fix
### Как исправить
**Option 1: Edit the duplicate value**
**Вариант 1: Измените дублирующееся значение**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. Нажмите на ячейку с ошибкой
2. Измените на уникальное значение
3. Продолжайте импорт
**Option 2: Remove the duplicate row**
**Вариант 2: Удалите строку-дубликат**
1. Click the X next to the row
2. The row will be skipped during import
1. Нажмите X рядом со строкой
2. Эта строка будет пропущена при импорте
**Option 3: Let Twenty update the existing record**
**Вариант 3: Разрешите Twenty обновить существующую запись**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. Убедитесь, что ваш файл содержит уникальный идентификатор (`email`, `domain` или `id`)
2. Сопоставьте поле уникального идентификатора
3. Twenty обновит существующую запись вместо создания дубликата
<Note>
**You can update unique fields too.**
**Можно обновлять и уникальные поля.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* Если вы оставите `id`, но измените `email` → адрес электронной почты будет обновлён
* Если вы оставите `email`, но измените `id` → идентификатор будет обновлён
As long as one unique identifier matches, Twenty updates the record.
Пока совпадает хотя бы один уникальный идентификатор, Twenty обновит запись.
</Note>
### How to Prevent This Error
### Как предотвратить эту ошибку
Before importing:
Перед импортом:
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. Отсортируйте таблицу по уникальному полю
2. Удалите строки-дубликаты
3. Проверьте, существуют ли записи уже в Twenty
<Warning>
**Soft-deleted records count toward uniqueness.**
**Записи, помеченные как удалённые, учитываются при проверке уникальности.**
Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
Откройте Командное меню → Просмотреть удалённые записи. Записи там по-прежнему учитываются при проверке уникальности. Удалите их окончательно или восстановите и обновите.
</Warning>
For more details: [Uniqueness Constraints](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
Подробнее: [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## Ошибка: Неверный формат
### Что вы увидите
The cell value is highlighted in yellow. Hover over it to see the error message:
Значение ячейки подсвечено жёлтым. Наведите на него курсор, чтобы увидеть сообщение об ошибке:
```
{field name} is not a valid {field type}
{field name} — недопустимое значение для {field type}
```
### What It Means
### Что это означает
The data doesn't match the expected format for that field type.
Данные не соответствуют ожидаемому формату для этого типа поля.
### How to Fix — By Field Type
### Как исправить — по типам полей
#### Электронная почта
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**Проблема:** Неверный формат email
**Решение:** Используйте формат `name@domain.com`
```
❌ john.smith@
@@ -126,8 +126,8 @@ The data doesn't match the expected format for that field type.
#### Домен
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**Проблема:** Несогласованный формат может вызывать дубликаты
**Решение:** Используйте формат `https://domain.com` (рекомендуется)
```
⚠️ acme.com (valid, but not recommended)
@@ -135,12 +135,12 @@ The data doesn't match the expected format for that field type.
✅ https://acme.com (recommended)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>Все форматы допустимы, но `https://domain.com` рекомендуется, потому что он соответствует формату, используемому при синхронизации почты/календаря. Использование других форматов может привести к созданию дублирующихся компаний.</Note>
#### Дата
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**Проблема:** Нераспознанный формат даты
**Решение:** Используйте единый формат по всему файлу
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
@@ -150,19 +150,19 @@ The data doesn't match the expected format for that field type.
#### Телефон
**Problem:** Missing required columns
**Solution:** Include all phone columns
**Проблема:** Отсутствуют обязательные столбцы
**Решение:** Добавьте все столбцы для телефонов
| Column | Пример |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
| Столбец | Пример |
| ---------------------------------------------- | ------------ |
| **Телефоны / Основной номер телефона** | `4159095555` |
| **Телефоны / Код страны основного номера** | `US` |
| **Телефоны / Телефонный код основного номера** | `+1` |
#### Boolean
#### Логический тип
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**Проблема:** Неверное логическое значение
**Решение:** Используйте прописные `TRUE` или `FALSE`
```
❌ true
@@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### Выбор / Множественный выбор
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**Проблема:** Значение не совпадает с существующими опциями
**Решение:** Используйте **имена API**, а не отображаемые метки
How to find API names:
Как найти имена API:
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект и поле
3. Включите **Расширенный режим** (переключатель внизу справа)
4. Используйте имя API (например, `OPTION_1`, а не "Option 1")
```
❌ High Priority
@@ -191,18 +191,18 @@ How to find API names:
#### Валюта
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**Проблема:** Отсутствует сумма или код валюты
**Решение:** Заполните оба столбца
| Column | Пример |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
| Столбец | Пример |
| ------------------ | --------- |
| **Сумма / Сумма** | `1234.56` |
| **Сумма / Валюта** | `USD` |
#### Число
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**Проблема:** Нечисловые символы
**Решение:** Только цифры, точка для десятичных дробей
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/ru/user-guide/data-migration/capabilities/field-mapping)
Полная справка по форматам: [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## Ошибка: Отсутствует обязательное поле
### Что вы увидите
The row is highlighted in yellow with the required field cell marked.
Строка подсвечена жёлтым, а ячейка обязательного поля отмечена.
### What It Means
### Что это означает
A required field is empty for this row.
В этой строке не заполнено обязательное поле.
### How to Fix
### Как исправить
**Option 1: Enter a value**
**Вариант 1: Введите значение**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. Нажмите на пустую ячейку
2. Введите значение
3. Продолжайте импорт
**Option 2: Remove the row**
**Вариант 2: Удалите строку**
1. If you don't have the data, click X to skip the row
1. Если данных нет, нажмите X, чтобы пропустить строку
### How to Prevent This Error
### Как предотвратить эту ошибку
Before importing, identify required fields:
Перед импортом определите обязательные поля:
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш объект
3. Проверьте, какие поля помечены как обязательные
---
## Error: Relation Not Found
## Ошибка: Связь не найдена
### Что вы увидите
This error appears **after the import starts** — the import fails with a message like:
Эта ошибка возникает **после начала импорта** — импорт завершается с сообщением вроде:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
Это означает, что в Twenty нет компании с таким идентификатором.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>В отличие от других ошибок, эта не обнаруживается на этапе проверки данных. Импорт начнётся, а затем завершится с ошибкой, когда встретит отсутствующую связь.</Note>
### What It Means
### Что это означает
You're trying to link to a record that doesn't exist in Twenty.
Вы пытаетесь сослаться на запись, которой не существует в Twenty.
### How to Fix
### Как исправить
**Option 1: Import parent records first**
**Вариант 1: Сначала импортируйте родительские записи**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. Отмените текущий импорт
2. Импортируйте родительские записи (например, Компании)
3. Затем импортируйте дочерние записи (например, Контакты)
**Option 2: Fix the reference value**
**Вариант 2: Исправьте ссылочное значение**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. Проверьте ссылочное значение в вашем файле
2. Убедитесь, что оно в точности совпадает с существующей записью
3. Проверьте формат: домены должны быть в виде `https://domain.com`
**Option 3: Remove the relation**
**Вариант 3: Удалите связь**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. Очистите ячейку, чтобы импортировать без связи
2. Добавьте связь вручную позже
### How to Prevent This Error
### Как предотвратить эту ошибку
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **Импортируйте в правильном порядке:**
* Сначала — Компании
* Затем — Контакты (со ссылками на компании)
* Третьими — Возможности
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **Проверьте ссылочные значения:**
* Экспортируйте родительские записи, чтобы получить точные идентификаторы
* Используйте формат домена `https://domain.com`
* Проверьте опечатки и учтите регистр
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**Импорт завершится с ошибкой, если ссылка указывает на несуществующую запись.**
Always import parent objects before child objects.
Всегда импортируйте родительские объекты перед дочерними объектами.
</Warning>
For more details: [Import Relations](/l/ru/user-guide/data-migration/capabilities/import-relations)
Подробнее: [Импорт связей](/l/ru/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## Ошибка: Слишком большой файл
### Что вы увидите
This error appears **when uploading your file** — the upload is blocked entirely:
Эта ошибка появляется **при загрузке файла** — загрузка полностью блокируется:
```
Too many records. Up to 10000 allowed
Слишком много записей. Разрешено не более 10000
```
You won't be able to proceed to the data review step until you reduce the file size.
Вы не сможете перейти к этапу проверки данных, пока не уменьшите размер файла.
### What It Means
### Что это означает
Your file has more than 10,000 records.
В вашем файле более 10 000 записей.
### How to Fix
### Как исправить
**Option 1: Split into multiple files**
**Вариант 1: Разделите на несколько файлов**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. Разделите данные на файлы по 10 000 записей или меньше
2. Импортируйте каждый файл отдельно
3. Соблюдайте порядок импорта (Компании перед Контактами)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api)
**Вариант 2: Используйте импорт через API**
Для очень больших наборов данных используйте API, у которого нет ограничения по количеству записей.
См.: [Как импортировать данные через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## Ошибка: Поле не распознано
### What It Means
### Что это означает
A column in your file can't be mapped because the field doesn't exist in Twenty.
Столбец в вашем файле нельзя сопоставить, потому что такого поля нет в Twenty.
### How to Fix
### Как исправить
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект, который вы импортируете
3. Нажмите **+ Добавить поле**
4. Создайте настраиваемое поле с соответствующим типом
5. Загрузите файл повторно
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>Импорт CSV создаёт записи, а не поля. Все поля должны существовать до начала импорта.</Note>
---
## Error: User Relation Empty
## Ошибка: Пустая связь с пользователем
### What It Means
### Что это означает
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
Вы пытаетесь назначить запись пользователю (Owner, Assignee), но связь не сопоставляется.
### Common Causes
### Распространённые причины
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **Пользователь не принял приглашение** — пользователь ещё не существует в Twenty
2. **Используется ID пользователя из старой системы** — Twenty не может сопоставить идентификаторы из другой системы
3. **Неверный формат email** — адрес электронной почты не совпадает с аккаунтом пользователя в Twenty
### How to Fix
### Как исправить
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. Убедитесь, что все пользователи **приняли приглашение** в ваше рабочее пространство Twenty
2. Используйте **адрес электронной почты** пользователя (не его имя и не ID из старой системы)
3. Используйте тот же адрес электронной почты, который использовался для присоединения к Twenty
<Warning>
**Users must accept invitations before importing.**
**Пользователи должны принять приглашения до начала импорта.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
Если пользователь не принял приглашение, у записей, ссылающихся на него, будет пустая пользовательская связь.
</Warning>
---
## Pre-Import Checklist
## Контрольный список перед импортом
Avoid errors by checking these before importing:
Избегайте ошибок, проверив следующее перед импортом:
### File Requirements
### Требования к файлу
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>Файл в формате CSV, XLSX или XLS</Check>
<Check>В файле менее 10 000 записей</Check>
<Check>Файл использует кодировку UTF-8</Check>
### Data Quality
### Качество данных
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>Нет дублирующихся адресов электронной почты (для Контактов)</Check>
<Check>Нет дублирующихся доменов (для Компаний)</Check>
<Check>Все даты используют единый формат</Check>
<Check>Все домены в формате `https://domain.com`</Check>
### Field Formats
### Форматы полей
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>Логические поля используют `TRUE` или `FALSE` (прописные)</Check>
<Check>Поля типа Select используют имена API, а не отображаемые метки</Check>
<Check>Телефонные поля содержат все обязательные столбцы</Check>
<Check>Поля валюты содержат и сумму, и код валюты</Check>
### Связи
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>Родительские записи импортированы до дочерних записей</Check>
<Check>Столбцы со связями ссылаются на существующие записи</Check>
<Check>Формат домена точно соответствует формату Twenty</Check>
### Модель данных
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>Все настраиваемые поля существуют в Настройки → Модель данных</Check>
<Check>Опции для Select созданы до импорта</Check>
---
## Still Having Issues?
## Всё ещё возникают проблемы?
If you've tried the above solutions:
Если вы попробовали решения выше:
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/ru/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/ru/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/ru/user-guide/data-migration/capabilities/error-handling)
1. **Скачайте пример файла** — посмотрите точный формат, который ожидает Twenty
2. **Экспортируйте существующие записи** — сравните свой файл с рабочими данными
3. **Протестируйте на небольшой выборке** — сначала попробуйте 510 строк
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)
@@ -1,43 +1,43 @@
---
title: "Миграция с других CRM-систем "
description: Step-by-step guide to migrate your data from any CRM to Twenty.
description: Пошаговое руководство по миграции ваших данных из любой CRM в Twenty.
---
## Обзор
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
Это руководство проведет вас через процесс миграции ваших данных из любой CRM в Twenty. Процесс включает аудит ваших данных, подготовку рабочего пространства Twenty, экспорт из вашей текущей системы и импорт в Twenty.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Представления, рабочие процессы и права доступа необходимо воссоздать вручную после миграции. Запланируйте время на эту настройку.</Note>
## Step 1: Audit Your Current Data
## Шаг 1: Проведите аудит текущих данных
Migration is an opportunity for a fresh start. Don't bring over clutter.
Миграция — это возможность начать с чистого листа. Не переносите лишние данные.
**What to keep:**
**Что сохранить:**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* Активные контакты и компании
* Открытые возможности и сделки
* Важные заметки и активности
* Пользовательские поля, которые вы действительно используете
**What to leave behind:**
**Что не переносить:**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* Устаревшие контакты (нет активности более 2 лет)
* Дубликаты записей
* Тестовые данные
* Неиспользуемые пользовательские поля
## Step 2: Map Your Data Model
## Шаг 2: Сопоставьте модель данных
Create a mapping document between your current CRM and Twenty:
Создайте документ сопоставления между вашей текущей CRM и Twenty:
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Ваша CRM | Twenty |
| --------------------- | -------------------- |
| Аккаунт / Организация | **Компания** |
| Контакт / Персона | **Люди** |
| Сделка / Возможность | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
**For each field, document:**
@@ -1,23 +1,23 @@
---
title: Триггеры рабочего процесса
description: Learn about the different triggers that start your workflows.
description: Узнайте о различных триггерах, которые запускают ваши рабочие процессы.
---
## About Triggers
## О триггерах
Рабочие процессы всегда начинаются с единственного триггера, который определяет, когда должна выполняться автоматизация.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on:
**Поддерживаются расширенные объекты!** Помимо стандартных объектов CRM (люди, компании, сделки), вы также можете запускать рабочие процессы и выполнять действия с:
* Участники рабочего пространства
* Calendar Events
* Messages (Emails)
* Tasks, Notes, and many other system objects
* События календаря
* Сообщения (электронные письма)
* Задачи, заметки и многие другие системные объекты
This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically.
Это открывает возможности мощной автоматизации, например уведомление участников команды при создании событий календаря или автоматическую обработку входящих писем.
</Tip>
## Запись создана
@@ -27,9 +27,9 @@ description: Learn about the different triggers that start your workflows.
**Настройка**: Выберите тип объекта для отслеживания новых записей.
<Note>
* This trigger is great for records created by csv, mailbox and calendar synchronization, API.
* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields.
To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead.
* Этот триггер отлично подходит для записей, созданных через CSV, синхронизацию почтового ящика и календаря, а также через API.
* **Не рекомендуется для записей, создаваемых вручную**: с этим триггером рабочие процессы запускаются сразу после создания записи. Поскольку интерфейс Twenty предлагает автосохранение на лету (нет режима редактирования и последующего подтверждения для сохранения записей), рабочий процесс будет запущен до того, как пользователь введет все поля.
Чтобы запускать этот рабочий процесс для записей, создаваемых вручную, рекомендуется вместо этого использовать триггер `Record is created or updated`.
</Note>
## Запись обновлена
@@ -62,26 +62,26 @@ description: Learn about the different triggers that start your workflows.
**Настройка**: Выберите тип объекта для отслеживания удалений.
## Manual Trigger
## Ручной триггер
Запускает рабочий процесс, когда он инициируется пользователем. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s).
Запускает рабочий процесс, когда он инициируется пользователем. Доступ к этому триггеру можно получить через меню `Cmd+K` или с помощью настраиваемой кнопки, которая будет отображаться на верхней панели навигации после выбора записей.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Настройка доступности**: Выберите, как рабочий процесс должен обрабатывать выбор записи:
* **Глобально**: Для запуска этого рабочего процесса запись не требуется. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input.
* **Глобально**: Для запуска этого рабочего процесса запись не требуется. Рабочий процесс запускается из командного меню `Cmd + K` в любом месте (с любого объекта) и не использует записи в качестве входных данных.
* **Одиночная**: Выбранные записи будут переданы в ваш рабочий процесс. Это настроено для заданного объекта. Несколько записей могут быть выбраны до запуска рабочего процесса. The workflow will run from beginning to end as many times as there are records selected.
* **Одиночная**: Выбранные записи будут переданы в ваш рабочий процесс. Это настроено для заданного объекта. Несколько записей могут быть выбраны до запуска рабочего процесса. Рабочий процесс будет выполняться от начала до конца столько раз, сколько выбрано записей.
<Note>
**Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower.
**Мягкий лимит: 100 запусков в минуту**. При превышении этого значения рабочие процессы остаются в статусе "Not Started" и обрабатываются постепенно — либо фоновой задачей, либо когда другой рабочий процесс попадает в очередь. Это означает, что вы можете выбрать более 100 записей с помощью одного триггера; выполнение просто будет медленнее.
</Note>
* **Групповая обработка**: Выбранные записи будут переданы в ваш рабочий процесс. Это настроено для заданного объекта. Несколько записей могут быть выбраны до запуска рабочего процесса. Рабочий процесс будет выполнен один раз, предоставляя весь список записей в качестве входных данных. This means the workflow needs to contain an [Iterator action](/l/ru/user-guide/workflows/capabilities/workflow-actions#iterator).
* **Групповая обработка**: Выбранные записи будут переданы в ваш рабочий процесс. Это настроено для заданного объекта. Несколько записей могут быть выбраны до запуска рабочего процесса. Рабочий процесс будет выполнен один раз, предоставляя весь список записей в качестве входных данных. Это означает, что рабочий процесс должен содержать [действие Iterator](/l/ru/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
This is more advanced, and best for people who want to optimize the number of workflow runs.
Это более продвинутый вариант и лучше всего подходит для тех, кто хочет оптимизировать количество запусков рабочего процесса.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
@@ -94,10 +94,10 @@ description: Learn about the different triggers that start your workflows.
**Методы доступа**:
* `Cmd+K` menu to find and launch manual workflows
* Меню `Cmd+K` для поиска и запуска ручных рабочих процессов
* Пользовательская кнопка в верхней навигационной панели (если настроено)
## Time-Based Trigger: On a Schedule
## Триггер по времени: по расписанию
Запускает рабочий процесс на регулярной основе, которую вы определяете.
@@ -107,10 +107,10 @@ description: Learn about the different triggers that start your workflows.
* Введите значение или используйте пользовательские cron-выражения для сложного планирования
<Note>
**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC.
**Часовой пояс**: Запланированные рабочие процессы выполняются в **UTC**. При указании часов для ежедневных расписаний переводите ваше местное время в UTC.
</Note>
## External Trigger: Webhook
## Внешний триггер: вебхук
Запускает рабочий процесс при получении GET или POST-запроса от внешнего сервиса.
@@ -118,18 +118,18 @@ description: Learn about the different triggers that start your workflows.
**Настройка**:
* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call.
* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow.
* Configure authentication (coming soon).
* Рабочий процесс предоставляет уникальный URL вебхука — скопируйте его и добавьте в вашу внешнюю систему в качестве вызываемой конечной точки.
* Для запросов POST определите ожидаемую структуру тела, чтобы система Twenty понимала, какие данные ожидать. Добавьте здесь поля, которые вы получите и которые понадобятся ниже в вашем рабочем процессе.
* Настройте аутентификацию (скоро будет).
## Choosing the Right Trigger
## Выбор подходящего триггера
| Use Case | Recommended Trigger |
| --------------------------- | ---------------------------- |
| New leads need processing | Запись создана |
| Data changes need sync | Запись обновлена |
| Import/manual data handling | Запись обновлена или создана |
| Cleanup after deletion | Запись удалена |
| User-initiated action | Запуск вручную |
| Recurring reports | По расписанию |
| External integration | Webhook or On a Schedule |
| Сценарий использования | Рекомендуемый триггер |
| -------------------------------------- | ---------------------------- |
| Новые лиды требуют обработки | Запись создана |
| Изменения данных требуют синхронизации | Запись обновлена |
| Импорт/ручная обработка данных | Запись обновлена или создана |
| Очистка после удаления | Запись удалена |
| Действие, инициированное пользователем | Запуск вручную |
| Регулярные отчеты | По расписанию |
| Внешняя интеграция | Вебхук или по расписанию |
@@ -1,170 +1,170 @@
---
title: Устранение неполадок рабочего процесса
description: Common workflow issues and how to resolve them.
description: Распространённые проблемы с рабочими процессами и способы их решения.
---
## Распространенные проблемы и решения
### Рабочий процесс не запускается
**Symptoms**: Your workflow doesn't run when you expect it to.
**Симптомы**: Ваш рабочий процесс не запускается, когда вы этого ожидаете.
**Possible Causes**:
**Возможные причины**:
1. **Workflow not activated**: Ensure the workflow is set to "Active" not "Draft"
2. **Trigger conditions not met**: Verify the trigger matches your expected event
3. **Field not monitored**: For "Record is Updated" triggers, ensure the specific field is being watched
4. **Permissions**: Check you have permission to run workflows
1. **Рабочий процесс не активирован**: Убедитесь, что для рабочего процесса установлен статус "Active", а не "Draft"
2. **Условия триггера не выполняются**: Убедитесь, что триггер соответствует ожидаемому событию
3. **Поле не отслеживается**: Для триггеров "Record is Updated" убедитесь, что нужное поле отслеживается
4. **Разрешения**: Проверьте, есть ли у вас разрешение на запуск рабочих процессов
**Решения**:
* Verify workflow status in the workflow list
* Test with the specific action you expect to trigger it
* Review trigger configuration
* Contact your admin about permissions
* Проверьте статус рабочего процесса в списке рабочих процессов
* Протестируйте с конкретным действием, которое должно его запустить
* Проверьте конфигурацию триггера
* Свяжитесь с администратором по поводу разрешений
### Workflow Triggers Too Early (Empty Fields)
### Триггер рабочего процесса срабатывает слишком рано (пустые поля)
**Symptoms**: When manually creating a record in the UI, your workflow triggers before you've had time to fill in all the fields. The workflow runs with mostly empty field values.
**Симптомы**: При ручном создании записи в интерфейсе рабочий процесс срабатывает до того, как вы успеете заполнить все поля. Рабочий процесс запускается с преимущественно пустыми значениями полей.
**Why this happens**: Twenty saves everything in real-time — there's no separate "edit" vs "read" mode. When you create a record, it's saved immediately, triggering the "Record is created" event before you can fill in additional fields.
**Почему это происходит**: Twenty сохраняет всё в режиме реального времени — нет раздельных режимов "edit" и "read". Когда вы создаёте запись, она сохраняется сразу, что вызывает событие "Record is created" до того, как вы успеете заполнить дополнительные поля.
**When "Record is created" works well**:
**Когда "Record is created" работает хорошо**:
* Records created via API calls (fields are populated in a single request)
* Records created via import
* Automated record creation from other workflows
* Записи, созданные через вызовы API (поля заполняются одним запросом)
* Записи, созданные через импорт
* Автоматическое создание записей из других рабочих процессов
**Solution**: For records created manually in the UI, use **"Record is created or updated"** as your trigger instead. This way:
**Решение**: Для записей, созданных вручную в интерфейсе, используйте в качестве триггера **"Record is created or updated"**. Таким образом:
* The workflow triggers after the user has finished filling in and saving the fields
* You get the complete data rather than empty values
* Рабочий процесс запускается после того, как пользователь завершил заполнение и сохранение полей
* Вы получаете полные данные, а не пустые значения
<Tip>
If you only want the workflow to run once per record, add a Filter action to check a field like `createdAt equals updatedAt` (first save) or use a custom checkbox field to track if the workflow has already run.
Если вы хотите, чтобы рабочий процесс запускался только один раз для каждой записи, добавьте действие Filter, чтобы проверить поле, например `createdAt equals updatedAt` (первое сохранение), или используйте пользовательское поле-флажок, чтобы отслеживать, запускался ли рабочий процесс ранее.
</Tip>
### Actions Failing
### Сбои действий
**Symptoms**: Workflow runs but some actions fail.
**Симптомы**: Рабочий процесс запускается, но некоторые действия завершаются с ошибкой.
**Possible Causes**:
**Возможные причины**:
1. **Missing data**: Required fields are empty
2. **Invalid references**: Variables from previous steps don't exist
3. **API errors**: External services returning errors
4. **Permission issues**: Action requires permissions you don't have
1. **Отсутствующие данные**: Обязательные поля пустые
2. **Недопустимые ссылки**: Переменные из предыдущих шагов отсутствуют
3. **Ошибки API**: Внешние сервисы возвращают ошибки
4. **Проблемы с разрешениями**: Действие требует разрешений, которых у вас нет
**Решения**:
* Check the workflow run details for error messages
* Verify all required fields have values
* Test API connections independently
* Review role permissions
* Проверьте сведения о запуске рабочего процесса на наличие сообщений об ошибках
* Убедитесь, что все обязательные поля заполнены
* Протестируйте соединения с API отдельно
* Проверьте разрешения ролей
### HTTP Request Errors
### Ошибки HTTP-запросов
**Symptoms**: HTTP Request actions fail or return unexpected results.
**Симптомы**: Действия HTTP Request завершаются с ошибкой или возвращают неожиданные результаты.
**Common Error Codes**:
**Распространённые коды ошибок**:
* **400**: Bad request - check your request body format
* **401**: Unauthorized - verify API key
* **403**: Forbidden - check API permissions
* **404**: Not found - verify endpoint URL
* **429**: Too many requests - implement rate limiting
* **500**: Server error - external service issue
* **400**: Некорректный запрос — проверьте формат тела запроса
* **401**: Неавторизовано — проверьте ключ API
* **403**: Запрещено — проверьте разрешения API
* **404**: Не найдено — проверьте URL конечной точки
* **429**: Слишком много запросов — реализуйте ограничение частоты
* **500**: Ошибка сервера — проблема внешнего сервиса
**Решения**:
* Verify API endpoint URL
* Check authentication headers
* Test the API call outside of Twenty first
* Add error handling in Code actions
* Проверьте URL конечной точки API
* Проверьте заголовки аутентификации
* Сначала протестируйте вызов API вне Twenty
* Добавьте обработку ошибок в действиях Code
### Code Action Errors
### Ошибки действий Code
**Symptoms**: JavaScript code fails to execute.
**Симптомы**: Код JavaScript не выполняется.
**Common Issues**:
**Распространённые проблемы**:
1. **Syntax errors**: Typos or invalid JavaScript
2. **Undefined variables**: Referencing variables that don't exist
3. **Type errors**: Operations on wrong data types
4. **Timeouts**: Code taking too long to execute
1. **Синтаксические ошибки**: Опечатки или недопустимый JavaScript
2. **Неопределённые переменные**: Обращение к переменным, которые не существуют
3. **Ошибки типов**: Операции с некорректными типами данных
4. **Тайм-ауты**: Код выполняется слишком долго
**Решения**:
* Use the built-in code editor validation
* Test code logic in a JavaScript console first
* Add console.log statements for debugging
* Simplify complex operations
* Используйте проверку в встроенном редакторе кода
* Сначала протестируйте логику кода в консоли JavaScript
* Добавьте операторы console.log для отладки
* Упростите сложные операции
### Email Not Sending
### Письма не отправляются
**Symptoms**: Send Email action doesn't deliver emails.
**Симптомы**: Действие Send Email не доставляет письма.
**Possible Causes**:
**Возможные причины**:
1. **No email account connected**: Check Settings → Accounts
2. **Invalid email address**: Recipient email is malformed
3. **Sending limits**: Email provider rate limits reached
4. **Spam filters**: Emails being blocked
1. **Не подключена учетная запись электронной почты**: Проверьте Settings → Accounts
2. **Недопустимый адрес электронной почты**: Адрес электронной почты получателя имеет неверный формат
3. **Ограничения на отправку**: Достигнуты лимиты скорости у провайдера электронной почты
4. **Спам-фильтры**: Письма блокируются
**Решения**:
* Verify email account connection
* Validate recipient email addresses
* Check email provider limits
* Review email content for spam triggers
* Проверьте подключение учетной записи электронной почты
* Проверьте адреса электронной почты получателей
* Проверьте лимиты провайдера электронной почты
* Проверьте содержимое письма на наличие признаков спама
## Debugging Workflows
## Отладка рабочих процессов
### Using Workflow Runs
### Использование запусков рабочего процесса
1. Go to the workflow editor
2. Open the **Runs** panel
3. Find the failed run
4. Click to see step-by-step details
5. Review error messages and output data
1. Перейдите в редактор рабочего процесса
2. Откройте панель **Runs**
3. Найдите запуск со сбоем
4. Нажмите, чтобы увидеть подробности по шагам
5. Просмотрите сообщения об ошибках и выходные данные
### Testing Individual Steps
### Тестирование отдельных шагов
1. For Code actions, use the **Test** button
2. For HTTP requests, test the endpoint separately
3. Create test records to trigger workflows
4. Use manual triggers for controlled testing
1. Для действий Code используйте кнопку **Test**
2. Для HTTP-запросов протестируйте конечную точку отдельно
3. Создайте тестовые записи, чтобы запускать рабочие процессы
4. Используйте ручные триггеры для контролируемого тестирования
### Common Debugging Patterns
### Распространённые шаблоны отладки
**Add logging**:
Use Code actions to log intermediate values for debugging.
**Добавьте логирование**:
Используйте действия Code, чтобы записывать промежуточные значения для отладки.
**Isolate steps**:
Test each step independently to identify failures.
**Изолируйте шаги**:
Тестируйте каждый шаг отдельно, чтобы выявить сбои.
**Check data flow**:
Verify that each step receives the expected input data.
**Проверьте поток данных**:
Убедитесь, что каждый шаг получает ожидаемые входные данные.
## Best Practices to Avoid Issues
## Рекомендации по предотвращению проблем
### Before Activation
### Перед активацией
* Test thoroughly in draft mode
* Validate all API connections
* Review trigger conditions carefully
* Document expected behavior
* Тщательно протестируйте в режиме черновика
* Проверьте все подключения к API
* Внимательно проверьте условия триггера
* Задокументируйте ожидаемое поведение
### During Development
### Во время разработки
* Use descriptive step names
* Add comments in Code actions
* Test with realistic data
* Plan for edge cases
* Используйте понятные названия шагов
* Добавьте комментарии в действиях Code
* Тестируйте с реалистичными данными
* Планируйте обработку крайних случаев
### After Activation
### После активации
* Monitor initial runs closely
* Set up alerts for failures
* Review run history regularly
* Keep workflows simple when possible
* Внимательно отслеживайте первые запуски
* Настройте оповещения о сбоях
* Регулярно просматривайте историю запусков
* По возможности делайте рабочие процессы простыми
@@ -5,118 +5,118 @@ description: CSV içe aktarma hatalarını çözmeye yönelik eksiksiz bir sorun
## Genel Bakış
İçe aktarma çalışmıyor mu? This guide helps you identify and fix common import errors step by step.
İçe aktarma çalışmıyor mu? Bu kılavuz, yaygın içe aktarma hatalarını adım adım belirlemenize ve düzeltmenize yardımcı olur.
## How Import Validation Works
## İçe Aktarma Doğrulaması Nasıl Çalışır
After uploading your file and mapping columns, Twenty validates your data:
Dosyanızı yükledikten ve sütunları eşledikten sonra, Twenty verilerinizi doğrular:
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **Doğrulama çalışır** — Twenty her satırı hatalar için kontrol eder
2. **Hatalar vurgulanır** — sorunlu satırlar **sarı** görünür
3. **Yerinde düzeltebilirsiniz** — hücreleri doğrudan içe aktarma arayüzünde düzenleyin
4. **Veya satırları kaldırın** — sorunlu kayıtları tamamen atlayın
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**Hataları arayüzde düzeltin.** E-tablonuza geri dönmenize gerek yok. Zamandan tasarruf etmek için içe aktarma sırasında hücreleri doğrudan düzenleyin.</Note>
## Step-by-Step Troubleshooting
## Adım Adım Sorun Giderme
### Step 1: Identify the Error Type
### Adım 1: Hata Türünü Belirleyin
Click on a highlighted row to see the specific error message. Common error types:
Özel hata mesajını görmek için vurgulanmış bir satıra tıklayın. Yaygın hata türleri:
| Hata Mesajı | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| Hata Mesajı | Ne Anlama Gelir |
| ------------------------------------------------------------------------------ | -------------------------------------------------------------- |
| Yinelenen değerler sarı renkle vurgulanır | Değer Twenty'de zaten mevcut veya dosyanızda iki kez görünüyor |
| `{field} is not a valid {type}` (sarı hücrenin üzerine gelin) | Veri beklenen biçimle eşleşmiyor |
| Zorunlu alan vurgulanmış | Zorunlu bir alan boş |
| `Can't connect to {object}. No unique record found...` (içe aktarma başarısız) | Başvurulan kayıt mevcut değil |
| `Too many records. Up to 10000 allowed` (yükleme engellendi) | Dosyada 10.000'den fazla kayıt var |
### Step 2: Fix the Error
### Adım 2: Hatayı Düzeltin
Follow the specific instructions below for each error type.
Her hata türü için aşağıdaki özel talimatları izleyin.
---
## Error: Duplicate Value
## Hata: Yinelenen Değer
### Görecekleriniz
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
İçe aktarma başlamadan önce içe aktarma arayüzünde yinelenen değerlere sahip satırlar **sarı renkle vurgulanır**.
### What It Means
### Ne Anlama Gelir
A unique field (email, domain) either:
Benzersiz bir alan (e-posta, alan adı) ya:
* Already exists in Twenty
* Appears twice in your file
* Twenty'de zaten mevcut
* Dosyanızda iki kez görünüyor
### How to Fix
### Nasıl Düzeltilir
**Option 1: Edit the duplicate value**
**Seçenek 1: Yinelenen değeri düzenleyin**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. Hatanın bulunduğu hücreye tıklayın
2. Benzersiz bir değere değiştirin
3. İçe aktarmaya devam edin
**Option 2: Remove the duplicate row**
**Seçenek 2: Yinelenen satırı kaldırın**
1. Click the X next to the row
2. The row will be skipped during import
1. Satırın yanındaki X'e tıklayın
2. Satır, içe aktarma sırasında atlanacaktır
**Option 3: Let Twenty update the existing record**
**Seçenek 3: Mevcut kaydı Twenty'nin güncellemesine izin verin**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. Dosyanızın benzersiz bir tanımlayıcı (`email`, `domain` veya `id`) içerdiğinden emin olun
2. Benzersiz tanımlayıcı alanını eşleyin
3. Twenty, yinelenen bir kayıt oluşturmak yerine mevcut kaydı güncelleyecektir
<Note>
**You can update unique fields too.**
**Benzersiz alanları da güncelleyebilirsiniz.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* `id`'yi korur ancak `email`'i değiştirirseniz → e-posta güncellenir
* `email`'i korur ancak `id`'yi değiştirirseniz → id güncellenir
As long as one unique identifier matches, Twenty updates the record.
Benzersiz tanımlayıcılardan biri eşleştiği sürece Twenty kaydı günceller.
</Note>
### How to Prevent This Error
### Bu Hata Nasıl Önlenir
Before importing:
İçe aktarmadan önce:
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. E-tablonuzu benzersiz alana göre sıralayın
2. Yinelenen satırları kaldırın
3. Kayıtların Twenty'de zaten mevcut olup olmadığını kontrol edin
<Warning>
**Soft-deleted records count toward uniqueness.**
**Yumuşak silinmiş kayıtlar benzersizliğe dahildir.**
Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
Komut Menüsünü kontrol edin → Silinen kayıtları görün. Oradaki kayıtlar benzersizliği yine de uygular. Onları kalıcı olarak silin ya da geri yükleyip güncelleyin.
</Warning>
For more details: [Uniqueness Constraints](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints)
Daha fazla ayrıntı için: [Benzersizlik Kısıtlamaları](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## Hata: Geçersiz Biçim
### Görecekleriniz
The cell value is highlighted in yellow. Hover over it to see the error message:
Hücre değeri sarı renkle vurgulanır. Hata mesajını görmek için üzerine gelin:
```
{field name} is not a valid {field type}
```
### What It Means
### Ne Anlama Gelir
The data doesn't match the expected format for that field type.
Veriler, o alan türü için beklenen biçimle eşleşmiyor.
### How to Fix — By Field Type
### Nasıl Düzeltilir — Alan Türüne Göre
#### E-posta
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**Sorun:** Geçersiz e-posta biçimi
**Çözüm:** `name@domain.com` biçimini kullanın
```
❌ john.smith@
@@ -126,8 +126,8 @@ The data doesn't match the expected format for that field type.
#### Alan Adı
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**Sorun:** Tutarsız biçim yinelenmelere neden olabilir
**Çözüm:** `https://domain.com` biçimini kullanın (önerilir)
```
⚠️ acme.com (valid, but not recommended)
@@ -135,12 +135,12 @@ The data doesn't match the expected format for that field type.
✅ https://acme.com (recommended)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>Tüm biçimler geçerlidir, ancak e-posta/takvim senkronizasyonunun kullandığı biçimle eşleştiği için `https://domain.com` önerilir. Diğer biçimlerin kullanılması yinelenen şirketler oluşturabilir.</Note>
#### Tarih
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**Sorun:** Tanınmayan tarih biçimi
**Çözüm:** Dosya genelinde tutarlı bir biçim kullanın
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
@@ -150,10 +150,10 @@ The data doesn't match the expected format for that field type.
#### Telefon
**Problem:** Missing required columns
**Solution:** Include all phone columns
**Sorun:** Gerekli sütunlar eksik
**Çözüm:** Tüm telefon sütunlarını dahil edin
| Column | Örnek |
| Sütun | Örnek |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
@@ -161,8 +161,8 @@ The data doesn't match the expected format for that field type.
#### Boolean
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**Sorun:** Hatalı boolean değeri
**Çözüm:** Büyük harfle `TRUE` veya `FALSE` kullanın
```
❌ true
@@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### Seçim / Çoklu Seçim
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**Sorun:** Değer mevcut seçeneklerle eşleşmiyor
**Çözüm:** Görünen etiketler değil, **API adlarını** kullanın
How to find API names:
API adları nasıl bulunur:
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. Nesneyi ve alanı seçin
3. **Gelişmiş modu** etkinleştirin (sağ alttaki anahtarı kullanarak)
4. API adını kullanın (ör. `OPTION_1`, "Option 1" değil)
```
❌ High Priority
@@ -191,18 +191,18 @@ How to find API names:
#### Para Birimi
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**Sorun:** Tutar veya para birimi kodu eksik
**Çözüm:** Her iki sütunu da doldurun
| Column | Örnek |
| Sütun | Örnek |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Sayı
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**Sorun:** Sayısal olmayan karakterler
**Çözüm:** Yalnızca sayılar, ondalıklar için nokta kullanın
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/tr/user-guide/data-migration/capabilities/field-mapping)
Tam biçim başvurusu için: [Alan Eşleme Başvurusu](/l/tr/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## Hata: Zorunlu Alan Eksik
### Görecekleriniz
The row is highlighted in yellow with the required field cell marked.
Satır, zorunlu alan hücresi işaretlenmiş şekilde sarı renkle vurgulanır.
### What It Means
### Ne Anlama Gelir
A required field is empty for this row.
Bu satır için zorunlu bir alan boş.
### How to Fix
### Nasıl Düzeltilir
**Option 1: Enter a value**
**Seçenek 1: Bir değer girin**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. Boş hücreye tıklayın
2. Bir değer girin
3. İçe aktarmaya devam edin
**Option 2: Remove the row**
**Seçenek 2: Satırı kaldırın**
1. If you don't have the data, click X to skip the row
1. Veri yoksa, satırı atlamak için X'e tıklayın
### How to Prevent This Error
### Bu Hata Nasıl Önlenir
Before importing, identify required fields:
İçe aktarmadan önce, zorunlu alanları belirleyin:
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. Nesnenizi seçin
3. Hangi alanların zorunlu olarak işaretlendiğini kontrol edin
---
## Error: Relation Not Found
## Hata: İlişki Bulunamadı
### Görecekleriniz
This error appears **after the import starts** — the import fails with a message like:
Bu hata **içe aktarma başladıktan sonra** görünür — içe aktarma şu tür bir mesajla başarısız olur:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
Bu, Twenty'de o özel tanımlayıcıya sahip bir Şirket olmadığı anlamına gelir.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>Diğer hatalardan farklı olarak, bu hata veri inceleme adımında yakalanmaz. İçe aktarma başlar ve eksik ilişkiyle karşılaştığında başarısız olur.</Note>
### What It Means
### Ne Anlama Gelir
You're trying to link to a record that doesn't exist in Twenty.
Twenty'de mevcut olmayan bir kayda bağlanmaya çalışıyorsunuz.
### How to Fix
### Nasıl Düzeltilir
**Option 1: Import parent records first**
**Seçenek 1: Önce ana kayıtları içe aktarın**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. Geçerli içe aktarmayı iptal edin
2. Ana kayıtları içe aktarın (ör. Şirketler)
3. Ardından alt kayıtları içe aktarın (ör. Kişiler)
**Option 2: Fix the reference value**
**Seçenek 2: Referans değerini düzeltin**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. Dosyanızdaki referans değerini kontrol edin
2. Mevcut bir kayıtla tam olarak eşleştiğinden emin olun
3. Biçimi doğrulayın: alan adları `https://domain.com` olmalıdır
**Option 3: Remove the relation**
**Seçenek 3: İlişkiyi kaldırın**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. İlişki olmadan içe aktarmak için hücreyi temizleyin
2. İlişkiyi daha sonra manuel olarak ekleyin
### How to Prevent This Error
### Bu Hata Nasıl Önlenir
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **Doğru sırayla içe aktarın:**
* Önce Şirketler
* İkinci olarak Kişiler (şirket referanslarıyla)
* Üçüncü olarak Fırsatlar
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **Referans değerlerini doğrulayın:**
* Tam tanımlayıcıları almak için ana kayıtları dışa aktarın
* Alan adı biçimi `https://domain.com` kullanın
* Yazım hatalarını ve büyük/küçük harf duyarlılığını kontrol edin
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**Var olmayan bir kayda referans verilirse içe aktarma başarısız olur.**
Always import parent objects before child objects.
Her zaman alt nesnelerden önce ana nesneleri içe aktarın.
</Warning>
For more details: [Import Relations](/l/tr/user-guide/data-migration/capabilities/import-relations)
Daha fazla ayrıntı için: [İlişkileri İçe Aktarma](/l/tr/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## Hata: Dosya Çok Büyük
### Görecekleriniz
This error appears **when uploading your file** — the upload is blocked entirely:
Bu hata **dosyanızı yüklerken** görünür — yükleme tamamen engellenir:
```
Too many records. Up to 10000 allowed
```
You won't be able to proceed to the data review step until you reduce the file size.
Dosya boyutunu küçültmeden veri inceleme adımına ilerleyemezsiniz.
### What It Means
### Ne Anlama Gelir
Your file has more than 10,000 records.
Dosyanızda 10.000'den fazla kayıt var.
### How to Fix
### Nasıl Düzeltilir
**Option 1: Split into multiple files**
**Seçenek 1: Birden çok dosyaya bölün**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. Verilerinizi 10.000 veya daha az kayıttan oluşan dosyalara bölün
2. Her dosyayı ayrı ayrı içe aktarın
3. İçe aktarma sırasını koruyun (Şirketler Kişilerden önce)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/tr/user-guide/data-migration/how-tos/import-data-via-api)
**Seçenek 2: API ile içe aktarmayı kullanın**
Çok büyük veri kümeleri için, kayıt sınırı olmayan API'yi kullanın.
Bkz.: [API ile Veri Nasıl İçe Aktarılır](/l/tr/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## Hata: Alan Tanınmadı
### What It Means
### Ne Anlama Gelir
A column in your file can't be mapped because the field doesn't exist in Twenty.
Dosyanızdaki bir sütun eşlenemiyor çünkü alan Twenty'de mevcut değil.
### How to Fix
### Nasıl Düzeltilir
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. İçe aktardığınız nesneyi seçin
3. **+ Alan Ekle**'ye tıklayın
4. Uygun türde özel alanı oluşturun
5. Dosyanızı yeniden yükleyin
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>CSV içe aktarma alanları değil, kayıtları oluşturur. İçe aktarmadan önce tüm alanlar mevcut olmalıdır.</Note>
---
## Error: User Relation Empty
## Hata: Kullanıcı İlişkisi Boş
### What It Means
### Ne Anlama Gelir
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
Bir kaydı bir kullanıcıya (Sahip, Atanan) atamaya çalışıyorsunuz ancak ilişki eşlenmiyor.
### Common Causes
### Yaygın Nedenler
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **Kullanıcı davetini kabul etmedi** — kullanıcı henüz Twenty'de mevcut değil
2. **Eski sistemdeki kullanıcı kimliğini kullanma** — Twenty başka bir sistemin kimliklerini eşleştiremez
3. **Yanlış e-posta biçimi** — e-posta, kullanıcının Twenty hesabıyla eşleşmiyor
### How to Fix
### Nasıl Düzeltilir
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. Tüm kullanıcıların Twenty çalışma alanınıza **davetlerini kabul ettiğinden** emin olun
2. Kullanıcının **e-posta adresini** kullanın (adlarını veya eski sistem kimliğini değil)
3. Twenty'ye katılmak için kullandıkları aynı e-postayı kullanın
<Warning>
**Users must accept invitations before importing.**
**Kullanıcılar, içe aktarmadan önce davetleri kabul etmelidir.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
Bir kullanıcı davetini kabul etmediyse, onlara referans veren kayıtların kullanıcı ilişkileri boş olacaktır.
</Warning>
---
## Pre-Import Checklist
## İçe Aktarma Öncesi Kontrol Listesi
Avoid errors by checking these before importing:
İçe aktarmadan önce bunları kontrol ederek hatalardan kaçının:
### File Requirements
### Dosya Gereksinimleri
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>Dosya CSV, XLSX veya XLS biçiminde</Check>
<Check>Dosyada 10.000'den az kayıt var</Check>
<Check>Dosya UTF-8 kodlaması kullanıyor</Check>
### Data Quality
### Veri Kalitesi
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>Yinelenen e-postalar yok (Kişiler için)</Check>
<Check>Yinelenen alan adları yok (Şirketler için)</Check>
<Check>Tüm tarihler tutarlı biçim kullanır</Check>
<Check>Tüm alan adları `https://domain.com` biçimini kullanır</Check>
### Field Formats
### Alan Biçimleri
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>Boolean alanlar `TRUE` veya `FALSE` kullanır (büyük harf)</Check>
<Check>Seçim alanları, görünen etiketler değil API adlarını kullanır</Check>
<Check>Telefon alanlarında gerekli tüm sütunlar vardır</Check>
<Check>Para birimi alanlarında hem Amount hem de Currency Code bulunur</Check>
### İlişkiler
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>Ana kayıtlar, alt kayıtlardan önce içe aktarılır</Check>
<Check>İlişki sütunları mevcut kayıtlara referans verir</Check>
<Check>Alan adı biçimi, Twenty'nin biçimiyle birebir eşleşir</Check>
### Veri modeli
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>Tüm özel alanlar Ayarlar → Veri Modeli'nde mevcut</Check>
<Check>Seçim seçenekleri içe aktarmadan önce mevcut</Check>
---
## Still Having Issues?
## Hâlâ Sorun mu Yaşıyorsunuz?
If you've tried the above solutions:
Yukarıdaki çözümleri denediyseniz:
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/tr/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/tr/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/tr/user-guide/data-migration/capabilities/error-handling)
1. **Örnek dosyayı indirin** — Twenty'nin beklediği tam biçimi görün
2. **Mevcut kayıtları dışa aktarın** — dosyanızı çalışır durumdaki verilerle karşılaştırın
3. **Küçük bir partiyle test edin** — önce 5-10 satırı deneyin
4. **Referans makaleleri kontrol edin:**
* [Alan Eşleme](/l/tr/user-guide/data-migration/capabilities/field-mapping)
* [Benzersizlik Kısıtlamaları](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [İlişkileri İçe Aktarma](/l/tr/user-guide/data-migration/capabilities/import-relations)
* [Hata İşleme](/l/tr/user-guide/data-migration/capabilities/error-handling)
@@ -1,43 +1,43 @@
---
title: Diğer CRM'lerden Taşınma
description: Step-by-step guide to migrate your data from any CRM to Twenty.
description: Verilerinizi herhangi bir CRM'den Twenty'ye taşımak için adım adım kılavuz.
---
## Genel Bakış
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
Bu kılavuz, verilerinizi herhangi bir CRM'den Twenty'ye taşıma sürecinde size yol gösterir. Süreç, verilerinizi denetlemeyi, Twenty çalışma alanınızı hazırlamayı, mevcut sisteminizden dışa aktarmayı ve Twenty'ye içe aktarmayı içerir.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Görünümler, iş akışları ve izinler geçişten sonra manuel olarak yeniden oluşturulmalıdır. Bu yapılandırma çalışması için zaman planlayın.</Note>
## Step 1: Audit Your Current Data
## Adım 1: Mevcut Verilerinizi Denetleyin
Migration is an opportunity for a fresh start. Don't bring over clutter.
Geçiş, yeni bir başlangıç için bir fırsattır. Gereksiz karmaşayı taşımayın.
**What to keep:**
**Tutulacaklar:**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* Aktif kişiler ve şirketler
* Açık fırsatlar ve anlaşmalar
* Önemli notlar ve aktiviteler
* Gerçekten kullandığınız özel alanlar
**What to leave behind:**
**Geride bırakılacaklar:**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* Güncelliğini yitirmiş kişiler (2 yıldan uzun süredir aktivite yok)
* Yinelenen kayıtlar
* Test verileri
* Kullanılmayan özel alanlar
## Step 2: Map Your Data Model
## Adım 2: Veri Modelinizi Eşleyin
Create a mapping document between your current CRM and Twenty:
Mevcut CRM'iniz ile Twenty arasında bir eşleme belgesi oluşturun:
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| CRM'iniz | Twenty |
| ---------------- | -------------------- |
| Hesap / Kuruluş | **Şirket** |
| İrtibat / Kişi | **Kişiler** |
| Anlaşma / Fırsat | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
**For each field, document:**
@@ -1,23 +1,23 @@
---
title: İş Akışı Tetikleyicileri
description: Learn about the different triggers that start your workflows.
description: İş akışlarınızı başlatan farklı tetikleyiciler hakkında bilgi edinin.
---
## About Triggers
## Tetikleyiciler Hakkında
İş akışları, otomasyonun ne zaman çalıştırılacağını tanımlayan tek bir tetikleyici ile başlar.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on:
**Gelişmiş nesneler destekleniyor!** Standart CRM nesnelerinin (Kişiler, Şirketler, Fırsatlar) ötesinde, ayrıca şu öğelerde iş akışlarını tetikleyebilir ve işlemler gerçekleştirebilirsiniz:
* Çalışma Alanı Üyeleri
* Calendar Events
* Messages (Emails)
* Tasks, Notes, and many other system objects
* Takvim etkinlikleri
* Mesajlar (E-postalar)
* Görevler, Notlar ve daha birçok sistem nesnesi
This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically.
Bu, takvim etkinlikleri oluşturulduğunda ekip üyelerini bilgilendirme ya da gelen e-postaları otomatik olarak işleme gibi güçlü otomasyonların önünü açar.
</Tip>
## Kayıt Oluşturuldu
@@ -27,9 +27,9 @@ Seçilen bir nesneye (Kişiler, Şirketler, Fırsatlar veya herhangi bir özel n
**Yapılandırma**: Yeni kayıtları izlemek için nesne türünü seçin.
<Note>
* This trigger is great for records created by csv, mailbox and calendar synchronization, API.
* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields.
To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead.
* Bu tetikleyici, csv, posta kutusu ve takvim eşzamanlaması ile API tarafından oluşturulan kayıtlar için harikadır.
* **El ile oluşturulan kayıtlar için önerilmez**: bu tetikleyici ile kayıt oluşturulur oluşturulmaz iş akışları başlar. Twenty UI anında otomatik kaydetme sunduğundan (kayıtları kaydetmek için bir düzenleme modu ve ardından doğrulama yoktur), kullanıcı tüm alanları girmeden önce iş akışı tetiklenecektir.
Bu iş akışını el ile oluşturulan kayıtlarda tetiklemek için bunun yerine `Record is created or updated` tetikleyicisini kullanmanız önerilir.
</Note>
## Kayıt Güncellendi
@@ -62,27 +62,27 @@ Bir nesneden kayıt kaldırıldığında iş akışını başlatır.
**Yapılandırma**: Silme işlemlerini izlemek için nesne türünü seçin.
## Manual Trigger
## Manuel Tetikleyici
Bir kullanıcı eylemi tarafından tetiklendiğinde iş akışını başlatır. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s).
Bir kullanıcı eylemi tarafından tetiklendiğinde iş akışını başlatır. Bu tetikleyiciye `Cmd+K` menüsünden veya kayıt(lar)ı seçtikten sonra üst gezinme çubuğunda görüntülenecek özel bir düğme aracılığıyla erişilebilir.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Kullanılabilirlik Yapılandırması**:
İş akışının kayıt seçimini nasıl ele alacağını seçin:
* **Global**: No record is required to trigger this workflow. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input.
* **Global**: Bu iş akışını tetiklemek için bir kayda gerek yoktur. İş akışı, komut menüsü `Cmd + K` üzerinden herhangi bir yerden (herhangi bir nesneden) tetiklenir ve girdi olarak kayıt(lar) kullanmaz.
* **Single**: The selected record(s) will be passed to your workflow. Bu, belirli bir nesne için yapılandırılmıştır. İş akışını başlatmadan önce birkaç kayıt seçilebilir. The workflow will run from beginning to end as many times as there are records selected.
* **Tekil**: Seçilen kayıt(lar) iş akışınıza iletilecektir. Bu, belirli bir nesne için yapılandırılmıştır. İş akışını başlatmadan önce birkaç kayıt seçilebilir. İş akışı, başlangıçtan sona kadar, seçilen kayıt sayısı kadar çalışacaktır.
<Note>
**Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower.
**Yumuşak sınır: dakikada 100 çalıştırma**. Bunun ötesinde, iş akışları "Not Started" durumunda kalır ve kademeli olarak işlenir—arka plan görevi tarafından ya da başka bir iş akışı kuyruğa girdiğinde. Bu, Tekil tetikleyici ile 100'den fazla kayıt seçebileceğiniz anlamına gelir; yalnızca yürütme daha yavaş olacaktır.
</Note>
* **Bulk**: The selected record(s) will be passed to your workflow. Bu, belirli bir nesne için yapılandırılmıştır. İş akışını başlatmadan önce birkaç kayıt seçilebilir. İş akışı bir kere çalışacak, tüm kayıt listesini girdi olarak sağlayacak. This means the workflow needs to contain an [Iterator action](/l/tr/user-guide/workflows/capabilities/workflow-actions#iterator).
* **Toplu**: Seçilen kayıt(lar) iş akışınıza iletilecektir. Bu, belirli bir nesne için yapılandırılmıştır. İş akışını başlatmadan önce birkaç kayıt seçilebilir. İş akışı bir kere çalışacak, tüm kayıt listesini girdi olarak sağlayacak. Bu, iş akışının bir [Yineleyici eylemi](/l/tr/user-guide/workflows/capabilities/workflow-actions#iterator) içermesi gerektiği anlamına gelir.
<Note>
This is more advanced, and best for people who want to optimize the number of workflow runs.
Bu daha gelişmiştir ve iş akışı çalıştırmalarının sayısını optimize etmek isteyenler için en uygunudur.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
@@ -95,10 +95,10 @@ Bir kullanıcı eylemi tarafından tetiklendiğinde iş akışını başlatır.
**Erişim Yöntemleri**:
* `Cmd+K` menu to find and launch manual workflows
* `Cmd+K` menüsü ile manuel iş akışlarını bulup başlatma
* Üst gezinme çubuğunda (yapılandırılmışsa) özel bir düğme
## Time-Based Trigger: On a Schedule
## Zamana Dayalı Tetikleyici: Zamanlama ile
Belirlediğiniz aralıklarla iş akışını başlatır.
@@ -108,10 +108,10 @@ Belirlediğiniz aralıklarla iş akışını başlatır.
* İleri düzey zamanlama için bir değer girin veya özel cron ifadeleri kullanın.
<Note>
**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC.
**Saat dilimi**: Zamanlanmış iş akışları **UTC**'de çalışır. Günlük zamanlamalar için saatleri ayarlarken yerel saatinizi UTC'ye dönüştürün.
</Note>
## External Trigger: Webhook
## Harici Tetikleyici: Webhook
İş akışı, harici bir hizmetten bir GET veya POST isteği alındığında başlar.
@@ -119,18 +119,18 @@ Belirlediğiniz aralıklarla iş akışını başlatır.
**Yapılandırma**:
* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call.
* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow.
* Configure authentication (coming soon).
* İş akışı benzersiz bir webhook URL'si sağlar—bunu kopyalayın ve çağrılacak uç nokta olarak harici sisteminize ekleyin.
* POST istekleri için, Twenty'nin hangi verileri bekleyeceğini bilmesi amacıyla beklenen gövde yapısını tanımlayın. Buraya, iş akışınızda aşağıda gerekli olacak ve alacağınız alanları ekleyin.
* Kimlik doğrulamasını yapılandırın (yakında geliyor).
## Choosing the Right Trigger
## Doğru Tetikleyiciyi Seçme
| Use Case | Recommended Trigger |
| --------------------------- | ---------------------------------- |
| New leads need processing | Kayıt Oluşturuldu |
| Data changes need sync | Kayıt Güncellendi |
| Import/manual data handling | Kayıt Güncellendi veya Oluşturuldu |
| Cleanup after deletion | Kayıt Silindi |
| User-initiated action | Manuel Olarak Başlat |
| Recurring reports | On a Schedule |
| External integration | Webhook or On a Schedule |
| Kullanım alanı | Önerilen Tetikleyici |
| ------------------------------------------------ | ---------------------------------- |
| Yeni potansiyel müşterilerin işlenmesi gerekiyor | Kayıt Oluşturuldu |
| Veri değişikliklerinin eşitlenmesi gerekiyor | Kayıt Güncellendi |
| İçe aktarma/el ile veri işleme | Kayıt Güncellendi veya Oluşturuldu |
| Silme işleminden sonra temizleme | Kayıt Silindi |
| Kullanıcı tarafından başlatılan işlem | Manuel Olarak Başlat |
| Yinelenen raporlar | Zamanlama ile |
| Harici entegrasyon | Webhook veya Zamanlama ile |
@@ -1,170 +1,170 @@
---
title: İş Akışı Sorun Giderme
description: Common workflow issues and how to resolve them.
description: Yaygın iş akışı sorunları ve bunları çözme yöntemleri.
---
## Sık Görülen Sorunlar ve Çözümleri
### İş Akışı Tetiklenmiyor
**Symptoms**: Your workflow doesn't run when you expect it to.
**Belirtiler**: İş akışınız beklediğinizde çalışmıyor.
**Possible Causes**:
**Olası Nedenler**:
1. **Workflow not activated**: Ensure the workflow is set to "Active" not "Draft"
2. **Trigger conditions not met**: Verify the trigger matches your expected event
3. **Field not monitored**: For "Record is Updated" triggers, ensure the specific field is being watched
4. **Permissions**: Check you have permission to run workflows
1. **İş akışı etkinleştirilmemiş**: İş akışının "Draft" değil "Active" olarak ayarlandığından emin olun
2. **Tetikleyici koşulları karşılanmıyor**: Tetikleyicinin beklediğiniz olaya uyduğunu doğrulayın
3. **Alan izlenmiyor**: "Record is Updated" tetikleyicileri için, belirli alanın izlendiğinden emin olun
4. **İzinler**: İş akışlarını çalıştırma iznine sahip olduğunuzu kontrol edin
**Çözümler**:
* Verify workflow status in the workflow list
* Test with the specific action you expect to trigger it
* Review trigger configuration
* Contact your admin about permissions
* İş akışı listesindeki iş akışı durumunu doğrulayın
* Tetiklemesini beklediğiniz belirli işlemle test edin
* Tetikleyici yapılandırmasını gözden geçirin
* İzinler konusunda yöneticinizle iletişime geçin
### Workflow Triggers Too Early (Empty Fields)
### İş Akışı Çok Erken Tetikleniyor (Boş Alanlar)
**Symptoms**: When manually creating a record in the UI, your workflow triggers before you've had time to fill in all the fields. The workflow runs with mostly empty field values.
**Belirtiler**: Kullanıcı arayüzünde (UI) bir kaydı manuel olarak oluştururken, tüm alanları dolduracak zamanınız olmadan iş akışınız tetikleniyor. İş akışı, alan değerlerinin çoğu boşken çalışır.
**Why this happens**: Twenty saves everything in real-time — there's no separate "edit" vs "read" mode. When you create a record, it's saved immediately, triggering the "Record is created" event before you can fill in additional fields.
**Bunun nedeni**: Twenty her şeyi gerçek zamanlı olarak kaydeder — ayrı bir "düzenleme" ve "okuma" modu yoktur. Bir kayıt oluşturduğunuzda, ek alanları doldurmadan önce "Record is created" olayını tetikleyerek hemen kaydedilir.
**When "Record is created" works well**:
**"Record is created" ne zaman iyi çalışır**:
* Records created via API calls (fields are populated in a single request)
* Records created via import
* Automated record creation from other workflows
* API çağrılarıyla oluşturulan kayıtlar (alanlar tek bir istekte doldurulur)
* İçe aktarma yoluyla oluşturulan kayıtlar
* Diğer iş akışlarından otomatik kayıt oluşturma
**Solution**: For records created manually in the UI, use **"Record is created or updated"** as your trigger instead. This way:
**Çözüm**: UI'da manuel olarak oluşturulan kayıtlar için tetikleyici olarak **"Record is created or updated"** kullanın. Bu şekilde:
* The workflow triggers after the user has finished filling in and saving the fields
* You get the complete data rather than empty values
* Kullanıcı alanları doldurup kaydetmeyi bitirdikten sonra iş akışı tetiklenir
* Boş değerler yerine eksiksiz verileri alırsınız
<Tip>
If you only want the workflow to run once per record, add a Filter action to check a field like `createdAt equals updatedAt` (first save) or use a custom checkbox field to track if the workflow has already run.
Kayıt başına iş akışının yalnızca bir kez çalışmasını istiyorsanız, `createdAt equals updatedAt` (ilk kaydetme) gibi bir alanı kontrol etmek için bir Filtre eylemi ekleyin veya iş akışının daha önce çalışıp çalışmadığını izlemek için özel bir onay kutusu alanı kullanın.
</Tip>
### Actions Failing
### Eylemler Başarısız Oluyor
**Symptoms**: Workflow runs but some actions fail.
**Belirtiler**: İş akışı çalışıyor ancak bazı eylemler başarısız oluyor.
**Possible Causes**:
**Olası Nedenler**:
1. **Missing data**: Required fields are empty
2. **Invalid references**: Variables from previous steps don't exist
3. **API errors**: External services returning errors
4. **Permission issues**: Action requires permissions you don't have
1. **Eksik veri**: Gerekli alanlar boş
2. **Geçersiz başvurular**: Önceki adımlardan gelen değişkenler mevcut değil
3. **API hataları**: Dış hizmetler hata döndürüyor
4. **İzin sorunları**: Eylem, sahip olmadığınız izinler gerektiriyor
**Çözümler**:
* Check the workflow run details for error messages
* Verify all required fields have values
* Test API connections independently
* Review role permissions
* Hata mesajları için iş akışı çalıştırma ayrıntılarını kontrol edin
* Gerekli tüm alanların dolu olduğunu doğrulayın
* API bağlantılarını bağımsız olarak test edin
* Rol izinlerini gözden geçirin
### HTTP Request Errors
### HTTP İstek Hataları
**Symptoms**: HTTP Request actions fail or return unexpected results.
**Belirtiler**: HTTP Request eylemleri başarısız oluyor veya beklenmeyen sonuçlar döndürüyor.
**Common Error Codes**:
**Yaygın Hata Kodları**:
* **400**: Bad request - check your request body format
* **401**: Unauthorized - verify API key
* **403**: Forbidden - check API permissions
* **404**: Not found - verify endpoint URL
* **429**: Too many requests - implement rate limiting
* **500**: Server error - external service issue
* **400**: Hatalı istek - istek gövdesi biçiminizi kontrol edin
* **401**: Yetkisiz - API anahtarını doğrulayın
* **403**: Yasak - API izinlerini kontrol edin
* **404**: Bulunamadı - endpoint URL'sini doğrulayın
* **429**: Çok fazla istek - hız sınırlaması uygulayın
* **500**: Sunucu hatası - harici hizmet sorunu
**Çözümler**:
* Verify API endpoint URL
* Check authentication headers
* Test the API call outside of Twenty first
* Add error handling in Code actions
* API endpoint URL'sini doğrulayın
* Kimlik doğrulama başlıklarını kontrol edin
* Önce API çağrısını Twenty dışında test edin
* Code eylemlerine hata işleme ekleyin
### Code Action Errors
### Code Eylemi Hataları
**Symptoms**: JavaScript code fails to execute.
**Belirtiler**: JavaScript kodu yürütülemiyor.
**Common Issues**:
**Yaygın Sorunlar**:
1. **Syntax errors**: Typos or invalid JavaScript
2. **Undefined variables**: Referencing variables that don't exist
3. **Type errors**: Operations on wrong data types
4. **Timeouts**: Code taking too long to execute
1. **Sözdizimi hataları**: Yazım hataları veya geçersiz JavaScript
2. **Tanımsız değişkenler**: Var olmayan değişkenlere başvurma
3. **Tür hataları**: Yanlış veri türleri üzerinde işlemler
4. **Zaman aşımı**: Kodun çalıştırılması çok uzun sürüyor
**Çözümler**:
* Use the built-in code editor validation
* Test code logic in a JavaScript console first
* Add console.log statements for debugging
* Simplify complex operations
* Yerleşik kod düzenleyicisi doğrulamasını kullanın
* Önce JavaScript konsolunda kod mantığını test edin
* Hata ayıklama için console.log ifadeleri ekleyin
* Karmaşık işlemleri basitleştirin
### Email Not Sending
### E-posta Gönderilmiyor
**Symptoms**: Send Email action doesn't deliver emails.
**Belirtiler**: Send Email eylemi e-postaları göndermiyor.
**Possible Causes**:
**Olası Nedenler**:
1. **No email account connected**: Check Settings → Accounts
2. **Invalid email address**: Recipient email is malformed
3. **Sending limits**: Email provider rate limits reached
4. **Spam filters**: Emails being blocked
1. **Bağlı e-posta hesabı yok**: Settings → Accounts'ı kontrol edin
2. **Geçersiz e-posta adresi**: Alıcı e-posta adresi hatalı biçimlendirilmiş
3. **Gönderim sınırları**: E-posta sağlayıcısının hız sınırı aşıldı
4. **Spam filtreleri**: E-postalar engelleniyor
**Çözümler**:
* Verify email account connection
* Validate recipient email addresses
* Check email provider limits
* Review email content for spam triggers
* E-posta hesabı bağlantısını doğrulayın
* Alıcı e-posta adreslerini doğrulayın
* E-posta sağlayıcısı limitlerini kontrol edin
* Spam tetikleyicileri açısından e-posta içeriğini gözden geçirin
## Debugging Workflows
## İş Akışlarında Hata Ayıklama
### Using Workflow Runs
### İş Akışı Çalıştırmalarını Kullanma
1. Go to the workflow editor
2. Open the **Runs** panel
3. Find the failed run
4. Click to see step-by-step details
5. Review error messages and output data
1. İş akışı düzenleyicisine gidin
2. **Runs** panelini açın
3. Başarısız olan çalıştırmayı bulun
4. Adım adım ayrıntıları görmek için tıklayın
5. Hata mesajlarını ve çıktı verilerini gözden geçirin
### Testing Individual Steps
### Bireysel Adımları Test Etme
1. For Code actions, use the **Test** button
2. For HTTP requests, test the endpoint separately
3. Create test records to trigger workflows
4. Use manual triggers for controlled testing
1. Code eylemleri için **Test** düğmesini kullanın
2. HTTP istekleri için endpoint'i ayrı olarak test edin
3. İş akışlarını tetiklemek için test kayıtları oluşturun
4. Kontrollü test için manuel tetikleyiciler kullanın
### Common Debugging Patterns
### Yaygın Hata Ayıklama Kalıpları
**Add logging**:
Use Code actions to log intermediate values for debugging.
**Günlükleme ekleyin**:
Hata ayıklama için ara değerleri kaydetmek üzere Code eylemlerini kullanın.
**Isolate steps**:
Test each step independently to identify failures.
**Adımları izole edin**:
Hataları belirlemek için her adımı bağımsız olarak test edin.
**Check data flow**:
Verify that each step receives the expected input data.
**Veri akışını kontrol edin**:
Her adımın beklenen giriş verilerini aldığını doğrulayın.
## Best Practices to Avoid Issues
## Sorunlardan Kaçınmak İçin En İyi Uygulamalar
### Before Activation
### Etkinleştirmeden Önce
* Test thoroughly in draft mode
* Validate all API connections
* Review trigger conditions carefully
* Document expected behavior
* Taslak modunda kapsamlı şekilde test edin
* Tüm API bağlantılarını doğrulayın
* Tetikleyici koşullarını dikkatlice gözden geçirin
* Beklenen davranışı belgeleyin
### During Development
### Geliştirme Sırasında
* Use descriptive step names
* Add comments in Code actions
* Test with realistic data
* Plan for edge cases
* Açıklayıcı adım adları kullanın
* Code eylemlerine yorum ekleyin
* Gerçekçi verilerle test edin
* Uç durumlar için plan yapın
### After Activation
### Etkinleştirmeden Sonra
* Monitor initial runs closely
* Set up alerts for failures
* Review run history regularly
* Keep workflows simple when possible
* İlk çalıştırmaları yakından izleyin
* Başarısızlıklar için uyarılar ayarlayın
* Çalıştırma geçmişini düzenli olarak gözden geçirin
* Mümkün olduğunda iş akışlarını basit tutun