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,167 @@
---
title: Odesílání e-mailů z pracovních postupů
description: Posílejte personalizované e-maily automaticky pomocí akcí pracovních postupů.
---
Automaticky odesílejte e-maily, když ve vašem CRM nastanou konkrétní události—přivítejte nové kontakty, navazujte na příležitosti nebo upozorněte členy týmu.
## Předpoklady
Než budete moci odesílat e-maily z pracovních postupů:
1. Připojte e-mailový účet v **Nastavení → Účty**
2. Ujistěte se, že má účet povolená oprávnění k odesílání
## Základní e-mailový pracovní postup
### Příklad: Vítací e-mail pro nové kontakty
**Cíl**: Odeslat vítací e-mail, když je do CRM přidána nová osoba.
**Nastavení**:
1. **Vytvořit pracovní postup**: Přejděte do **Nastavení → Pracovní postupy** a klikněte na **+ Nový pracovní postup**
2. **Přidat spouštěč**: Vyberte **Záznam je vytvořen** → **Lidé**
3. **Přidat akci Odeslat e-mail**:
* Klikněte na **+** pro přidání akce
* Vyberte **Odeslat e-mail**
* Nastavte e-mail:
| Pole | Hodnota |
| --------------- | -------------------------------------- |
| **Komu** | `{{trigger.object.email}}` |
| **Předmět** | `Vítejte ve {{Your Company Name}}` |
| **Text zprávy** | `Hi {{trigger.object.firstName}}, ...` |
4. **Otestujte a aktivujte**: Otestujte s ukázkovým záznamem, poté aktivujte
## Používání proměnných v e-mailech
Odkazujte na data z předchozích kroků pomocí syntaxe `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
Thank you for connecting with us!
Your company, {{trigger.object.company.name}}, is now in our system.
Best regards,
The Team
```
### Dostupné proměnné ze spouštěčů
| Typ spouštěče | Běžné proměnné |
| -------------------------------- | -------------------------------------- |
| **Záznam vytvořen/aktualizován** | `{{trigger.object.fieldName}}` |
| **Ruční** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Pokročilé: Podmíněné e-maily
### Příklad: Různé e-maily podle zdroje zájemce
**Cíl**: Posílat různé vítací e-maily podle toho, odkud zájemce přišel.
**Nastavení**:
1. **Spouštěč**: Záznam je vytvořen (Lidé)
2. **Přidat akci Filtr**:
* Podmínka: `{{trigger.object.source}}` se rovná `"Website"`
* Pokud ano → pokračujte k vítacímu e-mailu pro web
3. **Větev pro jiné zdroje**:
* Vytvořte paralelní větve pro různé zdroje
* Každá větev má svou vlastní akci Odeslat e-mail
## Odesílání e-mailů více příjemcům
### Příklad: Upozornit tým při uzavření obchodu
**Cíl**: Poslat e-mail obchodníkovi a jeho manažerovi, když je příležitost vyhrána.
**Nastavení**:
1. **Spouštěč**: Záznam je aktualizován (Příležitosti, Stádium = "Uzavřeno/Vyhráno")
2. **Vyhledat záznamy**: Najděte manažera vlastníka příležitosti
3. **Odeslat e-mail č. 1**: Vlastníkovi příležitosti
* Komu: `{{trigger.object.owner.email}}`
* Předmět: `Gratulujeme k uzavření {{trigger.object.name}}!`
4. **Odeslat e-mail č. 2**: Manažerovi
* Komu: `{{searchRecords.manager.email}}`
* Předmět: `Vyhraný obchod: {{trigger.object.name}}`
## Naplánované navazující e-maily
### Příklad: Následný kontakt 3 dny po schůzce
**Cíl**: Odeslat následný e-mail 3 dny poté, co je zaznamenána schůzka.
**Nastavení**:
1. **Spouštěč**: Záznam je vytvořen (Aktivity, Typ = "Schůzka")
2. **Zpoždění**: Počkejte 3 dny
3. **Odeslat e-mail**:
* Komu: Účastník schůzky
* Předmět: Navazuji na náš rozhovor
* Text zprávy: Odkaz na podrobnosti schůzky ze spouštěče
## E-mailové přílohy
K e-mailům odesílaným z pracovních postupů můžete přikládat soubory. Příloha je statický soubor, který nahrajete při konfiguraci pracovního postupu.
### Jak přidat přílohu
1. V akci **Odeslat e-mail** klikněte na tlačítko **Přílohy**
2. Klikněte a nahrajte soubor ze svého počítače
3. Soubor bude přiložen ke všem e-mailům odesílaným touto akcí
### Běžné scénáře použití
| Případ použití | Ukázkový soubor |
| -------------------------- | ----------------------------------- |
| **Uvítací e-maily** | Firemní brožura (PDF) |
| **Úvodní sekvence** | Průvodce Začínáme |
| **Návazné akce u prodeje** | Katalog produktů nebo ceník |
| **Potvrzení událostí** | Podrobnosti o události nebo program |
<Note>
Přílohy jsou statické—všem příjemcům se posílá stejný soubor. U dynamických dokumentů (například personalizovaných nabídek) soubory vygenerujte a přiložte pomocí [Logic funkce](/l/cs/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty).
</Note>
## Osvědčené postupy
### Obsah e-mailu
* Udržujte předměty stručné a věcné
* Personalizujte pomocí jména příjemce
* Zahrňte jasnou výzvu k akci
* Před aktivací e-maily otestujte
### Doručitelnost
* Neodesílejte příliš mnoho e-mailů příliš rychle
* Používejte profesionální e-mailové podpisy
* Vyhýbejte se slovům, která spouštějí spam
* Zajistěte možnost odhlášení u marketingových e-mailů
### Řešení potíží
* Ověřte, že je e-mailový účet připojen a aktivní
* Zkontrolujte, zda je e-mailová adresa příjemce platná
* Projděte běhy pracovních postupů kvůli chybovým zprávám
* Nejprve otestujte s vlastní e-mailovou adresou
## Související
* [Spouštěče pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)

View File

