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,76 @@
---
title: Zpracování chyb a validace
description: Zkontrolujte a opravte chyby importu přímo v uživatelském rozhraní (UI) před potvrzením.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Ověření před importem
Po nahrání souboru a namapování polí Twenty vaše data ověří **před** importem. Díky tomu můžete chyby odhalit a opravit, aniž by to ovlivnilo vaše stávající data.
## Jak to funguje
1. **Nahrajte** svůj soubor CSV
2. **Namapujte** své sloupce na pole Twenty
3. **Zkontrolujte** možné chyby zvýrazněné žlutě
4. **Opravte chyby** přímo v uživatelském rozhraní (UI)
5. **Potvrďte** import
<VimeoEmbed videoId="1145273857" title="Ukázka videa" />
## Zobrazení chyb
Řádky s problémy jsou zvýrazněny **žlutě**. Můžete:
* **Přímo upravte buňku**, abyste chybu opravili
* **Odstraňte řádek**, abyste jej zcela přeskočili
Tato přímá úprava šetří čas — nemusíte se vracet do tabulky, opravovat chyby a soubor znovu nahrávat.
## Běžné typy chyb
### Duplicitní hodnoty
**Příčina**: Jedinečné pole (e-mail, doména) už v Twenty existuje nebo se ve vašem souboru vyskytuje dvakrát.
**Oprava**:
* Upravte duplicitní hodnotu v rozhraní importu
* Odstraňte jeden z duplicitních řádků
Podrobnosti o tom, jak se vynucuje jedinečnost, viz [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints).
### Neplatný formát
**Příčina**: Data neodpovídají očekávanému formátu (např. neplatný e-mail, nesprávný formát data).
**Oprava**: Upravte buňku tak, aby používala správný formát.
Viz [Mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping) pro očekávaný formát každého typu pole.
### Chybějící povinná pole
**Příčina**: Povinné pole je prázdné.
**Oprava**: Zadejte hodnotu do povinného pole, nebo řádek odstraňte.
### Vztah nebyl nalezen
**Příčina**: Odkazovaný záznam neexistuje (např. doména společnosti, která nebyla importována).
**Oprava**:
* Nejprve importujte nadřazené záznamy
* Nebo opravte referenční hodnotu
Viz [Import relací](/l/cs/user-guide/data-migration/capabilities/import-relations) pro správné pořadí importu a postup propojení záznamů.
## Tipy pro méně chyb
1. **Stáhněte si šablonu** pro zobrazení očekávaného formátu před importem souboru
2. **Nejprve vyčistěte svá data** v tabulce
3. **Importujte soubory ve správném pořadí**, abyste importovali relace (Společnosti → Lidé → Příležitosti)
4. **Otestujte s malými dávkami** před plným importem
5. **Zkontrolujte duplicity** před nahráním
6. **Omezit každý soubor na 10 000 záznamů**

View File

