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 una vista Calendario per le attività in scadenza
description: Visualizza le tue attività e le scadenze su un calendario.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Prerequisiti
Il tuo oggetto Attività necessita di un campo **Data di scadenza** (tipo Data o Data e Ora).
## Passaggi
1. Vai su **Attività**
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Dai un nome alla tua vista (ad es., "Calendario attività")
4. Clicca **Crea**
5. Clicca su **Opzioni** e seleziona **Calendario** come layout
6. Scegli **Data di scadenza** come campo data
7. Clicca su **Salva**
## Configura il tuo calendario
### Visualizza i campi negli eventi
1. Clicca su **Opzioni → Campi**
2. Clicca sull'**icona dell'occhio** per mostrare/nascondere i campi
3. Trascina per riordinare
Campi consigliati da visualizzare:
* **Titolo** — nome dell'attività
* **Assegnatario** — chi è responsabile
* **Stato** — avanzamento attuale
### Filtra il tuo calendario
Crea viste mirate:
* **Le mie attività**: Filtra per Assegnatario = Io
* **Questa settimana**: Filtra per Data di scadenza = Questa settimana
* **In ritardo**: Filtra per Data di scadenza < Oggi, Stato ≠ Completato
## Altri casi d'uso del calendario
| Oggetto | Campo data | Scopo |
| --------------------- | ---------------- | ------------------------------------- |
| Opportunità | Data di chiusura | Tieni traccia delle chiusure previste |
| Eventi personalizzati | Data dell'evento | Pianifica le attività |
| Progetti | Scadenza | Monitora le tempistiche dei progetti |
## Suggerimenti
* **Rivedi ogni settimana**: Inizia ogni settimana controllando la vista calendario
* **Combina con la vista tabella**: Usa il calendario per la panoramica, la tabella per i dettagli
* **Imposta la visibilità**: Mantieni i calendari delle attività personali come Non in elenco
## Correlati
* [Vista calendario](/l/it/user-guide/views-pipelines/capabilities/calendar-view) — tutte le funzionalità del calendario
* [Filtri e ordinamento](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtra il calendario

View File

@@ -0,0 +1,80 @@
---
title: Crea una vista Kanban per i progetti
description: Tieni traccia dei progetti nelle varie fasi utilizzando una bacheca visiva.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Usa una vista Kanban per visualizzare i tuoi progetti (o qualsiasi oggetto con fasi) come schede che si spostano tra le colonne.
<VimeoEmbed videoId="927888627" title="Dimostrazione video" />
## Prerequisiti
Il tuo oggetto necessita di un **campo Select** da usare come colonne (ad es., Stato, Stage, Fase).
Se non ne hai uno:
1. Vai a **Impostazioni → Modello dati**
2. Seleziona il tuo oggetto
3. Aggiungi un campo Select con le opzioni di fase
## Passaggi
1. Vai al tuo oggetto (ad es., Progetti, Attività)
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Dai un nome alla tua vista (ad es., "Bacheca progetti")
4. Clicca **Crea**
5. Clicca su **Opzioni** e seleziona **Kanban** come layout
6. La vista utilizza automaticamente il tuo campo Select per le colonne
7. Clicca su **Salva**
## Configura la tua bacheca
### Mostra i campi chiave sulle schede
1. Fai clic su **Opzioni → Campi**
2. Cerca i campi nella sezione "Campi nascosti"
3. Clicca sull'**icona dell'occhio** per visualizzarli sulle schede
4. Trascina per riordinare
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
### Abilita vista compatta
Per una panoramica di alto livello:
1. Clicca su **Opzioni**
2. Attiva **Vista compatta**
Le schede mostrano solo il nome del record.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
### Aggiungi aggregazioni
Mostra conteggi o totali nella parte superiore di ogni colonna:
1. Clicca sul numero accanto al nome di una colonna
2. Seleziona un'aggregazione (Conteggio, Somma, ecc.)
3. Scegli un campo, se necessario
## Spostare le schede
Trascina e rilascia le schede tra le colonne per aggiornarne lo stato.
<VimeoEmbed videoId="927888627" title="Dimostrazione video" />
## Esempio: Bacheca attività
| Colonna (Stato) | Schede |
| --------------- | ------------------------- |
| **Da fare** | Nuove attività |
| **In corso** | Lavoro attivo |
| **Revisione** | In attesa di approvazione |
| **Completato** | Completato |
## Correlati
* [Viste Kanban](/l/it/user-guide/views-pipelines/capabilities/kanban-views) — aggregazioni, vista compatta, fasi
* [Come configurare una pipeline di vendita](/l/it/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline) — Kanban per le opportunità

View File

@@ -0,0 +1,51 @@
---
title: Crea una vista tabella con raggruppamento
description: Organizza i tuoi record in gruppi comprimibili per valore di campo.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Raggruppa la vista tabella in base a un campo Selezione per organizzare i record in sezioni comprimibili.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Passaggi
1. Vai all'oggetto (Persone, Aziende, ecc.)
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Dai un nome alla tua vista (ad es., "Aziende per tipo")
4. Clicca **Crea**
5. Clicca **Opzioni → Raggruppa**
6. Scegli un campo Selezione in base al quale raggruppare
7. Clicca su **Salva**
## Configura l'ordine dei gruppi
In **Opzioni → Raggruppa → Ordina**, scegli come ordinare i gruppi:
| Opzione | Descrizione |
| ---------------------- | --------------------------------------------------------- |
| **Alfabetico** | Da A a Z |
| **Alfabetico inverso** | Da Z a A |
| **Ordine manuale** | Trascina i gruppi per riordinarli sotto "Gruppi visibili" |
Clicca sull'**icona a forma di occhio** accanto a un gruppo per nasconderlo dalla vista.
<Note>
**Per prestazioni ottimali, limita a 10-15 gruppi visibili.** Se te ne servono di più, prendi in considerazione l'uso di una Dashboard.
</Note>
## Esempio: Aziende per settore
1. Vai su **Aziende**
2. Crea una nuova vista chiamata "Per settore"
3. Clicca **Opzioni → Raggruppa**
4. Seleziona il campo **Settore**
5. Salva
Ora le tue aziende sono organizzate per settore, rendendo facile concentrarti su un segmento alla volta.
## Correlati
* [Viste tabella](/l/it/user-guide/views-pipelines/capabilities/table-views) — tutte le funzionalità delle viste tabella
* [Filtri e ordinamento](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — combina il raggruppamento con i filtri

View File

@@ -0,0 +1,32 @@
---
title: Limita l'accesso alla tua vista
description: Controlla chi può vedere le tue visualizzazioni personalizzate.
---
Ogni visualizzazione (tranne le visualizzazioni predefinite "All [Object Name]") ha la propria impostazione di visibilità.
## Passaggi
1. Apri la visualizzazione a cui vuoi limitare l'accesso
2. Fai clic su **Opzioni** in alto a destra
3. Fai clic su **Visibilità**
4. Seleziona **Non in elenco**
La tua visualizzazione è ora visibile solo a te.
## Opzioni di visibilità
| Impostazione | Chi può vedere |
| ----------------- | ------------------------------------- |
| **Workspace** | Tutti i membri dello spazio di lavoro |
| **Non in elenco** | Solo tu |
## Note
* Le visualizzazioni predefinite "All [Object Name]" non possono essere impostate come non in elenco
* Le visualizzazioni non in elenco non compaiono nei menu a discesa delle visualizzazioni degli altri utenti
* Puoi ripristinare la visibilità su Workspace in qualsiasi momento
## Correlati
* [Impostazioni della visualizzazione](/l/it/user-guide/views-pipelines/capabilities/view-settings) — tutte le opzioni di configurazione della visualizzazione

View File

@@ -0,0 +1,120 @@
---
title: Configura una pipeline di vendita
description: Configura la tua pipeline di vendita per tracciare le opportunità attraverso le fasi.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Una pipeline di vendita in Twenty è una vista Kanban del tuo oggetto Opportunità, in cui ogni colonna rappresenta una fase del tuo processo di vendita.
## Passaggio 1: Configura le tue fasi
Le fasi sono definite nel campo **Fase** dell'oggetto Opportunità.
1. Vai a **Impostazioni → Modello dati**
2. Seleziona **Opportunità**
3. Trova e fai clic sul campo **Fase**
4. Aggiungi, rimuovi o rinomina le fasi per allinearle al tuo processo
<VimeoEmbed videoId="927890428" title="Dimostrazione video" />
### Fasi consigliate
| Fase | Scopo |
| ------------------ | ------------------------------ |
| **Nuovo** | Opportunità appena individuate |
| **Qualificato** | Confermate come idonee |
| **Incontro** | In fase di discussione |
| **Proposta** | Proposta inviata |
| **Negoziazione** | Definizione dei termini |
| **Chiuso - Vinta** | Trattativa vinta |
| **Chiuso - Persa** | Trattativa persa |
<Note>
**5-7 stadi sono ottimali.** Troppe fasi rendono difficile la scansione della pipeline; troppo poche perdono visibilità nel progresso dell'offerta.
</Note>
## Passaggio 2: Crea una vista pipeline
1. Vai a **Opportunità**
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Chiamala "Pipeline di vendita"
4. Clicca **Crea**
5. Apri **Opzioni** e seleziona **Kanban** come layout
La vista utilizza automaticamente il campo Fase per le colonne.
## Passaggio 3: Configura la tua vista
### Mostra i campi chiave
1. Clicca su **Opzioni → Campi**
2. Cerca i campi nella sezione "Campi nascosti"
3. Clicca sull'**icona a forma di occhio** per visualizzare: Azienda, Importo, Data di chiusura, Proprietario
### Abilita le aggregazioni
Mostra i totali nella parte superiore di ogni colonna:
1. Clicca sul numero visualizzato accanto al nome di una fase nella parte superiore di una colonna
2. Seleziona il tipo di aggregazione (Conteggio, Somma, Media, ecc.)
3. Scegli il campo da aggregare (ad es., Importo)
**Esempio:** Mostra il valore totale delle trattative per fase aggregando il campo Importo con Somma.
### Usa vista compatta (opzionale)
Per una panoramica di alto livello con contenuto della scheda minimo:
1. Clicca su **Opzioni**
2. Attiva l'interruttore per **Vista compatta**
## Passaggio 4: Crea viste personali e di team
### "La mia pipeline"
* **Filtro**: Proprietario = Io
* **Visibilità**: Non in elenco (vista personale)
### "Pipeline del team"
* **Filtro**: Nessuno (mostra tutto)
* **Visibilità**: Spazio di lavoro (vista condivisa)
### "In chiusura questo mese"
* **Tipo**: Tabella
* **Filtro**: Data di chiusura = Questo mese, Fase ≠ Chiuso - Vinta, Fase ≠ Chiuso - Persa
* **Ordina**: Data di chiusura crescente
## Lavorare con le opportunità
### Creazione di opportunità
* Clicca su **+ Nuovo** nella vista Opportunità
* Oppure clicca su **+** nella colonna di una specifica fase
### Passare tra le fasi
Trascina e rilascia le schede delle opportunità tra le colonne per aggiornarne la fase.
<VimeoEmbed videoId="927888627" title="Dimostrazione video" />
## Migliori Pratiche
### Igiene della pipeline
* Aggiorna quotidianamente le trattative man mano che avanzano
* Sposta o chiudi tempestivamente le trattative stagnanti
* Mantieni realistiche le date di chiusura
### Disciplina delle fasi
* Definisci criteri chiari per ogni fase
* Sposta le trattative tempestivamente quando i criteri sono soddisfatti
* Non lasciare le trattative troppo a lungo nelle fasi
## Correlati
* [Viste Kanban](/l/it/user-guide/views-pipelines/capabilities/kanban-views) — aggregazioni e vista compatta
* [Filtri e ordinamento](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — creazione di viste filtrate

View File

@@ -0,0 +1,149 @@
---
title: Mostra l"Importo previsto nella tua pipeline\
description: Calcola e visualizza i valori delle opportunità ponderati in base alla probabilità della fase.
---
L"Importo previsto è un valore calcolato: **Importo × Probabilità**. Questo ti aiuta a prevedere i ricavi ponderando le opportunità in base alla probabilità di chiusura.
<Tip>
Questo è un esempio di creazione di [Campi formula](/l/it/user-guide/workflows/how-tos/crm-automations/formula-fields) usando i workflow.
</Tip>
Questa guida ti accompagna nella configurazione dei campi personalizzati e dei workflow necessari per calcolare e visualizzare gli importi previsti nella tua pipeline.
## Passaggio 1: Crea campi personalizzati
Hai bisogno di due campi personalizzati sull"oggetto Opportunità.
### Crea il campo Probabilità
1. Vai a **Impostazioni → Modello dati → Opportunità**
2. Fai clic su **+ Aggiungi campo**
3. Configura:
* **Nome**: Probabilità
* **Tipo**: Numero
* **Descrizione**: Probabilità basata sulla fase (0-100%)
4. Clicca su **Salva**
### Crea il campo Importo previsto
1. Fai clic su **+ Aggiungi campo**
2. Configura:
* **Nome**: Importo previsto
* **Tipo**: Valuta
* **Descrizione**: Calcolato: Importo × Probabilità
3. Clicca su **Salva**
### Opzionale: Imposta i campi come di sola lettura per gli utenti
Se non vuoi che gli utenti modifichino manualmente questi campi calcolati:
1. Vai a **Impostazioni → Membri → Ruoli**
2. Seleziona il ruolo da configurare
3. Trova l"oggetto Opportunità
4. Imposta i campi **Probabilità** e **Importo previsto** come di sola lettura
Questo garantisce che solo i workflow possano aggiornare questi valori.
## Passaggio 2: Crea il workflow n. 1 — Aggiorna la Probabilità al cambio di fase
Questo workflow imposta automaticamente la Probabilità quando un"opportunità passa a una nuova fase.
### Crea il workflow
1. Vai a **Workflows**
2. Fai clic su **+ Nuovo workflow**
3. Assegna il nome "Aggiorna la probabilità al cambio di fase"
### Configura il trigger
1. Aggiungi un trigger **Record creato o aggiornato**
2. Seleziona **Opportunità** come oggetto
3. Filtra su: il campo **Fase** è aggiornato
### Aggiungi rami per ogni fase
Crea un ramo per ogni fase con la relativa probabilità:
| Fase | Probabilità |
| -------------- | ----------- |
| Nuovo | 10% |
| Qualificato | 25% |
| Riunione | 40% |
| Proposta | 60% |
| Negoziazione | 80% |
| Chiuso - Vinta | 100% |
| Chiuso - Persa | 0% |
<Note>
Per creare un nuovo ramo, fai clic con il tasto destro sul canvas del workflow e fai clic su **Nuova azione**. Quindi, collega questa azione al nodo precedente trascinando la freccia dal nodo precedente a questa nuova azione.
</Note>
Per ogni fase:
1. Aggiungi un nodo **Filtro**: Fase = [nome della fase]
2. Aggiungi un"azione **Aggiorna record**:
* Record: l"Opportunità che ha attivato il trigger
* Campo: Probabilità
* Valore: [probabilità per quella fase]
### Calcola l"Importo previsto
Dopo che i rami si ricongiungono:
1. Aggiungi un nodo **Filtro**: Importo non è vuoto
2. Aggiungi un"azione **Aggiorna record**:
* Record: l"Opportunità che ha attivato il trigger
* Campo: Importo previsto
* Valore: Importo × Probabilità
## Passaggio 3: Crea il workflow n. 2 — Ricalcola al cambio dell"Importo
Questo workflow aggiorna l"Importo previsto quando l"Importo dell"opportunità cambia.
### Crea il workflow
1. Vai a **Workflows**
2. Fai clic su **+ Nuovo workflow**
3. Assegna il nome "Ricalcola l"Importo previsto al cambio dell"Importo"
### Configura il trigger
1. Aggiungi un trigger **Record creato o aggiornato**
2. Seleziona **Opportunità** come oggetto
3. Filtra su: il campo **Importo** è aggiornato
### Aggiungi la logica
1. Aggiungi un nodo **Filtro**: Importo non è vuoto
2. Aggiungi un"azione **Aggiorna record**:
* Record: l"Opportunità che ha attivato il trigger
* Campo: Importo previsto
* Valore: Importo × Probabilità
## Passaggio 4: Visualizza nella tua pipeline
Ora mostra i totali dell"Importo previsto nella tua vista Kanban:
1. Apri la vista Kanban della tua **Pipeline di vendita**
2. Fai clic sul **numero** accanto al nome di qualsiasi Fase nella parte superiore di una colonna
3. Seleziona **Somma**
4. Scegli **Importo previsto**
Ogni colonna ora mostra il valore totale ponderato della pipeline per quella fase.
## Sommario
| Componente | Scopo |
| -------------------------- | ---------------------------------------------------------------------------------- |
| **Campo Probabilità** | Memorizza la probabilità di vittoria basata sulla fase |
| **Campo Importo previsto** | Memorizza Importo × Probabilità |
| **Workflow n. 1** | Aggiorna la Probabilità quando la Fase cambia, quindi ricalcola l"Importo previsto |
| **Workflow n. 2** | Ricalcola l"Importo previsto quando l"Importo cambia |
| **Aggregazione** | Mostra la somma dell"Importo previsto per fase |
## Correlati
* [Campi formula](/l/it/user-guide/workflows/how-tos/crm-automations/formula-fields) — crea campi calcolati usando i workflow
* [Visualizzazioni Kanban](/l/it/user-guide/views-pipelines/capabilities/kanban-views) — aggregazioni di colonna
* [Come creare campi personalizzati](/l/it/user-guide/data-model/how-tos/create-custom-fields) — configurazione dei campi

View File

@@ -0,0 +1,231 @@
---
title: Tieni traccia di quanto a lungo le opportunità restano in ogni fase.
description: Monitora la velocità delle trattative tenendo traccia di quando le opportunità entrano in ogni fase.
---
<Tip>
Questo è un esempio di creazione di [Campi formula](/l/it/user-guide/workflows/how-tos/crm-automations/formula-fields) utilizzando i workflow — in particolare calcoli di date.
</Tip>
Tenere traccia di quando le opportunità entrano in ogni fase ti aiuta a identificare i colli di bottiglia e a misurare la velocità delle trattative.
Questa guida ti accompagna nella configurazione di campi personalizzati e di un workflow per registrare automaticamente quando un'opportunità passa a ciascuna fase e calcolare quanti giorni ha trascorso nella fase precedente.
## Passaggio 1: Crea campi personalizzati
Per ogni fase servono due tipi di campi:
* **Campi Data e ora**: registrano quando l'opportunità è entrata in ciascuna fase
* **Campi Numero**: memorizzano quanti giorni l'opportunità ha trascorso in ciascuna fase
### Crea i campi "Ultimo ingresso"
1. Vai a **Impostazioni → Modello dati → Opportunità**
2. Per ogni fase, fai clic su **+ Aggiungi campo** e configura:
* **Nome**: Ultimo ingresso in [Nome fase] (ad es., "Ultimo ingresso in Nuovo", "Ultimo ingresso in Qualificato")
* **Tipo**: Data e ora
* **Descrizione**: Timestamp dell'ingresso dell'opportunità in questa fase
3. Clicca su **Salva**
Crea questi campi:
* Ultimo ingresso in Nuovo
* Ultimo ingresso in Qualificato
* Ultimo ingresso in Riunione
* Ultimo ingresso in Proposta
* Ultimo ingresso in Negoziazione
* Ultimo ingresso in Chiuso vinto
* Ultimo ingresso in Chiuso perso
### Crea i campi "Giorni nella fase"
1. Per ogni fase, fai clic su **+ Aggiungi campo** e configura:
* **Nome**: Giorni in [Nome fase] (ad es., "Giorni in Nuovo", "Giorni in Qualificato")
* **Tipo**: Numero
* **Descrizione**: Numero di giorni trascorsi in questa fase
2. Clicca su **Salva**
Crea questi campi:
* Giorni in Nuovo
* Giorni in Qualificato
* Giorni in Riunione
* Giorni in Proposta
* Giorni in Negoziazione
<Note>
Non servono campi "Giorni in" per Chiuso vinto e Chiuso perso, poiché sono fasi finali.
</Note>
### Opzionale: rendi i campi di sola lettura
Se non vuoi che gli utenti modifichino manualmente questi campi calcolati:
1. Vai a **Impostazioni → Membri → Ruoli**
2. Seleziona il ruolo da configurare
3. Trova l'oggetto Opportunità
4. Imposta i campi "Ultimo ingresso" e "Giorni in" come di sola lettura
## Passaggio 2: Crea il workflow
Questo singolo workflow gestisce entrambe le attività:
* Registra il timestamp quando si entra in una nuova fase
* Calcola i giorni trascorsi nella fase precedente
### Crea il workflow
1. Vai a **Workflows**
2. Fai clic su **+ Nuovo workflow**
3. Assegnagli il nome "Traccia tempo per fase"
### Configura il trigger
1. Aggiungi un trigger **Record aggiornato**
2. Seleziona **Opportunità** come oggetto
3. Filtro su: il campo **Fase** viene aggiornato
### Aggiungi rami per ogni fase
<Note>
Per creare un nuovo ramo, fai clic con il tasto destro sul canvas del workflow e fai clic su **Nuova azione**. Quindi, collega questa azione al nodo precedente trascinando la freccia dal nodo precedente a questa nuova azione.
</Note>
---
**Ramo 1: Fase = Nuovo (prima fase)**
Poiché si tratta della prima fase, viene registrato solo il timestamp di ingresso: non c'è alcuna fase precedente su cui basare il calcolo.
1. Aggiungi un nodo **Filtro**: Fase = Nuovo
2. Aggiungi un'azione **Codice**:
```javascript
export const main = async (): Promise<object> => {
return { now: new Date().toISOString() };
};
```
3. Aggiungi un'azione **Aggiorna record**:
* Record: l'Opportunità che ha attivato il workflow
* Campo: Ultimo ingresso in Nuovo
* Valore: `now` dal nodo Codice
---
**Ramo 2: Fase = Qualificato**
Quando si passa a Qualificato, registra l'ora di ingresso E calcola i giorni trascorsi in Nuovo.
1. Aggiungi un nodo **Filtro**: Fase = Qualificato
2. Aggiungi un'azione **Codice**:
```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 l'input del nodo Codice: mappa `lastEnteredPreviousStage` al campo **Ultimo ingresso in Nuovo**
4. Aggiungi un'azione **Aggiorna record**:
* Record: l'Opportunità che ha attivato il workflow
* Campi da aggiornare:
* Ultimo ingresso in Qualificato = `now`
* Giorni in Nuovo = `daysInPreviousStage`
---
**Ramo 3: Fase = Riunione**
Quando si passa a Riunione, registra l'ora di ingresso E calcola i giorni trascorsi in Qualificato.
1. Aggiungi un nodo **Filtro**: Fase = Riunione
2. Aggiungi un'azione **Codice**:
```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 l'input del nodo Codice: mappa `lastEnteredPreviousStage` al campo **Ultimo ingresso in Qualificato**
4. Aggiungi un'azione **Aggiorna record**:
* Record: l'Opportunità che ha attivato il workflow
* Campi da aggiornare:
* Ultimo ingresso in Riunione = `now`
* Giorni in Qualificato = `daysInPreviousStage`
---
**Continua per le fasi rimanenti:**
| Fase | Registra | Calcola |
| ------------ | ------------------------------- | ---------------------- |
| Proposta | Ultimo ingresso in Proposta | Giorni in Riunione |
| Negoziazione | Ultimo ingresso in Negoziazione | Giorni in Proposta |
| Chiuso vinto | Ultimo ingresso in Chiuso vinto | Giorni in Negoziazione |
| Chiuso perso | Ultimo ingresso in Chiuso perso | Giorni in Negoziazione |
I rami non devono ricongiungersi—ognuno viene eseguito in modo indipendente quando la relativa condizione di fase è soddisfatta.
## Passaggio 3: Analizza il tempo per fase
Con timestamp e conteggi dei giorni registrati, ora puoi analizzare la velocità delle trattative.
### Crea una vista "Trattative lente"
1. Crea una vista Tabella di Opportunità
2. Aggiungi colonne: Nome, Fase, Giorni in [fase precedente], Importo
3. Ordina per il campo "Giorni in" (decrescente)
4. Filtra per Fase per concentrarti su una fase alla volta
Le trattative in cima hanno trascorso più tempo nella fase precedente.
### Usa le aggregazioni
Nella vista Kanban della pipeline:
1. Fai clic sul numero accanto al nome di una Fase
2. Seleziona **Media**
3. Scegli un campo "Giorni in"
Questo mostra il tempo medio che le trattative trascorrono in ciascuna fase.
## Sommario
| Componente | Scopo |
| --------------------------- | ---------------------------------------------------------------------- |
| **Campi "Ultimo ingresso"** | Memorizzano quando l'opportunità è entrata in ciascuna fase |
| **Campi "Giorni in"** | Memorizzano quanti giorni sono stati trascorsi in ciascuna fase |
| **Workflow** | Registra il timestamp E calcola i giorni in un unico passaggio |
| **Viste e aggregazioni** | Analizza la velocità delle trattative e individua i colli di bottiglia |
## Correlati
* [Workflows](/l/it/user-guide/workflows/overview) — nozioni di base sull'automazione
* [Come creare campi personalizzati](/l/it/user-guide/data-model/how-tos/create-custom-fields) — configurazione dei campi
* [Viste Kanban](/l/it/user-guide/views-pipelines/capabilities/kanban-views) — aggregazioni