@@ -0,0 +1,88 @@
---
title: Používání větví v pracovních postupech
description: Pochopte, jak větve fungují a jak řídit, která cesta se provede.
---
## Jak větve fungují
V editoru pracovních postupů můžete vytvářet více cest (větví) vycházejících z jediného uzlu. To vám umožní vytvářet složité automatizace s různými výsledky.
**Důležité**: Když se pracovní postup spustí, **všechny větve se ve výchozím nastavení spouštějí paralelně**. Neexistuje žádná vestavěná "if/else" logika pro výběr jedné větve před jinou—každá cesta poběží současně.
## Řízení, která větev se spustí
Chcete-li provést pouze jednu větev na základě konkrétních podmínek, **přidejte na začátek každé větve uzel Filter**.
### Ukázkové nastavení
1. Vytvořte pracovní postup s více větvemi z jednoho uzlu
2. Přidejte uzel **Filter** jako první krok v každé větvi
3. Na každém uzlu Filter nastavte podmínky, které určují, kdy má daná větev pokračovat
4. Pokračovat bude pouze větev (případně větve), u níž jsou splněny podmínky uzlu Filter
### Jak fungují filtry
* Pokud je podmínka Filter **splněna**: Větev pokračuje v provádění
* Pokud podmínka Filter **není splněna**: Větev se zastaví na uzlu Filter
Tím efektivně vytvoříte podmíněnou logiku, v níž se na základě vašich dat spustí pouze příslušná větev.
## Příklad: Směrování podle výše obchodu
**Scénář**: Když je obchod uzavřen, odešlete různé oznámení podle výše obchodu.
1. **Spouštěč**: Příležitost aktualizována (Fáze = Uzavřeno/Vyhráno)
2. **Větev 1**: Filter pro částku > 10 000 $ → Odeslat zprávu na Slack do #big-deals
3. **Větev 2**: Filter pro částku ≤ 10 000 $ → Odeslat e-mail obchodnímu manažerovi
Obě větve se spustí, ale za svým uzlem Filter bude pokračovat pouze ta, která odpovídá částce obchodu.
## Vytváření větví
<Note>
Chcete-li vytvořit novou větev z existujícího kroku, klikněte na tlačítko **+** u kroku a přidejte svou akci. Více větví můžete přidat opakovaným kliknutím na **+**.
</Note>
1. V editoru pracovních postupů vyberte krok, ze kterého chcete větvit
2. Klikněte na **+** pro přidání akce
3. Tím vytvoříte jednu větev
4. Pro vytvoření dalších větví klikněte znovu na **+** u stejného kroku
5. Každá větev může mít vlastní posloupnost akcí
## Sloučení větví zpět do jedné
Po dokončení práce paralelních větví je můžete sloučit zpět do jedné cesty:
1. Dokončete akce ve větvích
2. Přidejte nový krok, který se má spustit po všech větvích
3. Přetáhněte spojení z posledního kroku každé větve do tohoto nového kroku
4. Sloučený krok před spuštěním počká na dokončení všech připojených větví
### Příklad: Zpracovat a poté upozornit
```
Trigger
│
├── Branch A: Update Customer Record
│
└── Branch B: Create Support Ticket
↘ ↙
Merged Step: Send Confirmation Email
```
Potvrzovací e-mail je odeslán až po dokončení aktualizace zákazníka a vytvoření tiketu.
## Osvědčené postupy
* Na začátku větví vždy používejte **uzly Filter**, když chcete podmíněné spouštění
* Podmínky větví udržujte **vzájemně se vylučující**, abyste předešli duplicitním akcím
* Testujte své pracovní postupy s různými daty, abyste měli jistotu, že se spouštějí správné větve
* **Přejmenujte kroky ve větvích** popisně, aby bylo jasné, co která cesta dělá
* **Sloučte větve**, když po paralelním zpracování potřebujete závěrečnou akci
## Související
* [Často kladené dotazy k pracovním postupům](/l/cs/user-guide/workflows/how-tos/need-more-help/workflows-faq) — odpovědi týkající se paralelního provádění
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions) — dostupné akce pro větve

View File

