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

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,61 @@
---
title: Creați o vizualizare Calendar pentru sarcini scadente
description: Vizualizați sarcinile și termenele limită într-un calendar.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Cerințe
Obiectul Sarcini trebuie să aibă un câmp **Data scadenței** (tip Dată sau Dată și oră).
## Pași
1. Navigați la **Sarcini**
2. Faceți clic pe meniul derulant al vizualizării → **+ Adaugă vizualizare**
3. Denumiți vizualizarea (de ex., "Calendar sarcini")
4. Faceți clic pe **Creare**
5. Faceți clic pe **Opțiuni** și selectați **Calendar** ca tip de afișare
6. Alegeți **Data scadenței** ca câmp de dată
7. Faceți clic pe **Salvare**
## Configurați calendarul
### Afișați câmpurile în evenimente
1. Faceți clic pe **Opțiuni → Câmpuri**
2. Faceți clic pe **pictograma ochi** pentru a afișa/ascunde câmpurile
3. Trageți pentru a reordona
Câmpuri recomandate pentru afișare:
* **Titlu** — numele sarcinii
* **Responsabil** — cine este responsabil
* **Stare** — progresul curent
### Filtrați calendarul
Creați vizualizări axate:
* **Sarcinile mele**: Filtrați după Responsabil = Eu
* **Săptămâna aceasta**: Filtrați după Data scadenței = Săptămâna aceasta
* **Întârziate**: Filtrați după Data scadenței < Astăzi, Stare ≠ Finalizat
## Alte cazuri de utilizare ale calendarului
| Obiect | Câmp de dată | Scop |
| ------------------------ | ------------------ | ---------------------------------- |
| Oportunități | Data închiderii | Urmăriți închiderile preconizate |
| Evenimente personalizate | Data evenimentului | Planificați activități |
| Proiecte | Termen limită | Monitorizați termenele proiectului |
## Sfaturi
* **Revizuiți săptămânal**: Începeți fiecare săptămână prin verificarea vizualizării calendarului
* **Combinați cu vizualizarea de tabel**: Folosiți calendarul pentru vedere de ansamblu, tabelul pentru detalii
* **Setați vizibilitatea**: Păstrați calendarele de sarcini personale ca Nelistat
## Conexe
* [Vizualizare Calendar](/l/ro/user-guide/views-pipelines/capabilities/calendar-view) — toate funcționalitățile calendarului
* [Filtre și sortare](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrați calendarul

View File

@@ -0,0 +1,80 @@
---
title: Creați o vizualizare Kanban pentru proiecte
description: Urmăriți proiectele prin etape folosind un tablou vizual.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Utilizați o vizualizare Kanban pentru a afișa proiectele (sau orice obiect cu etape) ca carduri care se deplasează între coloane.
<VimeoEmbed videoId="927888627" title="Demonstrație video" />
## Cerințe
Obiectul are nevoie de un **câmp Select** pentru a fi folosit ca coloane (de ex., Stare, Etapă, Fază).
Dacă nu aveți unul:
1. Accesați **Setări → Model de date**
2. Selectați obiectul
3. Adăugați un câmp Select cu opțiunile pentru etape
## Pași
1. Navigați la obiectul dvs. (de ex., Proiecte, Sarcini)
2. Faceți clic pe meniul derulant al vizualizării → **+ Adaugă vizualizare**
3. Denumiți vizualizarea (de ex., "Tablou proiect")
4. Faceți clic pe **Creare**
5. Faceți clic pe **Opțiuni** și selectați **Kanban** ca tip de afișare
6. Vizualizarea utilizează automat câmpul dvs. Select pentru coloane
7. Faceți clic pe **Salvare**
## Configurați tabloul
### Afișați câmpurile cheie pe carduri
1. Faceți clic pe **Opțiuni → Câmpuri**
2. Găsiți câmpurile în secțiunea "Câmpuri ascunse"
3. Faceți clic pe **pictograma ochi** pentru a le afișa pe carduri
4. Trageți pentru a reordona
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
### Activează vizualizarea compactă
Pentru o vedere de ansamblu:
1. Faceți clic pe **Opțiuni**
2. Activați comutatorul pentru **Vizualizare compactă**
Cardurile afișează doar numele înregistrării.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
### Adăugați agregări
Afișați numărul de elemente sau totalurile în partea de sus a fiecărei coloane:
1. Faceți clic pe numărul de lângă numele unei coloane
2. Selectați o agregare (Număr, Sumă etc.)
3. Alegeți un câmp, dacă este necesar
## Mutarea cardurilor
Trageți și plasați cardurile între coloane pentru a le actualiza starea.
<VimeoEmbed videoId="927888627" title="Demonstrație video" />
## Exemplu: Panou de sarcini
| Coloană (Stare) | Carduri |
| --------------- | ----------------------- |
| **De făcut** | Sarcini noi |
| **În progres** | Sarcini active |
| **Revizuire** | În așteptarea aprobării |
| **Finalizat** | Completat |
## Conexe
* [Vizualizări Kanban](/l/ro/user-guide/views-pipelines/capabilities/kanban-views) — agregări, vizualizare compactă, etape
* [Cum să configurați un pipeline de vânzări](/l/ro/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline) — Kanban pentru oportunități

View File

@@ -0,0 +1,51 @@
---
title: Creați o vizualizare de tabel cu grupare
description: Organizați înregistrările în grupuri pliabile după valoarea câmpului.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Grupați vizualizarea de tabel după un câmp Select pentru a organiza înregistrările în secțiuni pliabile.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Pași
1. Navigați la obiect (Persoane, Companii etc.)
2. Faceți clic pe meniul derulant al vizualizării → **+ Adaugă vizualizare**
3. Denumiți vizualizarea (de ex., "Companii după tip")
4. Faceți clic pe **Creare**
5. Faceți clic pe **Opțiuni → Grupare**
6. Alegeți un câmp Select după care să grupați
7. Faceți clic pe **Salvare**
## Configurați ordinea grupurilor
În **Opțiuni → Grupare → Sortare**, alegeți cum sunt ordonate grupurile:
| Opțiunea | Descriere |
| -------------------- | ------------------------------------------------------------ |
| **Alfabetic** | de la A la Z |
| **Alfabetic invers** | de la Z la A |
| **Ordine manuală** | Trageți grupurile pentru a le reordona în "Grupuri vizibile" |
Faceți clic pe **pictograma în formă de ochi** de lângă un grup pentru a-l ascunde din vizualizare.
<Note>
**Pentru performanțe optime, limitați la 10-15 grupuri vizibile.** Dacă aveți nevoie de mai multe, luați în considerare utilizarea unui tablou de bord.
</Note>
## Exemplu: Companii după industrie
1. Mergeți la **Companii**
2. Creați o vizualizare nouă numită "După industrie"
3. Faceți clic pe **Opțiuni → Grupare**
4. Selectați câmpul **Industrie**
5. Salvează
Acum companiile dvs. sunt organizate după industrie, ceea ce facilitează concentrarea pe câte un segment odată.
## Conexe
* [Vizualizări de Tabel](/l/ro/user-guide/views-pipelines/capabilities/table-views) — toate funcționalitățile vizualizărilor de tabel
* [Filtre și sortare](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — combinați gruparea cu filtrele

View File

@@ -0,0 +1,32 @@
---
title: Restricționează accesul la vizualizarea ta
description: Controlează cine poate vedea vizualizările tale personalizate.
---
Fiecare vizualizare (cu excepția vizualizărilor implicite "Toate [Numele obiectului]") are propria setare de vizibilitate.
## Pași
1. Deschideți vizualizarea pe care doriți să o restricționați
2. Faceți clic pe **Opțiuni** în dreapta sus
3. Click **Visibility**
4. Selectați **Nelistat**
Vederea dvs. este acum vizibilă doar pentru dvs.
## Opțiuni de vizibilitate
| Setare | Cine poate vedea |
| ------------------- | ------------------------------- |
| **Spațiu de lucru** | Toți membrii spațiului de lucru |
| **Nelistat** | Doar tu |
## Notițe
* Implicit "Toate vizualizările [Nume obiect]" nu pot fi făcute nelistate
* Vizualizările nelistate nu apar în meniul derulant al altor utilizatori
* Poți schimba vizibilitatea înapoi la spațiul de lucru în orice moment
## Legate
* [Vezi Setările](/l/ro/user-guide/views-pipelines/capabilities/view-settings) - toate opțiunile de configurare vizualizare

View File

@@ -0,0 +1,120 @@
---
title: Configurați un pipeline de vânzări
description: Configurați-vă pipeline-ul de vânzări pentru a urmări oportunitățile prin etape.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Un pipeline de vânzări în Twenty este o vizualizare Kanban a obiectului Oportunități, în care fiecare coloană reprezintă o etapă în procesul dvs. de vânzări.
## Pasul 1: Configurați etapele
Etapele sunt definite în câmpul **Etapă** al obiectului Oportunități.
1. Accesați **Setări → Model de date**
2. Selectați **Oportunități**
3. Găsiți și faceți clic pe câmpul **Etapă**
4. Adăugați, eliminați sau redenumiți etapele pentru a se potrivi procesului dvs.
<VimeoEmbed videoId="927890428" title="Demonstrație video" />
### Etape recomandate
| Etapa | Scop |
| ------------------- | ------------------------------------ |
| **Nou** | Oportunități noi tocmai identificate |
| **Calificat** | Confirmată ca o potrivire bună |
| **Întâlnire** | Se poartă discuții |
| **Propunere** | Propunere trimisă |
| **Negociere** | Se negociază termenii |
| **Închis câștigat** | Tranzacție reușită |
| **Închis pierdut** | Tranzacție nereușită |
<Note>
**5-7 etape este optim.** Prea multe etape fac conducta greu de scanat; prea puțini își pierd vizibilitatea în progresul tranzacției.
</Note>
## Pasul 2: Creați o vizualizare pentru pipeline
1. Accesați **Oportunități**
2. Faceți clic pe meniul derulant al vizualizării → **+ Adaugă vizualizare**
3. Denumiți-o "Sales Pipeline"
4. Faceți clic pe **Creare**
5. Deschideți **Opțiuni** și selectați **Kanban** ca tip de afișare
Vizualizarea folosește automat câmpul **Etapă** pentru coloane.
## Pasul 3: Configurați vizualizarea
### Afișați câmpurile cheie
1. Faceți clic pe **Opțiuni → Câmpuri**
2. Căutați câmpurile în secțiunea "Câmpuri ascunse"
3. Faceți clic pe **pictograma ochi** pentru a afișa: Companie, Sumă, Data închiderii, Proprietar
### Activați agregările
Afișați totalurile în partea de sus a fiecărei coloane:
1. Faceți clic pe numărul afișat lângă numele unei etape în partea de sus a unei coloane
2. Selectați tipul de agregare (Număr, Sumă, Medie etc.)
3. Alegeți câmpul pe care să îl agregați (de ex., Sumă)
**Exemplu:** Afișați valoarea totală a tranzacțiilor pe etapă prin agregarea câmpului Sumă cu operația Sumă.
### Utilizați vizualizarea compactă (opțional)
Pentru o privire de ansamblu la nivel înalt, cu conținut minim pe card:
1. Faceți clic pe **Opțiuni**
2. Activați comutatorul pentru **Vizualizare compactă**
## Pasul 4: Creați vizualizări personale și de echipă
### "Pipeline-ul meu"
* **Filtru**: Proprietar = Eu
* **Vizibilitate**: Nelistată (vizualizare personală)
### "Pipeline-ul echipei"
* **Filtru**: Niciunul (afișează tot)
* **Vizibilitate**: Workspace (vizualizare partajată)
### "Se închid luna aceasta"
* **Tip**: Tabel
* **Filtru**: Data închiderii = Luna aceasta, Etapa ≠ Închis câștigat, Etapa ≠ Închis pierdut
* **Sortare**: Data închiderii crescător
## Lucrul cu oportunitățile
### Crearea oportunităților
* Faceți clic pe **+ Nou** în vizualizarea Oportunități
* Sau faceți clic pe **+** într-o coloană a unei etape specifice
### Trecerea prin etape
Trageți și plasați cardurile oportunităților între coloane pentru a le actualiza etapa.
<VimeoEmbed videoId="927888627" title="Demonstrație video" />
## Cele mai bune practici
### Igiena pipeline-ului
* Actualizați zilnic tranzacțiile pe măsură ce progresează
* Mutați sau închideți prompt tranzacțiile stagnante
* Mențineți datele de închidere realiste
### Disciplina etapelor
* Definiți criterii clare pentru fiecare etapă
* Mutați tranzacțiile prompt atunci când criteriile sunt îndeplinite
* Nu lăsați tranzacțiile să stea prea mult timp în etape
## Conexe
* [Vizualizări Kanban](/l/ro/user-guide/views-pipelines/capabilities/kanban-views) — agregări și vizualizare compactă
* [Filtre și sortare](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — crearea vizualizărilor filtrate

View File

@@ -0,0 +1,149 @@
---
title: Afișați suma estimată în pipeline-ul dvs.
description: Calculați și afișați valorile ponderate ale oportunităților pe baza probabilității etapei.
---
Suma estimată este o valoare calculată: **Sumă × Probabilitate**. Acest lucru vă ajută să prognozați veniturile prin ponderarea oportunităților în funcție de cât de probabil este să se închidă.
<Tip>
Acesta este un exemplu de creare a [Câmpurilor de formulă](/l/ro/user-guide/workflows/how-tos/crm-automations/formula-fields) folosind fluxuri de lucru.
</Tip>
Acest ghid vă conduce prin configurarea câmpurilor personalizate și a fluxurilor de lucru necesare pentru a calcula și afișa sumele estimate în pipeline-ul dvs.
## Pasul 1: Creați câmpuri personalizate
Aveți nevoie de două câmpuri personalizate pe obiectul Oportunități.
### Creați câmpul Probabilitate
1. Accesați **Setări → Model de date → Oportunități**
2. Faceți clic pe **+ Adaugă câmp**
3. Configurați:
* **Nume**: Probabilitate
* **Tip**: Număr
* **Descriere**: Probabilitate bazată pe etapă (0–100%)
4. Faceți clic pe **Salvare**
### Creați câmpul Sumă estimată
1. Faceți clic pe **+ Adaugă câmp**
2. Configurați:
* **Nume**: Sumă estimată
* **Tip**: Monedă
* **Descriere**: Calculat: Sumă × Probabilitate
3. Faceți clic pe **Salvare**
### Opțional: Setați câmpurile ca numai în citire pentru utilizatori
Dacă nu doriți ca utilizatorii să editeze manual aceste câmpuri calculate:
1. Accesați **Setări → Membri → Roluri**
2. Selectați rolul pe care doriți să-l configurați
3. Găsiți obiectul Oportunități
4. Setați câmpurile **Probabilitate** și **Sumă estimată** ca numai în citire
Acest lucru asigură că doar fluxurile de lucru pot actualiza aceste valori.
## Pasul 2: Creați Fluxul de lucru nr. 1 — Actualizați probabilitatea la schimbarea etapei
Acest flux de lucru setează automat probabilitatea când o oportunitate trece la o nouă etapă.
### Creați fluxul de lucru
1. Accesați **Fluxuri de lucru**
2. Faceți clic pe **+ Flux de lucru nou**
3. Denumiți-l "Actualizați probabilitatea la schimbarea etapei"
### Configurați declanșatorul
1. Adăugați un declanșator **Înregistrare creată sau actualizată**
2. Selectați **Oportunități** ca obiect
3. Filtrați după: câmpul **Etapă** este actualizat
### Adăugați ramuri pentru fiecare etapă
Creați o ramură pentru fiecare etapă cu probabilitatea sa:
| Etapa | Probabilitate |
| --------------- | ------------- |
| Nou | 10% |
| Calificat | 25% |
| Întâlnire | 40% |
| Propunere | 60% |
| Negociere | 80% |
| Închis câștigat | 100% |
| Închis pierdut | 0% |
<Note>
Pentru a crea o ramură nouă, faceți clic dreapta pe planșa fluxului de lucru și faceți clic pe **Acțiune nouă**. Apoi, legați această acțiune de nodul anterior trăgând săgeata de la nodul anterior la această acțiune nouă.
</Note>
Pentru fiecare etapă:
1. Adăugați un nod **Filtru**: Etapă = [numele etapei]
2. Adăugați o acțiune **Actualizare înregistrare**:
* Înregistrare: Oportunitatea declanșatoare
* Câmp: Probabilitate
* Valoare: [probabilitatea pentru acea etapă]
### Calculați suma estimată
După ce ramurile se reunesc:
1. Adăugați un nod **Filtru**: câmpul Sumă nu este gol
2. Adăugați o acțiune **Actualizare înregistrare**:
* Înregistrare: Oportunitatea declanșatoare
* Câmp: Sumă estimată
* Valoare: Sumă × Probabilitate
## Pasul 3: Creați Fluxul de lucru nr. 2 — Recalculați la modificarea sumei
Acest flux de lucru actualizează Suma estimată atunci când suma oportunității se modifică.
### Creați fluxul de lucru
1. Accesați **Fluxuri de lucru**
2. Faceți clic pe **+ Flux de lucru nou**
3. Denumiți-l "Recalculați suma estimată la modificarea sumei"
### Configurați declanșatorul
1. Adăugați un declanșator **Înregistrare creată sau actualizată**
2. Selectați **Oportunități** ca obiect
3. Filtrați după: câmpul **Sumă** este actualizat
### Adăugați logica
1. Adăugați un nod **Filtru**: câmpul Sumă nu este gol
2. Adăugați o acțiune **Actualizare înregistrare**:
* Înregistrare: Oportunitatea declanșatoare
* Câmp: Sumă estimată
* Valoare: Sumă × Probabilitate
## Pasul 4: Afișați în pipeline-ul dvs.
Acum afișați totalurile Sumei estimate în vizualizarea dvs. Kanban:
1. Deschideți vizualizarea Kanban **Pipeline de vânzări**
2. Faceți clic pe **numărul** de lângă orice nume de Etapă din partea de sus a unei coloane
3. Selectați **Sumă**
4. Alegeți **Sumă estimată**
Fiecare coloană afișează acum valoarea totală ponderată a pipeline-ului pentru acea etapă.
## Rezumat
| Componentă | Scop |
| ------------------------ | ---------------------------------------------------------------------------------- |
| **Câmpul Probabilitate** | Stochează probabilitatea de câștig bazată pe etapă |
| **Câmpul Sumă estimată** | Stochează Sumă × Probabilitate |
| **Flux de lucru nr. 1** | Actualizează probabilitatea când se schimbă etapa, apoi recalculează Suma estimată |
| **Flux de lucru nr. 2** | Recalculează Suma estimată când se modifică suma |
| **Agregare** | Afișează suma valorilor estimate pentru fiecare etapă |
## Asemănătoare
* [Câmpuri de formulă](/l/ro/user-guide/workflows/how-tos/crm-automations/formula-fields) — creați câmpuri calculate folosind fluxuri de lucru
* [Vizualizări Kanban](/l/ro/user-guide/views-pipelines/capabilities/kanban-views) — agregări pe coloană
* [Cum să creați câmpuri personalizate](/l/ro/user-guide/data-model/how-tos/create-custom-fields) — configurarea câmpurilor

View File

@@ -0,0 +1,231 @@
---
title: Urmăriți cât timp rămân oportunitățile în fiecare etapă.
description: Monitorizați viteza tranzacțiilor urmărind momentul când oportunitățile intră în fiecare etapă.
---
<Tip>
Acesta este un exemplu de creare a [Câmpurilor de formulă](/l/ro/user-guide/workflows/how-tos/crm-automations/formula-fields) folosind fluxuri de lucru — în special calcule de date.
</Tip>
Urmărirea momentului în care oportunitățile intră în fiecare etapă vă ajută să identificați blocajele și să măsurați viteza tranzacțiilor.
Acest ghid vă ghidează prin configurarea câmpurilor personalizate și a unui flux de lucru pentru a înregistra automat când o oportunitate trece în fiecare etapă și a calcula câte zile a petrecut în etapa anterioară.
## Pasul 1: Creați câmpuri personalizate
Aveți nevoie de două tipuri de câmpuri pentru fiecare etapă:
* **Câmpuri Dată și oră**: înregistrează când oportunitatea a intrat în fiecare etapă
* **Câmpuri Număr**: stochează câte zile a petrecut oportunitatea în fiecare etapă
### Creați câmpurile "Ultima intrare"
1. Accesați **Setări → Model de date → Oportunități**
2. Pentru fiecare etapă, faceți clic pe **+ Adăugați câmp** și configurați:
* **Nume**: Ultima intrare în [numele etapei] (de ex., "Ultima intrare în Nou", "Ultima intrare în Calificat")
* **Tip**: Dată și oră
* **Descriere**: marcaj temporal când oportunitatea a intrat în această etapă
3. Faceți clic pe **Salvare**
Creați aceste câmpuri:
* Ultima intrare în Nou
* Ultima intrare în Calificat
* Ultima intrare în Întâlnire
* Ultima intrare în Propunere
* Ultima intrare în Negociere
* Ultima intrare în Închis - câștigat
* Ultima intrare în Închis - pierdut
### Creați câmpurile "Zile în etapă"
1. Pentru fiecare etapă, faceți clic pe **+ Adăugați câmp** și configurați:
* **Nume**: Zile în [numele etapei] (de ex., "Zile în Nou", "Zile în Calificat")
* **Tip**: Număr
* **Descriere**: numărul de zile petrecute în această etapă
2. Faceți clic pe **Salvare**
Creați aceste câmpuri:
* Zile în Nou
* Zile în Calificat
* Zile în Întâlnire
* Zile în Propunere
* Zile în Negociere
<Note>
Nu aveți nevoie de câmpuri "Zile în" pentru Închis - câștigat și Închis - pierdut, deoarece acestea sunt etape finale.
</Note>
### Opțional: Faceți câmpurile doar pentru citire
Dacă nu doriți ca utilizatorii să editeze manual aceste câmpuri calculate:
1. Accesați **Setări → Membri → Roluri**
2. Selectați rolul de configurat
3. Găsiți obiectul Oportunități
4. Setați câmpurile "Ultima intrare" și "Zile în" ca doar pentru citire
## Pasul 2: Creați fluxul de lucru
Acest flux de lucru unic gestionează ambele sarcini:
* Înregistrează marcajul temporal la intrarea într-o etapă nouă
* Calculează zilele petrecute în etapa anterioară
### Creați fluxul de lucru
1. Accesați **Fluxuri de lucru**
2. Faceți clic pe **+ Flux de lucru nou**
3. Denumiți-l "Urmăriți timpul în etapă"
### Configurați declanșatorul
1. Adăugați un declanșator **Record Updated**
2. Selectați **Oportunități** ca obiect
3. Filtrați după: câmpul **Etapă** este actualizat
### Adăugați ramuri pentru fiecare etapă
<Note>
Pentru a crea o ramură nouă, faceți clic dreapta pe planșa fluxului de lucru și faceți clic pe **Acțiune nouă**. Apoi, legați această acțiune de nodul anterior trăgând săgeata de la nodul anterior către această acțiune nouă.
</Note>
---
**Ramura 1: Etapă = Nou (prima etapă)**
Deoarece acesta este primul stadiu, se înregistrează doar marcajul de timp de intrare — nu există un stadiu anterior de la care să se poată face calculul.
1. Adăugați un nod **Filtru**: Etapă = Nou
2. Adăugați o acțiune **Cod**:
```javascript
export const main = async (): Promise<object> => {
return { now: new Date().toISOString() };
};
```
3. Adăugați o acțiune **Update Record**:
* Înregistrare: oportunitatea declanșatoare
* Câmp: Ultima intrare în Nou
* Valoare: `now` din nodul Cod
---
**Ramura 2: Etapă = Calificat**
Când treceți la Calificat, înregistrați momentul intrării ȘI calculați zilele petrecute în Nou.
1. Adăugați un nod **Filtru**: Etapă = Calificat
2. Adăugați o acțiune **Cod**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Configurați intrarea nodului Cod: mapați `lastEnteredPreviousStage` la câmpul **Ultima intrare în Nou**
4. Adăugați o acțiune **Update Record**:
* Înregistrare: oportunitatea declanșatoare
* Câmpuri de actualizat:
* Ultima intrare în Calificat = `now`
* Zile în Nou = `daysInPreviousStage`
---
**Ramura 3: Etapă = Întâlnire**
Când treceți la Întâlnire, înregistrați momentul intrării ȘI calculați zilele petrecute în Calificat.
1. Adăugați un nod **Filtru**: Etapă = Întâlnire
2. Adăugați o acțiune **Cod**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Configurați intrarea nodului Cod: mapați `lastEnteredPreviousStage` la câmpul **Ultima intrare în Calificat**
4. Adăugați o acțiune **Update Record**:
* Înregistrare: oportunitatea declanșatoare
* Câmpuri de actualizat:
* Ultima intrare în Întâlnire = `now`
* Zile în Calificat = `daysInPreviousStage`
---
**Continuați pentru etapele rămase:**
| Etapa | Înregistrări | Calculează |
| ----------------- | ----------------------------------- | ----------------- |
| Propunere | Ultima intrare în Propunere | Zile în Întâlnire |
| Negociere | Ultima intrare în Negociere | Zile în Propunere |
| Închis - câștigat | Ultima intrare în Închis - câștigat | Zile în Negociere |
| Închis - pierdut | Ultima intrare în Închis - pierdut | Zile în Negociere |
Ramurile nu trebuie să se reunească — fiecare rulează independent când condiția etapei sale este îndeplinită.
## Pasul 3: Analizați timpul în etapă
Cu marcajele temporale și numărul de zile înregistrate, puteți acum analiza viteza tranzacțiilor.
### Creați o vizualizare "Tranzacții lente"
1. Creați o vizualizare Tabel a Oportunităților
2. Adăugați coloane: Nume, Etapă, Zile în [etapa anterioară], Sumă
3. Sortați după câmpul "Zile în" (descrescător)
4. Filtrați după Etapă pentru a vă concentra pe câte o etapă o dată
Tranzacțiile din partea de sus au petrecut cel mai mult timp în etapa anterioară.
### Utilizați agregări
În vizualizarea Kanban a pipeline-ului dvs.:
1. Faceți clic pe numărul de lângă numele unei Etape
2. Selectați **Medie**
3. Alegeți un câmp "Zile în"
Aceasta arată timpul mediu pe care tranzacțiile îl petrec în fiecare etapă.
## Rezumat
| Componentă | Scop |
| --------------------------- | --------------------------------------------------------------------------- |
| **Câmpuri Ultima intrare** | Stochează când oportunitatea a intrat în fiecare etapă |
| **Câmpuri Zile în** | Stochează câte zile au fost petrecute în fiecare etapă |
| **Flux de lucru** | Înregistrează marcajul temporal ȘI calculează zilele într-o singură trecere |
| **Vizualizări și agregări** | Analizați viteza tranzacțiilor și identificați blocajele |
## Articole conexe
* [Fluxuri de lucru](/l/ro/user-guide/workflows/overview) — elemente de bază ale automatizării
* [Cum să creați câmpuri personalizate](/l/ro/user-guide/data-model/how-tos/create-custom-fields) — configurarea câmpurilor
* [Vizualizări Kanban](/l/ro/user-guide/views-pipelines/capabilities/kanban-views) — agregări