Il Suo template dei dati per Order to Cash - Fatturazione ed emissione delle fatture
Il Suo template dei dati per Order to Cash - Fatturazione ed emissione delle fatture
- Attributi consigliati da raccogliere
- Attività principali da monitorare
- Indicazioni per l’estrazione da NetSuite
Attributi di Order to Cash - Fatturazione ed emissione delle fatture
| Nome | Descrizione | ||
|---|---|---|---|
| Data e ora dell’evento EventTimestamp | Data e ora esatte in cui si è verificata una specifica attività o un determinato evento. | ||
| Descrizione Questo attributo registra il momento esatto in cui si è svolta un’attività. È fondamentale per ordinare gli eventi cronologicamente e per tutte le analisi basate sul tempo. Nel Process Mining, la data e ora dell’evento serve a calcolare i tempi di ciclo tra le attività, la durata dei casi e i tempi di attesa. È essenziale per individuare i colli di bottiglia, misurare le prestazioni del processo rispetto agli SLA e comprendere le dinamiche temporali della fatturazione. Per esempio, viene utilizzata per calcolare il tempo di ciclo di generazione della fattura e i Giorni medi di incasso (DSO). Perché è importante Definisce l’ordine cronologico degli eventi, indispensabile per calcolare tutte le metriche basate sulla durata, individuare i colli di bottiglia e analizzare nel tempo le prestazioni del processo. Dove reperirli In NetSuite, le informazioni su data e ora si trovano in genere nelle note di sistema, nelle tracce di controllo o nei campi «Date Created» delle registrazioni correlate a ciascuna transazione di fattura. Esempi 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Nome dell’attività ActivityName | Nome dell’evento aziendale verificatosi in un determinato momento del ciclo di vita della fattura. | ||
| Descrizione Il nome dell’attività descrive un passaggio o un evento specifico del processo di fatturazione, come «Fattura creata», «Fattura approvata» o «Pagamento del cliente ricevuto». Queste attività costituiscono i passaggi in sequenza della mappa del processo. Analizzare la sequenza e la frequenza delle attività è fondamentale nel Process Mining. Consente di visualizzare il flusso effettivo del processo, individuare i percorsi più comuni e quelli meno frequenti (varianti) e identificare le attività ripetute spesso, che possono indicare rilavorazioni o inefficienze. Perché è importante Questo attributo è fondamentale per costruire la mappa del processo e visualizzare e analizzare i diversi passaggi e percorsi seguiti da una fattura. Dove reperirli Ricavato dai log di sistema, dalle modifiche di stato o da specifiche registrazioni di eventi associate alla transazione di fattura in NetSuite. Spesso è necessario associare le modifiche dello stato della transazione o la creazione di registrazioni correlate a nomi di attività definiti. Esempi Fattura creataFattura approvataPagamento del cliente ricevutoFattura saldata integralmente | |||
| Numero fattura InvoiceNumber | Identificativo univoco di ciascun documento di fattura, utilizzato come identificativo principale del caso nel processo di fatturazione. | ||
| Descrizione Il numero della fattura è il riferimento centrale per l’analisi del processo di fatturazione, perché identifica in modo univoco ogni fattura dalla creazione alla chiusura. Riunisce in un unico caso tutte le attività correlate, come l’approvazione, l’invio e la registrazione del pagamento. Nel Process Mining, analizzare il percorso di ciascun numero di fattura consente di ottenere una visione completa dell’intero ciclo di fatturazione. In questo modo è possibile individuare varianti del processo, colli di bottiglia e scostamenti dalla procedura standard, ricavando informazioni utili per ottimizzare la liquidità e l’efficienza operativa. Perché è importante È essenziale per seguire l’intero ciclo di vita di ogni fattura, ricostruire il processo completo di fatturazione e svolgere analisi dettagliate delle prestazioni. Dove reperirli In genere corrisponde al campo «Transaction ID» o a un altro campo identificativo univoco della registrazione della transazione di fattura in NetSuite. Esempi INV-0012345INV-0012346INV-0012347 | |||
| Sistema di origine SourceSystem | Sistema da cui sono stati estratti i dati. | ||
| Descrizione Questo attributo identifica l’origine dei dati del processo. In questa vista, il valore sarebbe sempre «NetSuite». In un contesto di analisi più ampio, soprattutto nelle organizzazioni che utilizzano più sistemi ERP o sistemi integrati, questo attributo è fondamentale per la tracciabilità dei dati e la governance. Aiuta a distinguere i processi che coinvolgono piattaforme diverse e garantisce che l’analisi sia attribuita correttamente al sistema di registrazione pertinente. Perché è importante Fornisce un contesto essenziale sull’origine dei dati e sulla governance, soprattutto negli ambienti in cui sono integrati più sistemi. Dove reperirli È un valore statico («NetSuite») aggiunto durante l’estrazione e la trasformazione dei dati. Esempi NetSuite | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Data e ora dell’ultimo aggiornamento dei dati dal sistema di origine. | ||
| Descrizione Questo attributo registra la data dell’ultimo aggiornamento del set di dati e fornisce un contesto sulla freschezza e sulla pertinenza dell’analisi di Process Mining. Analisti e referenti aziendali utilizzano questa informazione per capire se i risultati riflettono la situazione operativa più recente. È un metadato essenziale per qualsiasi Dashboard o report: indica l’età dei dati su cui si basano le decisioni e impedisce di interpretarli erroneamente come dati in tempo reale. Perché è importante Indica quanto sono aggiornati i dati, così che gli utenti possano comprendere il periodo a cui si riferisce l’analisi e la pertinenza dei risultati. Dove reperirli La data e l’ora vengono generate e registrate dallo strumento o dalla pipeline di estrazione dei dati al momento dell’aggiornamento. Esempi 2024-05-21T02:00:00Z | |||
| Area geografica Region | Area geografica associata al cliente o alla transazione. | ||
| Descrizione L’attributo Area geografica classifica le fatture in base alla zona geografica, ricavabile dall’indirizzo del cliente o dall’unità aziendale che ha emesso la fattura. È una dimensione utile per le analisi comparative. La Dashboard «Confronto dei processi di fatturazione per area geografica» utilizza questo attributo per confrontare KPI come i tempi di ciclo, i tassi di errore e le varianti del processo nelle diverse aree. Aiuta così a individuare differenze nei risultati, far emergere le buone pratiche delle aree più efficienti e promuovere la standardizzazione dei processi nell’organizzazione. Perché è importante Consente di confrontare diverse aree geografiche, un aspetto fondamentale per individuare differenze nei risultati e standardizzare le buone pratiche. Dove reperirli In NetSuite, questi dati sono spesso memorizzati in un segmento personalizzato o in un campo di classificazione dell’anagrafica cliente o della registrazione della transazione. Esempi Nord AmericaEuropa, Medio Oriente e AfricaAsia-Pacifico | |||
| Data della fattura InvoiceDate | Data ufficiale della fattura emessa al cliente. | ||
| Descrizione La data della fattura, o data della transazione, è il punto di partenza di molti calcoli finanziari relativi alla fatturazione. Da questa data vengono in genere calcolati i termini di pagamento e le scadenze. Nelle analisi, costituisce il riferimento principale per calcolare KPI finanziari importanti, come i Giorni medi di incasso (DSO) e l’anzianità delle fatture. Consente inoltre di analizzare le coorti e confrontare i risultati della fatturazione in periodi diversi, per esempio mese su mese o anno su anno. Perché è importante È la base di riferimento per metriche finanziarie fondamentali, come i Giorni medi di incasso (DSO) e l’anzianità delle fatture, e incide direttamente sull’analisi del capitale circolante. Dove reperirli Corrisponde al campo «Date» (trandate) della registrazione della transazione di fattura in NetSuite. Esempi 2023-10-262023-10-272023-11-15 | |||
| Data di scadenza DueDate | Data entro la quale deve essere pagata la fattura. | ||
| Descrizione La data di scadenza viene calcolata in base alla data della fattura e ai termini di pagamento concordati. Indica il termine entro il quale il cliente deve pagare per non risultare in ritardo. Questo attributo è essenziale per monitorare i crediti verso clienti e gestire la liquidità. È il valore di riferimento per calcolare il KPI «Tasso di pagamento puntuale» e analizzare le abitudini di pagamento dei clienti. Monitorare gli scostamenti dalla scadenza aiuta a individuare i clienti che pagano spesso in ritardo e a valutare l’efficacia delle strategie di recupero crediti. Perché è importante È fondamentale per misurare la puntualità dei pagamenti e analizzare le abitudini di pagamento dei clienti, supportando direttamente il recupero crediti e le previsioni di liquidità. Dove reperirli Corrisponde al campo «Due Date» (duedate) della registrazione della transazione di fattura in NetSuite. Esempi 2023-11-252023-11-262023-12-15 | |||
| È automatizzata IsAutomated | Indicatore che specifica se un’attività è stata eseguita automaticamente dal sistema. | ||
| Descrizione Questo attributo booleano distingue le attività svolte manualmente da un utente da quelle eseguite automaticamente da un flusso di lavoro, uno script o un’integrazione di sistema. È fondamentale per misurare il livello di automazione del processo di fatturazione e contribuisce direttamente al KPI 'Rapporto di fatturazione automatizzata'. Filtrando le attività automatizzate o manuali, gli analisti possono individuare i colli di bottiglia dovuti agli interventi manuali e identificare le opportunità per aumentare l’automazione, ridurre gli errori umani e migliorare l’efficienza. Perché è importante Consente di misurare il livello di automazione del processo e di individuare le opportunità per ridurre il lavoro manuale e aumentare l’efficienza. Dove reperirli In genere, si determina controllando l’'Utente' associato a un’attività. Gli eventi avviati da utenti denominati 'SYSTEM', 'Workflow' o 'Integration' vengono contrassegnati come automatizzati. Esempi truefalse | |||
| Importo totale della fattura InvoiceTotalAmount | Valore monetario totale della fattura, comprensivo di imposte e altri addebiti. | ||
| Descrizione Questo attributo rappresenta l’importo complessivo che il cliente deve pagare. È un dato finanziario fondamentale per ogni caso di fatturazione. Analizzare il processo in base all’importo della fattura consente di confrontare i casi per valore. Per esempio, può mostrare se le fatture di importo elevato seguono un processo diverso e più complesso rispetto a quelle di importo ridotto. Il dato serve anche a stabilire le priorità delle attività di recupero crediti e a comprendere l’impatto finanziario dei ritardi di pagamento o degli errori nelle fatture. Perché è importante Consente di analizzare i processi in base al valore, stabilire le priorità per le fatture di importo elevato e comprendere l’impatto finanziario delle inefficienze. Dove reperirli Corrisponde al campo «Total» (total) della registrazione della transazione di fattura in NetSuite. Esempi 1500.0089.9912500.50 | |||
| Nome del cliente CustomerName | Nome del cliente a cui è stata emessa la fattura. | ||
| Descrizione Questo attributo identifica la persona fisica o giuridica a cui è intestata la fattura e collega il processo di fatturazione alla gestione delle relazioni con i clienti. Analizzare il processo di fatturazione per cliente aiuta a individuare abitudini di pagamento, contestazioni o complessità ricorrenti per specifici clienti. Queste informazioni possono orientare la segmentazione della clientela, le decisioni sui limiti di credito e le strategie di recupero crediti. Per esempio, possono rivelare se un determinato cliente richiede spesso la rilavorazione delle fatture. Perché è importante Consente un’analisi incentrata sui clienti, utile per individuare abitudini di pagamento, problemi ricorrenti o scostamenti dal processo specifici di determinati clienti. Dove reperirli Corrisponde al campo del nome «Customer» o «Entity» della registrazione della transazione di fattura in NetSuite. Esempi Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Ora di fine dell’evento EventEndTime | Data e ora esatte in cui è stata completata una specifica attività o un determinato evento. | ||
| Descrizione L’ora di fine dell’evento indica il completamento di un’attività. Molte attività sono istantanee, quindi l’ora di inizio coincide con quella di fine, mentre altre, come una fase di approvazione, possono avere una durata misurabile. Insieme alla data e ora dell’evento (ora di inizio), questo attributo consente di calcolare direttamente il tempo di elaborazione dell’attività. Analizzarlo aiuta a individuare i passaggi che richiedono più tempo e risorse e a distinguerli dai tempi di attesa tra un’attività e l’altra. È un dato essenziale per individuare le inefficienze nelle singole attività. Perché è importante Consente di calcolare con precisione il tempo necessario per completare ogni attività, un dato essenziale per analizzare l’efficienza nell’impiego delle risorse e individuare le attività che richiedono più tempo. Dove reperirli Come per StartTime, il dato può essere ricavato dalle tracce di controllo di sistema in NetSuite. Potrebbe essere necessario associare un evento di «inizio» al corrispondente evento di «fine». Esempi 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Utente User | Nome o ID dell’utente che ha eseguito l’attività. | ||
| Descrizione Questo attributo identifica il dipendente o l’utente di sistema responsabile di una specifica fase del processo, per esempio chi ha creato o approvato la fattura oppure registrato il pagamento. Analizzare il processo per utente aiuta a comprendere la distribuzione dei carichi di lavoro e le prestazioni individuali, oltre a individuare le esigenze di formazione. Può inoltre far emergere opportunità di automazione, mostrando quali attività manuali vengono svolte dal maggior numero di utenti. È un dato fondamentale anche per la conformità e l’analisi delle tracce di controllo. Perché è importante Consente di analizzare la distribuzione dei carichi di lavoro, le prestazioni dei singoli utenti e il rispetto del processo, aspetti essenziali per la gestione delle risorse e una formazione mirata. Dove reperirli Disponibile nella scheda secondaria System Notes o in specifici campi «Modified By» delle registrazioni di fattura e delle transazioni correlate in NetSuite. Esempi Alice SmithBob JohnsonSYSTEM | |||
| È una rilavorazione IsRework | Indicatore calcolato che identifica le attività considerate rilavorazioni o cicli di correzione. | ||
| Descrizione Questo indicatore booleano è impostato su true per le attività che rappresentano rilavorazioni senza valore aggiunto, come 'Fattura corretta' o un secondo evento 'Fattura approvata' nello stesso caso. In genere, viene calcolato in base al nome dell’attività o alla sua ripetizione. Questo attributo è essenziale per la Dashboard 'Analisi delle rilavorazioni e dei rifiuti delle fatture' e per il KPI 'Tasso di errore delle fatture'. Permette di quantificare facilmente le rilavorazioni e di mettere in luce i problemi di qualità del processo. Filtrando le attività di rilavorazione, i team possono individuare rapidamente le cause profonde degli errori e misurare l’impatto delle iniziative di miglioramento. Perché è importante Misura direttamente la qualità del processo segnalando i cicli di rilavorazione inefficienti e consente di analizzare le cause profonde e l’impatto economico degli errori di fatturazione. Dove reperirli È un attributo derivato, calcolato durante la trasformazione dei dati. La logica individua le rilavorazioni, ad esempio contrassegnando nomi di attività specifici ('Fattura corretta') o attività ripetute. Esempi truefalse | |||
| Giorni medi di incasso DaysSalesOutstanding | Numero di giorni tra la data della fattura e quella di ricezione del pagamento. | ||
| Descrizione I giorni medi di incasso (DSO) sono un indicatore finanziario fondamentale che misura il numero medio di giorni necessari per incassare un pagamento dopo l’emissione di una fattura. Questo attributo viene calcolato per ogni singola fattura, così da consentire analisi dettagliate. Sebbene venga spesso aggregato in un KPI di alto livello, disporre del DSO per ogni fattura permette analisi approfondite, ad esempio per individuare i clienti, le aree geografiche o le tipologie di fattura con il DSO più elevato. La Dashboard 'Andamento del DSO' utilizza questo indicatore per visualizzare nel tempo l’efficienza del recupero crediti e fornire informazioni essenziali sulla gestione del capitale circolante. Perché è importante Quantifica l’efficienza del recupero crediti per ogni fattura e permette di analizzare nel dettaglio le cause profonde di un DSO elevato e il relativo impatto sui flussi di cassa. Dove reperirli Si calcola sottraendo 'InvoiceDate' dalla data e ora dell’attività 'Pagamento del cliente ricevuto'. Esempi 294562 | |||
| Numero dell’ordine di vendita SalesOrderNumber | Identificativo dell’ordine di vendita da cui è stata generata la fattura. | ||
| Descrizione Questo attributo collega direttamente la fattura all’ordine di vendita da cui ha origine, mettendo in relazione il processo di fatturazione con le precedenti fasi di vendita ed evasione dell’ordine. Includere il numero dell’ordine di vendita offre una visione più completa dell’intero ciclo dall’ordine all’incasso. Consente di ricondurre i problemi di fatturazione alla loro origine nel processo di vendita. Per esempio, le frequenti correzioni delle fatture potrebbero essere collegate a errori di inserimento dati in specifiche tipologie di ordini di vendita. Perché è importante Collega il processo di fatturazione a quello di vendita e consente un’analisi più ampia, dall’ordine all’incasso, per individuare le cause profonde dei problemi di fatturazione. Dove reperirli Indicato nel campo 'Created From' o nella scheda secondaria 'Related Records' di una transazione Invoice in NetSuite. Esempi SO-0009876SO-0009877SO-0009878 | |||
| Pagamento puntuale IsOnTimePayment | Indicatore che specifica se il pagamento del cliente è stato ricevuto entro la data di scadenza della fattura. | ||
| Descrizione Questo indicatore booleano calcolato confronta la data e l’ora dell’attività 'Pagamento del cliente ricevuto' con l’attributo 'DueDate' della fattura. È impostato su true se il pagamento è avvenuto entro la scadenza o in anticipo, e su false se è avvenuto in ritardo. Questo attributo è alla base del KPI 'Tasso di pagamenti puntuali' e della Dashboard 'Rispetto dei termini di pagamento'. Fornisce una misura chiara e binaria del comportamento di pagamento dei clienti, semplificando analisi e report. Aiuta a individuare rapidamente le tendenze nella puntualità dei pagamenti e a valutare l’efficacia delle strategie di recupero crediti. Perché è importante Fornisce una misura chiara dei risultati delle attività di recupero crediti, supportando direttamente il calcolo del KPI sul tasso di pagamenti puntuali e l’analisi del comportamento dei clienti. Dove reperirli È un attributo calcolato. Richiede il confronto tra la data e l’ora dell’evento di pagamento e l’attributo 'DueDate' a livello di caso. Esempi truefalse | |||
| Reparto Department | Il reparto interno associato alla fattura. | ||
| Descrizione Questo attributo indica il reparto interno, ad esempio Vendite, Servizi o una specifica linea di business, responsabile della transazione. In NetSuite è un segmento di classificazione standard. L’analisi del processo per reparto consente di confrontare le prestazioni interne e di capire se alcuni reparti gestiscono la fatturazione in modo più efficiente di altri. Può mettere in luce differenze nel rispetto del processo o nell’allocazione delle risorse, fornendo indicazioni utili per interventi mirati di miglioramento in specifiche aree dell’organizzazione. Perché è importante Consente di confrontare le prestazioni del processo tra i diversi reparti interni, mettendo in evidenza le differenze e le opportunità di standardizzazione. Dove reperirli Corrisponde al campo di classificazione 'Department', che in NetSuite può essere impostato a livello di intestazione o di riga di una transazione Invoice. Esempi Vendite - EnterpriseServizi professionaliHardware | |||
| Stato della fattura InvoiceStatus | Stato corrente della fattura nel suo ciclo di vita. | ||
| Descrizione Questo attributo riflette lo stato corrente della fattura, per esempio «Open», «Paid in Full» o «Voided». Fornisce una fotografia della posizione della fattura nel processo in un determinato momento. La Dashboard «Panoramica dello stato delle fatture aperte» si basa direttamente su questo attributo. Consente di valutare in tempo reale i crediti verso clienti, aiutando i team finanziari a monitorare i saldi in sospeso, gestire il recupero crediti e prevedere gli incassi. Analizzare lo stato finale aiuta inoltre a comprendere gli esiti del processo. Perché è importante Fornisce una fotografia dello stato corrente dei crediti verso clienti e permette di creare Dashboard per monitorare le fatture aperte e l’avanzamento complessivo della fatturazione. Dove reperirli Corrisponde al campo «Status» della registrazione della transazione di fattura in NetSuite. Esempi ApertaSaldata integralmenteStornataIn attesa di approvazione | |||
| Termini di pagamento PaymentTerms | Condizioni di pagamento concordate tra l’azienda e il cliente. | ||
| Descrizione I termini di pagamento definiscono quando e come il cliente deve pagare la fattura, per esempio «30 giorni» o «Pagamento alla ricezione». Queste informazioni vengono utilizzate per calcolare automaticamente la data di scadenza. Questo attributo è fondamentale per la Dashboard «Rispetto dei termini di pagamento». Analizzare i tassi di pagamento puntuale in base ai diversi termini consente di valutarne l’efficacia. Per esempio, permette di capire se i clienti con termini di 15 giorni pagano prima di quelli con termini di 30 giorni, fornendo indicazioni utili per le future trattative contrattuali e le politiche di credito. Perché è importante È essenziale per valutare l’efficacia delle diverse condizioni di pagamento e il loro impatto sulla puntualità dei clienti. Dove reperirli Corrisponde al campo «Terms» della registrazione della transazione di fattura in NetSuite. Esempi 30 giorni60 giorniPagamento alla ricezione | |||
| Valuta Currency | Codice della valuta in cui è espresso l’importo della fattura. | ||
| Descrizione Questo attributo specifica la valuta in cui è espresso l’importo della fattura, per esempio USD, EUR o GBP. Fornisce un contesto essenziale per interpretare qualsiasi valore monetario. Per le organizzazioni multinazionali, analizzare i dati per valuta è importante per comprendere i risultati finanziari nei diversi mercati. Consente di interpretare correttamente gli importi e, se necessario, di aggregarli e confrontarli dopo la conversione valutaria. Perché è importante Fornisce il contesto necessario per interpretare tutti gli importi, un aspetto fondamentale per una rendicontazione e un’analisi finanziaria accurate, soprattutto nelle attività internazionali. Dove reperirli Corrisponde al campo «Currency» della registrazione della transazione di fattura in NetSuite. Esempi USDEURGBP | |||
Attività di Order to Cash - Fatturazione ed emissione delle fatture
| Attività | Descrizione | ||
|---|---|---|---|
| Fattura approvata | La fattura è stata approvata formalmente ed è pronta per essere inviata al cliente. L’evento viene rilevato quando lo stato di approvazione passa da «Pending Approval» ad «Approved», in genere tramite un’azione del flusso di lavoro. | ||
| Perché è importante È una tappa fondamentale che autorizza l’invio della fattura al cliente. È essenziale per misurare i tempi del ciclo di approvazione e calcolare il KPI «Rapporto di fatturazione automatizzata». Dove reperirli Dedotto dal campo «Approval Status» della registrazione della fattura, quando il valore passa ad «Approved». La data e l’ora esatte sono registrate nelle note di sistema della transazione. Acquisizione Dedotto dalla modifica del campo «Approval Status» ad «Approved» registrata nelle note di sistema. Tipo di evento inferred | |||
| Fattura creata | Indica la creazione ufficiale della registrazione della transazione di fattura in NetSuite. Questo evento segna l’inizio del processo di fatturazione per ciascun numero di fattura e viene rilevato tramite la data e l’ora di creazione della transazione. | ||
| Perché è importante È l’evento di inizio principale del processo di fatturazione. Analizzare il tempo che intercorre tra questo evento e quelli successivi permette di valutare l’efficienza complessiva del processo e costituisce la base di riferimento per il KPI Tempo di ciclo di generazione della fattura. Dove reperirli Rilevato dal campo data e ora «Date Created» della registrazione della transazione di fattura. Le note di sistema di NetSuite registrano inoltre esplicitamente l’evento di creazione e l’utente che lo ha eseguito. Acquisizione Evento registrato al momento della creazione della registrazione della transazione di fattura. Tipo di evento explicit | |||
| Fattura inviata al cliente | Indica che la fattura è stata inviata al cliente, in genere tramite e-mail. L’evento viene rilevato registrando l’esecuzione dell’azione «Email» da parte di un utente nella registrazione della fattura. | ||
| Perché è importante Segna l’inizio del periodo di incasso presso il cliente ed è il punto di partenza principale per calcolare i Giorni medi di incasso (DSO). Dove reperirli Dedotto dalla compilazione del campo «Date Last Emailed» nella registrazione della fattura. In alternativa, è possibile rilevarlo dalla creazione di una registrazione di messaggio e-mail nella scheda secondaria Communication. Acquisizione Dedotto dalla compilazione di «Date Last Emailed» o dalla creazione di una registrazione di comunicazione. Tipo di evento inferred | |||
| Fattura saldata integralmente | Lo stato della fattura è passato a «Paid In Full», indicando che il saldo è pari a zero. Questo evento segna la conclusione positiva del ciclo di fatturazione e incasso della fattura. | ||
| Perché è importante È l’evento finale positivo principale del processo. Analizzare il tempo totale necessario per raggiungere questo stato permette di calcolare il tempo di ciclo complessivo del ciclo di conversione della liquidità. Dove reperirli Dedotto dal campo «Status» della registrazione della fattura, quando il valore passa a «Paid In Full». La data e l’ora della modifica dello stato sono disponibili nelle note di sistema della transazione. Acquisizione Dedotto dalla modifica del campo «Status» a «Paid In Full» registrata nelle note di sistema. Tipo di evento inferred | |||
| Pagamento del cliente ricevuto | Il pagamento del cliente è stato ricevuto e registrato nel sistema. L’evento viene rilevato dalla creazione di una transazione «Customer Payment» in NetSuite, che può essere applicata a una o più fatture. | ||
| Perché è importante Segna la ricezione del denaro, ma non necessariamente la sua applicazione a una fattura specifica. È il primo passaggio del processo di registrazione degli incassi e un evento fondamentale per il calcolo dei DSO. Dove reperirli Rilevato dalla data di creazione della registrazione della transazione «Customer Payment». Il collegamento alla fattura viene stabilito nella scheda secondaria «Apply» del pagamento. Acquisizione Creazione di una registrazione della transazione Customer Payment. Tipo di evento explicit | |||
| Fattura chiusa | La transazione di fattura è stata chiusa, spesso nell’ambito delle attività contabili di fine periodo. Questa operazione impedisce ulteriori modifiche alla transazione dopo il pagamento e la riconciliazione. | ||
| Perché è importante Sebbene avvenga spesso dopo il saldo integrale, può costituire un passaggio amministrativo finale. Analizzare i ritardi tra il pagamento e la chiusura può aiutare a migliorare la tempestività della rendicontazione finanziaria. Dove reperirli Dedotto dal campo «Status», quando il valore passa a «Closed» o a uno stato equivalente. La data e l’ora della modifica sono rilevate dalle note di sistema. Acquisizione Dedotto dalla modifica del campo «Status» registrata nelle note di sistema. Tipo di evento inferred | |||
| Fattura inviata per l’approvazione | Indica che lo stato della fattura è passato a «Pending Approval». L’evento viene rilevato quando un utente invia la fattura a un flusso di lavoro di approvazione configurato, una personalizzazione comune. | ||
| Perché è importante Questa attività segnala l’inizio di un possibile collo di bottiglia nell’approvazione. Il tempo di attesa dell’approvazione è una componente importante del tempo di ciclo complessivo di elaborazione della fattura. Dove reperirli Dedotto dal campo «Approval Status» della registrazione della fattura, quando il valore passa a «Pending Approval». La data e l’ora della modifica sono disponibili nella traccia di controllo delle note di sistema della fattura. Acquisizione Dedotto dalla modifica del campo «Approval Status» registrata nelle note di sistema. Tipo di evento inferred | |||
| Fattura stornata | La fattura è stata stornata, annullandola di fatto e rettificando ogni effetto sul libro mastro. Questa operazione viene in genere eseguita per le fatture create per errore prima del pagamento. | ||
| Perché è importante Rappresenta un’eccezione del processo e uno stato terminale. Capire perché le fatture vengono stornate può far emergere errori di inserimento dati o di processo da correggere a monte. Dove reperirli Si tratta di un’azione esplicita dell’utente. È possibile rilevarla dalle note di sistema della registrazione della fattura, che indicano quando e da chi è stata stornata la transazione. Acquisizione Azione esplicita «Void» registrata nelle note di sistema della fattura. Tipo di evento explicit | |||
| Nota di credito creata | È stata creata una transazione di nota di credito e applicata alla fattura, riducendo il saldo dovuto. In genere, ciò indica un reso, un reclamo sul servizio o una rettifica dei prezzi. | ||
| Perché è importante Evidenzia rilavorazioni, problemi di qualità o contestazioni dei clienti. Il ripetersi di questi casi può segnalare problemi sottostanti ed è un dato fondamentale per la Dashboard «Analisi delle rilavorazioni e dei rifiuti delle fatture». Dove reperirli Rilevato dalla creazione di una transazione di nota di credito. Il collegamento alla fattura originale si trova nel campo «Created From» o nella scheda secondaria «Apply» della nota di credito. Acquisizione Creazione di una registrazione di nota di credito collegata alla fattura originale. Tipo di evento explicit | |||
| Pagamento applicato alla fattura | Il pagamento ricevuto dal cliente è stato applicato specificamente a questa fattura, riducendo l’importo dovuto. L’operazione viene registrata quando si salva l’applicazione nella registrazione Customer Payment. | ||
| Perché è importante È il collegamento fondamentale tra la ricezione del denaro e il saldo della fattura. Il tempo che intercorre tra «Pagamento ricevuto» e questo evento determina il KPI «Tempo di ciclo di registrazione degli incassi». Dove reperirli Rilevato dalle note di sistema o dalla traccia di controllo della transazione Customer Payment, in particolare quando viene salvata l’applicazione alla riga della fattura. La data e l’ora dell’applicazione sono essenziali. Acquisizione Registrato quando si salva la registrazione Customer Payment con un’applicazione alla fattura. Tipo di evento explicit | |||
| Promemoria di pagamento inviato | È stata inviata al cliente una comunicazione relativa a un pagamento in sospeso. L’evento viene rilevato come attività registrata o e-mail inviata dalla registrazione della fattura o del cliente, spesso tramite una soluzione per la gestione dei solleciti. | ||
| Perché è importante È essenziale per valutare l’efficacia delle strategie di recupero crediti. Analizzare l’impatto di questa attività sui pagamenti successivi aiuta a ottimizzare la frequenza e il momento di invio dei promemoria. Dove reperirli Rilevato dalla creazione di una registrazione e-mail nella scheda secondaria Communication > Messages della registrazione della fattura o del cliente. Le soluzioni automatizzate per la gestione dei solleciti possono registrare queste attività anche come registrazioni personalizzate o task. Acquisizione Registrato come e-mail o attività associata alla fattura. Tipo di evento explicit | |||
| Raggiunta la data di scadenza del pagamento | Evento calcolato che si verifica quando la data corrente coincide con la data di scadenza della fattura. Non corrisponde a un’azione diretta dell’utente o del sistema, ma viene ricavato dai dati esistenti durante l’analisi. | ||
| Perché è importante Costituisce un valore di riferimento fondamentale per misurare la puntualità dei pagamenti. È essenziale per calcolare il KPI «Tasso di pagamento puntuale» e analizzare le abitudini di pagamento dei clienti. Dove reperirli Non è un evento esplicito in NetSuite. Si calcola confrontando la data e l’ora dell’evento nel log degli eventi con il campo «Due Date» della registrazione della transazione di fattura. Acquisizione Calcolato quando la data e l’ora dell’evento coincidono con il campo «Due Date» della fattura. Tipo di evento calculated | |||
Guide all’estrazione
Passaggi
- Acceda a NetSuite: acceda al Suo account NetSuite con un ruolo che disponga delle autorizzazioni necessarie per creare ed eseguire ricerche salvate sui record delle transazioni.
- Apra le ricerche salvate: vada in Reports > Saved Searches > All Saved Searches > New. Selezioni 'Transaction' dall’elenco dei tipi di ricerca. Questa sarà la base per creare più ricerche, una per ogni tipo di evento.
- Crei la ricerca 'Fattura creata': questa ricerca principale registra la creazione delle fatture.
- Nella scheda 'Criteria', sotto 'Standard', imposti il filtro 'Type' su 'is Invoice'.
- Aggiunga il filtro 'Main Line' e lo imposti su 'is true' per ottenere un record per fattura.
- Nella scheda 'Results', aggiunga le colonne necessarie. Utilizzi formule per creare campi standardizzati, come 'ActivityName'. Ad esempio, aggiunga un campo 'Formula (Text)' con la formula
_UTF8'Invoice Created'.
- Crei le ricerche per le variazioni di stato (approvazione, pagamento, annullamento, chiusura): molte attività corrispondono a variazioni di stato. Per registrare con maggiore affidabilità la data e l’ora esatte, utilizzi System Notes.
- Crei una nuova ricerca salvata di tipo Transaction.
- Nella scheda 'Criteria', imposti 'Type' su 'is Invoice'.
- Nella scheda secondaria 'Standard', aggiunga il filtro 'System Notes : Field' e selezioni il campo di stato pertinente, ad esempio 'Approval Status'.
- Aggiunga il filtro 'System Notes : New Value' e imposti lo stato desiderato, ad esempio 'Approved'.
- Nella scheda 'Results', associ 'System Notes : Date' a
EventTimestampe 'System Notes : Set by' aUtente. - Ripeta la procedura per ogni attività basata sullo stato: 'Fattura inviata per approvazione', 'Fattura approvata', 'Fattura pagata per intero', 'Fattura annullata' e 'Fattura chiusa', modificando di conseguenza i filtri per campo e valore.
- Crei la ricerca 'Fattura inviata al cliente': in genere, questo evento si registra monitorando i messaggi e-mail inviati dal record della fattura.
- Crei una nuova ricerca salvata di tipo Transaction con 'Type' impostato su 'is Invoice'.
- Nella scheda 'Criteria', sotto 'Related Records', aggiunga il filtro 'Messages : Date Sent' e lo imposti su 'is not empty'.
- Nella scheda 'Results', associ 'Messages : Date Sent' a
EventTimestampe 'Messages : Author' aUtente.
- Crei le ricerche per i pagamenti e le note di credito: questi eventi riguardano tipi di transazione separati, collegati alla fattura.
- Per 'Pagamento del cliente ricevuto', crei una ricerca con 'Type' impostato su 'Customer Payment'. Utilizzi la data di creazione come data e ora dell’evento.
- Per 'Pagamento applicato alla fattura', utilizzi la stessa ricerca 'Customer Payment', collegandola ai campi 'Applied To Transaction'. La data di creazione della transazione di pagamento funge da data e ora dell’evento. Otterrà una riga per ogni pagamento applicato a una fattura.
- Per 'Nota di credito creata', crei una ricerca con 'Type' impostato su 'Credit Memo' e utilizzi il campo 'Created From' per recuperare il numero della fattura originale.
- Esegua ed esporti ogni ricerca salvata: esegua le ricerche create. Nella pagina dei risultati, faccia clic sull’icona di esportazione (CSV, Excel o PDF) e selezioni CSV. Se il numero di risultati supera il limite di esportazione di NetSuite, potrebbe essere necessario esportare i dati in più blocchi.
- Combini e trasformi i dati: riunisca tutti i file CSV esportati in un unico file, utilizzando uno strumento come Microsoft Excel, uno script Python o uno strumento di preparazione dei dati.
- Derivi l’evento 'Data di scadenza del pagamento raggiunta': nel file dei dati combinati, crei una nuova riga per ogni evento 'Fattura creata'. Imposti
ActivityNamesu 'Payment Due Date Reached',EventTimestampsul valore del campoDueDatedella fattura e copi gli altri attributi pertinenti della fattura. - Completi l’Event Log: uniformi le intestazioni delle colonne in modo che corrispondano allo schema richiesto, ad esempio
InvoiceNumber,ActivityNameeEventTimestamp. Verifichi che i formati di data e ora siano coerenti. Aggiunga le colonneSourceSystemeLastDataUpdatecon valori statici per questo lotto di estrazione. Salvi il file consolidato finale in formato CSV per caricarlo.
Configurazione
- Prerequisiti: è necessario un ruolo utente con le autorizzazioni per creare, modificare ed eseguire ricerche salvate di tipo 'Transaction'. È inoltre necessario poter visualizzare i record Invoice, Customer Payment, Credit Memo e System Notes.
- Tipo di ricerca: il tipo di ricerca principale utilizzato per tutte le estrazioni è 'Transaction'. Consente di accedere a tutti i record e alle relative relazioni necessari.
- Filtro per intervallo di date: per gestire le prestazioni e il volume dei dati, applichi un filtro per intervallo di date a ogni ricerca. Per l’analisi iniziale, si consiglia di filtrare il campo 'Date Created' per un periodo compreso tra gli ultimi 3 e 6 mesi.
- Filtro Main Line: imposti il criterio 'Main Line' su 'true' per gli eventi a livello di intestazione del documento, come 'Fattura creata'. Lo imposti su 'false' quando è necessario analizzare i dettagli delle singole righe, operazione non richiesta per questo processo.
- System Notes: la registrazione delle variazioni di stato dipende in larga misura da System Notes. Verifichi che il controllo delle modifiche sia attivato nella configurazione di NetSuite per i campi chiave delle transazioni, come 'Status' e 'Approval Status' (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Considerazioni sulle prestazioni: le ricerche complesse, con numerosi collegamenti e campi formula su un ampio intervallo di date, possono richiedere molto tempo nell’interfaccia di NetSuite. È consigliabile eseguirle ed esportarle nelle fasce orarie di minore attività. Se una ricerca va in timeout, riduca l’intervallo di date ed esporti i dati in blocchi più piccoli.
Query di esempio sql
/*
This section describes the configuration for multiple NetSuite Saved Searches needed to generate the complete event log. Each block represents a separate Saved Search that must be created in the UI, exported, and then combined externally.
*/
-- Search 1: Invoice Created
Activity Name: 'Invoice Created'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Main Line is true
Results Columns (Mapped to Event Log Attributes):
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Created'
- EventTimestamp: Date Created
- User: Created By
- InvoiceDate: Date
- DueDate: Due Date
- InvoiceTotalAmount: Amount (Gross)
- CustomerName: Name
-- Search 2: Invoice Submitted for Approval
Activity Name: 'Invoice Submitted for Approval'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Pending Approval' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Submitted for Approval'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 3: Invoice Approved
Activity Name: 'Invoice Approved'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Approved' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Approved'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 4: Invoice Sent to Customer
Activity Name: 'Invoice Sent to Customer'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Messages : Date Sent is not empty
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Sent to Customer'
- EventTimestamp: Messages : Date Sent (use Maximum summary type if multiple)
- User: Messages : Author (use Maximum summary type)
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 5: Payment Reminder Issued
Activity Name: 'Payment Reminder Issued'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- User Notes : Note contains [Your dunning/reminder keyword]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Payment Reminder Issued'
- EventTimestamp: User Notes : Date
- User: User Notes : Author
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 6: Credit Memo Created
Activity Name: 'Credit Memo Created'
Saved Search Type: Transaction
Criteria:
- Type is Credit Memo
- Main Line is true
Results Columns:
- InvoiceNumber: Created From : Document Number
- ActivityName: Formula (Text) = 'Credit Memo Created'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 7: Customer Payment Received
Activity Name: 'Customer Payment Received'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is true
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Customer Payment Received'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 8: Payment Applied To Invoice
Activity Name: 'Payment Applied To Invoice'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is false
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Payment Applied To Invoice'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 9: Invoice Paid In Full
Activity Name: 'Invoice Paid In Full'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value is Paid In Full
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Paid In Full'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 10: Invoice Voided
Activity Name: 'Invoice Voided'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Status is Invoice : Voided
- System Notes : Field is Status
- System Notes : New Value is Voided
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Voided'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
-- Search 11: Invoice Closed
Activity Name: 'Invoice Closed'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value contains Closed
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Closed'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Event to be Derived Post-Extraction: Payment Due Date Reached
/*
This event is not extracted directly. After combining all other CSVs, create a new row for each unique invoice.
Set ActivityName to 'Payment Due Date Reached'.
Set EventTimestamp to the DueDate value from the 'Invoice Created' event for that invoice.
Copy other attributes like InvoiceNumber, CustomerName, etc.
*/ Passaggi
- Prerequisito: attivi SuiteAnalytics Connect: verifichi che il modulo SuiteAnalytics Connect sia concesso in licenza e attivato nella Sua istanza NetSuite. In genere, l’amministratore NetSuite esegue questa operazione in Setup > Company > Enable Features > Analytics.
- Scarichi e configuri il driver ODBC: apra la Dashboard iniziale di NetSuite e individui il portlet 'Settings'. Faccia clic sul collegamento 'Set Up SuiteAnalytics Connect' per scaricare il driver ODBC appropriato per il sistema operativo in uso. Segua le istruzioni di installazione fornite da NetSuite per installare e configurare il driver, inserendo l’host del servizio, la porta, l’ID account, l’ID ruolo, l’indirizzo e-mail e la password.
- Stabilisca la connessione al database: utilizzi un client SQL compatibile con le connessioni ODBC, ad esempio DBeaver, Tableau o Power BI. Crei una nuova connessione ODBC con il driver configurato nel passaggio precedente. Verifichi la connessione per assicurarsi di poter autenticarsi e accedere al database di replica in sola lettura di NetSuite.
- Prepari la query SQL: copi la query SQL completa riportata nella sezione 'Query' di questo documento. La query è progettata per estrarre tutte le attività e gli attributi necessari per il processo di fatturazione Order to Cash.
- Imposti i parametri della query: prima di eseguirla, individui i valori segnaposto nella query. Sostituisca
'YYYY-MM-DD'con le date di inizio e fine desiderate per il periodo di estrazione. Sostituisca inoltre[Your Subsidiary ID]con l’ID interno della filiale NetSuite da analizzare. - Esegua la query: esegua la query modificata nel client SQL. Il tempo di esecuzione varia in base all’intervallo di date e al volume delle transazioni presenti nell’account NetSuite.
- Riveda i risultati: al termine dell’esecuzione, verrà restituita una tabella piatta che rappresenta l’Event Log. Ogni riga corrisponde a un’attività specifica nel ciclo di vita della fattura. Riveda i dati per verificarne la completezza e l’accuratezza.
- Esporti l’Event Log: esporti i risultati della query dal client SQL in un file CSV. Verifichi che il file sia codificato in UTF-8 per evitare problemi con i caratteri.
- Prepari i dati per il caricamento: prima di caricarli in uno strumento di Process Mining, verifichi che le intestazioni delle colonne corrispondano ai nomi degli attributi richiesti, ad esempio InvoiceNumber, ActivityName ed EventTimestamp. Controlli che i formati di data e ora siano coerenti.
Configurazione
- Licenza SuiteAnalytics Connect: per accedere al database di replica in sola lettura di NetSuite è indispensabile una licenza valida del modulo SuiteAnalytics Connect. Senza questa licenza, non è possibile accedere direttamente ai dati tramite SQL.
- Ruolo e utente dedicati: si consiglia vivamente di creare un ruolo NetSuite dedicato, con le autorizzazioni appropriate per SuiteAnalytics Connect. Il ruolo dovrebbe avere accesso in sola lettura ai record necessari, tra cui Transactions, Customers e System Notes. Per garantire la sicurezza e la verificabilità dell’estrazione, assegni a questo ruolo un utente dedicato.
- Filtro per intervallo di date: la query fornita include una clausola
WHEREsulla data di creazione della fattura (Transaction.TRANDATE). Per le prime estrazioni, è consigliabile iniziare con un intervallo più breve, ad esempio gli ultimi 3-6 mesi, così da gestire le prestazioni e il volume dei dati. Esempio:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filtro per filiale: negli account con più filiali, filtrare per la filiale specifica è fondamentale sia per le prestazioni sia per la pertinenza dei dati. La query include il segnaposto
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID], che deve essere configurato. - Aggiornamento dei dati: il database SuiteAnalytics Connect è una replica in sola lettura. I dati vengono in genere aggiornati più volte all’ora, ma non in tempo reale. Tenga presente che possono trascorrere alcune ore tra il verificarsi di una transazione in NetSuite e la sua comparsa nel database Connect.
Query di esempio sql
WITH Invoices AS (
SELECT
T.TRANSACTION_ID,
T.TRANID AS InvoiceNumber,
T.TRANDATE AS InvoiceDate,
T.DUEDATE AS DueDate,
T.FOREIGN_TOTAL AS InvoiceTotalAmount,
C.COMPANYNAME AS CustomerName,
BUILTIN.DF(C.LOCATION) AS Region,
T.CREATED_DATE AS InvoiceCreationDate,
CREATOR.FIRST_NAME || ' ' || CREATOR.LAST_NAME AS CreatorUser
FROM
TRANSACTIONS T
JOIN
CUSTOMERS C ON T.ENTITY_ID = C.CUSTOMER_ID
LEFT JOIN
EMPLOYEES CREATOR ON T.CREATED_BY_ID = CREATOR.EMPLOYEE_ID
WHERE
T.TRANSACTION_TYPE = 'Invoice'
AND T.TRANDATE BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD')
-- AND T.SUBSIDIARY_ID = [Your Subsidiary ID] -- Add your subsidiary filter if needed
)
-- 1. Invoice Created
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Created' AS "ActivityName",
I.InvoiceCreationDate AS "EventTimestamp",
I.InvoiceCreationDate AS "EventEndTime",
I.CreatorUser AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN I.CreatorUser LIKE '%System%' THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
UNION ALL
-- 2. Invoice Submitted for Approval & 3. Invoice Approved
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE WHEN SN.NEW_VALUE = 'Pending Approval' THEN 'Invoice Submitted for Approval' ELSE 'Invoice Approved' END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
SN.FIELD = 'TRANSACTION.APPROVALSTATUS' AND SN.NEW_VALUE IN ('Pending Approval', 'Approved')
UNION ALL
-- 4. Invoice Sent to Customer
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Sent to Customer' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' -- Indicates an outgoing message
UNION ALL
-- 5. Payment Due Date Reached
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Due Date Reached' AS "ActivityName",
I.DueDate AS "EventTimestamp",
I.DueDate AS "EventEndTime",
'System' AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
1 AS "IsAutomated"
FROM
Invoices I
WHERE
I.DueDate IS NOT NULL AND I.DueDate < SYSDATE
UNION ALL
-- 6. Payment Reminder Issued (based on Messages table, requires a specific subject line convention)
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Reminder Issued' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN M.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' AND UPPER(M.SUBJECT) LIKE '%PAYMENT REMINDER%'
UNION ALL
-- 7. Credit Memo Created & Applied
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Credit Memo Created' AS "ActivityName",
CM.CREATED_DATE AS "EventTimestamp",
CM.CREATED_DATE AS "EventEndTime",
CM_CREATOR.FIRST_NAME || ' ' || CM_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS CM ON T_LINES.TRANSACTION_ID = CM.TRANSACTION_ID
LEFT JOIN
EMPLOYEES CM_CREATOR ON CM.CREATED_BY_ID = CM_CREATOR.EMPLOYEE_ID
WHERE
CM.TRANSACTION_TYPE = 'Credit Memo'
UNION ALL
-- 8. Customer Payment Received & 9. Payment Applied to Invoice
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Customer Payment Received' AS "ActivityName", -- Can also create a separate 'Payment Applied' event if needed
PAYMENT.CREATED_DATE AS "EventTimestamp",
PAYMENT.CREATED_DATE AS "EventEndTime",
PMT_CREATOR.FIRST_NAME || ' ' || PMT_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS PAYMENT ON T_LINES.TRANSACTION_ID = PAYMENT.TRANSACTION_ID
LEFT JOIN
EMPLOYEES PMT_CREATOR ON PAYMENT.CREATED_BY_ID = PMT_CREATOR.EMPLOYEE_ID
WHERE
PAYMENT.TRANSACTION_TYPE = 'Customer Payment'
UNION ALL
-- 10. Invoice Paid In Full, 11. Invoice Voided, 12. Invoice Closed
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE
WHEN SN.NEW_VALUE_ID = 'Invoice:B' THEN 'Invoice Paid In Full' -- 'B' is status 'Paid In Full'
WHEN SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Voided'
WHEN SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Closed'
END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
(SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE_ID = 'Invoice:B')
OR (SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T')
OR (SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T'); È pronto a iniziare?
Utilizzi questo template per avviare il progetto di Process Mining e ottenere informazioni utili sulle operazioni di fatturazione ed emissione delle fatture. Inizi oggi a ottimizzare il processo Order to Cash.
Ottimizzi subito la fatturazione in NetSuite per accelerare i flussi di cassa
Riduca del 30% il tempo di ciclo della fatturazione in NetSuite e migliori i flussi di cassa.
Non è richiesta la carta di credito. La configurazione richiede pochi minuti.