@@ -0,0 +1,183 @@
---
title: Použijte iterátor
description: Procházejte pole záznamů a provádějte akce s každou položkou.
---
Iterátor vám umožní procházet pole záznamů a provádět akce na každém z nich. Je zásadní pro pracovní postupy, které potřebují zpracovat více záznamů vrácených akcí Search Records nebo přijatých přes webhooky.
## Kdy použít iterátor
| Scénář | Příklad |
| ------------------------------ | -------------------------------------------------- |
| **Zpracujte výsledky hledání** | Odešlete e-mail každé nalezené osobě |
| **Zpracujte pole webhooků** | Vytvořte záznamy pro každou položku v daném pořadí |
| **Hromadné aktualizace** | Aktualizujte více záznamů vypočtenými hodnotami |
| **Upozornění** | Upozorněte více osob na událost |
## Porozumění iterátoru
Iterátor jako vstup očekává **pole**. Poté:
1. Vezme první položku z pole
2. Spustí všechny akce uvnitř Iterátoru s touto položkou
3. Přejde na další položku
4. Opakuje, dokud nejsou zpracovány všechny položky
### Výběr pole, přes které se bude iterovat
Většinu zdrojů polí (Search Records, vícehodnotové pole ve webhooku, hromadný ruční spouštěč) lze vybrat přímo v nástroji pro výběr proměnných.
Když krok **Code** nebo **Logic Function** vrátí *pole nejvyšší úrovně*, jeho výstup se v nástroji pro výběr proměnných zobrazí jako indexované položky (`0`, `1`, `2`, …). Chcete-li iterovat přes celé pole, vyberte u daného kroku možnost **Whole list** — Iterator pak automaticky odvodí strukturu každé položky ze seznamu.
## Základní nastavení
### Příklad: Odeslání e-mailu všem ve výsledcích hledání
**Cíl**: Najděte všechny kontakty v konkrétní společnosti a každému pošlete personalizovaný e-mail.
### Krok 1: Vyhledejte záznamy
1. Přidejte akci **Vyhledat záznamy**
2. Objekt: **People**
3. Filtr: Company se rovná "Acme Inc"
4. To vrátí pole osob
### Krok 2: Zkontrolujte, že existují výsledky
1. Přidejte akci **Filtr**
2. Podmínka: `{{searchRecords.length}}` je větší než 0
3. Tím se zabrání chybám iterátoru při prázdných výsledcích
### Krok 3: Přidejte iterátor
1. Přidejte akci **Iterator**
2. Vstup pole: Vyberte `{{searchRecords}}`
3. Tím vytvoříte smyčku
### Krok 4: Přidejte akce uvnitř iterátoru
Akce umístěné za iterátorem se spustí pro každou položku:
1. Přidat **Odeslat Email** akci (uvnitř Iteratoru)
2. Komu: `{{iterator.currentItem.email}}`
3. Předmět: Dobrý den, `{{iterator.currentItem.firstName}}`!
4. Tělo: Personalizovaná zpráva využívající pole aktuální položky
### Výsledek
Pokud Search Records vrátí 5 osob, iterátor:
* Odešle e-mail osobě 1
* Odešle e-mail osobě 2
* ... pokračuje pro všech 5
## Přístup k datům aktuální položky
Uvnitř iterátoru použijte `{{iterator.currentItem}}` pro přístup k aktuálnímu záznamu:
| Proměnná | Popis |
| --------------------------------------- | ------------------------------ |
| `{{iterator.currentItem}}` | Celý objekt aktuálního záznamu |
| `{{iterator.currentItem.id}}` | ID záznamu |
| `{{iterator.currentItem.email}}` | Pole e-mailu |
| `{{iterator.currentItem.company.name}}` | Název související společnosti |
| `{{iterator.index}}` | Aktuální pozice v poli (od 0) |
V nástroji pro výběr proměnných můžete buď přejít do konkrétního pole aktuální položky, nebo zvolit **Use the whole item** pro odkaz na celou aktuální položku (`{{iterator.currentItem}}`). Výběr celé položky je užitečný, když chcete předat celý záznam přímo do následujícího kroku, místo abyste ho znovu sestavovali pole po poli.
## Běžné vzory
### Aktualizace více záznamů
**Cíl**: Označit všechny zpožděné úkoly jako "Late"
```
1. Search Records (Tasks, Due Date < Today, Status ≠ Completed)
2. Filter (length > 0)
3. Iterator (searchRecords)
└── Update Record
- Object: Tasks
- Record: {{iterator.currentItem.id}}
- Status: Late
```
### Vytváření záznamů z pole
**Cíl**: Webhook přijme objednávku s více položkami, vytvořte záznam pro každou z nich
```
1. Webhook Trigger (receives items array)
2. Filter (items.length > 0)
3. Iterator (trigger.body.items)
└── Create Record
- Object: Order Items
- Name: {{iterator.currentItem.name}}
- Quantity: {{iterator.currentItem.qty}}
- Related Order: {{trigger.body.orderId}}
```
### Podmíněné zpracování uvnitř smyčky
**Cíl**: Posílat e-mail pouze kontaktům s platnými e-mailovými adresami
```
1. Search Records (People)
2. Iterator (searchRecords)
└── Filter (currentItem.email is not empty)
└── Send Email
- To: {{iterator.currentItem.email}}
```
## Řešení potíží
### "Iterátor očekává pole"
**Příčina**: Předali jste jeden záznam místo pole.
**Řešení**: Ujistěte se, že předáváte výsledek akce Search Records nebo pole, nikoli jeden záznam.
```
✅ Correct: {{searchRecords}}
❌ Wrong: {{searchRecords[0]}}
```
### Iterátor se nespouští
**Příčina**: Pole je prázdné.
**Řešení**: Před iterátor přidejte filtr pro kontrolu délky pole:
```
Filter: {{searchRecords.length}} > 0
```
### Akce se spouštějí příliš mnohokrát
**Příčina**: Search Records vrátil více záznamů, než se očekávalo.
**Řešení**:
* Přidejte konkrétnější filtry do akce Search Records
* Nastavte limit v akci Search Records (max. 200)
* Přidejte filtr uvnitř iterátoru pro doplňující podmínky
## Aspekty výkonu
* **Spotřeba kreditů**: Každá iterace spotřebuje kredity za své akce
* **Čas**: Zpracování velkých polí trvá déle
* **Limity**: Zvažte dávkové zpracování velmi velkých operací
* **Omezení rychlosti**: Volání externích API mohou při mnoha iteracích narazit na limity rychlosti
## Osvědčené postupy
1. **Před iterátorem vždy zkontrolujte délku pole**, abyste předešli chybám
2. **Přidávejte filtry uvnitř smyček**, pokud není potřeba zpracovat všechny položky
3. **Přejmenujte krok iterátoru**, aby popisoval, co prochází
4. **Testujte s malými poli** před zpracováním velkých datových sad
5. **Sledujte spuštění pracovních postupů**, abyste zajistili, že iterace proběhnou podle očekávání
## Související
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Jak používat větve](/l/cs/user-guide/workflows/capabilities/use-branches-in-workflows)
* [Často kladené dotazy k pracovním postupům](/l/cs/user-guide/workflows/how-tos/need-more-help/workflows-faq)

View File