@@ -0,0 +1,198 @@
---
title: Mapování polí
description: Jak funguje mapování polí při importu dat.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Jak funguje mapování polí
Když nahrajete soubor, Twenty analyzuje vaše sloupce a pokusí se je spárovat s existujícími poli.
### Automatické mapování
Twenty se snaží spárovat sloupce na základě:
* Názvů záhlaví sloupců (přesné nebo podobné shody)
* Detekce typů dat (datumů, čísel, e‑mailů)
* Běžné vzory polí
<Note>**Rychlý tip:** Exportujte několik řádků z objektu, který chcete importovat. Exportovaný soubor bude mít přesně takové názvy sloupců, jaké Twenty očekává, což při importu usnadní automatické mapování.</Note>
### Možnosti ručního mapování
U každého sloupce můžete:
* **Namapovat na pole**: Vyberte odpovídající pole Twenty z rozbalovací nabídky
* **Nemapovat**: Sloupec úplně přeskočte (data nebudou importována)
<Note>**Pole musí existovat před importem.** Import vytváří záznamy, nikoli pole. Vytvořte vlastní pole v **Nastavení → Datový model** před importem.</Note>
## Kompatibilita typů polí
Všechny typy polí dostupné v Datovém modelu jsou pro import podporovány.
Můžete také importovat hodnoty `id` a přiřadit konkrétní ID novým záznamům nebo aktualizovat stávající.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## Požadavky na formát dat
<Note>**Některá pole mají speciální syntaxi.** Před přípravou importu doporučujeme stáhnout ukázkový soubor, abyste viděli očekávanou syntaxi pro každý typ pole.</Note>
### Adresová pole
Adresa je vnořené pole s více sloupci. Některé lze ponechat prázdné.
* **Adresa / Adresa 1**: První řádek adresy (ulice)
* **Adresa / Adresa 2**: Druhý řádek adresy (ulice)
* **Adresa / Město**: Název města
* **Adresa / Stát**: Stát nebo provincie
* **Adresa / Země**: Název země
* **Adresa / PSČ**: Poštovní směrovací číslo
### Pole typu Array
Použijte následující formát:
```
["value1","value2"]
```
### Booleovská pole
Použijte `TRUE` nebo `FALSE` (velkými písmeny) – ne `true` ani `false`
### Měnová pole
Měna je vnořené pole se dvěma sloupci, které je nutné **vyplnit obě**:
* **Částka / Částka**: Číselná hodnota (např. `1234.56`)
* **Částka / Měna**: Kód měny (např. `USD`, `EUR`)
### Datumová pole
Podporované formáty:
* `YYYY-MM-DD` (doporučeno)
* `MM/DD/YYYY`
* `DD/MM/YYYY`
* Formát ISO 8601
### Doménová pole
* Doporučujeme používat formát `https://domain.com`, abyste předešli vytváření duplicit, protože tento formát se používá u Společností vytvořených synchronizací poštovní schránky a kalendáře
* Lze vyplnit `Domain Label` a `Domain URL`: osvědčený postup je zadat do popisku `domain.com` a do URL `https://domain.com`
* Domény musí být v objektu Společnosti jedinečné
* **Domény musí být jedinečné v rámci importovaného souboru**
### E‑mailová pole
* Musí mít platný formát e‑mailu
* E‑maily musí být v objektu Osoby jedinečné
* **E‑maily musí být jedinečné v rámci importovaného souboru**
* Pro další e‑maily: použijte **E‑maily / Primární e‑mail** pro hlavní e‑mail a **E‑maily / Další e‑maily** v tomto formátu:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### ID polí
Zadání `id` při importu je volitelné. Pokud není uvedeno, Twenty jej automaticky vygeneruje.
Příklady použití mapování sloupce `id`:
* **Nastavit konkrétní ID**: Zvolte UUID pro nově vytvářené záznamy
* **Aktualizovat existující záznamy**: Spárujte je s existujícími záznamy, abyste je aktualizovali místo vytváření duplicit. V takovém případě doporučujeme nemapovat další jedinečná pole: mapování pouze jednoho jedinečného pole zajistí hladší import.
<Note>Pokud zadáte `id`, musí být ve formátu UUID (např. `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### Pole JSON
Použijte platný formát JSON:
```
{"key":"value","key2":"value2"}
```
### Pole odkazů
Podobně jako u doménových polí:
* Vyplňte oba sloupce s popiskem a adresou URL: **Odkazy / URL odkazu** a **Odkazy / Popisek odkazu**
* Použijte úplný formát URL: `https://example.com`
* Pro sekundární odkazy použijte sloupec **Odkazy / Sekundární odkazy** v tomto formátu:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Pole s vícenásobným výběrem
Použijte **názvy API** (nikoli zobrazované popisky) v následujícím formátu:
```
["VALUE1","VALUE2"]
```
Viz [zde](#finding-api-names-for-select-fields), kde najdete názvy API.
<Note>Nové možnosti výběru se importem automaticky nevytvoří. Před importem je musíte přidat v **Nastavení → Datový model**.</Note>
<Warning>
**Import přepsá; nepřidává.**
Pokud má záznam již vybrány `VALUE2` a `VALUE3` a vy importujete `["VALUE1"]`, bude mít po importu pouze `VALUE1`. Předchozí výběry se nahrazují, neslučují.
</Warning>
### Číselná pole
* Pouze čísla
* Desetinná místa se oddělují tečkou: `1234.56`
* Bez oddělovačů tisíců
### Telefonní pole
Telefon je vnořené pole s více sloupci, které je **nutné vyplnit**
* **Telefony / Primární telefonní číslo**: Telefonní číslo (např. `4159095555`)
* **Telefony / Kód země primárního telefonu**: Kód země (např. `US`)
* **Telefony / Mezinárodní předvolba primárního telefonu**: Volací kód (např. `+1`)
### Hodnoticí pole
Použijte název API ve formátu: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Relační pole
Podívejte se prosím na náš samostatný článek: [Import relací mezi objekty](/l/cs/user-guide/data-migration/capabilities/import-relations)
### Výběrová Pole
Použijte **název API** možnosti (nikoli zobrazovaný popisek):
```
VALUE1
```
Viz [zde](#finding-api-names-for-select-fields), kde najdete názvy API.
<Note>Nové možnosti výběru nebudou importem vytvořeny automaticky. Před importem je musíte přidat v **Nastavení → Datový model**.</Note>
### Textová pole
* Není potřeba žádné speciální formátování
* Úvodní a koncové mezery jsou odstraněny
## Hledání názvů API
U polí typu Select, Multi-Select a Array s předdefinovanými možnostmi musíte použít **názvy API**, nikoli zobrazené štítky.
### Jak najít názvy API
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt a pole
3. Povolte **Pokročilý režim** (přepínač je vpravo dole na stránce nastavení)
4. Zobrazte název API pro každou možnost
<VimeoEmbed videoId="1144910809" title="Ukázka videa" />

View File

@@ -0,0 +1,48 @@
---
title: Podporované formáty souborů
description: Formáty souborů podporované pro import dat v Twenty.
---
## Podporované formáty
Twenty podporuje pro import tři formáty souborů:
| Formát | Přípona | Poznámky |
| ------------------ | ------- | ------------------------------ |
| **CSV** | .csv | Doporučeno, nejkompatibilnější |
| **Excel** | .xlsx | Moderní formát Excelu |
| **Excel (starší)** | .xls | Starší formát Excelu |
## Požadavky na soubory
| Požadavek | Hodnota |
| ----------------- | ------------------------------------------ |
| **Kódování** | Doporučeno UTF-8 |
| **Limit záznamů** | 10,000 záznamů na soubor |
| **Struktura** | První řádek musí obsahovat záhlaví sloupců |
| **Obsah** | V každém souboru pouze jeden typ objektu |
## Osvědčené postupy pro CSV
* **Oddělovač**: Použijte čárku (`,`) nebo středník (`;`)
* **Textový kvalifikátor**: Použijte dvojité uvozovky (`"`) pro text obsahující čárky
* **Konce řádků**: Windows (CRLF) nebo Unix (LF), obojí je podporováno
* **Prázdné hodnoty**: Nechte buňky prázdné, nepoužívejte "NULL" ani "N/A"
## Osvědčené postupy pro Excel
Při exportu z Excelu:
* Odstraňte vzorce (exportujte pouze hodnoty)
* Odstraňte prázdné řádky na konci
* Zajistěte, aby nebyly sloučené buňky
* Použijte pouze první list
## Velké datové sady
Pro datové sady větší než 10,000 záznamů:
* Rozdělte na více souborů
* Nebo použijte [import přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api) pro neomezený počet záznamů
<Note>Pro velmi rozsáhlé migrace (100,000+ záznamů) je API výrazně rychlejší a spolehlivější než importy CSV.</Note>

View File

@@ -0,0 +1,148 @@
---
title: Import relací mezi objekty
description: Import relací mezi záznamy pomocí CSV.
---
## Přehled
Twenty podporuje import relací mezi objekty během importu CSV. To vám umožní propojit záznamy (např. přiřadit Lidi ke Společnostem) jako součást migrace dat.
<Note>**V současnosti podporováno pro import**: Relace jedna ku mnoha směřující na jeden typ objektu na každé straně (např. Lidé → Společnosti). Relace směřující k více typům objektů zatím nejsou pro import/export podporovány.</Note>
## Jak relace fungují v Twenty
### Jedna ku mnoha / Mnoho ku jedné
Twenty podporuje standardní relace, kde se jeden záznam propojuje s mnoha dalšími:
* **Jedna Společnost → Mnoho Lidí**: Společnost může mít více zaměstnanců, ale každá osoba patří do jedné společnosti
* **Jedna Společnost → Mnoho Příležitostí**: Společnost může mít více obchodů, ale každá příležitost patří k jedné společnosti
### Relace, které mohou směřovat k více typům objektů
Některé relace mohou propojit různé typy objektů. To funguje dvěma způsoby:
**Vzor 1: Mnoho záznamů se odkazuje vždy na jeden záznam u různých typů objektů**
K více typům objektu lze připojit několik poznámek nebo úloh:
* **Poznámky** mohou být současně propojeny s jednou Osobou, jednou Společností a jednou Příležitostí
* **Úkoly** mohou být současně propojeny s jednou Osobou, jednou Společností a jednou Příležitostí
Zde jsou Poznámky/Úkoly na straně „mnoho“. Každý z nich se váže na jeden záznam pro každý typ objektu.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Vzor 2: Jeden záznam přijímá odkazy od mnoha záznamů různých typů objektů**
Projekt může přijímat odkazy od více záznamů napříč různými typy objektů:
* **Projekt** může mít k sobě připojeno mnoho Lidí, mnoho Společností a mnoho Poznámek
Zde je Projekt na straně „jedna“. Více záznamů z různých objektů se může odkazovat na tentýž Projekt.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Omezení importu/exportu**: Relace, které směřují k více typům objektů (např. Poznámky → Lidé/Společnosti/Příležitosti), zatím **nejsou podporovány** při importu nebo exportu CSV.
* **Import**: Lze importovat pouze relace jedna ku mnoha směřující na jeden typ objektu na každé straně
* **Export**: Sloupce pro relace směřující k více typům objektů jsou aktuálně ponechány prázdné
Je to v našem plánu.
</Warning>
### Co dnes není podporováno
**Relace mnoho ku mnoha** zatím nejsou k dispozici. Například aktuálně nemůžete vytvořit relaci, kde:
* Mnoho Lidí je propojeno s mnoha Projekty
<Note>Mnoho k mnoha vztahům je naplánováno na H2 2026.</Note>
## Propojování záznamů během importu
<Note>**Připomenutí**: Importovat lze pouze relace jedna ku mnoha směřující na jeden typ objektu (např. Lidé → Společnosti). Relace směřující k více typům objektů (např. Poznámky → Lidé/Společnosti/Příležitosti) zatím nejsou podporovány.</Note>
### Krok 1: Určete strany „jedna“ a „mnoho“
Nejprve určete, který objekt je na straně „jedna“ a který je na straně „mnoho“ dané relace.
**Příklad**:
* **Společnost** je strana „jedna“ (jedna společnost má mnoho zaměstnanců)
* **Lidé** jsou strana „mnoho“ (každá osoba patří do jedné společnosti)
### Krok 2: Ujistěte se, že záznamy na straně „jedna“ existují
Před importem strany „mnoho“ musí záznamy na straně „jedna“ již v Twenty existovat.
* Nejprve importujte nebo vytvořte záznamy strany „jedna“ (např. Společnosti)
* Ověřte jejich jedinečný identifikátor. Může to být:
* Pole `id` (UUID v Twenty)
* Pole nastavené jako jedinečné (např. `domain` u Společností nebo externí ID z vašeho předchozího systému)
<Warning>Import selže, pokud je odkazováno na záznam, který neexistuje.</Warning>
### Krok 3: Připravte svůj soubor CSV
Přidejte do souboru CSV pro stranu „mnoho“ sloupec, který odkazuje na záznam strany „jedna“.
**Příklad**: Pro soubor CSV Lidé propojený se Společnostmi:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Důležité**:
* Hodnota se musí **přesně shodovat** s jedinečným polem v záznamu Společnosti
* U domén používejte **URL domény** (např. `https://acme.com`), nikoli označení domény
* Mapujte pouze **jeden** jedinečný identifikátor na relaci: povede to k hladšímu importu
### Krok 4: Ujistěte se, že relační pole existuje
Před nahráním souboru se ujistěte, že mezi vašimi objekty existuje relační pole.
Pokud neexistuje:
1. Přejděte do **Nastavení → Datový model**
2. Vyberte svůj objekt (např. Lidé)
3. Vytvořte relační pole směřující na cílový objekt (např. Společnost)
### Krok 5: Nahrajte a namapujte relaci
1. Nahrajte svůj soubor CSV prostřednictvím rozhraní pro import
2. V kroku mapování polí najděte svůj relační sloupec (např. `companyDomain`)
3. Namapujte jej na relační pole (např. Společnost)
4. Twenty automaticky propojí každý záznam s odpovídajícím nadřazeným objektem
### Dostupná jedinečná pole pro relace
| Objekt | Dostupná jedinečná pole |
| -------------------------------------- | ----------------------------------------------- |
| **Společnosti** | `id`, `domain`, jakékoli vlastní jedinečné pole |
| **Lidé** | `id`, `email`, jakékoli vlastní jedinečné pole |
| **Členové pracovního prostoru** | `id`, `email` (ne jméno) |
| **Další standardní a vlastní objekty** | `id`, jakékoli pole označené jako jedinečné |
<Note>**Propojení na členy pracovního prostoru**: Pokud relace směřuje na členy pracovního prostoru (váš tým přihlašující se do Twenty), odkazujte je pomocí jejich **e-mailové adresy**, nikoli jména.</Note>
<Note>Doporučujeme používat `domain` pro Společnosti a `email` pro Lidi, protože jsou srozumitelné pro člověka a snadno se udržují v tabulkách.</Note>
<Note>**Připomenutí**: Měkce smazané záznamy (viditelné v Command Menu → Zobrazit smazané záznamy) se započítávají do kritérií jedinečnosti. Pokud naimportujete záznam se stejnou jedinečnou hodnotou jako má smazaný záznam, smazaný záznam bude obnoven. Více podrobností naleznete v [Omezeních jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints).</Note>
## Pořadí importu
<Warning>
**Vždy nejprve importujte stranu „jedna“!**
1. **Společnosti** jako první (bez závislostí)
2. **Lidé** jako druzí (propojeni se Společnostmi)
3. **Příležitosti** jako třetí (propojené se Společnostmi/Lidmi)
4. **Vlastní objekty** podle jejich závislostí
Nadřazený záznam musí existovat dříve, než na něj můžete odkazovat.
</Warning>

View File

@@ -0,0 +1,72 @@
---
title: Omezení jedinečnosti
description: Jak Twenty prosazuje jedinečnost dat při importu.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Přehled
Twenty vynucuje jedinečnost u vybraných polí, aby se předešlo duplicitním záznamům a zajistila integrita dat. Porozumění těmto omezením je zásadní pro úspěšné importy.
## Výchozí jedinečná pole
| Objekt | Jedinečná pole |
| ------------------- | ---------------------------------- |
| **Lidé** | `id`, `email` |
| **Společnosti** | `id`, `domain` |
| **Vlastní objekty** | pouze `id` (ve výchozím nastavení) |
<Note>Pole `id` je interní identifikátor Twenty, automaticky generovaný pro každý záznam. Používá formát UUID (např. `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
## Vlastní jedinečná pole
Další jedinečná pole můžete definovat v **Nastavení → Datový model**:
1. Přejděte do **Nastavení → Datový model**
2. Vyberte objekt
3. Klikněte na pole
4. V nastavení pole zapněte **Jedinečné**
### Příklady použití vlastních jedinečných polí
* **Externí ID**: Ukládejte ID z jiných systémů (Salesforce ID, HubSpot ID)
* **Obchodní identifikátory**: osobní čísla zaměstnanců, zákaznické kódy
* **Alternativní kontaktní údaje**: profil na LinkedInu, telefonní číslo
<Note>Název pole `id` je vyhrazen pro interní ID Twenty. Pro externí identifikátory použijte jiný název, například `externalId` nebo `legacyId`.</Note>
## Chování importu
### Vytváření nových záznamů
Pokud hodnota jedinečného pole neexistuje, vytvoří se nový záznam.
### Aktualizace stávajících záznamů
Pokud hodnota jedinečného pole odpovídá existujícímu záznamu, tento záznam se **aktualizuje** novými daty.
<Warning>Pro **aktualizaci stávajících záznamů** se doporučuje **párovat pouze jedno jedinečné pole**.</Warning>
### Měkce smazané záznamy
<Warning>
**Smazané záznamy se započítávají do jedinečnosti.**
Měkce smazané záznamy (viditelné v Command Menu → Zobrazit smazané záznamy) jsou zahrnuty do kontrol jedinečnosti. Pokud naimportujete záznam se stejnou jedinečnou hodnotou jako smazaný záznam, smazaný záznam bude **obnoven** s novými daty.
</Warning>
## Detekce duplicit během importu
Během fáze validace:
* Duplicitní hodnoty ve vašem souboru jsou zvýrazněny žlutě
* Před zahájením importu můžete v uživatelském rozhraní upravit nebo odstranit duplicitní řádky
<VimeoEmbed videoId="1145246326" title="Ukázka videa" />
## Osvědčené postupy
1. **Odstraňte duplikáty** ze souboru před importem
2. Před importem **zkontrolujte existující záznamy** v Twenty
3. **Používejte externí ID** při migraci z jiných systémů
4. **Zahrňte jedinečná pole**, pokud chcete aktualizovat stávající záznamy

View File

@@ -0,0 +1,32 @@
---
title: Exportovat FAQ
description: Často kladené otázky ohledně exportu dat.
---
<AccordionGroup>
<Accordion title="Můžeme exportovat všechna data pracovního prostoru před zrušením, včetně vlastních objektů, vlastních polí, vztahů, poznámek, úkolů, příležitostí, příloh, pracovních postupů, oprávnění a historie auditu?">
Data pracovního prostoru lze exportovat před zrušením s několika výjimkami: řídicí panely, pracovní postupy a oprávnění musí být přeneseny ručně; protokoly auditu nelze přenést.
</Accordion>
<Accordion title="Které prvky nelze v současné době exportovat nebo migrovat?">
Většina prvků může být exportována nebo migrována s některými výjimkami:
* workflow, dashboardy a všechna nastavení (API klíče, webhooky, protokoly auditu, uživatelská nastavení atd.) musí být migrovány ručně
* objekty a pole vytvořené aplikacemi mohou být migrovány instalací uvedené aplikace do jiného pracovního prostoru. Neměly by být přesunuty ručně
* některé záznamy, jako verze pracovního postupu a běh pracovního postupu, nejsou vůbec přenosné a očekává se, že budou ztraceny
* některé objekty, jako jsou zprávy a objekty související s kalendářem, by neměly být exportovány, protože jsou vytvořeny, když je účet pravidelně propojen a synchronizován. Budou znovu synchronizováni, jakmile se připojíte k vašemu účtu (tak dlouho, dokud budete mít přístup k tomuto účtu), pokud je to účet člena týmu, který opustil vaši společnost, pak musí být tyto zprávy exportovány, jinak budou ztraceny)
</Accordion>
<Accordion title="Existuje oficiální mrak pro proces migrace nebo asistované služby při migraci?">
Od nynějška neexistuje žádný oficiální postup migrace v cloudu k sobě. Obecná myšlenka zní:
* za prvé, nainstalujte aplikace pro představení objektů a polí vlastněných aplikací
* replikovat vlastní objekty a pole přidaná uživateli
* použít skript s API klíči nebo nástroji AI k přenosu všech dat z jednoho pracovního prostoru do druhého
* všechny nepřenosné objekty musí být migrovány ručně
Mějte prosím na paměti několik věcí:
* můžete poslat až 50 požadavků za minutu na Pro plán nebo 100 požadavků na plán organizace před dosažením požadovaného limitu
* každá žádost API může mít až 200 záznamů
* některá data v polích, jako je "Vytvořeno", "Timele" aktivity a "Aktualizováno" budou ztracena během importu a přepsána systémem
</Accordion>
<Accordion title="Jsou exportované soubory poskytovány v otevřeném a zdokumentovaném formátu?">
Exportované soubory v uživatelském rozhraní jsou ve formátu Excel a všechny API požadavky mohou být uloženy ve formátu JSON.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,209 @@
---
title: Exportujte svá data
description: Kompletní podrobný návod krok za krokem k exportu dat z Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Přehled
Exportujte data svého pracovního prostoru do CSV pro zálohování, vytváření přehledů nebo migraci.
**Případy použití:**
* **Pravidelné zálohy** — uchovávejte kopie svých dat
* **Externí přehledy** — analyzujte data v Excelu, Google Sheets nebo nástrojích BI
* **Migrace** — přesuňte data do jiného systému
* **Hromadné aktualizace** — exportujte, upravte a znovu importujte pro aktualizaci záznamů
## Co potřebujete vědět
### Limity exportu
* **Maximálně 20 000 záznamů** na jeden export
* Exportují se pouze **viditelné sloupce**
* Exportují se pouze **filtrované záznamy** (podle vašeho aktuálního zobrazení)
<Note>U větších exportů (20 000+ záznamů) použijte filtry pro export po dávkách nebo použijte [API](/l/cs/developers/extend/api).</Note>
### Oprávnění
K exportu dat potřebujete oprávnění **"Export CSV"**. Pokud tuto možnost nemáte, kontaktujte správce pracovního prostoru.
## Krok 1: Přejděte na objekt
Přejděte na objekt, který chcete exportovat:
* **Lidé** — pro kontakty
* **Společnosti** — pro organizace
* **Příležitosti** — pro obchodní případy
* **Vlastní objekty** — jakýkoli objekt, který jste vytvořili
## Krok 2: Nakonfigurujte své zobrazení
**Důležité:** Export zahrnuje pouze to, co je viditelné ve vašem aktuálním zobrazení.
### Přidat/Odebrat sloupce
1. Klikněte na **Možnosti → Pole** (nebo na **+** na konci sloupců)
2. Zaškrtněte pole, která chcete exportovat
3. Zrušte zaškrtnutí polí, která nepotřebujete
### Filtrování záznamů (volitelné)
Pokud potřebujete pouze podmnožinu dat:
1. Klikněte na **Filtr**
2. Přidejte podmínky filtru (např. "Datum vytvoření > 1. ledna 2024")
3. Exportovány budou pouze odpovídající záznamy
### Řazení záznamů (volitelné)
1. Kliknutím na záhlaví sloupce seřadíte
2. Export bude respektovat vaše pořadí řazení
<Note>**Vytvořte vyhrazené zobrazení pro export.** Uložte si zobrazení speciálně nakonfigurované pro exporty, abyste je nemuseli pokaždé znovu nastavovat.</Note>
## Krok 3: Exportujte data
1. Klikněte na ikonu **⋮** vpravo nahoře v tabulce
2. Vyberte **Exportovat zobrazení**
3. Vyberte, kam uložit soubor CSV
4. Počkejte na dokončení stahování
## Co se exportuje
| Zahrnuto | Není zahrnuto |
| -------------------------------------- | ------------------------------- |
| Všechny viditelné sloupce | Skryté sloupce |
| Záznamy odpovídající aktuálním filtrům | Vyfiltrované záznamy |
| Hodnoty vlastních polí | Pole, která nejsou ve zobrazení |
| ID záznamů | Přílohy souborů |
| ID vztahů | Obrázky |
### Relační pole
ID vztahů se exportují pouze na **"many" straně** vztahu:
* **Export Lidé** obsahuje sloupec `companyId` (vztah Lidé → Společnost)
* **Export Společnosti** NEOBSAHUJE `peopleIds` (Společnosti jsou na "one" straně)
To znamená, že můžete použít export objektu Lidé k opětovnému importu a zachování propojení na Společnost, ale budete muset znovu importovat objekt Lidé po objektu Společnosti, abyste znovu vytvořili vztahy.
## Export pro konkrétní účely
### Pro zálohování
1. Vytvořte zobrazení, kde jsou viditelná **všechna pole**
2. Odstraňte všechny filtry, abyste zahrnuli všechny záznamy
3. Exportujte každý typ objektu samostatně
4. Ukládejte exporty na zabezpečeném místě
5. Nastavte opakované připomenutí (týdně/měsíčně)
### Pro externí přehledy
1. Zahrňte pouze pole, která potřebujete pro analýzu
2. Použijte filtry, abyste se zaměřili na relevantní data
3. Zvažte řazení podle pole, které budete analyzovat
### Pro hromadné aktualizace
1. Exportujte záznamy, které chcete aktualizovat
2. Zahrňte jedinečný identifikátor (`email`, `domain` nebo `id`)
3. Upravte exportovaný soubor
4. Znovu importujte pro aktualizaci záznamů
Viz: [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import)
### Pro migraci
Pokud exportujete kvůli migraci do jiného systému:
1. **Exportujte každý objekt samostatně** — Lidé, Společnosti, Příležitosti atd.
2. **Zahrňte pole ID** — pomohou zachovat vztahy
3. **Zdokumentujte mapování polí** — poznamenejte si, jak se pole Twenty mapují na váš cílový systém
## Práce s velkými datovými sadami (20 000+ záznamů)
Limit exportu je 20 000 záznamů. Pro větší datové sady:
### Možnost 1: Export po dávkách
1. Přidejte filtr (např. rozsahy pole "Datum vytvoření")
2. Exportujte první dávku
3. Změňte filtr
4. Exportujte další dávku
5. Sloučte soubory v tabulkovém procesoru
**Příklady filtrů pro dávkování:**
* Podle časového období (leden, únor, březen...)
* Podle vlastníka (Člen týmu A, Člen týmu B...)
* Podle stavu (Aktivní, Neaktivní...)
### Možnost 2: Použijte API
API nemá limit počtu záznamů:
1. Získejte svůj klíč API v **Nastavení → Vývojáři**
2. Použijte GraphQL API k dotazování na záznamy
3. Zpracujte výsledky ve své aplikaci
Viz: [Dokumentace API](/l/cs/developers/extend/api)
## Tipy a osvědčené postupy
### Vytvářejte zobrazení pro export
Ukládejte zobrazení nakonfigurovaná speciálně pro export:
1. Nakonfigurujte sloupce a filtry
2. Klikněte na **Možnosti zobrazení** → **Uložit jako nové zobrazení**
3. Pojmenujte ho "Export - [účel]"
### Zabezpečte své exporty
Exportované soubory mohou obsahovat citlivá data:
* Ukládejte na zabezpečených místech
* Smažte staré exporty, když už nejsou potřeba
* Buďte opatrní při sdílení exportovaných souborů
### Kontrola před exportem
<Check>Jsou viditelné správné sloupce</Check>
<Check>Filtry jsou nastaveny správně (nebo odstraněny pro plný export)</Check>
<Check>Máte oprávnění k exportu</Check>
## Časté dotazy
<AccordionGroup>
<Accordion title="Proč v mém exportu chybí některé sloupce?">
Exportují se pouze viditelné sloupce. Před exportem přidejte požadované sloupce přes **Možnosti → Pole**.
</Accordion>
<Accordion title="Proč můj export neobsahuje všechny záznamy?">
Zkontrolujte své filtry. Export zahrnuje pouze záznamy odpovídající filtrům vašeho aktuálního zobrazení. Odstraňte filtry, abyste exportovali všechny záznamy.
</Accordion>
<Accordion title="Mohu exportovat více než 20 000 záznamů?">
Ne v rámci jednoho exportu. Použijte filtry k exportu po dávkách, nebo pro větší datové sady použijte API.
</Accordion>
<Accordion title="V jakém formátu je exportovaný soubor?">
CSV (Comma Separated Values). Otevírá se v Excelu, Google Sheets nebo libovolné tabulkové aplikaci.
</Accordion>
<Accordion title="Jsou zahrnuta ID vztahů?">
Ano, ale pouze na straně "many" u vztahů. Například export Lidé obsahuje `companyId`, ale export Společnosti neobsahuje ID lidí.
</Accordion>
<Accordion title="Mohu exporty automatizovat?">
Ne přímo přes uživatelské rozhraní. Použijte API k vytvoření automatizovaných exportních pracovních postupů.
</Accordion>
</AccordionGroup>
## Další kroky
* [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import) — upravte a znovu importujte svůj export
* [Jak importovat data přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api) — pro velké datové sady
* [Dokumentace API](/l/cs/developers/extend/api) — vytvářejte vlastní pracovní postupy pro export

View File

@@ -0,0 +1,430 @@
---
title: Oprava chyb importu
description: Kompletní průvodce odstraňováním chyb při importu CSV.
---
## Přehled
Nefunguje import? Tato příručka vám krok za krokem pomůže identifikovat a opravit běžné chyby při importu.
## Jak funguje validace importu
Po nahrání souboru a namapování sloupců Twenty vaše data ověří:
1. **Proběhne validace** — Twenty zkontroluje každý řádek na chyby
2. **Chyby jsou zvýrazněny** — problematické řádky se zobrazí **žlutě**
3. **Můžete opravovat přímo na místě** — upravujte buňky přímo v rozhraní importu
4. **Nebo odstraňte řádky** — problematické záznamy úplně přeskočte
<Note>**Opravujte chyby v rozhraní.** Nemusíte se vracet do své tabulky. Úpravou buněk přímo během importu ušetříte čas.</Note>
## Řešení problémů krok za krokem
### Krok 1: Určete typ chyby
Klikněte na zvýrazněný řádek a zobrazí se konkrétní chybová zpráva. Běžné typy chyb:
| Chybová zpráva | Co to znamená |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Duplicitní hodnoty zvýrazněné žlutě | Hodnota již existuje v Twenty nebo se ve vašem souboru vyskytuje dvakrát |
| `{field} is not a valid {type}` (přejeďte myší na žlutou buňku) | Data neodpovídají očekávanému formátu |
| Povinné pole je zvýrazněno | Povinné pole je prázdné |
| `Can't connect to {object}. No unique record found...` (import selže) | Odkazovaný záznam neexistuje |
| `Too many records. Up to 10000 allowed` (nahrávání zablokováno) | Soubor obsahuje více než 10 000 záznamů |
### Krok 2: Opravte chybu
Postupujte podle níže uvedených pokynů pro jednotlivé typy chyb.
---
## Chyba: Duplicitní hodnota
### Co uvidíte
Řádky s duplicitními hodnotami jsou v rozhraní importu před zahájením importu **zvýrazněny žlutě**.
### Co to znamená
Jedinečné pole (e-mail, doména):
* Již existuje v Twenty
* Se ve vašem souboru vyskytuje dvakrát
### Jak to opravit
**Možnost 1: Upravit duplicitní hodnotu**
1. Klikněte na buňku s chybou
2. Změňte na jedinečnou hodnotu
3. Pokračujte v importu
**Možnost 2: Odstranit duplicitní řádek**
1. Klikněte na X vedle řádku
2. Řádek bude během importu přeskočen
**Možnost 3: Nechte Twenty aktualizovat existující záznam**
1. Ujistěte se, že váš soubor obsahuje jedinečný identifikátor (`email`, `domain` nebo `id`)
2. Namapujte pole jedinečného identifikátoru
3. Twenty aktualizuje existující záznam místo vytvoření duplicity
<Note>
**Můžete aktualizovat i jedinečná pole.**
* Pokud ponecháte `id`, ale změníte `email` → e-mail bude aktualizován
* Pokud ponecháte `email`, ale změníte `id` → ID bude aktualizováno
Pokud se shoduje alespoň jeden jedinečný identifikátor, Twenty záznam aktualizuje.
</Note>
### Jak této chybě předejít
Před importem:
1. Seřaďte svou tabulku podle jedinečného pole
2. Odstraňte duplicitní řádky
3. Zkontrolujte, zda záznamy v Twenty již existují
<Warning>
**Záznamy „soft-deleted“ se započítávají do jedinečnosti.**
Zkontrolujte Command Menu → Zobrazit smazané záznamy. Záznamy tam stále vynucují jedinečnost. Natrvalo je smažte nebo je obnovte a aktualizujte.
</Warning>
Více podrobností: [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Chyba: Neplatný formát
### Co uvidíte
Hodnota buňky je zvýrazněna žlutě. Najetím myší zobrazíte chybovou zprávu:
```
{field name} is not a valid {field type}
```
### Co to znamená
Data neodpovídají očekávanému formátu pro tento typ pole.
### Jak to opravit — podle typu pole
#### Email
**Problém:** Neplatný formát e-mailu
**Řešení:** Použijte formát `name@domain.com`
```
❌ john.smith@
❌ john smith@acme.com
✓ john.smith@acme.com
```
#### Doména
**Problém:** Nekonzistentní formát může způsobit duplicity
**Řešení:** Použijte formát `https://domain.com` (doporučeno)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
```
<Note>Všechny formáty jsou platné, ale `https://domain.com` je doporučený, protože odpovídá formátu používanému synchronizací e-mailu/kalendáře. Použití jiných formátů může vytvářet duplicitní společnosti.</Note>
#### Datum
**Problém:** Nerozpoznaný formát data
**Řešení:** Používejte formát `YYYY-MM-DD` jednotně v celém souboru
```
✓ 2024-03-15 (YYYY-MM-DD)
❌ 03/15/2024 (MM/DD/YYYY)
❌ 15/03/2024 (DD/MM/YYYY)
```
#### Telefon
**Problém:** Chybí požadované sloupce
**Řešení:** Zahrňte všechny telefonní sloupce
| Sloupec | Příklad |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
#### Booleovská hodnota
**Problém:** Nesprávná booleovská hodnota
**Řešení:** Použijte velká písmena `TRUE` nebo `FALSE`
```
❌ true
❌ yes
❌ 1
✓ TRUE
✓ FALSE
```
#### Výběr / Vícevýběr
**Problém:** Hodnota neodpovídá existujícím možnostem
**Řešení:** Používejte **názvy API**, ne zobrazované štítky
Jak najít názvy API:
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt a pole
3. Povolte **Pokročilý režim** (přepínač vpravo dole)
4. Použijte název API (např. `OPTION_1`, ne "Option 1")
```
❌ High Priority
✓ HIGH_PRIORITY
```
#### Měna
**Problém:** Chybí částka nebo kód měny
**Řešení:** Vyplňte oba sloupce
| Sloupec | Příklad |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Číslo
**Problém:** Nečíselné znaky
**Řešení:** Pouze čísla, tečka pro desetinná místa
```
❌ $1,234.56
❌ 1,234.56
✓ 1234.56
```
Úplná referenční příručka k formátům: [Mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
---
## Chyba: Chybí povinné pole
### Co uvidíte
Řádek je zvýrazněn žlutě a buňka povinného pole je označena.
### Co to znamená
U tohoto řádku je povinné pole prázdné.
### Jak to opravit
**Možnost 1: Zadejte hodnotu**
1. Klikněte na prázdnou buňku
2. Zadejte hodnotu
3. Pokračujte v importu
**Možnost 2: Odstraňte řádek**
1. Pokud data nemáte, klikněte na X a řádek přeskočte
### Jak této chybě předejít
Před importem si určete povinná pole:
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt
3. Zkontrolujte, která pole jsou označena jako povinná
---
## Chyba: Vztah nebyl nalezen
### Co uvidíte
Tato chyba se objeví **po zahájení importu** — import selže se zprávou jako:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
To znamená, že v Twenty neexistuje společnost s tímto konkrétním identifikátorem.
<Note>Na rozdíl od jiných chyb tato není zachycena během kroku kontroly dat. Import se spustí a poté selže, jakmile narazí na chybějící relaci.</Note>
### Co to znamená
Pokoušíte se propojit se záznamem, který v Twenty neexistuje.
### Jak to opravit
**Možnost 1: Nejprve importujte nadřazené záznamy**
1. Zrušte aktuální import
2. Importujte nadřazené záznamy (např. společnosti)
3. Poté importujte podřízené záznamy (např. osoby)
**Možnost 2: Opravte referenční hodnotu**
1. Zkontrolujte referenční hodnotu ve svém souboru
2. Ujistěte se, že přesně odpovídá existujícímu záznamu
3. Ověřte formát: domény by měly být `https://domain.com`
**Možnost 3: Odstraňte relaci**
1. Vymažte buňku a importujte bez relace
2. Relaci přidejte později ručně
### Jak této chybě předejít
1. **Importujte ve správném pořadí:**
* Nejprve společnosti
* Poté osoby (s odkazy na společnost)
* Nakonec příležitosti
2. **Ověřte referenční hodnoty:**
* Exportujte nadřazené záznamy, abyste získali přesné identifikátory
* Používejte formát domény `https://domain.com`
* Zkontrolujte překlepy a velikost písmen
<Warning>
**Import selže, pokud je odkazováno na neexistující záznam.**
Vždy importujte nadřazené objekty před podřízenými objekty.
</Warning>
Více podrobností: [Import relací](/l/cs/user-guide/data-migration/capabilities/import-relations)
---
## Chyba: Soubor je příliš velký
### Co uvidíte
Tato chyba se objeví **při nahrávání souboru** — nahrávání je zcela zablokováno:
```
Too many records. Up to 10000 allowed
```
Dokud nezmenšíte velikost souboru, nebudete moci pokračovat ke kroku kontroly dat.
### Co to znamená
Váš soubor má více než 10 000 záznamů.
### Jak to opravit
**Možnost 1: Rozdělte na více souborů**
1. Rozdělte data do souborů s nejvýše 10 000 záznamy
2. Importujte každý soubor zvlášť
3. Dodržte pořadí importu (společnosti před osobami)
**Možnost 2: Použijte import přes API**
U velmi velkých datových sad použijte API, které nemá limit počtu záznamů.
Viz: [Jak importovat data přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api)
---
## Chyba: Pole nebylo rozpoznáno
### Co to znamená
Sloupec ve vašem souboru nelze namapovat, protože pole v Twenty neexistuje.
### Jak to opravit
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt, který importujete
3. Klikněte na **+ Add field**
4. Vytvořte vlastní pole s odpovídajícím typem
5. Nahrajte soubor znovu
<Note>Import CSV vytváří záznamy, nikoli pole. Všechna pole musí existovat před importem.</Note>
---
## Chyba: Prázdná relace uživatele
### Co to znamená
Pokoušíte se přiřadit záznam uživateli (Owner, Assignee), ale relace se nemapuje.
### Časté příčiny
1. **Uživatel nepřijal pozvánku** — uživatel zatím v Twenty neexistuje
2. **Používáte uživatelské ID ze starého systému** — Twenty nedokáže spárovat ID z jiného systému
3. **Nesprávný formát e-mailu** — e-mail neodpovídá účtu uživatele v Twenty
### Jak to opravit
1. Ujistěte se, že všichni uživatelé **přijali svou pozvánku** do vašeho pracovního prostoru Twenty
2. Použijte **e-mailovou adresu** uživatele (ne jeho jméno nebo ID ze starého systému)
3. Použijte stejný e-mail, jaký použili k připojení do Twenty
<Warning>
**Uživatelé musí před importem přijmout pozvánky.**
Pokud uživatel nepřijal svou pozvánku, záznamy na něj odkazující budou mít prázdnou relaci uživatele.
</Warning>
---
## Kontrolní seznam před importem
Vyhněte se chybám tím, že před importem zkontrolujete následující:
### Požadavky na soubor
<Check>Soubor je ve formátu CSV, XLSX nebo XLS</Check>
<Check>Soubor obsahuje méně než 10 000 záznamů</Check>
<Check>Soubor používá kódování UTF-8</Check>
### Kvalita dat
<Check>Žádné duplicitní e-maily (pro osoby)</Check>
<Check>Žádné duplicitní domény (pro společnosti)</Check>
<Check>Všechny datumy používají jednotný formát</Check>
<Check>Všechny domény používají formát `https://domain.com`</Check>
### Formáty polí
<Check>Logická pole používají `TRUE` nebo `FALSE` (velkými písmeny)</Check>
<Check>Pole typu výběr používají názvy API, ne zobrazované štítky</Check>
<Check>Telefonní pole mají všechny požadované sloupce</Check>
<Check>Měnová pole obsahují částku i kód měny</Check>
### Vztahy
<Check>Nadřazené záznamy importovány před podřízenými záznamy</Check>
<Check>Sloupce relací odkazují na existující záznamy</Check>
<Check>Formát domény přesně odpovídá formátu Twenty</Check>
### Datový model
<Check>Všechna vlastní pole existují v Nastavení → Datový model</Check>
<Check>Možnosti výběru existují před importem</Check>
---
## Stále máte potíže?
Pokud jste vyzkoušeli výše uvedená řešení:
1. **Stáhněte si ukázkový soubor** — uvidíte přesný formát, který Twenty očekává
2. **Exportujte existující záznamy** — porovnejte svůj soubor s funkčními daty
3. **Otestujte s malou dávkou** — nejprve zkuste 5–10 řádků
4. **Zkontrolujte referenční články:**
* [Mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
* [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import relací](/l/cs/user-guide/data-migration/capabilities/import-relations)
* [Zpracování chyb](/l/cs/user-guide/data-migration/capabilities/error-handling)

View File

@@ -0,0 +1,201 @@
---
title: Importujte společnosti pomocí CSV
description: Kompletní podrobný návod krok za krokem k importu společností do Twenty.
---
## Přehled
Tento průvodce vás provede importem vašich společností do Twenty. **Společnosti by se měly importovat jako první**, protože Osoby a Příležitosti se propojují se Společnostmi.
## Než začnete
### Kontrolní seznam předpokladů
<Check>
Váš soubor je ve formátu CSV, XLSX nebo XLS
</Check>
<Check>
Soubor obsahuje méně než 10 000 záznamů
</Check>
<Check>
Žádné duplicitní domény ve vašem souboru
</Check>
<Check>
Všechna vlastní pole existují v **Settings → Data Model**
</Check>
<Note>
Potřebujete importovat více než 10 000 společností? Rozdělte do více souborů nebo použijte [import přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Krok 1: Připravte si data společností
### Povinná a doporučená pole
| Pole | Povinné? | Formát | Poznámky |
| ---------------- | ---------- | -------------------- | ------------------------------- |
| **Name** | Doporučeno | Text | Zobrazovaný název společnosti |
| **Doména** | Doporučeno | `https://domain.com` | Jedinečný identifikátor |
| **Adresa** | Volitelné | Více sloupců | Viz níže |
| **Zaměstnanci** | Volitelné | Číslo | Počet zaměstnanců |
| **Vlastní pole** | Volitelné | Různé | Musí existovat v Datovém modelu |
### Formát domény
<Warning>
**Pro domény použijte formát `https://domain.com`.**
To odpovídá formátu používanému při automatickém vytváření Společností ze synchronizace e-mailu/kalendáře, což později zabrání duplicitám.
</Warning>
**Sloupce domény:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Formát adresy
Adresa je vnořené pole s více sloupci:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Ukázková struktura 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>
**Tip pro profíky:** Během importu klikněte na **Download sample file**, abyste viděli přesné názvy sloupců, které Twenty očekává.
</Note>
## Krok 2: Přejděte na funkci importu
**Možnost 1: Z pohledu Companies**
1. Přejděte na **Companies** v levém postranním panelu
2. Klikněte na ikonu **⋮** vpravo nahoře
3. Vyberte **Import records**
**Možnost 2: Pomocí příkazové nabídky**
1. Stiskněte `Cmd + K` (Mac) nebo `Ctrl + K` (Windows)
2. Napište "import"
3. Vyberte **Import records**
4. Zvolte **Companies**
## Krok 3: Nahrajte svůj soubor
1. Klikněte na **Select file**
2. Vyberte svůj soubor CSV, XLSX nebo XLS
3. Počkejte, až Twenty analyzuje váš soubor
## Krok 4: Namapujte své sloupce
Twenty se automaticky pokusí přiřadit vaše sloupce k polím. Zkontrolujte a upravte:
1. **Zkontrolujte automatická mapování** — ověřte, že jsou správná
2. **Opravte nesprávná mapování** — klikněte na rozbalovací nabídku a vyberte správné pole
3. **Přeskočte sloupce** — vyberte **Do not map** u sloupců, které nechcete importovat
### Důležitá pravidla mapování
* **Doména**: Namapujte na **Domain / Domain URL** (ne na Domain Label)
* **Adresa**: Namapujte každou část do jejího konkrétního sloupce (City, State atd.)
* **Pole typu Select**: Hodnoty se musí shodovat s existujícími možnostmi (nebo je namapujete v dalším kroku)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Krok 5: Mapujte hodnoty polí typu Select
Pokud máte pole typu Select nebo Multi-Select:
1. Twenty zobrazí vaše hodnoty vedle stávajících možností
2. Spárujte každou hodnotu ve svém souboru s možností v Twenty
3. Nebo podle potřeby vytvořte nové možnosti
<Note>
Možnosti typu Select používají **názvy API**, nikoli zobrazované štítky. V části **Nastavení → Datový model** → povolte **Pokročilý režim**, abyste viděli názvy API.
</Note>
## Krok 6: Zkontrolujte a opravte chyby
Před dokončením importu Twenty ověří vaše data:
1. Klikněte na **Další kroky**
2. Řádky s chybami jsou zvýrazněny **žlutě**
3. **Opravte chyby přímo** — klikněte na buňku a upravte hodnotu
4. **Odstraňte problematické řádky** — klikněte na X a řádek přeskočte
### Běžné chyby při importu společností
| Chyba | Příčina | Řešení |
| -------------------------- | ---------------------------- | -------------------------------------------------------- |
| **Duplicitní doména** | Doména již existuje v Twenty | Odstraňte ze souboru nebo aktualizujte existující záznam |
| **Neplatný formát domény** | Nesprávný formát | Použijte `https://domain.com` |
| **Chybí povinné pole** | Povinné pole je prázdné | Doplňte hodnotu nebo řádek odstraňte |
## Krok 7: Dokončete import
1. Zkontrolujte souhrn importu
2. Klikněte na **Potvrdit** pro import
3. Počkejte na dokončení importu
4. Ověřte zkontrolováním několika záznamů
## Po importu společností
Nyní můžete importovat záznamy, které se propojují se Společnostmi:
1. **[Import Osob](/l/cs/user-guide/data-migration/how-tos/import-contacts-via-csv)** — propojte je se Společnostmi pomocí domény
2. **Importujte Příležitosti** — propojte je se Společnostmi
3. **Ověřte import** — namátkově zkontrolujte několik záznamů, abyste se ujistili, že data jsou správná
## Aktualizace stávajících společností
Chcete-li aktualizovat společnosti místo vytváření nových:
1. Zahrňte do svého souboru sloupec `domain` nebo `id`
2. Twenty páruje záznamy podle tohoto jedinečného identifikátoru
3. Existující společnosti se aktualizují; nové se vytvoří
Podrobnosti viz [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import).
## Časté dotazy
<AccordionGroup>
<Accordion title="Proč nemohou mít dvě Společnosti stejnou doménu?">
Doména je v Twenty jedinečný identifikátor. Tím se předchází duplicitním společnostem a zajišťuje se, že synchronizace e-mailů správně propojí e-maily se správnou společností.
</Accordion>
<Accordion title="Co když mám společnosti bez domény?">
Doménu můžete nechat prázdnou. Doporučujeme však domény přidat, kdykoli je to možné, pro lepší kvalitu dat a automatické propojování e-mailů.
</Accordion>
<Accordion title="Mohu importovat společnosti bez jakýchkoli propojených Osob?">
Ano! Nejprve můžete importovat společnosti, poté importovat osoby a propojit je pomocí firemní domény.
</Accordion>
<Accordion title="Co se stane, když naimportuji doménu, která už existuje?">
Pokud zahrnete jedinečný identifikátor (doménu nebo id), který odpovídá existující společnosti, Twenty tuto společnost aktualizuje místo vytvoření duplikátu.
</Accordion>
<Accordion title="Jak opravím chyby 'duplicate domain'?">
Buď odstraňte duplikát ze svého souboru, nebo uveďte `id` společnosti, abyste místo toho aktualizovali existující záznam.
</Accordion>
</AccordionGroup>
## Řešení potíží
Máte potíže? Podívejte se na:
* [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Referenční příručka mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
* [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,242 @@
---
title: Importujte kontakty pomocí CSV
description: Kompletní podrobný návod krok za krokem k importu osob/kontaktů do Twenty.
---
## Přehled
Tento průvodce vás provede importem vašich kontaktů (People) do Twenty.
## Než začnete
### Kontrolní seznam předpokladů
<Check>
Váš soubor je ve formátu CSV, XLSX nebo XLS
</Check>
<Check>
Soubor obsahuje méně než 10 000 záznamů
</Check>
<Check>
Žádné duplicitní e-mailové adresy ve vašem souboru
</Check>
<Check>
**Společnosti importovány jako první** (pokud propojujete osoby se Společnostmi)
</Check>
<Check>
Všechna vlastní pole existují v **Settings → Data Model**
</Check>
<Warning>
**Importujte Společnosti před osobami**
Pokud chcete propojovat osoby se Společnostmi, nejprve importujte Společnosti. Společnost musí existovat dříve, než na ni můžete odkazovat.
</Warning>
## Krok 1: Připravte si data kontaktů
### Povinná a doporučená pole
| Pole | Povinné? | Formát | Poznámky |
| ------------------- | ---------- | ----------------- | --------------------------------- |
| **Email** | Doporučeno | `name@domain.com` | Musí být jedinečné |
| **Jméno** | Doporučeno | Text | |
| **Příjmení** | Doporučeno | Text | |
| **Společnost** | Volitelné | Doména nebo ID | Odkazuje na existující Společnost |
| **Telefon** | Volitelné | Více sloupců | Viz níže |
| **Pracovní pozice** | Volitelné | Text | |
| **Vlastní pole** | Volitelné | Různé | Musí existovat v Data Model |
### Formát e-mailu
* Musí mít platný formát e-mailu: `name@domain.com`
* **Musí být jedinečná** — žádné duplicity ve vašem souboru ani v Twenty
* Pro další e-mailové adresy použijte sloupec **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Formát telefonu
Telefon je **vnořené pole**, které vyžaduje více sloupců:
| Sloupec | Příklad |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Propojení se Společnostmi
Přidejte sloupec s jedinečným identifikátorem Společnosti:
| Název sloupce | Formát | Příklad |
| --------------- | ---------- | -------------------------------------- |
| `companyDomain` | Formát URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Použijte formát URL domény** (`https://acme.com`), ne název. To odpovídá způsobu, jakým jsou Společnosti uloženy v Twenty.
</Note>
### Ukázková struktura 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>
**Tip pro profíky:** Během importu klikněte na **Download sample file** nebo vyexportujte několik existujících osob, abyste viděli přesné názvy sloupců, které Twenty očekává.
</Note>
## Krok 2: Přejděte na funkci importu
**Možnost 1: Z pohledu People**
1. Přejděte na **People** v levém postranním panelu
2. Klikněte na ikonu **⋮** vpravo nahoře
3. Vyberte **Import records**
**Možnost 2: Pomocí příkazové nabídky**
1. Stiskněte `Cmd + K` (Mac) nebo `Ctrl + K` (Windows)
2. Napište "import"
3. Vyberte **Import records**
4. Zvolte **People**
## Krok 3: Nahrajte svůj soubor
1. Klikněte na **Select file**
2. Vyberte svůj soubor CSV, XLSX nebo XLS
3. Počkejte, až Twenty analyzuje váš soubor
## Krok 4: Namapujte své sloupce
Twenty se automaticky pokusí přiřadit vaše sloupce k polím. Zkontrolujte a upravte:
1. **Zkontrolujte automatická mapování** — ověřte, že jsou správná
2. **Opravte nesprávná mapování** — klikněte na rozbalovací nabídku a vyberte správné pole
3. **Přeskočte sloupce** — vyberte **Do not map** u sloupců, které nechcete importovat
### Důležitá pravidla mapování
| Typ sloupce | Mapovat na | Poznámky |
| ----------------------- | ------------------------------ | ------------------------------------ |
| Reference na Společnost | Relační pole **Společnost** | Použijte doménu NEBO ID, ne obojí |
| Email | **Email** | Primární e-mailová adresa |
| Další e-mailové adresy | **Emails / Additional Emails** | Formát pole |
| Telefon | Samostatné sloupce | Číslo, kód země, telefonní předvolba |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapování relace Společnost
Při mapování sloupce společnosti:
1. Najděte svůj referenční sloupec společnosti (např. `companyDomain`)
2. Namapujte jej na relační pole **Společnost**
3. Twenty propojí každou osobu s odpovídající Společností
<Warning>
**Pro relace mapujte pouze JEDEN jedinečný identifikátor.**
Nemapujte současně `companyId` a `companyDomain`. Vyberte jednu možnost — ideálně doménu, protože je lidsky čitelná.
</Warning>
## Krok 5: Mapujte hodnoty polí typu Select
Pokud máte pole typu Select nebo Multi-Select (např. Zdroj leadu):
1. Twenty zobrazí vaše hodnoty vedle stávajících možností
2. Spárujte každou hodnotu ve svém souboru s možností v Twenty
3. Nebo podle potřeby vytvořte nové možnosti
<Note>
Možnosti typu Select používají **názvy API**, nikoli zobrazované štítky. V části **Nastavení → Datový model** → povolte **Pokročilý režim**, abyste viděli názvy API.
</Note>
## Krok 6: Zkontrolujte a opravte chyby
Před dokončením importu Twenty ověří vaše data:
1. Klikněte na **Další kroky**
2. Řádky s chybami jsou zvýrazněny **žlutě**
3. **Opravte chyby přímo** — klikněte na buňku a upravte hodnotu
4. **Odstraňte problematické řádky** — klikněte na X a řádek přeskočte
### Běžné chyby při importu kontaktů
| Chyba | Příčina | Řešení |
| --------------------------- | ------------------------------------------- | ------------------------------------------------------ |
| **Duplicitní e-mail** | E-mail již existuje v Twenty nebo v souboru | Odstraňte duplikát nebo aktualizujte existující záznam |
| **Neplatný formát e-mailu** | Nesprávný formát e-mailu | Upravte na `name@domain.com` |
| **Vztah nebyl nalezen** | Společnost neexistuje | Nejprve importujte společnosti nebo opravte odkaz |
| **Chybí povinné pole** | Povinné pole je prázdné | Doplňte hodnotu nebo řádek odstraňte |
## Krok 7: Dokončete import
1. Zkontrolujte souhrn importu
2. Klikněte na **Potvrdit** pro import
3. Počkejte na dokončení importu
4. Ověřte to kontrolou několika záznamů a jejich vazeb na společnost
## Po importu kontaktů
Vaše kontakty jsou nyní v Twenty! Další kroky:
1. **Ověřte vazby na Společnosti** — otevřete několik záznamů Osob a potvrďte, že jsou propojené se správnou Společností
2. **Importujte Příležitosti** — v případě potřeby je propojte s Osobami a Společnostmi
3. **Nastavte synchronizaci e-mailů** — připojte svou poštovní schránku, abyste viděli historii e-mailů u záznamů kontaktů
## Aktualizace stávajících kontaktů
Chcete-li aktualizovat kontakty místo vytváření nových:
1. Zahrňte do svého souboru sloupec `email` nebo `id`
2. Twenty páruje záznamy podle tohoto jedinečného identifikátoru
3. Existující kontakty se aktualizují; nové se vytvoří
Podrobnosti viz [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import).
## Časté dotazy
<AccordionGroup>
<Accordion title="Proč nemohou mít dvě Osoby stejný e-mail?">
E-mail je v Twenty jedinečný identifikátor. Tím se předchází duplicitním kontaktům a zajišťuje se, že synchronizace e-mailů správně propojí e-maily se správnou osobou.
</Accordion>
<Accordion title="Co když mám osoby bez e-mailu?">
E-mail můžete nechat prázdný. Doporučujeme však e-maily přidat, kdykoli je to možné, pro lepší kvalitu dat a funkčnost synchronizace e-mailů.
</Accordion>
<Accordion title="Jak během importu propojit Osoby se Společnostmi?">
Přidejte sloupec s doménou Společnosti (např. `https://acme.com`) nebo s ID. Při mapování propojte tento sloupec s relačním polem Společnost.
</Accordion>
<Accordion title="Co když Společnost ještě neexistuje?">
Importujte Společnosti před osobami. Společnost musí existovat dříve, než na ni můžete odkazovat.
</Accordion>
<Accordion title="Mohu importovat ID ze svého předchozího CRM?">
Ano! V datovém modelu vytvořte vlastní pole označené jako "unique" pro uložení externího ID. Poznámka: název pole `id` je vyhrazen pro interní ID Twenty.
</Accordion>
<Accordion title="Jak opravím chyby 'relation not found'?">
Společnost, na kterou odkazujete, neexistuje. Buď nejprve importujte Společnost, nebo ověřte, že doména/ID přesně odpovídá existující Společnosti.
</Accordion>
</AccordionGroup>
## Řešení potíží
Máte potíže? Podívejte se na:
* [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Jak importovat relace](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Referenční příručka mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,176 @@
---
title: Import dat přes API
description: Kdy a jak používat API Twenty pro hromadné importy dat.
---
## Přehled
Twenty poskytuje pro programový import dat jak **GraphQL**, tak **REST API**. API použijte, když import CSV není vzhledem k objemu vašich dat praktický, nebo když potřebujete automatizované, opakované importy.
## Kdy použít import přes API
| Scénář | Doporučená metoda |
| -------------------------------- | --------------------------------- |
| Méně než 10 000 záznamů | Import CSV |
| 10 000–50 000 záznamů | Import CSV (rozdělený do souborů) |
| **50 000+ záznamů** | **Import přes API** |
| Jednorázová migrace | Obojí (dle objemu) |
| **Pravidelné importy** | **Import přes API** |
| **Synchronizace v reálném čase** | **Import přes API** |
| **Integrace s jinými systémy** | **Import přes API** |
<Note>Pro datové sady o stovkách tisíc záznamů je API výrazně rychlejší a spolehlivější než více importů CSV.</Note>
## Limity rychlosti API
Twenty uplatňuje limity rychlosti, aby zajistilo stabilitu systému:
| Limit | Hodnota |
| ----------------------------------- | ------------------------ |
| **Požadavků za minutu** | 100 |
| **Záznamů na jedno dávkové volání** | 60 |
| **Maximální propustnost** | ~6 000 záznamů za minutu |
<Warning>
**Naplánujte import s ohledem na tyto limity.**
Pro 100 000 záznamů při maximální propustnosti počítejte s přibližně 17 minutami importu. Přidejte rezervu na zpracování chyb a opakování.
</Warning>
## Začínáme
### Krok 1: Získejte svůj klíč API
1. Přejděte do **Nastavení → Vývojáři**
2. Klikněte na **+ Vytvořit klíč API**
3. Dejte svému klíči API výstižný název
4. Klíč API si ihned zkopírujte (znovu se již nezobrazí)
5. Uložte ho bezpečně
<Warning>
**Chraňte svůj klíč API v tajnosti.**
Kdokoli s vaším klíčem API může přistupovat k datům vašeho pracovního prostoru a upravovat je. Nikdy ho neukládejte do repozitářů kódu ani jej veřejně nesdílejte.
</Warning>
### Krok 2: Vyberte si API
Twenty podporuje dva typy API:
| API | Vhodné pro | Dokumentace |
| ----------- | ----------------------------------------------------------------- | ----------------------------------------- |
| **GraphQL** | Flexibilní dotazy, získávání souvisejících dat, komplexní operace | [Dokumentace API](/l/cs/developers/extend/api) |
| **REST** | Jednoduché CRUD operace, známé postupy REST | [Dokumentace API](/l/cs/developers/extend/api) |
Obě API podporují:
* Vytváření, čtení, aktualizace a mazání záznamů
* **Dávkové operace** — vytvoření nebo aktualizace až 60 záznamů na jedno volání
**Pro importy používejte dávkové operace**, abyste maximalizovali propustnost v rámci limitů rychlosti.
### Krok 3: Naplánujte pořadí importu
Stejně jako u importů CSV na **pořadí záleží** kvůli vazbám:
1. **Společnosti** jako první (bez závislostí)
2. **Lidé** jako druzí (mohou se propojit se společnostmi)
3. **Příležitosti** jako třetí (mohou se propojit se společnostmi a lidmi)
4. **Úkoly/Poznámky** (mohou se propojit s kteroukoli z výše uvedených entit)
5. **Vlastní objekty** (podle jejich závislostí)
## Osvědčené postupy
### Dávkujte své požadavky
* Neposílejte záznamy po jednom
* Seskupte až **60 záznamů na jedno volání API**
* Tím maximalizujete propustnost v rámci limitů rychlosti
### Práce s limity rychlosti
* Zaveďte prodlevy mezi požadavky (minimálně 600 ms pro dlouhodobé importy)
* Při dosažení limitů použijte exponenciální backoff
* Sledujte odpovědi 429 (Too Many Requests)
### Nejprve ověřte data
* Před importem data vyčistěte a ověřte
* Zkontrolujte, že jsou vyplněna povinná pole
* Ověřte, že formáty odpovídají požadavkům Twenty (viz [Mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping))
### Zaznamenávejte vše
* Zaznamenávejte každý importovaný záznam (včetně ID)
* Zaznamenávejte chyby s plným kontextem
* To pomáhá při ladění problémů a ověření dokončení
### Nejprve testujte
* Testujte s malou dávkou (10–20 záznamů)
* Ověřte, že se data v Twenty zobrazují správně
* Poté spusťte celý import
### Upsert pro zamezení duplicit
GraphQL API podporuje **dávkový upsert** — pokud záznam existuje, aktualizuje; pokud ne, vytvoří. To zabrání duplicitám při opakovaném spouštění importů.
## Hledání názvů objektů a polí
Chcete-li zobrazit dostupné objekty a pole:
1. Přejděte do **Nastavení → API a webhooky**
2. Procházejte **Metadata API**
3. Zobrazte všechny standardní i vlastní objekty s jejich poli
Dokumentace uvádí všechny standardní i vlastní objekty, jejich pole a očekávané datové typy.
## Profesionální služby
S náročnými migracemi přes API mohou pomoci naši partneři:
| Služba | Co je součástí |
| ------------------------- | ------------------------------------- |
| **Návrh datového modelu** | navrhnout optimální datovou strukturu |
| **Migrační skripty** | napsat a spustit importní skripty |
| **Transformace dat** | zpracovat složité mapování a čištění |
| **Validace a QA** | ověřit, že je migrace dokončená |
**Vhodné pro:**
* Migrace 100 000+ záznamů
* Složité transformace dat
* Napjaté časové plány
* Týmy bez vývojářských kapacit
Kontaktujte nás na [contact@twenty.com](mailto:contact@twenty.com) nebo prozkoumejte naše [Implementační služby](/l/cs/user-guide/getting-started/capabilities/implementation-services).
## Časté dotazy
<AccordionGroup>
<Accordion title="Jaký je rozdíl mezi GraphQL a REST?">
GraphQL vám umožní vyžádat si v jediném dotazu přesně ta data, která potřebujete, a je vhodnější pro složité operace. REST používá standardní metody HTTP (GET, POST, PUT, DELETE) a může vám být bližší, pokud jste pracovali s tradičními API.
</Accordion>
<Accordion title="Mohu aktualizovat existující záznamy přes API?">
Ano! Použijte aktualizační mutace (GraphQL) nebo požadavky PUT/PATCH (REST) s `id` záznamu.
</Accordion>
<Accordion title="Jak mám řešit duplicity?">
Nejprve vyhledejte existující záznamy pomocí jedinečných identifikátorů (e-mail, doména). Pokud existuje, aktualizujte; pokud ne, vytvořte.
</Accordion>
<Accordion title="Mohu mazat záznamy přes API?">
Ano, použijte mutace pro smazání (GraphQL) nebo požadavky DELETE (REST).
</Accordion>
<Accordion title="Existuje SDK pro Python nebo Node.js?">
V současnosti ne, ale obě API fungují s jakýmkoli klientem HTTP v libovolném jazyce.
</Accordion>
</AccordionGroup>
## Dokumentace API
Úplné podrobnosti implementace, ukázky kódu a referenci schématu najdete zde:
* [Dokumentace API](/l/cs/developers/extend/api)

View File

@@ -0,0 +1,225 @@
---
title: Import relací mezi objekty pomocí CSV
description: Kompletní podrobný průvodce propojením záznamů během importu CSV.
---
## Přehled
Tento průvodce vás provede importem relací mezi objekty — například propojením lidí se společnostmi nebo příležitostí s lidmi.
<Note>**Co lze importovat:** Pouze relace „jeden ku mnoha“ směřující k jednomu typu objektu. Relace směřující k více typům objektů (např. poznámky propojené s lidmi a společnostmi) zatím nejsou pro import podporovány.</Note>
## Porozumění relacím
### Co je to relace „jeden ku mnoha“?
V relaci jeden ku mnoha:
* **Jedna** společnost má **mnoho** lidí (zaměstnanců)
* **Jedna** společnost má **mnoho** příležitostí
* **Jedna** osoba má **mnoho** úkolů
Strana „jedna“ je **nadřazená**. Strana „mnoho“ je **podřízená**.
### Běžné relace v Twenty
| Vztah | Strana „jedna“ (nadřazený) | Strana „mnoho“ (podřízený) |
| -------------------------- | -------------------------- | -------------------------- |
| Společnosti → Lidé | Společnost | Osoby |
| Společnosti → Příležitosti | Společnost | Příležitosti |
| Lidé → Úkoly | Osoba | Úkoly |
| Lidé → Poznámky | Osoba | Poznámky |
## Krok 1: Určete strany „jedna“ a „mnoho“
Před importem určete, který objekt je nadřazený a který podřízený.
**Zeptejte se sami sebe:** "Má JEDEN [Objekt A] MNOHO [Objekt B]?"
* Jedna společnost → Mnoho lidí ✓ (společnost je nadřazená)
* Jedna osoba → Mnoho společností ✗ (To je špatně — osoba patří k jedné společnosti)
## Krok 2: Nejprve importujte nadřazené záznamy
Nadřazený („jedna“ strana) musí v Twenty existovat, než na něj budete moci odkazovat.
**Pořadí importu:**
1. **Společnosti** jako první (bez závislostí)
2. **Lidé** jako druzí (propojení se společnostmi)
3. **Příležitosti** jako třetí (propojené se společnostmi a/nebo lidmi)
4. **Úkoly/Poznámky** (propojené s jakýmkoli z výše uvedených)
<Warning>
**Pokud nadřazený záznam neexistuje, import selže.**
Vždy ověřte, že společnosti jsou importovány dříve, než budete importovat lidi s odkazy na společnost.
</Warning>
## Krok 3: Poznamenejte si jedinečný identifikátor nadřazeného objektu
Na nadřazený záznam musíte odkazovat pomocí **jedinečného identifikátoru**. Dostupné možnosti:
| Nadřazený objekt | Dostupné jedinečné identifikátory |
| ------------------------------- | ----------------------------------------------------------------------- |
| **Společnosti** | `id` (UUID), `domain` (doporučeno) nebo jakékoli vlastní jedinečné pole |
| **Lidé** | `id` (UUID), `email` nebo jakékoli vlastní jedinečné pole |
| **Členové pracovního prostoru** | `id` (UUID), `email` (ne jméno) |
| **Vlastní objekty** | `id` (UUID) nebo jakékoli pole označené jako jedinečné |
<Note>**Doporučeno:** Pro společnosti použijte `domain` a pro lidi `email`. Jsou čitelné pro člověka a snadno ověřitelné ve vaší tabulce.</Note>
### Jak zjistit identifikátor
Pokud potřebujete `id`:
1. Exportujte nadřazené záznamy z Twenty
2. Export obsahuje sloupec `id`
3. Použijte tato ID v souboru s podřízenými záznamy
## Krok 4: Ověřte, že existuje relační pole
Před importem se ujistěte, že mezi vašimi objekty existuje relační pole.
**Jak ověřit nebo vytvořit:**
1. Přejděte na **Nastavení → Datový model**
2. Vyberte svůj podřízený objekt (např. Lidé)
3. Vyhledejte relační pole směřující na nadřazený objekt (např. Společnost)
4. Pokud neexistuje, vytvořte jej:
* Klikněte na **+ Add field**
* Vyberte typ **Relation**
* Vyberte nadřazený objekt
## Krok 5: Připravte svůj soubor CSV
Do podřízeného CSV přidejte sloupec, který odkazuje na nadřazený objekt pomocí jeho jedinečného identifikátoru.
### Příklad: Propojení lidí se společnostmi
**Vaše CSV s lidmi:**
```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
```
Sloupec `companyDomain` odkazuje na doménu společnosti.
### Požadavky na formát
| Identifikátor | Formát | Příklad |
| ------------- | ----------------- | -------------------------------------- |
| Doména | Formát URL | `https://acme.com` |
| Email | Standardní e-mail | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**Na formátu domény záleží!**
Použijte `https://domain.com` (ne pouze `domain.com`). To odpovídá způsobu, jak Twenty ukládá domény společností, a předchází chybám při párování.
</Warning>
### Důležitá pravidla
1. **Je vyžadována přesná shoda** — hodnota se musí přesně shodovat s nadřazeným záznamem
2. **Mapujte pouze JEDEN jedinečný identifikátor** — nezahrnujte současně `companyId` A `companyDomain`
3. **Rozlišuje se velikost písmen** — `Acme.com` ≠ `acme.com`
## Krok 6: Nahrajte a namapujte relaci
1. Přejděte k podřízenému objektu (např. Lidé)
2. Klikněte na **⋮** → **Import records**
3. Nahrajte svůj soubor CSV
4. V kroku mapování polí:
* Najděte svůj relační sloupec (např. `companyDomain`)
* Namapujte jej na relační pole **Společnost**
5. Dokončete zbývající mapování
6. Zkontrolujte chyby a potvrďte
Twenty automaticky propojí každý podřízený záznam s odpovídajícím nadřazeným.
## Krok 7: Ověřte import
Po importu:
1. Otevřete několik podřízených záznamů (např. Lidé)
2. Ověřte, že relační pole zobrazuje správný nadřazený objekt (např. Společnost)
3. Otevřete nadřazený záznam a zkontrolujte sekci souvisejících záznamů
## Časté chyby, kterým se vyhnout
| Chyba | Problém | Řešení |
| ---------------------------- | ----------------------------------------------- | --------------------------------------------------------------- |
| **Chybné pořadí importu** | Importujete lidi před společnostmi | Vždy nejprve importujte nadřazené, poté podřízené |
| **Chybný formát domény** | Použití `acme.com` místo `https://acme.com` | Použijte plný formát URL s `https://` |
| **Více jedinečných polí** | Mapujete současně `companyId` A `companyDomain` | Mapujte pouze JEDEN jedinečný identifikátor |
| **Chybí relační pole** | Relační pole v datovém modelu neexistuje | Vytvořte jej v **Nastavení → Datový model** před importem |
| **Neexistující záznamy** | Nadřazený záznam v Twenty neexistuje | Nejprve importujte nadřazené záznamy nebo zkontrolujte překlepy |
| **Rozdílná velikost písmen** | `Acme.com` v souboru, ale v Twenty `acme.com` | Zajistěte přesnou shodu velikosti písmen |
## Propojování s členy pracovního prostoru
Při propojování s členy pracovního prostoru (vaším týmem):
* Použijte jejich **e-mailovou adresu**, ne jméno
* Příklad: `owner@yourcompany.com`, ne "John Smith"
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## Časté dotazy
<AccordionGroup>
<Accordion title="Co když můj nadřazený záznam nemá doménu ani e-mail?">
Máte dvě možnosti:
1. Použijte Twenty `id` (exportujte nadřazené záznamy, abyste získali jejich ID)
2. Vytvořte ve svém datovém modelu vlastní jedinečné pole pro uložení externího ID z vašeho předchozího systému
</Accordion>
<Accordion title="Mohu aktualizovat relace u existujících záznamů?">
Ano! Zahrňte jedinečný identifikátor podřízeného záznamu (např. `email` u lidí) a novou hodnotu relace. Import relaci aktualizuje.
</Accordion>
<Accordion title="Mohu importovat vztahy mnoho k mnoha?">
Vztahy mnoho k mnoha zatím nejsou pro import podporovány. To je plánováno na 1. pololetí 2026.
</Accordion>
<Accordion title="Mohu propojovat s více typy objektů (například poznámky s lidmi A společnostmi)?">
Relace směřující k více typům objektů zatím nejsou pro import/export podporovány. Je to v našem plánu.
</Accordion>
<Accordion title="Co se stane, když nadřazený záznam neexistuje?">
Import u daného řádku zobrazí chybu. Můžete buď:
* Nejprve importujte nadřazený záznam, poté znovu importujte
* Opravte referenční hodnotu
* Odstraňte řádek z importu
</Accordion>
<Accordion title="Proč se moje relace nepropojuje správně?">
Časté příčiny:
* Nesprávný formát (pro domény použijte `https://domain.com`)
* Nesoulad ve velikosti písmen (zkontrolujte přesný zápis)
* Nadřazený neexistuje (nejprve importujte nadřazené)
* Mapujete více identifikátorů (použijte pouze jeden)
</Accordion>
</AccordionGroup>
<Warning>
**Pamatujte: Záznamy „soft-deleted“ se započítávají do jedinečnosti.**
Pokud dostáváte chyby "not found", ale záznam se zdá existovat, zkontrolujte Command Menu → See deleted records. Nadřazený mohl být „soft-deleted“.
</Warning>
## Řešení potíží
Máte potíže? Podívejte se na:
* [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Možnosti importu relací](/l/cs/user-guide/data-migration/capabilities/import-relations)
* [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,289 @@
---
title: Migrace z jiných CRM
description: Podrobný průvodce krok za krokem pro migraci vašich dat z libovolného CRM do Twenty.
---
## Přehled
Tento průvodce vás provede migrací vašich dat z libovolného CRM do Twenty. Proces zahrnuje audit vašich dat, přípravu vašeho pracovního prostoru Twenty, export z vašeho současného systému a import do Twenty.
<Note>Zobrazení, pracovní postupy a oprávnění je po migraci nutné vytvořit ručně. Naplánujte si čas na tuto konfigurační práci.</Note>
## Krok 1: Proveďte audit svých aktuálních dat
Migrace je příležitostí k novému začátku. Nepřenášejte balast.
**Co ponechat:**
* Aktivní kontakty a společnosti
* Otevřené obchodní příležitosti a obchody
* Důležité poznámky a aktivity
* Vlastní pole, která skutečně používáte
**Co nechat za sebou:**
* Zastaralé kontakty (bez aktivity 2 a více let)
* Duplicitní záznamy
* Testovací data
* Nepoužívaná vlastní pole
## Krok 2: Zmapujte svůj datový model
Vytvořte mapovací dokument mezi vaším současným CRM a Twenty:
| Vaše CRM | Twenty |
| -------------------- | -------------------------- |
| Účet / organizace | **Společnost** |
| Kontakt / osoba | **Lidé** |
| Obchod / příležitost | **Příležitost** |
| Aktivita | **Úkol** nebo **Poznámka** |
| Vlastní objekt | **Vlastní objekt** |
**Pro každé pole zdokumentujte:**
* Název zdrojového pole
* Cílové pole v Twenty
* Jakékoli potřebné úpravy formátu (datumy, telefonní čísla apod.)
<Note>Mějte tento mapovací dokument po ruce během importu — budete na něj odkazovat při mapování sloupců.</Note>
## Krok 3: Nastavte svůj pracovní prostor Twenty
Před importem dat připravte svůj pracovní prostor Twenty:
### Vytvořte vlastní objekty a pole
1. Přejděte do **Nastavení → Datový model**
2. Vytvořte všechny vlastní objekty, které potřebujete
3. Přidejte vlastní pole ke standardním i vlastním objektům
4. Nastavte vlastnosti polí (jedinečné, povinné, možnosti výběru apod.)
<Warning>
**Všechna pole musí existovat před importem.**
Import CSV vytváří záznamy, nikoli pole. Vytvořte všechna vlastní pole v Nastavení → Datový model před importem.
</Warning>
### Pozvěte svůj tým
<Warning>
**Pozvěte uživatele PŘED importem dat.**
Pokud vaše data obsahují odkazy na uživatele (vlastník účtu, přiřazený uživatel apod.), tito uživatelé musí v Twenty existovat před importem. Jinak tyto relace nelze namapovat.
</Warning>
1. Přejděte na **Nastavení → Členové**
2. Pozvěte všechny členy týmu
3. **Počkejte, až všichni přijmou** své pozvání
4. Ověřte, že se všichni uživatelé zobrazují v seznamu Members
## Krok 4: Export z vašeho stávajícího CRM
Exportujte svá data ze svého stávajícího CRM:
1. Najděte funkci **Export** (obvykle v Nastavení, Správě dat nebo Administraci)
2. Pokud možno exportujte do **formátu CSV**
3. Exportujte každý typ objektu zvlášť (Společnosti, Kontakty, Obchody apod.)
4. Zahrňte všechna pole, která chcete migrovat
**Exportujte tyto objekty (v tomto pořadí pro referenci):**
1. Společnosti / Účty / Organizace
2. Kontakty / Lidé
3. Obchody / Příležitosti
4. Poznámky a aktivity
5. Vlastní objekty
## Krok 5: Vyčistěte a naformátujte svá data
Otevřete každý exportovaný soubor CSV v tabulkovém editoru a připravte jej pro Twenty.
### Odstraňte duplicity
1. Seřaďte podle jedinečného pole (e-mail u lidí, doména u společností)
2. Odstraňte nebo sloučte duplicitní řádky
3. Ověřte, že v Twenty již neexistují žádné duplicity
### Správně naformátujte pole
| Typ pole | Požadovaný formát |
| ---------------------- | ------------------------------------------------- |
| **Doména** | `https://domain.com` |
| **Email** | `name@domain.com` (musí být jedinečná) |
| **Datum** | `YYYY-MM-DD` |
| **Telefon** | Tři sloupce: číslo, kód země, telefonní předvolba |
| **Booleovská hodnota** | `TRUE` nebo `FALSE` (velkými písmeny) |
| **Výběrová pole** | Používejte názvy API, nikoli zobrazované štítky |
<Warning>
**Formát domény je zásadní.**
Použijte `https://domain.com` (ne `domain.com` ani `www.domain.com`). To odpovídá formátu Twenty a předchází duplicitám, když připojíte synchronizaci e-mailu/kalendáře.
</Warning>
Úplné požadavky na formátování pro všechny typy polí viz [Jak připravit soubory CSV](/l/cs/user-guide/data-migration/how-tos/prepare-your-csv-files).
### Přidejte relační sloupce
Pro propojení záznamů (např. lidé se společnostmi) přidejte sloupec s jedinečným identifikátorem nadřazeného záznamu.
**Příklad: CSV s lidmi a odkazem na společnost**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
Podrobné pokyny k propojení záznamů viz [Jak importovat relace](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv).
### Aktualizujte odkazy na uživatele
Pokud vaše data obsahují přiřazení uživatele (vlastník, přiřazený uživatel):
1. Přidejte sloupec s **e-mailem uživatele** (nejen jeho ID ze starého systému)
2. Použijte stejné e-mailové adresy, které uživatelé použili při připojení do vašeho pracovního prostoru Twenty
Kompletní průvodce formátováním viz [Jak připravit soubory CSV](/l/cs/user-guide/data-migration/how-tos/prepare-your-csv-files).
## Krok 6: Import do Twenty
<Warning>
**Na pořadí importu záleží!**
Vždy importujte v tomto pořadí:
1. **Společnosti** jako první (bez závislostí)
2. **Lidé** jako druzí (propojení se společnostmi)
3. **Příležitosti** jako třetí (propojení se společnostmi/lidmi)
4. **Poznámky a úkoly** (propojení na záznamy)
5. **Vlastní objekty** podle jejich závislostí
Nadřazený záznam musí existovat dříve, než na něj můžete odkazovat.
</Warning>
### Importujte každý objekt
Pro každý soubor CSV, v daném pořadí:
1. Přejděte k objektu v Twenty
2. Klikněte na **⋮ → Import records**
3. Nahrajte soubor CSV
4. Namapujte sloupce na pole:
* Namapujte sloupce s e-maily uživatelů na příslušná relační pole
* Namapujte sloupce relací (např. `companyDomain`) na relační pole
5. Zkontrolujte a opravte případné chyby v uživatelském rozhraní
6. Potvrďte import
7. Ověřte několik záznamů, než přejdete k dalšímu souboru
**Podrobné návody:**
* [Jak importovat společnosti](/l/cs/user-guide/data-migration/how-tos/import-companies-via-csv)
* [Jak importovat kontakty](/l/cs/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Jak importovat relace](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Krok 7: Rozsáhlé migrace (50 000+ záznamů)
Pro rozsáhlé migrace:
| Objem | Doporučený postup |
| ----------------------- | ---------------------------- |
| Méně než 10 000 záznamů | Jeden import CSV |
| 10 000–50 000 záznamů | Rozdělte do více souborů CSV |
| 50 000+ záznamů | Použijte API |
**Pro importy přes API:**
* Rychlejší a spolehlivější pro velké datové sady
* Podporuje dávkové operace (až 60 záznamů na jedno volání)
* Viz [Jak importovat data přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api)
## Krok 8: Nastavení po migraci
Po importu dat dokončete konfiguraci pracovního prostoru:
### Znovu vytvořte zobrazení
* Nastavte uložená zobrazení s filtry, řazením a nastavením sloupců
* Vytvořte případná kanbanová nebo kalendářová zobrazení
### Znovuvytvoření pracovních postupů
* Znovu vytvořte automatizace v **Settings → Workflows**
* Začněte s nejdůležitějšími pracovními postupy
* Každý z nich otestujte, než se na něj spolehnete
### Nakonfigurujte role a oprávnění
* Nakonfigurujte role v **Settings → Members → Roles**
* Přiřaďte uživatele ke vhodným rolím
### Propojte e-mail a kalendář
* Každý uživatel si připojí svůj účet v **Nastavení → Účty**
* Twenty začne synchronizovat e-maily k záznamům kontaktů
* Viz [E-mail a kalendář](/l/cs/user-guide/calendar-emails/overview)
### Vyškolte svůj tým
* Společně si projděte nové rozhraní
* Zdokumentujte procesy specifické pro tým
## Běžné problémy a řešení
| Problém | Příčina | Řešení |
| ---------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------- |
| **Chyby duplicit** | E-mail/doména již existuje | Odstraňte duplicity ze souboru, nebo uveďte jedinečný identifikátor pro aktualizaci existujících záznamů |
| **Vztah nebyl nalezen** | Nadřazený záznam neexistuje | Nejprve importujte nadřazené objekty (společnosti před lidmi) |
| **Chybějící pole** | Vlastní pole neexistuje | Vytvořte pole v Nastavení → Datový model před importem |
| **Chyby u výběrových polí** | Používání zobrazovaných štítků | Používejte názvy API (pro jejich zobrazení povolte v Nastavení režim pro pokročilé) |
| **Prázdná relace uživatele** | Uživatel nepřijal pozvánku | Ujistěte se, že všichni uživatelé přijali pozvánky před importem |
Podrobné kroky pro řešení problémů viz [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors).
## Post-migrační kontrolní seznam
### Integrita dat
<Check>Všechny záznamy byly importovány (porovnejte počty se zdrojovým systémem)</Check>
<Check>Relace fungují správně (lidé jsou propojeni se společnostmi)</Check>
<Check>Přiřazení uživatelů je správně namapováno (vlastník, přiřazený uživatel)</Check>
<Check>Vlastní pole vyplněna</Check>
<Check>Žádné neočekávané duplicity</Check>
### Konfigurace
<Check>Zobrazení znovu vytvořena</Check>
<Check>Pracovní postupy znovu vytvořeny a otestovány</Check>
<Check>Role a oprávnění nakonfigurovány</Check>
<Check>Synchronizace e-mailu/kalendáře připojena</Check>
### Připravenost týmu
<Check>Tým proškolen v novém systému</Check>
<Check>Plán přístupu ke starému CRM rozhodnut (ponechat pro referenci? Kdy vypnout?)</Check>
## Časté dotazy
<AccordionGroup>
<Accordion title="Mohu migrovat pracovní postupy automaticky?">
V tuto chvíli ne. Pracovní postupy je nutné v Twenty znovu vytvořit ručně.
</Accordion>
<Accordion title="A co souborové přílohy?">
Souborové přílohy nejsou součástí exportů CSV. Budete je muset znovu nahrát ručně, migrovat je přes API, nebo požádat náš tým o pomoc.
</Accordion>
<Accordion title="Mohu během migrace ponechat oba systémy v provozu?">
Ano, doporučujeme ponechat vaše staré CRM v provozu, dokud neověříte, že je migrace dokončena. Jen si dejte pozor, abyste nevytvářeli nová data na obou místech.
</Accordion>
<Accordion title="Jak dlouho obvykle migrace trvá?">
Záleží na objemu a složitosti dat. Menší migrace (do 10 000 záznamů) lze zvládnout během několika hodin. Rozsáhlé migrace mohou trvat několik dní, včetně čištění dat a testování.
</Accordion>
</AccordionGroup>
## Potřebujete pomoc?
<Tip>
Chcete pomoc s migrací? [Najít certifikovaného dvaceti partnerů](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm) pro přesun vašich dat, plynovodů a uživatelů od konce ke konci.
</Tip>

View File

@@ -0,0 +1,173 @@
---
title: Migrace z vlastních serverů do cloudu
description: Podrobný průvodce krok za krokem pro migraci vaší instance Twenty hostované na vlastním serveru do Twenty Cloud.
---
## Přehled
Tento průvodce vás provede migrací vašich dat z instance Twenty hostované na vlastním serveru do Twenty Cloud. Proces zahrnuje zřízení vašeho cloudového pracovního prostoru, export dat a jejich opětovný import.
<Note>Zobrazení, pracovní postupy a role je po migraci nutné vytvořit ručně. Naplánujte si čas na tuto konfigurační práci.</Note>
## Krok 1: Vytvořte svůj cloudový pracovní prostor
1. Přejděte na [app.twenty.com](https://app.twenty.com) a vytvořte nový pracovní prostor
2. Dokončete úvodní nastavení pomocí průvodce
3. Poznamenejte si URL vašeho nového pracovního prostoru
## Krok 2: Znovu vytvořte svůj datový model
Před importem dat znovu vytvořte své vlastní objekty a pole:
1. Přejděte ve své cloudové instanci do **Settings → Data Model**
2. Vytvořte vlastní objekty, které odpovídají vašemu nastavení na vlastním serveru
3. Přidejte vlastní pole ke standardním i vlastním objektům
4. Nastavte vlastnosti polí (jedinečné, povinné apod.)
<Note>Pořiďte si pro referenci snímky obrazovky vašeho datového modelu na vlastním serveru, nebo mějte obě instance otevřené vedle sebe.</Note>
## Krok 3: Pozvěte všechny uživatele
<Warning>
**Důležité: Pozvěte uživatele PŘED importem dat.**
Uživatelé musí přijmout své pozvánky, než importujete jakékoli záznamy, které na ně odkazují (například pole Account Owner). Pokud uživatelé ještě neexistují, tyto relace nelze namapovat.
</Warning>
1. Přejděte ve své cloudové instanci do **Settings → Members**
2. Pozvěte všechny členy týmu, kteří měli účty v instanci hostované na vlastním serveru
3. **Počkejte, až všichni přijmou** své pozvání
4. Ověřte, že se všichni uživatelé zobrazují v seznamu Members
## Krok 4: Export dat z instance hostované na vlastním serveru
Exportujte každý objekt ze své instance hostované na vlastním serveru:
1. Přejděte ke každému objektu (Společnosti, Lidé, Příležitosti atd.)
2. Nastavte zobrazení tak, aby zobrazovalo **všechny sloupce**, které chcete migrovat
3. Klikněte na **⋮ → Export view**
4. Uložte každý soubor CSV s jasným názvem (např. `companies-export.csv`)
**Exportujte v tomto pořadí** (pro referenci při importu):
1. Společnosti
2. Osoby
3. Příležitosti
4. Vlastní objekty (podle jejich závislostí)
5. Úkoly, Poznámky
## Krok 5: Aktualizujte reference na členy pracovního prostoru
Exportované soubory CSV obsahují ID uživatelů z vaší instance hostované na vlastním serveru. Tyto ID nebudou odpovídat vaší cloudové instanci, proto je musíte nahradit e-mailovými adresami.
**Pro každý soubor CSV s referencemi na uživatele (Owner, Assignee atd.):**
1. Otevřete soubor CSV v tabulkovém editoru
2. Přidejte nový sloupec vedle každého sloupce s ID uživatele (např. `accountOwnerEmail` vedle `accountOwnerId`)
3. Vyplňte **e-mailovou adresu** každého uživatele
4. Můžete starý sloupec s ID smazat, nebo ho ponechat (při importu bude přeskočen)
**Příklad:**
Před:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
Po:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>Použijte stejné e-mailové adresy, které uživatelé použili k přijetí pozvánky do cloudového pracovního prostoru.</Note>
## Krok 6: Naplánujte pořadí importu
Importujte soubory ve správném pořadí, abyste zachovali relace:
1. **Společnosti** jako první (bez závislostí)
2. **Lidé** jako druzí (propojení na společnosti)
3. **Příležitosti** jako třetí (propojené se společnostmi a lidmi)
4. **Vlastní objekty** (podle jejich závislostí)
5. **Úkoly a poznámky** nakonec (propojení na další záznamy)
Viz [Jak importovat relace](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) pro podrobnosti o zachování relací.
## Krok 7: Import do cloudu
Pro každý soubor CSV, v daném pořadí:
1. Přejděte k objektu ve vaší cloudové instanci
2. Klikněte na **⋮ → Import records**
3. Nahrajte soubor CSV
4. Namapujte sloupce na pole:
* Namapujte sloupce s e-maily uživatelů na příslušná relační pole
* Ostatní sloupce namapujte obvyklým způsobem
5. Zkontrolujte a opravte případné chyby
6. Potvrďte import
7. Ověřte několik záznamů, než přejdete k dalšímu souboru
## Krok 8: Znovu vytvořte konfiguraci
Po importu dat ručně znovu vytvořte:
### Zobrazení
* Znovu vytvořte uložená zobrazení s filtry, řazením a nastavením sloupců
* Nastavte případná kanbanová nebo kalendářová zobrazení
### Pracovní postupy
* Znovu vytvořte automatizace v **Settings → Workflows**
* Otestujte každý pracovní postup, než se na něj spolehnete
### Role a oprávnění
* Nakonfigurujte role v **Settings → Members → Roles**
* Přiřaďte uživatele ke vhodným rolím
### Integrace
* Znovu připojte synchronizaci e-mailu a kalendáře pro každého uživatele
* Znovu nakonfigurujte případné integrace API s novými klíči API
## Post-migrační kontrolní seznam
<Check>Všechna data byla úspěšně importována</Check>
<Check>Relace mezi objekty fungují správně</Check>
<Check>Přiřazení uživatelů (Owner, Assignee) je namapováno správně</Check>
<Check>Zobrazení znovu vytvořena</Check>
<Check>Pracovní postupy znovu vytvořeny a otestovány</Check>
<Check>Role a oprávnění nakonfigurovány</Check>
<Check>Synchronizace e-mailu/kalendáře znovu připojena</Check>
<Check>Integrace API aktualizovány s novými klíči</Check>
## Časté dotazy
<AccordionGroup>
<Accordion title="Mohu migrovat pracovní postupy automaticky?">
V tuto chvíli ne. Pracovní postupy je nutné ve vaší cloudové instanci znovu vytvořit ručně.
</Accordion>
<Accordion title="A co přílohy a obrázky?">
Přílohy nejsou součástí exportů CSV. Přílohy budete muset nahrát znovu ručně, migrovat je přes API nebo kontaktovat náš tým pro pomoc s rozsáhlými migracemi.
</Accordion>
<Accordion title="Mohu během migrace ponechat obě instance v provozu?">
Ano, doporučujeme ponechat vaši instanci na vlastním serveru v provozu, dokud neověříte, že migrace do cloudu je dokončena. Jen si dejte pozor, abyste nevytvářeli nová data na obou místech.
</Accordion>
<Accordion title="Co když uživatel ještě nepřijal svou pozvánku?">
Záznamy, které na daného uživatele odkazují, se nepodaří importovat, nebo bude relace prázdná. Ujistěte se, že všichni uživatelé přijali pozvánky před importem dat.
</Accordion>
</AccordionGroup>
## Potřebujete pomoc?
<Tip>
Migrujete velký nebo složitý pracovní prostor? [Najměte si certifikovaného partnera Twenty](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud), který za vás zajistí kompletní přesun od začátku do konce. *(Nebo do komunikace zapojte náš tým: [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>

View File

@@ -0,0 +1,267 @@
---
title: Připravte své soubory CSV
description: Kompletní návod krok za krokem, jak naformátovat data pro import do Twenty.
---
## Přehled
Tento průvodce vás provede přípravou vašeho souboru CSV pro úspěšný import. Postupujte podle těchto kroků, abyste předešli chybám.
## Krok 1: Zkontrolujte požadavky na soubor
Než začnete, ujistěte se, že váš soubor splňuje tyto požadavky:
| Požadavek | Podrobnosti |
| ------------------- | --------------------------- |
| **Formát** | CSV, XLSX nebo XLS |
| **Limit velikosti** | 10 000 záznamů na soubor |
| **Kódování** | Doporučeno: UTF-8 |
| **Struktura** | Jeden typ objektu na soubor |
<Note>U datasetů větších než 10 000 záznamů je rozdělte do více souborů nebo použijte [import přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## Krok 2: Stáhněte si ukázkový soubor
**Toto je nejdůležitější krok.** Ukázkový soubor ukazuje přesné názvy sloupců a formát, který Twenty očekává.
1. Přejděte do zobrazení objektu (Osoby, Společnosti atd.)
2. Klikněte na **⋮** → **Importovat záznamy**
3. Klikněte na **Stáhnout ukázkový soubor**
4. Tento soubor použijte jako svou šablonu
<Note>**Profesionální tip:** Místo toho exportujte několik existujících záznamů. Tím získáte reálné příklady, jak mají být data naformátována, a názvy sloupců se během importu namapují automaticky.</Note>
## Krok 3: Odstraňte duplicitní hodnoty
Twenty vynucuje jedinečnost u některých polí. Duplicity způsobí chyby při importu.
| Objekt | Jedinečná pole |
| ------------------- | ------------------------------------------------------------ |
| **Osoby** | `id`, `email` |
| **Společnosti** | `id`, `domain` |
| **Vlastní objekty** | `id`, plus jakékoli pole, které jste označili jako jedinečné |
**Před importem:**
1. Seřaďte tabulku podle jedinečného pole (e‑mailu nebo domény)
2. Odstraňte nebo sloučte duplicitní řádky
3. Zkontrolujte duplicity, které už v Twenty existují
<Warning>**Dočasně smazané záznamy se započítávají do jedinečnosti.** Záznamy v Command Menu → See deleted records způsobí chyby kvůli duplicitám. Trvale je smažte, nebo je obnovte a aktualizujte.</Warning>
## Krok 4: Správně naformátujte každý typ pole
Různé typy polí vyžadují specifické formáty. Zde je úplný přehled:
### Textová pole
* Není vyžadováno žádné speciální formátování
* Počáteční a koncové mezery jsou automaticky oříznuty
### E‑mailová pole
* Musí být ve validním formátu e‑mailu: `name@domain.com`
* Musí být jedinečné (žádné duplicity v souboru ani v Twenty)
* Pro další e‑maily použijte tento formát ve sloupci **E‑maily / Další e‑maily**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Doménová pole
* **Doporučený formát**: `https://domain.com`
* Odpovídá formátu používanému synchronizací schránky/kalendáře (předchází duplicitám)
* Vyplňte oba sloupce:
* **Doména / Štítek domény**: `domain.com`
* **Doména / URL domény**: `https://domain.com`
* Musí být jedinečné v rámci vašeho souboru i v Twenty
### Telefonní pole
Telefon je **vnořené pole**, které vyžaduje více sloupců:
| Sloupec | Příklad |
| ------------------------------------------------------ | ------------ |
| **Telefony / Hlavní telefonní číslo** | `4159095555` |
| **Telefony / Kód země hlavního telefonu** | `US` |
| **Telefony / Mezinárodní předvolba hlavního telefonu** | `+1` |
### Adresní pole
Adresa je **vnořené pole** s více sloupci (některé mohou zůstat prázdné):
* **Adresa / Adresa 1**: Řádek adresy 1
* **Adresa / Adresa 2**: Řádek adresy 2 (volitelné)
* **Adresa / Město**: Název města
* **Adresa / Stát**: Stát nebo provincie
* **Adresa / Země**: Název země
* **Adresa / PSČ**: Poštovní/ZIP kód
### Datumová pole
Používejte jednotný formát v celém souboru:
* `YYYY-MM-DD` (doporučeno): `2024-03-15`
* ISO 8601: `2024-03-15T10:30:00Z`
### Číselná pole
* Pouze čísla (bez textu)
* Pro desetinná místa použijte tečku: `1234.56`
* Bez oddělovačů tisíců (ne `1,234.56`)
### Měnová pole
Měna je **vnořené pole** vyžadující dva sloupce, které musí být oba vyplněny:
| Sloupec | Příklad |
| ------------------- | --------- |
| **Částka / Částka** | `1234.56` |
| **Částka / Měna** | `USD` |
### Booleovská pole
Používejte velká písmena: `TRUE` nebo `FALSE`
<Warning>Malá písmena `true` nebo `false` nebudou fungovat.</Warning>
### Výběrová Pole
Použijte název API možnosti, nikoli zobrazovaný štítek.
**Jak najít názvy API:**
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt a pole
3. Zapněte **Pokročilý režim** (přepínač vpravo dole)
4. Zkopírujte název API (např. `OPTION_1`, nikoli "Option 1")
<Note>Nové možnosti výběru se nevytvářejí automaticky. Přidejte je v **Nastavení → Datový model** před importem.</Note>
### Pole s vícenásobným výběrem
Použijte názvy API ve formátu pole:
```
["VALUE1","VALUE2"]
```
### Pole typu array
Použijte formát JSON pole:
```
["value1","value2"]
```
### Hodnoticí pole
Použijte formát: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4` nebo `RATING_5`
### Pole odkazů/URL
Vyplňte oba sloupce:
* **Odkazy / Štítek odkazu**: `Twenty`
* **Odkazy / URL odkazu**: `https://twenty.com`
Pro sekundární odkazy použijte sloupec **Odkazy / Sekundární odkazy**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### JSON pole
Použijte platný formát JSON:
```
{"key":"value","key2":"value2"}
```
### ID pole
* **Volitelné**: Twenty automaticky generuje ID, pokud nejsou zadána
* **Formát**: UUID (např. `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Využití**: Zahrňte ID pro aktualizaci existujících záznamů místo vytváření nových
## Krok 5: Přidejte relační sloupce (pokud propojujete záznamy)
Chcete-li propojit záznamy s jinými objekty (např. lidi se společnostmi), přidejte sloupec s jedinečným identifikátorem souvisejícího záznamu.
**Příklad**: Propojení lidí se společnostmi
Přidejte do svého souboru CSV s lidmi sloupec:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Důležitá pravidla pro relace:**
* Nadřazený záznam musí v Twenty již existovat
* Použijte formát **Domain URL** (`https://domain.com`), nikoli štítek
* Mapujte pouze JEDEN jedinečný identifikátor (nezahrnujte zároveň `companyId` i `companyDomain`)
* U členů pracovního prostoru použijte jejich **e-mail** (ne jméno)
<Warning>
**Pořadí importu je důležité!**
Importujte stranu "one" před stranou "many":
1. **Společnosti** jako první
2. **Lidé** jako druzí (s odkazem na společnost)
3. **Příležitosti** jako třetí
Nadřazený záznam musí existovat dříve, než na něj můžete odkazovat.
</Warning>
Podrobné pokyny najdete v [Jak importovat relace](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv).
## Krok 6: Ujistěte se, že pole v Twenty existují
Import vytváří záznamy, nikoli pole. Všechna pole, která chcete importovat, musí již existovat ve vašem datovém modelu.
**Před importem:**
1. Přejděte na **Nastavení → Datový model**
2. Vyberte požadovaný objekt
3. Vytvořte všechna vlastní pole, která potřebujete
4. Poznamenejte si přesné názvy polí (musí odpovídat názvům sloupců)
## Krok 7: Závěrečný kontrolní seznam
Před nahráním souboru ověřte:
<Check>Soubor je ve formátu CSV, XLSX nebo XLS</Check>
<Check>Soubor obsahuje méně než 10 000 záznamů</Check>
<Check>Kódování je UTF-8</Check>
<Check>Žádné duplicitní e-maily (pro lidi) nebo domény (pro společnosti)</Check>
<Check>Data používají jednotný formát v celém souboru</Check>
<Check>Domény používají formát `https://domain.com`</Check>
<Check>Booleovská pole používají `TRUE` nebo `FALSE` (velká písmena)</Check>
<Check>Výběrová pole používají názvy API, nikoli zobrazované štítky</Check>
<Check>Všechna vlastní pole existují v Nastavení → Datový model</Check>
<Check>Nadřazené záznamy byly importovány před podřízenými</Check>
<Check>Relační sloupce odkazují na existující záznamy</Check>
## Časté chyby, kterým se vyhnout
| Chyba | Řešení |
| ---------------------------------------------- | ---------------------------------------------- |
| Použití `true` místo `TRUE` | Booleovské hodnoty musí být velkými písmeny |
| Použití zobrazovaných štítků u výběrových polí | V Nastavení najděte a používejte názvy API |
| Importování lidí před společnostmi | Vždy nejprve importujte nadřazené objekty |
| Chybějící kód měny u měnových polí | Vyplňte sloupce Částka i Měna |
| Nesprávný formát domény | Používejte konzistentně `https://domain.com` |
| Mapování více jedinečných polí pro relace | Mapujte pouze JEDNO (doména NEBO id, ne obojí) |
## Další kroky
Váš soubor je připraven! Nyní:
* [Importovat společnosti](/l/cs/user-guide/data-migration/how-tos/import-companies-via-csv) (importujte je jako první)
* [Importovat kontakty](/l/cs/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)

View File

@@ -0,0 +1,198 @@
---
title: Aktualizace existujících záznamů pomocí importu
description: Kompletní podrobný průvodce hromadnou aktualizací záznamů pomocí importu CSV.
---
## Přehled
Potřebujete aktualizovat mnoho záznamů najednou? Místo ruční úpravy jednoho po druhém použijte import CSV k hromadné aktualizaci existujících záznamů.
**Případy použití:**
* Aktualizujte pracovní pozice pro více lidí
* Hromadně změňte informace o společnosti
* Přidejte data do nových vlastních polí
* Opravte chyby v datech napříč mnoha záznamy
## Jak to funguje
Když naimportujete soubor obsahující **jedinečný identifikátor**, který odpovídá existujícímu záznamu, Twenty tento záznam aktualizuje místo vytvoření duplicitního.
| Pokud jedinečný identifikátor... | Twenty provede... |
| -------------------------------- | ------------------------------------------------------- |
| Odpovídá existujícímu záznamu | **Aktualizovat** existující záznam |
| Neodpovídá žádnému záznamu | **Vytvořit** nový záznam |
| V souboru chybí | **Vytvořit** nový záznam (s automaticky generovaným ID) |
<Warning>
**Pole s vícenásobným výběrem se přepisují, neslučují.**
Pokud má záznam vybrané `Option A` a `Option B` a vy importujete `["Option C"]`, záznam bude po importu obsahovat pouze `Option C`. Import nahradí všechny předchozí volby — nepřidává k nim.
Chcete-li zachovat stávající hodnoty, zahrňte je všechny do importu: `["Option A","Option B","Option C"]`
</Warning>
## Krok 1: Exportujte svá aktuální data
Nejprve exportujte záznamy, které chcete aktualizovat:
1. Přejděte k objektu (Lidé, Společnosti atd.)
2. **Přidejte potřebné sloupce** — klikněte na **Options → Fields** a zobrazte pole, která chcete aktualizovat
3. **V případě potřeby filtrujte** — zúžte výběr jen na záznamy, které chcete aktualizovat
4. Klikněte na **⋮** → **Export view**
5. Uložte soubor CSV
<Note>**Proč nejdřív exportovat?** Exportovaný soubor má správný formát, obsahuje jedinečné identifikátory a během importu se mapuje automaticky.</Note>
### Co se exportuje
* Všechny viditelné sloupce v aktuálním zobrazení
* Jedinečné identifikátory záznamu (`id`, `email`, `domain`)
* Aktuální hodnoty polí, které můžete upravit
## Krok 2: Upravte soubor CSV
Otevřete exportovaný soubor v tabulkovém editoru (Excel, Google Sheets apod.):
1. **Nechte sloupec s jedinečným identifikátorem** — nemažte `id`, `email` ani `domain`
2. **Aktualizujte hodnoty** ve sloupcích, které chcete změnit
3. **Odstraňte sloupce, které není třeba aktualizovat** (volitelné, ale přehlednější)
4. **Neměňte hodnoty jedinečných identifikátorů** — jinak Twenty vytvoří nové záznamy
### Příklad: Aktualizace pracovních pozic
**Exportovaný soubor:**
```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
```
**Po vašich úpravách:**
```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>
**Neměňte hodnoty jedinečných identifikátorů.**
Pokud změníte `john@acme.com` na `john.smith@acme.com`, Twenty vytvoří nový záznam místo aktualizace stávajícího.
</Warning>
## Krok 3: Importujte aktualizovaný soubor
1. Přejděte k objektu
2. Klikněte na **⋮** → **Import records**
3. Nahrajte upravený soubor CSV
4. **Ujistěte se, že je jedinečný identifikátor namapován** — ověřte, že `email`, `domain` nebo `id` je namapováno správně
5. Zkontrolujte mapování polí
6. Zkontrolujte chyby
7. Klikněte na **Confirm**
Twenty porovnává záznamy podle jedinečného identifikátoru a aktualizuje je novými hodnotami.
## Výběr správného jedinečného identifikátoru
| Objekt | Doporučeno | Alternativa | Poznámky |
| ------------------- | ----------------------- | ----------- | ----------------------------------- |
| **Osoby** | `email` | `id` | E-mail je pro lidi čitelný |
| **Společnosti** | `doména` | `id` | Doména je pro lidi čitelná |
| **Vlastní objekty** | Jakékoli jedinečné pole | `id` | Použijte své vlastní jedinečné pole |
<Note>**Použijte pouze JEDEN jedinečný identifikátor.** Nemapujte současně `email` A `id`. To může způsobit nejasnosti a chyby.</Note>
### Použití vlastních jedinečných polí
Pokud máte vlastní pole označené jako jedinečné (například externí ID z jiného systému):
1. Zahrňte toto pole do exportu i importu
2. Namapujte jej během importu
3. Twenty bude párovat podle tohoto pole
## Krok 4: Ověřte aktualizace
Po importu:
1. Otevřete několik aktualizovaných záznamů
2. Ověřte, že byly změny použity
3. Zkontrolujte, že nevznikly duplicitní záznamy
## Co pole, která nejsou ve vašem souboru?
**Pole, která nejsou v importním souboru zahrnuta, zůstávají beze změny.**
| Váš soubor obsahuje... | Výsledek |
| ---------------------------- | -------------------------------------------------------------- |
| `email`, `jobTitle` | Aktualizuje se pouze `jobTitle`; ostatní pole zůstávají stejná |
| `email`, `jobTitle`, `phone` | `jobTitle` a `phone` jsou aktualizovány |
To znamená, že stačí zahrnout pouze pole, která chcete změnit (plus jedinečný identifikátor).
## Kombinace aktualizací a nových záznamů
V rámci jednoho importu můžete aktualizovat existující záznamy A také vytvářet nové:
```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)
```
## Časté chyby, kterým se vyhnout
| Chyba | Problém | Výsledek | Řešení |
| ------------------------------------ | ------------------------------------------------------------- | ------------------------------------- | -------------------------------------------------- |
| **Změna jedinečného identifikátoru** | Změněno z `john@acme.com` na `john.smith@acme.com` | Vytvoří nový záznam místo aktualizace | Nechte jedinečné identifikátory beze změny |
| **Více jedinečných polí** | Mapování jak `email`, tak `id` | Potenciální konflikty při párování | Mapujte pouze JEDEN jedinečný identifikátor |
| **Žádný jedinečný identifikátor** | Soubor obsahuje pouze `firstName`, `lastName`, `jobTitle` | Všechny řádky vytvoří nové záznamy | Vždy zahrňte `email`, `domain` nebo `id` |
| **Rozdílná velikost písmen** | V souboru je `John@acme.com`, ale v Twenty je `john@acme.com` | Vytvoří nový záznam | Exportujte z Twenty, abyste získali přesné hodnoty |
## Časté dotazy
<AccordionGroup>
<Accordion title="Co když některé záznamy ještě neexistují?">
Záznamy s jedinečnými identifikátory, které neodpovídají existujícím záznamům, budou vytvořeny jako nové. To vám umožní aktualizovat i vytvářet v rámci jednoho importu.
</Accordion>
<Accordion title="Mohu vymazat/vyprázdnit hodnotu pole?">
Ano, v CSV nechte buňku prázdnou. Import vymaže hodnotu tohoto pole u existujícího záznamu.
</Accordion>
<Accordion title="Co se stane s poli, která do importu nezahrnu?">
Pole, která nejsou ve vašem importním souboru, zůstávají u existujících záznamů beze změny. Aktualizují se pouze pole, která zahrnete.
</Accordion>
<Accordion title="Mohu aktualizovat relační pole (například Company)?">
Ano! Zahrňte jedinečný identifikátor relace (např. `companyDomain`) a namapujte jej na relační pole. Relace bude aktualizována.
</Accordion>
<Accordion title="Jak poznám, které záznamy se aktualizují a které se vytvoří?">
Během kroku kontroly importu vám Twenty zobrazí, kolik záznamů bude aktualizováno a kolik vytvořeno na základě shody jedinečných identifikátorů.
</Accordion>
<Accordion title="Lze vrátit hromadnou aktualizaci zpět?">
Automatické vrácení zpět není k dispozici. Před provedením hromadných aktualizací doporučujeme exportovat svá data jako zálohu.
</Accordion>
</AccordionGroup>
## Osvědčené postupy
1. **Nejprve exportujte** — vždy začínejte exportem, abyste zajistili správný formát
2. **Zálohujte před aktualizací** — před hromadnými změnami exportujte svá data
3. **Otestujte na několika záznamech** — nejprve zkuste aktualizovat 5–10 záznamů, než spustíte velkou dávku
4. **Používejte lidem srozumitelné identifikátory** — `email` a `domain` se ověřují snáze než `id`
5. **Zahrňte pouze nezbytné sloupce** — méně sloupců znamená menší šanci na chyby
## Řešení potíží
Máte potíže? Podívejte se na:
* [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Referenční příručka mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,83 @@
---
title: Migrace dat
description: Importujte a exportujte svá data CRM pomocí souborů CSV nebo rozhraní API.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Metody importu
Twenty podporuje dvě hlavní metody pro import dat:
| Metoda | Vhodné pro | Limit objemu |
| ------------------- | ------------------------------------------ | ------------------------------- |
| **Import CSV** | Standardní migrace, pravidelné aktualizace | 10 000 záznamů v jednom souboru |
| **Import přes API** | Migrace ve velkém měřítku, automatizace | Bez omezení |
<Note>U velmi velkých datových sad (statisíce záznamů) použijte rozhraní API. Naši [implementační partneři](/l/cs/user-guide/getting-started/capabilities/implementation-services) mohou v případě potřeby pomoci se spuštěním těchto skriptů.</Note>
## Základy importu CSV
Můžete importovat data pro libovolný objekt pomocí souborů CSV, XLSX nebo XLS. Každý soubor by měl obsahovat **pouze jeden typ objektu** (např. pouze záznamy Osob).
<Note>**Pole musí existovat před importem.** Nahrání souboru CSV vytvoří záznamy, ale nevytvoří pole. Pokud potřebujete vlastní pole, nejprve je vytvořte v **Nastavení → Datový model**.</Note>
### Postup
1. Přejděte k objektu, do kterého chcete importovat data
2. Klikněte na ikonu **⋮** vpravo nahoře (to je Nabídka příkazů) a klikněte na **Importovat záznamy**
3. Stáhněte si šablonový soubor, abyste zajistili, že vaše data mají očekávaný formát
4. Nahrajte naformátovaný soubor CSV
5. Přiřaďte sloupce k polím Twenty
6. Zkontrolujte chyby (zvýrazněné žlutě) a opravte je, přímo úpravou v uživatelském rozhraní
7. Potvrďte import
### Import relací mezi objekty
Relace mezi objekty můžete importovat pomocí funkce importu CSV. Na související objekt musíte odkazovat pomocí jedinečného pole z tohoto objektu: `id`, `email` pro Osoby a členy pracovního prostoru, `domain` pro společnosti, případně jakékoli jiné pole nastavené jako jedinečné v datovém modelu pro jakýkoli jiný objekt.
<Note>**Smazané záznamy se započítávají do jedinečnosti.** Dočasně smazané záznamy (viditelné v Nabídka příkazů → Zobrazit smazané záznamy) se zahrnují do kontrol jedinečnosti. Pokud importujete záznam se stejnou jedinečnou hodnotou jako má smazaný záznam, smazaný záznam bude obnoven.</Note>
<Warning>
**Pořadí importu je důležité!**
Při importu souvisejících objektů nahrávejte soubory v tomto pořadí:
1. **Společnosti** nejdříve ("jedna" strana vztahů)
2. **Lidé** jako druzí (propojení se Společnostmi přes companyId)
3. **Příležitosti** jako třetí (propojené se Společnostmi/Lidmi)
4. **Vlastní objekty** s relacemi nakonec
Proč? "Jedna" strana vztahu jedna ku mnohým musí existovat dříve, než na ni můžete odkazovat. Například záznam společnosti musí existovat dříve, než importujete osobu s ID této společnosti.
</Warning>
Podívejte se prosím na [tento článek](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) s podrobným návodem, jak postupovat.
## Exportovat Data
Exportujte data svého pracovního prostoru pro zálohy, vytváření přehledů nebo migraci.
### Postup
1. Přejděte k objektu, který chcete exportovat
2. Nastavte zobrazení se sloupci, které potřebujete
3. Klikněte na **⋮** → **Exportovat zobrazení**
4. Uložte soubor CSV
<Note>**Exportují se pouze viditelné sloupce.** Soubor CSV bude obsahovat jen sloupce zobrazené ve vašem aktuálním zobrazení. Před exportem přidejte nebo skryjte sloupce, abyste určili, která data budou zahrnuta.</Note>
<Note>**Limity exportu**: až 20 000 záznamů na jeden export.</Note>
## Oprávnění
Import a export dat vyžadují konkrétní oprávnění:
* **Import**: Vyžaduje oprávnění "Import CSV"
* **Export**: Vyžaduje oprávnění "Export CSV"
Pokud tato oprávnění nemáte, kontaktujte správce pracovního prostoru.
## Další kroky
* [Připravte své soubory CSV](/l/cs/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [Importujte relace mezi objekty](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Import přes API pro velké datové sady](/l/cs/user-guide/data-migration/how-tos/import-data-via-api)