@@ -0,0 +1,332 @@
---
title: Akce pracovních postupů
description: Zjistěte, jaké akce jsou k dispozici v pracovních postupech Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## O akcích
Akce definují, co se stane po spuštění. Můžete řetězit více akcí dohromady a vytvářet tak složité automatizace.
<Tip>
* Použijte nástroj pro výběr proměnných (klikněte na ikonu `(x+)`) k procházení dostupných dat z předchozích kroků
* Najetím myší na libovolné vstupní pole zjistíte, ze kterého kroku proměnná pochází — užitečné, když stejné pole (např. ID) existuje ve více předchozích krocích
* Každé akci dejte výstižný název pro snazší údržbu
</Tip>
## Akce se záznamy
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Vytvořit záznam
Přidává nový záznam do vybraného objektu.
**Konfigurace**:
* Vyberte cílový objekt
* Vyplňte povinná a volitelná pole
* Použijte data z předchozích kroků nebo hodnoty zadané ručně k vyplnění polí
**Výstup**: Data nově vytvořeného záznamu jsou k dispozici pro použití v následujících krocích.
### Aktualizovat záznam
Mění existující záznam ve vybraném objektu.
<img src="/images/user-guide/workflows/update_record.png" style={{width:'100%'}} />
**Konfigurace**:
* Vyberte cílový objekt
* Vyberte specifický záznam pro aktualizaci.
* Můžete buď vybrat pevně daný záznam pomocí rozevírací nabídky zobrazující všechny dostupné záznamy.
* Nebo můžete nechat záznam vybrat dynamicky tím, že určíte záznam nalezený v předchozím kroku pomocí `(x+)`. V této fázi nemůžete vyhledávat záznam podle různých kritérií. Pokud jste zatím neurčili záznam, přidejte krok `Search Record` před tento krok `Update Record`.
* Vyberte pole k úpravě a zadejte nové hodnoty
**Výstup**: Data aktualizovaného záznamu jsou k dispozici pro použití v následujících krocích.
### Smazat záznam
Odstraní záznam z vybraného objektu.
**Konfigurace**:
* Vyberte cílový objekt
* Vyberte specifický záznam pro smazání
**Výstup**: Data smazaného záznamu zůstávají k dispozici pro použití v následujících krocích.
### Hledání záznamů
Najde záznamy ve vybraném objektu pomocí filtračních podmínek.
**Konfigurace**:
* Vyberte objekt pro hledání
* Nastavte kritéria filtru k zúžení výsledků
* Nakonfigurujte řazení a limity
**Výstup**: Vrací odpovídající záznamy, které lze použít v následujících krocích.
<Note>
**Omezení**: Search Records vrací maximálně **200 záznamů**. Pokud potřebujete zpracovat více, přidejte konkrétní filtry k omezení výsledků nebo použijte naplánované pracovní postupy ke zpracování v dávkách.
</Note>
**Doporučená praxe**: Použijte [větve](/l/cs/user-guide/workflows/capabilities/workflow-branches) po kroku Search Records pro zpracování scénářů "nalezeno" vs "nenalezeno".
### Vložit nebo aktualizovat záznam
Vytvoří nový záznam nebo aktualizuje existující na základě kritérií shody. Hodí se, když si nejste jisti, zda záznam již existuje.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Konfigurace**:
* Vyberte cílový objekt
* Všimněte si, která pole lze použít pro shodu: e-mail u osob, doména u společností, ID u libovolného objektu nebo jakékoli pole označené jako jedinečné. Níže budete muset vyplnit alespoň jedno z nich.
* Vyplňte hodnoty polí. Nezapomeňte vyplnit alespoň jeden z jedinečných identifikátorů.
<Note>
**Shoda obvykle funguje ještě lépe, když přidáte pouze jeden jedinečný identifikátor.** Například snímek obrazovky níže bude párovat společnosti podle jejich domény. ID není nutně potřeba.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
* Použijte data z předchozích kroků k vyplnění polí
**Jak to funguje**:
1. Vyhledá záznam odpovídající vašim kritériím
2. Pokud nalezeno → aktualizuje existující záznam
3. Pokud nenalezeno → vytvoří nový záznam
**Výstup**: Data vytvořeného nebo aktualizovaného záznamu jsou k dispozici pro použití v následujících krocích.
## Akce toku
### Iterátor
**Prochází polem záznamů** vrácených z předchozího kroku, což umožňuje provádět akce na každém záznamu jednotlivě.
**Konfigurace**:
* Vyberte pole záznamů z předchozího kroku (např. výsledky vyhledávacích záznamů, z manuálního spouštěče s hromadnou dostupností z kódu uzlu). Když krok Code nebo Logic Function vrátí pole na nejvyšší úrovni, vyberte možnost **Whole list**, abyste procházeli celý výstup.
* Definujte akce, které budou provedeny na každém záznamu v cyklu.
<Note>
- V Iterátoru můžete přidat několik akcí.
- Pokud používáte větve uvnitř Iteratoru, ujistěte se, že poslední krok každé větve se připojí zpět k Iteratoru pro zavření smyčky.
</Note>
* Přístup k polím `Current Item`: chcete-li použít pole ze záznamu, který se právě zpracovává, klikněte na krok **Iterator** a vyberte **Current item**. Zobrazí se seznam dostupných polí z daného záznamu a můžete je vybrat k použití v následujících akcích. Můžete také vybrat **Use the whole item**, abyste předali celou aktuální položku do následujícího kroku.
<VimeoEmbed videoId="1146577247" title="Ukázka videa" />
### Filtr
Filtruje záznamy na základě zadaných podmínek a propustí pouze záznamy, které splňují kritéria.
**Konfigurace**:
* Vyberte záznam k filtrování
* Definujte filtrační podmínky a kritéria
* Nakonfigurujte, které záznamy by měly projít do následujících kroků
<Note>
1. **Výstup**: Uzly filtru nevracejí data — fungují jako brány. Pokud jsou podmínky splněny, pracovní postup pokračuje. Pokud ne, pracovní postup se v dané větvi zastaví.
2. Operátor `IS` lze použít s číselnými poli. Chová se jako `EQUAL`.
</Note>
### Zpoždění
Pozastaví provádění pracovního postupu na zadanou dobu nebo do konkrétního data/času.
**Typy zpoždění**:
| Typ | Popis |
| --------------------- | ------------------------------------------------------ |
| **Doba trvání** | Čekat po konkrétní dobu (dny, hodiny, minuty, sekundy) |
| **Naplánované datum** | Čekat do konkrétního data a času |
**Konfigurace pro dobu trvání**:
* Nastavte dny, hodiny, minuty a/nebo sekundy
* Kombinujte více jednotek (např. 2 dny a 4 hodiny)
**Konfigurace pro naplánované datum**:
* Vyberte datum a čas
* Může odkazovat na datumové pole z předchozího kroku (např. navázání kontaktu 3 dny po schůzce)
**Případy použití**:
* Počkejte 24 hodin před odesláním navazujícího e-mailu
* Pozastavte až do data uzavření příležitosti
* Naplánujte akce na pracovní hodiny
<Note>
Naplánované datum nesmí být v minulosti. Pokud je použito datumové pole z předchozího kroku a datum již uplynulo, pracovní postup selže.
</Note>
**Limity a kredity**:
* **Žádný maximální limit délky** — můžete nastavit zpoždění v minutách, dnech, týdnech nebo i delší období
* **Spotřebován 1 kredit** při spuštění uzlu Zpoždění, bez ohledu na délku
* **Žádné kredity se nespotřebovávají** během čekání — 5minutové zpoždění stojí stejně jako 5denní zpoždění
## Komunikační akce
### Odeslat e-mail
Odesílá e-mail z vašeho pracovního postupu. Skvělé pro šablonované hromadné e-maily. E-maily budou vypadat jako ty, které posíláte ze své schránky.
Není vhodné pro newslettery (které vyžadují bohatší formátování) nebo automatické e-mailové sekvence.
**Předpoklady**: Přidejte e-mailový účet v Nastavení → Účty
**Konfigurace**:
* Vyberte e-mailový účet odesílatele
<Note>
E-maily můžete odesílat pouze z poštovních schránek synchronizovaných s vaším vlastním účtem Twenty. Odesílání z poštovních schránek ostatních členů týmu (např. e-mail vlastníka účtu) je v plánu.
</Note>
Ve všech následujících krocích můžete pro personalizaci odkazovat na proměnné z předchozích kroků.
* Zadejte e-mailovou adresu příjemce.
<Note>
V tuto chvíli je možný pouze jeden příjemce.
</Note>
* Nastavte předmět.
* Sestavte tělo zprávy. Můžete formátovat odkazy, vytvářet číslované seznamy, seznamy odrážek a přidávat přílohy.
<Note>
Přidávání HTML podpisů momentálně není možné.
</Note>
### Formulář
Vyvolá formulář během provádění pracovního postupu pro sběr uživatelských vstupů. Odpovědi lze poté použít v následujících krocích k vytváření záznamů, odesílání e-mailů nebo provádění jiných akcí na základě zadaných údajů.
<Warning>
**Formuláře jsou navrženy pouze pro ruční spuštění**. U workflow s jinými spouštěči (vytvoření záznamu, aktualizace atd.) jsou formuláře přístupné pouze přes rozhraní běžů workflow, což neodpovídá očekávané uživatelské zkušenosti. Oznamovací středisko bude uvolněno v roce 2026 za účelem řádné podpory formulářů v automatizovaných pracovních postupech.
</Warning>
**Konfigurace**:
* Nakonfigurujte pole, která budou uživatelé vyplňovat. Pro každé pole zvolte
* typ z možností: text, číslo, datum, daný záznam, výběrové pole. Pole všech objektů jsou k dispozici pro výběr.
* štítek
* výchozí hodnotu pod `Placeholder` (volitelné)
* Upravte název formuláře
**Výstup**: Odpovědi z formuláře jsou k dispozici pro použití v následujících krocích.
**Příklad**: Pracovní postup "Rychlé vedení" je ve výchozím nastavení dostupný ve všech pracovních prostorách, dostupný kdekoli v příkazové nabídce `Cmd+K`.
**Jak vyplnit formulář**:
* Spusťte manuální pracovní tok z menu příkazu `Cmd+K`
* Vyplňte formulář zobrazený v postranním panelu a klikněte na `Submit`.
<Note>
Pole nelze nastavit jako povinná.
</Note>
<VimeoEmbed videoId="1147277989" title="Ukázka videa" />
## Integrační akce
### Kód
Spouští vlastní JavaScript ve vašem pracovním postupu.
Na pozadí je každá akce Code podpořena vlastní **logickou funkcí** — serverovou funkcí v TypeScriptu, která běží na platformě Twenty. Když přidáte akci Code, Twenty vytvoří pro tento krok vyhrazenou logickou funkci a zobrazí její editor přímo inline, takže kód, který napíšete, zůstává u pracovního postupu.
**Konfigurace**:
* Přístup k proměnným z předchozích kroků. Názvy proměnných můžete dynamicky upravovat.
<VimeoEmbed videoId="1147281795" title="Ukázka videa" />
* Zapište JavaScriptový kód v editoru
* Vrátit proměnné pro použití v následujících krocích
* Testovat kód přímo ve kroku
<Note>
Pokud potřebujete ve svém kódu použít externí klíče API, musíte je zadat přímo do těla funkce. Nelze nakonfigurovat API klíče jinde a odkazovat na ně v logické funkci.
</Note>
<Tip>
**Pracujete s poli?** Pole z externích systémů nebo předchozích kroků mohou přijít jako řetězce. Řešení viz [Jak pracovat s poli v akcích Code](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
<Tip>
Klikněte na čtvercovou ikonu vpravo nahoře v editoru kódu a zobrazte jej na celou obrazovku — hodí se to, protože výchozí šířka editoru je omezená.
</Tip>
#### Znovupoužití logické funkce napříč pracovními postupy
Inline akce Code je skvělá pro jednorázovou logiku, ale kód, který obsahuje, patří pouze tomuto jedinému kroku. Když chcete sdílet stejnou logiku napříč několika pracovními postupy — nebo ji udržovat jako verzovaný zdrojový kód v aplikaci — definujte **znovupoužitelnou logickou funkci** místo kopírování a vkládání kódu do každé akce Code.
Logická funkce je definována jednou v aplikaci (pomocí SDK `defineLogicFunction`) a zpřístupněna v nástroji pro tvorbu pracovních postupů přidáním `workflowActionTriggerSettings`. Jakmile je vaše aplikace nainstalována, tato funkce se objeví jako samostatná akce v nástroji pro tvorbu pracovních postupů vedle vestavěných akcí. Její výběr vykreslí vstupní pole, která jste deklarovali (s výběry proměnných, stejně jako u jiných akcí), a spustí váš sdílený kód — není potřeba žádný inline JavaScript.
| | Akce Code | Znovupoužitelná logická funkce |
| ---------------- | ------------------------------------------------------ | ----------------------------------------------------------------- |
| **Kde kód žije** | Inline editor, vázaný na jeden krok pracovního postupu | Definována v aplikaci, verzovaná v systému správy zdrojového kódu |
| **Znovupoužití** | Kopírováno a vkládáno pro každý krok | Přidána jako akce v libovolném pracovním postupu |
| **Vstupy** | Proměnné zapojené v editoru | Pole vykreslená z vámi deklarovaného vstupního schématu |
| **Vhodné pro** | Rychlá logika specifická pro daný pracovní postup | Sdílená logika používaná napříč více pracovními postupy |
Obě běží ve stejném běhovém prostředí logických funkcí, takže akci Code, kterou jste prototypovali inline, lze později povýšit na znovupoužitelnou logickou funkci s minimálními změnami.
<Tip>
Referenční dokumentaci pro vývojáře k definování logických funkcí a jejich zpřístupnění v nástroji pro tvorbu pracovních postupů najdete v [Logic Functions](/l/cs/developers/extend/apps/logic/logic-functions) — zejména v sekci **Exposing a function as an AI tool or workflow action** a `workflowActionTriggerSettings`.
</Tip>
### HTTP požadavek
Odešle požadavek na externí API v rámci vašeho pracovního postupu.
<img src="/images/user-guide/workflows/http_action.png" style={{width:'100%'}} />
**Konfigurace**:
* Zadejte URL endpointu API. Je možné použít parametry z předchozích kroků.
* Vyberte metodu HTTP (GET, POST, PUT, PATCH, DELETE)
* Přidejte potřebné hlavičky a hodnoty
* Poskytněte ukázku odpovědi pro zobrazení struktury
## Akce AI
### Agent AI – již brzy
Spouští agenta AI ve vašem pracovním postupu k provádění inteligentních úloh.
**Konfigurace**:
* **Agent**: Vyberte existujícího agenta AI nebo použijte výchozího agenta
* **Prompt**: Napište instrukci pro agenta AI
* Odkazujte v promptu na proměnné z předchozích kroků
**Co agenti AI dokážou**:
* Analyzovat a shrnovat data
* Klasifikovat nebo kategorizovat záznamy
* Generovat textový obsah
* Rozhodovat se na základě dat
* Pracovat s vašimi daty CRM pomocí nástrojů
**Výstup**: Odpověď agenta AI je k dispozici pro použití v následujících krocích. Pokud má agent strukturované schéma výstupu, bude odpověď tento formát dodržovat.
<Note>
Akce agenta AI spotřebovávají kredity pracovního postupu podle použitého modelu AI. Podrobnosti viz [Kredity pracovního postupu](/l/cs/user-guide/workflows/capabilities/workflow-credits).
</Note>
<Note>
Agenti AI respektují oprávnění založená na rolích. V části **Nastavení → Členové → Role** můžete agentům přiřadit konkrétní role, abyste řídili, k jakým datům mají přístup. Podrobnosti viz [Oprávnění](/l/cs/user-guide/permissions-access/capabilities/permissions).
</Note>

View File

@@ -0,0 +1,66 @@
---
title: Větve pracovního postupu
description: Vytvářejte paralelní cesty a podmíněnou logiku ve svých pracovních postupech.
---
Větve vám umožní rozdělit pracovní postup do více cest, které mohou běžet současně nebo podmíněně na základě vašich dat.
<img src="/images/user-guide/workflows/branches.png" style={{width:'100%'}} />
## Jak větve fungují
Když z jednoho uzlu vytvoříte více propojení, každá cesta se stane větví. Ve výchozím nastavení se **všechny větve provádějí paralelně** — nečekají na sebe navzájem.
## Vytváření větví
### Přidat novou větev
1. **Klikněte pravým tlačítkem na hlavní plátno** pracovního postupu (ne na existující uzel)
2. Klikněte na **Přidat uzel**
3. Vyberte typ uzlu pro svou novou větev
4. Přetáhněte šipku ze spodní části předchozího kroku na horní část této nové akce
5. Opakujte pro přidání dalších větví ze stejného uzlu
<Note>
Každá větev je nezávislá. Přidání větve neovlivní jiné existující cesty z tohoto uzlu.
</Note>
### Vizuální rozložení
Větve se v editoru pracovního postupu zobrazují jako paralelní cesty. Můžete přetahovat uzly a upravovat tak vizuální rozložení, aniž by to ovlivnilo běh.
## Podmíněné větve
Protože se všechny větve ve výchozím nastavení spouštějí, použijte uzly **Filtr** ke kontrole, které cesty se skutečně provedou:
| Větev | Podmínka filtru | Akce |
| ----- | -------------------- | ------------------------------ |
| A | Fáze = "Vyhráno" | Odeslat gratulační e‑mail |
| B | Fáze = "Prohráno" | Vytvořit úkol následného kroku |
| C | Fáze = "Vyjednávání" | Upozornit manažera |
1. Vytvářejte větve ze svého spouštěče nebo akce
2. Přidejte uzel **Filtr** jako první krok každé větve
3. Nakonfigurujte každý filtr s navzájem se vylučujícími podmínkami
4. Za každý filtr přidejte své akce
V provádění bude pokračovat pouze větev (větve), kde je splněna podmínka filtru.
## Slučování větví
**Větve se automaticky neslučují.** Každá větev běží nezávisle, dokud neskončí. Máte plnou volnost v tom, jak to řešit:
* **Možnost 1: Nechávejte větve oddělené**
Každá větev samostatně zpracovává své následné akce. Toto je nejjednodušší přístup, když není potřeba, aby se větve sbíhaly.
* **Možnost 2: Sloučit větve ručně**
Při vytváření pracovního postupu můžete ručně připojit více větví ke stejné následné akci. Jednoduše přetáhněte šipky z konce každé větve do společného uzlu.
<Note>
Ačkoli můžete k pozastavení běhu použít uzel [Delay](/l/cs/user-guide/workflows/capabilities/workflow-actions#delay), momentálně jej nelze nastavit tak, aby čekal "dokud neskončí jiná větev".
</Note>
## Související
* [Jak používat větve v pracovních postupech](/l/cs/user-guide/workflows/capabilities/use-branches-in-workflows) - Průvodce krok za krokem
* [Akce pracovního postupu](/l/cs/user-guide/workflows/capabilities/workflow-actions) - Dostupné akce včetně Filtru

View File

@@ -0,0 +1,75 @@
---
title: Kredity pracovních postupů
description: Pochopte spotřebu a správu kreditů pracovních postupů.
---
Kredity pracovních postupů pohánějí vaše automatizace v Twenty. Pochopení, jak fungují, vám pomůže optimalizovat náklady a efektivně spravovat svůj rozpočet na automatizaci.
## Přidělení kreditů
Kredity pracovních postupů jsou přidělovány podle vašeho fakturačního cyklu, nikoli podle úrovně plánu:
| Fakturační cyklus | Kredity |
| ---------------------- | ------------------ |
| **Měsíční předplatné** | 5 kreditů za měsíc |
| **Roční předplatné** | 50 kreditů za rok |
<Note>
5 měsíčních kreditů je štědrý limit pro standardní automatizace. Většina týmů tento limit při typickém používání pracovních postupů nepřekročí. Dodatečné kredity jsou potřeba především pro pokročilé akce Code a pracovní postupy s využitím AI.
</Note>
## Jak funguje spotřeba kreditů
Kredity se spotřebovávají při provádění pracovních postupů, nikoli při jejich vytváření. Každá akce v pracovním postupu spotřebovává kredity podle své složitosti:
### Spotřeba kreditů podle typu akce
* **Základní interní operace**: Velmi nízká spotřeba kreditů
* Hledání záznamů
* Vytvořit záznam
* Aktualizovat záznam
* Smazat záznam
* Akce formuláře
* **Složitější operace**: Vyšší spotřeba kreditů
* Akce kódování (provádění JavaScriptu)
* HTTP požadavky na externí služby
* **Funkce AI**: Vyšší spotřeba kreditů
* Akce agenta AI spotřebovávají kredity podle použitého modelu AI
* Složitější prompty a delší výstupy spotřebují více kreditů
* **Akce Delay**: Minimální spotřeba kreditů
* Uzel Delay při provedení spotřebuje **1 kredit**
* **Žádné kredity se nespotřebovávají** během doby čekání
* Pětiminutové zpoždění stojí stejně jako pětidenní zpoždění
### Okamžité stržení
Kredity jsou strhávány v reálném čase při provádění pracovních postupů. Toto znamená:
* Návrhy pracovních postupů nespotřebovávají kredity
* Pouze aktivní, běžící pracovní postupy používají vaše přidělené kredity
* Nezdařené pracovní postupy stále vyčerpávají kredity za dokončené kroky
## Správa kreditů
### Zkontrolujte využití kreditů
1. Přejděte na **Nastavení → Fakturace**
2. Zobrazte svoji aktuální spotřebu kreditů a zbývající zůstatek
3. Sledujte vzory používání pro optimalizaci svých pracovních postupů
### Nákup dalších kreditů
Pokud potřebujete více kreditů než přidělení vašeho plánu:
1. Přejděte na **Nastavení → Fakturace**
2. Klikněte na možnost koupit další kredity. Balíčky různých velikostí jsou k dispozici.
3. Kredity jsou přidány k vašemu aktuálnímu zůstatku
## Osvedčené postupy
* **Dávkové zpracování**: Pro snížení individuálních akčních hovorů použijte hromadné operace a akce Iterátor
* **Optimalizace manuálních spouštěčů**: U manuálních spouštěčů zvolte dostupnost `Bulk` pro zpracování více záznamů v rámci jednoho spuštění pracovního postupu
* Optimalizujte akce kódu pro efektivitu

View File

@@ -0,0 +1,93 @@
---
title: Běhy průběhu práce
description: Sledujte a spravujte běhy pracovních postupů.
---
## O bězích
**Běh** je záznam provedení pracovního postupu. Při každém spuštění pracovního postupu—ať už událostí záznamu, plánem, ruční akcí nebo webhookem—se vytvoří nový běh.
## Zobrazení běhů
### Z editoru pracovních postupů
1. Otevřete pracovní postup, který chcete sledovat
2. Klikněte na panel **Běhů** na pravé straně
3. Zobrazte seznam nedávných běhů s jejich stavem
### Ze zobrazení běhů pracovních postupů
1. V postranním panelu přejděte na **Běhy pracovních postupů**
2. Zobrazte běhy napříč všemi pracovními postupy
3. Filtrujte podle stavu, pracovního postupu nebo data
## Stavy běhů
| Stav | Popis |
| ------------- | ----------------------------------------------------------------------------------- |
| **Běží** | Pracovní postup se právě provádí |
| **Dokončeno** | Pracovní postup byl úspěšně dokončen |
| **Selhalo** | Pracovní postup narazil na chybu a zastavil se |
| **Čekání** | Pracovní postup je pozastaven (např. čeká na akci Zpoždění nebo odeslání formuláře) |
## Podrobnosti běhu
Kliknutím na libovolný běh zobrazíte:
* **Stav**: Aktuální stav běhu
* **Zahájeno**: Kdy běh začal
* **Doba trvání**: Jak dlouho běh trval
* **Data spouštěče**: Vstup, který spustil pracovní postup
* **Výstupy kroků**: Data vrácená jednotlivými kroky
* **Chybové zprávy**: Pokud běh selhal, co se pokazilo
## Provádění krok za krokem
Každý běh ukazuje průchod vaším pracovním postupem:
1. Zjistěte, které kroky byly úspěšně dokončeny
2. Zjistěte, kde došlo k selhání
3. Zobrazte data předávaná mezi kroky
4. Laděte problémy zkoumáním vstupů a výstupů kroků
## Zpracování chyb
Když běh selže:
1. Otevřete neúspěšný běh
2. Najděte krok, který selhání způsobil
3. Zkontrolujte podrobnosti v chybové zprávě
Běžné problémy:
* Chybějící povinná pole
* Neplatný formát dat
* Chyby externího API
* Problémy s oprávněními
## Opětovné spuštění pracovních postupů
Pokud spuštění selže, můžete:
* Opravit základní problém a počkat na další aktivaci spouštěče
* U manuálních pracovních postupů spustit znovu se stejnými nebo aktualizovanými daty
* Zkontrolovat logiku pracovního postupu, abyste předešli budoucím selháním
## Tipy pro výkon
### Správa historie spouštění
* Runy se uchovávají pro historickou referenci
* Velmi staré běhy mohou být archivovány automaticky
* Exportovat běh dat, pokud potřebujete uchovávat záznamy
### Monitorování osvědčených postupů
* Po aktivaci nových pracovních postupů pravidelně kontrolovat běh
* Recenze selhala pro identifikaci vzorů
## Související
* [Spouštěče pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Řešení problémů pracovního postupu](/l/cs/user-guide/workflows/how-tos/need-more-help/workflow-troubleshooting)

View File

@@ -0,0 +1,137 @@
---
title: Spouštěče pracovních postupů
description: Seznamte se s různými spouštěči, které zahajují vaše pracovní postupy.
---
## O spouštěčích
Pracovní postupy vždy začínají jedním spouštěčem, který určuje, kdy by měla být automatizace spuštěna.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Pokročilé objekty jsou podporovány!** Kromě standardních CRM objektů (Lidé, Společnosti, Příležitosti) můžete také spouštět pracovní postupy a provádět akce nad:
* Členové pracovního prostoru
* Události v kalendáři
* Zprávy (e-maily)
* Úkoly, poznámky a mnoho dalších systémových objektů
To umožňuje výkonné automatizace, například upozorňovat členy týmu, když jsou v kalendáři vytvořeny události, nebo automaticky zpracovávat příchozí e-maily.
</Tip>
## Záznam je vytvořen
Spouští pracovní postup, když je vytvořen nový záznam ve vybraném objektu (Lidé, Společnosti, Příležitosti nebo jakýkoli vlastní objekt).
**Konfigurace**: Vyberte typ objektu, který chcete sledovat ohledně nových záznamů.
<Note>
* Tento spouštěč je skvělý pro záznamy vytvořené CSV, poštovní schránkou a synchronizací kalendáře nebo API.
* **Nedoporučuje se pro záznamy vytvářené ručně**: s tímto spouštěčem se pracovní postupy spouštějí okamžitě po vytvoření záznamu. Vzhledem k tomu, že dvacet UI nabízí automatické ukládání na létání (neexistuje žádný režim úprav a pak ověření pro uložení záznamů), pracovní postup bude spuštěn před zadáním všech polí uživatele.
Chcete-li tento pracovní postup spouštět u záznamů vytvořených ručně, doporučujeme místo toho použít spouštěč `Record is created or updated`.
</Note>
## Záznam je aktualizován
Spouští pracovní postup, když jsou v existujícím záznamu provedeny změny.
**Konfigurace**:
* Vyberte typ objektu
* Volitelně specifikujte, které pole chcete sledovat pro změny
## Záznam je aktualizován nebo vytvořen
Spouští pracovní postup, když je záznam buď vytvořen, nebo aktualizován ve vybraném objektu.
**Proč to je důležité**: Tento spouštěč je obzvláště užitečný, protože záznamy vytvořené různými metodami se chovají odlišně:
* **API/CSV importy**: Záznamy jsou vytvořeny s okamžitě vyplněnými všemi poli
* **Manuální tvorba**: Záznamy jsou nejprve vytvořeny, poté jsou pole přidávány v následných aktualizacích
**Konfigurace**:
* Vyberte typ objektu, který chcete sledovat
* Volitelně specifikujte, které pole chcete sledovat pro změny
* Pracovní postup se spustí jak při počátečním vytvoření, tak při jakýchkoliv následných aktualizacích
## Záznam je odstraněn
Spouští pracovní postup, když je záznam odstraněn z objektu.
**Konfigurace**: Vyberte typ objektu, který chcete sledovat ohledně odstranění.
## Ruční spouštěč
Spustí pracovní postup, když jej vyvolá uživatelská akce. K tomuto spouštěči je možné přistupovat prostřednictvím nabídky `Cmd+K` nebo pomocí vlastního tlačítka, které se zobrazí v horní navigační liště po výběru záznamu nebo záznamů.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Konfigurace dostupnosti**:
Vyberte, jak má pracovní postup zpracovávat výběr záznamů:
* **Globální**: K aktivaci tohoto pracovního postupu není vyžadován žádný záznam. Pracovní postup je spuštěn z menu příkazu `Cmd+K` kdekoli (z libovolného objektu) a jako vstup nepoužívá záznam(y).
Pro **single** a **Bulk** dostupnost budou vybrané záznamy předány vašemu pracovnímu postupu. Toto je konfigurováno pro daný objekt a před spuštěním pracovního postupu lze vybrat několik záznamů.
* **Jedno**: Pracovní postup běží od začátku do konce tolikrát, kolikrát jsou vybrány záznamy.
<Note>
**Měkký limit: 100 běhů za minutu**. Po překročení tohoto limitu zůstanou pracovní postupy ve stavu "Not Started" a budou zpracovávány postupně—buď úlohou na pozadí, nebo když do fronty vstoupí další pracovní postup. To znamená, že se spouštěčem Jednotlivé můžete vybrat více než 100 záznamů; provádění bude jen pomalejší.
</Note>
* **Hromadné**: Pracovní postup bude spuštěn jednou, poskytne celý seznam záznamů jako vstup. To znamená, že pracovní postup musí obsahovat [akci Iterator](/l/cs/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
Toto je pokročilejší a hodí se pro uživatele, kteří chtějí optimalizovat počet běhů pracovního postupu.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
**Dodatečné nastavení**:
* Vyberte cílový objekt (pro dostupnost v režimu Jednotlivé a Hromadné)
* Vyberte ikonu příkazu pro spuštění pracovního postupu
* Nakonfigurujte umístění v navigaci (připnuté nebo nepřipnuté)
**Způsoby přístupu**:
* Nabídka `Cmd+K` pro vyhledání a spuštění ručních pracovních postupů
* Vlastní tlačítko v horní navigaci (pokud je nastaveno)
## Časový spouštěč: Podle plánu
Spouští pracovní postup v opakovaných intervalech, které definujete.
**Konfigurace**:
* Vyberte časovou jednotku (minuty, hodiny, dny)
* Zadejte hodnotu nebo použijte vlastní cron výrazy pro rozšířené plánování
<Note>
**Časové pásmo**: Plánované pracovní postupy běží v **UTC**. Při nastavování hodin pro denní plány převeďte svůj místní čas na UTC.
</Note>
## Externí spouštěč: Webhook
Spustí pracovní postup, když je z externí služby přijat požadavek typu GET nebo POST.
<img src="/images/user-guide/workflows/webhook_trigger.png" style={{width:'100%'}} />
**Konfigurace**:
* Pracovní postup poskytne jedinečnou URL adresu webhooku—zkopírujte ji a přidejte do svého externího systému jako koncový bod, který se má volat.
* Pro požadavky POST definujte očekávanou strukturu těla, aby Twenty vědělo, jaká data očekávat. Zde přidejte pole, která obdržíte a která budou dále ve vašem pracovním postupu potřeba.
* Nakonfigurujte ověřování (již brzy).
## Výběr správného spouštěče
| Případ použití | Doporučený spouštěč |
| ---------------------------------------------- | ------------------------------------ |
| Nové potenciální kontakty je potřeba zpracovat | Záznam je vytvořen |
| Změny dat je potřeba synchronizovat | Záznam je aktualizován |
| Import/ruční zpracování dat | Záznam je aktualizován nebo vytvořen |
| Čištění po smazání | Záznam je odstraněn |
| Akce spuštěná uživatelem | Spustit manuálně |
| Pravidelné reporty | Podle plánu |
| Externí integrace | Webhook nebo Podle plánu |

View File

@@ -0,0 +1,84 @@
---
title: Verze pracovního postupu
description: Spravujte verze a koncepty pracovních postupů.
---
## O verzích
Pokaždé, když aktivujete pracovní postup, se vytvoří nová verze. To vám umožní sledovat změny v čase a v případě potřeby se vrátit k předchozím konfiguracím.
## Stavy verzí
| Stav | Popis |
| ---------------- | ------------------------------------ |
| **Koncept** | Upravováno, dosud nezveřejněno |
| **Aktivní** | Živá verze reagující na spouštěče |
| **Deaktivováno** | Dříve aktivní, ale ručně zastaveno |
| **Archivováno** | Minulé verze uchovávané pro historii |
## Práce s koncepty
Když upravíte aktivní pracovní postup, vaše změny se uloží jako **koncept**. Aktivní verze běží dál, zatímco pracujete na aktualizacích.
Až dokončíte úpravy, můžete:
* **Aktivovat**: Publikovat koncept jako novou aktivní verzi (předchozí verze bude archivována)
* **Zahodit**: Smazat koncept a ponechat aktuální aktivní verzi
## Historie Verzí
### Zobrazení minulých verzí
1. Otevřete pracovní postup
2. Klikněte na kartu **Verze**
3. Zobrazí se všechny předchozí verze s časovými razítky
### Obnovení verze
1. Najděte verzi, kterou chcete obnovit
2. Klikněte na **Použít jako koncept**
3. Verze se zkopíruje do nového konceptu
4. Proveďte všechny potřebné aktualizace
5. Aktivujte, až budete připraveni.
## Osvědčené postupy
### Správa verzí
* Aktivujte teprve, až bude připraveno pro produkční prostředí.
* Mezi verzemi udržujte smysluplné změny.
* Zdokumentujte zásadní změny v názvech nebo popisech pracovních postupů
* Testujte v režimu konceptu před aktivací
### Vrácení změn
* Pokud nová verze způsobuje problémy, obnovte předchozí verzi
* Použijte historii verzí ke sledování toho, co se změnilo
* Obnovené verze vždy otestujte před aktivací
## Běžné pracovní postupy
### Rychlá úprava
1. Proveďte drobné změny v aktivním pracovním postupu
2. Testujte v režimu konceptu
3. Aktivujte novou verzi
### Zásadní revize
1. Použijte předchozí verzi jako výchozí bod
2. Proveďte významné změny v konceptu
3. Důkladně otestujte všechny scénáře
4. Aktivujte, až budete mít jistotu
### Vrácení zpět
1. Identifikujte problém s aktuální verzí
2. Najděte v historii poslední funkční verzi
3. Klikněte na **Použít jako koncept**
4. Aktivujte, abyste obnovili původní chování
## Související
* [Začínáme s pracovními postupy](/l/cs/user-guide/workflows/overview)
* [Běhy pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-runs)