Il Suo Template dei dati Order to Cash - Billing & Invoicing
Il Suo Template dei dati Order to Cash - Billing & Invoicing
- 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 | ||
|---|---|---|---|
| Nome dell'attività ActivityName | Il nome dell'evento aziendale verificatosi in un momento specifico del ciclo di vita della fattura. | ||
| Descrizione Il nome dell'attività descrive un passaggio o un evento specifico del processo di fatturazione, come 'Invoice Created', 'Invoice Approved' o 'Customer Payment Received'. Queste attività costituiscono gli elementi sequenziali della mappa del processo. Analizzare la sequenza e la frequenza di queste attività è fondamentale per il Process Mining. Aiuta a visualizzare il flusso effettivo del processo, individuare i percorsi comuni e rari del processo, ovvero le varianti, e identificare le attività ripetute frequentemente, che indicano rilavorazioni o inefficienze. Perché è importante Questo attributo è fondamentale per costruire la mappa del processo, consentendo di visualizzare e analizzare i diversi passaggi e percorsi seguiti da una fattura. Dove reperirlo Derivato dai log di sistema, dalle modifiche di stato o da specifici record di eventi associati alla transazione Invoice in NetSuite. Spesso è necessario mappare le modifiche di stato della transazione o la creazione di record correlati ai nomi delle attività definiti. Esempi Fattura creataFattura approvataPagamento del cliente ricevutoFattura pagata integralmente | |||
| Numero della fattura InvoiceNumber | L'identificativo univoco di ogni documento di fatturazione, che funge da identificativo principale del caso per il processo di fatturazione. | ||
| Descrizione Il numero della fattura è il fulcro dell'analisi del processo di fatturazione, poiché identifica univocamente ogni fattura dalla creazione fino alla chiusura definitiva. Raggruppa in un unico caso coerente tutte le attività correlate, come approvazione, invio e applicazione del pagamento. Nel Process Mining, analizzare il percorso di ogni numero di fattura consente di ottenere una visione completa dell'intero ciclo di vita della fatturazione. Questo permette di individuare varianti del processo, colli di bottiglia e deviazioni dalla procedura standard, fornendo insight fondamentali per ottimizzare il flusso di cassa e l'efficienza operativa. Perché è importante È essenziale per monitorare il ciclo di vita end-to-end di ogni fattura, consentendo di ricostruire l'intero processo di fatturazione e di eseguire un'analisi dettagliata delle performance. Dove reperirlo Si tratta generalmente del campo 'Transaction ID' o di un identificativo univoco analogo nel record della transazione Invoice in NetSuite. Esempi INV-0012345INV-0012346INV-0012347 | |||
| Timestamp dell'evento EventTimestamp | La data e l'ora precise in cui si è verificata una specifica attività o un determinato evento. | ||
| Descrizione Questo attributo registra il momento esatto in cui si è svolta un'attività. È una componente fondamentale per ordinare cronologicamente gli eventi e per tutte le analisi basate sul tempo. Nel Process Mining, il timestamp dell'evento viene utilizzato per 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 performance del processo rispetto agli SLA e comprendere le dinamiche temporali del processo di fatturazione. Ad esempio, viene utilizzato per calcolare l'Invoice Generation Cycle Time e il Days Sales Outstanding (DSO). Perché è importante Fornisce l'ordine cronologico degli eventi, essenziale per calcolare tutte le metriche basate sulla durata, individuare i colli di bottiglia e analizzare nel tempo le performance del processo. Dove reperirlo Le informazioni sui timestamp si trovano generalmente nelle system notes, nelle tracce di audit o nei campi 'Date Created' dei record correlati a ciascuna transazione Invoice in NetSuite. Esempi 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Sistema di origine SourceSystem | Il sistema dal quale sono stati estratti i dati. | ||
| Descrizione Questo attributo identifica l'origine dei dati del processo. In questa vista, il valore sarebbe costantemente 'NetSuite'. In un contesto di analisi più ampio, soprattutto nelle organizzazioni che utilizzano più ERP o sistemi integrati, questo attributo è fondamentale per la tracciabilità e la governance dei dati. Aiuta a distinguere i processi che possono estendersi su piattaforme diverse e garantisce che l'analisi sia attribuita correttamente al sistema di riferimento appropriato. Perché è importante Fornisce un contesto fondamentale sull'origine e sulla governance dei dati, soprattutto negli ambienti in cui possono essere integrati più sistemi. Dove reperirlo Si tratta di un valore statico ('NetSuite') aggiunto durante il processo di estrazione e trasformazione dei dati. Esempi NetSuite | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Il timestamp che indica l'ultima volta in cui i dati sono stati aggiornati dal sistema di origine. | ||
| Descrizione Questo attributo registra il momento dell'ultimo aggiornamento del dataset. Fornisce il contesto necessario per valutarne l'attualità e la rilevanza dell'analisi di Process Mining. Gli analisti e gli stakeholder aziendali utilizzano queste informazioni per comprendere se gli insight riflettono lo stato operativo più recente. Si tratta di un metadato fondamentale per qualsiasi Dashboard o report, poiché garantisce che le decisioni si basino su dati di cui è nota l'età e che non vengano interpretati erroneamente come dati in tempo reale quando non lo sono. Perché è importante Informa gli utenti sull'aggiornamento dei dati, assicurando che comprendano l'intervallo temporale dell'analisi e la rilevanza degli insight. Dove reperirlo Questo timestamp viene generato e registrato dallo strumento o dalla pipeline di estrazione dei dati al momento dell'aggiornamento. Esempi 2024-05-21T02:00:00Z | |||
| Data della fattura InvoiceDate | La data ufficiale della fattura, così come emessa al cliente. | ||
| Descrizione La data della fattura, o data della transazione, costituisce il punto di partenza per molti calcoli finanziari relativi alla fatturazione. È la data a partire dalla quale vengono generalmente calcolati i termini di pagamento e le date di scadenza. Nell'analisi, questa data funge da riferimento principale per calcolare KPI finanziari fondamentali come il Days Sales Outstanding (DSO) e l'anzianità delle fatture. Consente l'analisi per coorti, permettendo di confrontare le performance di fatturazione in periodi diversi, ad esempio mese su mese o anno su anno. Perché è importante Questa data costituisce la base per metriche finanziarie fondamentali come il Days Sales Outstanding (DSO) e l'anzianità delle fatture, incidendo direttamente sull'analisi del capitale circolante. Dove reperirlo Corrisponde al campo 'Date' (trandate) del record della transazione Invoice in NetSuite. Esempi 2023-10-262023-10-272023-11-15 | |||
| Data di scadenza DueDate | La data entro la quale deve essere effettuato il pagamento della fattura. | ||
| Descrizione La data di scadenza viene calcolata in base alla data della fattura e ai termini di pagamento concordati. Rappresenta il termine entro il quale il cliente deve effettuare il pagamento per non essere considerato in ritardo. Questo attributo è essenziale per monitorare i crediti commerciali e gestire il flusso di cassa. Costituisce il riferimento utilizzato per calcolare il KPI On-Time Payment Rate e analizzare il comportamento di pagamento dei clienti. Monitorare gli scostamenti dalla data di scadenza aiuta a individuare i clienti che pagano frequentemente in ritardo e a valutare l'efficacia delle strategie di riscossione. Perché è importante È fondamentale per misurare la puntualità dei pagamenti e analizzare il comportamento dei clienti, sostenendo direttamente le attività di riscossione e le previsioni del flusso di cassa. Dove reperirlo Corrisponde al campo 'Due Date' (duedate) del record della transazione Invoice in NetSuite. Esempi 2023-11-252023-11-262023-12-15 | |||
| È automatizzato IsAutomated | Un indicatore che specifica se un’attività è stata eseguita automaticamente dal sistema. | ||
| Descrizione Questo attributo booleano distingue tra le attività eseguite manualmente da un utente e quelle eseguite automaticamente da un Workflow di sistema, da uno script o da un’integrazione. Questo attributo è fondamentale per misurare il livello di automazione del processo di fatturazione e supporta direttamente il KPI «Automated Billing Ratio». Filtrando le attività automatizzate o manuali, gli analisti possono individuare i colli di bottiglia causati dall’intervento manuale e identificare le opportunità per aumentare l’automazione, ridurre gli errori umani e migliorare l’efficienza. Perché è importante Aiuta a misurare il livello di automazione del processo, individuando le opportunità per ridurre il lavoro manuale e aumentare l’efficienza. Dove reperirlo In genere viene ricavato verificando l’«User» associato a un’attività. Gli eventi attivati da utenti denominati «SYSTEM», «Workflow» o «Integration» vengono contrassegnati come automatizzati. Esempi truefalse | |||
| Importo totale della fattura InvoiceTotalAmount | Il valore monetario complessivo della fattura, comprese imposte e altri addebiti. | ||
| Descrizione Questo attributo rappresenta l'importo totale che il cliente deve pagare. È un dato finanziario fondamentale per ogni caso di fatturazione. Analizzare il processo in base all'importo della fattura consente un'analisi basata sul valore. Ad esempio, può rivelare se le fatture di importo elevato seguono un processo diverso e più complesso rispetto a quelle di importo ridotto. Viene inoltre utilizzato per dare priorità alle attività di riscossione e comprendere l'impatto finanziario dei ritardi di pagamento o degli errori nelle fatture. Perché è importante Consente un'analisi del processo basata sul valore, aiutando a dare priorità alle fatture di importo elevato e a comprendere l'impatto finanziario delle inefficienze di processo. Dove reperirlo Corrisponde al campo «Total» (totale) del record della transazione Invoice in NetSuite. Esempi 1500.0089.9912500.50 | |||
| Nome cliente CustomerName | Il nome del cliente a cui è stata emessa la fattura. | ||
| Descrizione Questo attributo identifica la persona giuridica o fisica a cui viene addebitato l’importo. Collega il processo di fatturazione alla funzione di gestione delle relazioni con i clienti. L’analisi del processo di fatturazione per cliente aiuta a individuare modelli nel comportamento di pagamento, nelle contestazioni o nella complessità delle fatture per specifici clienti. Queste informazioni possono orientare le strategie di segmentazione della clientela, le decisioni sui limiti di credito e le attività di recupero personalizzate. Ad esempio, possono evidenziare se un determinato cliente riceve sistematicamente fatture che richiedono rielaborazioni. Perché è importante Consente un’analisi incentrata sul cliente, aiutando a individuare modelli di pagamento, problemi ricorrenti o deviazioni di processo specifici di determinati clienti. Dove reperirlo Corrisponde al campo del nome «Customer» o «Entity» del record della transazione Invoice in NetSuite. Esempi Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Ora di fine dell'evento EventEndTime | La data e l'ora precise in cui una specifica attività o un determinato evento è stato completato. | ||
| Descrizione L'ora di fine dell'evento indica il completamento di un'attività. Sebbene molte attività siano istantanee, con ora di inizio e di fine coincidenti, alcune, come un passaggio di approvazione, possono avere una durata misurabile. Questo attributo, insieme al timestamp dell'evento, ovvero l'ora di inizio, consente di calcolare direttamente il tempo di elaborazione dell'attività. Analizzare il tempo di elaborazione aiuta a individuare quali passaggi specifici consumano più tempo e risorse, distinguendoli dal tempo di attesa tra le attività. Questo è fondamentale per individuare le inefficienze all'interno di singoli Task. Perché è importante Consente di calcolare con precisione il tempo necessario per completare ogni attività, un elemento essenziale per analizzare l'efficienza delle risorse e individuare i Task che richiedono più tempo. Dove reperirlo Analogamente a StartTime, può essere ricavato dalle tracce di audit di sistema in NetSuite. Potrebbe essere necessaria una logica per associare un evento di 'inizio' al corrispondente evento di 'fine'. Esempi 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Regione Region | La regione geografica associata al cliente o alla transazione. | ||
| Descrizione L’attributo Region classifica le fatture in base all’area geografica, che può essere ricavata dall’indirizzo del cliente o dall’unità aziendale che ha emesso la fattura. Si tratta di una dimensione molto utile per l’analisi comparativa. Il Dashboard «Regional Billing Process Comparison» utilizza questo attributo per confrontare KPI quali tempi di ciclo, tassi di errore e varianti di processo nelle diverse regioni. In questo modo è possibile individuare differenze nelle performance regionali, far emergere le best practice delle regioni più efficienti e promuovere la standardizzazione dei processi in tutta l’organizzazione. Perché è importante Consente di effettuare analisi comparative tra diverse aree geografiche, fondamentali per individuare i divari di performance regionali e standardizzare le best practice. Dove reperirlo Questi dati sono spesso memorizzati in un campo di segmento personalizzato o di classificazione dell’anagrafica cliente o del record della transazione in NetSuite. Esempi Nord AmericaEMEAAPAC | |||
| Utente User | Il nome o l'ID dell'utente che ha eseguito l'attività. | ||
| Descrizione Questo attributo identifica il dipendente o l'utente di sistema responsabile dell'esecuzione di uno specifico passaggio del processo. Può trattarsi della persona che ha creato o approvato la fattura oppure applicato il pagamento. Analizzare il processo per utente aiuta a comprendere la distribuzione del carico di lavoro, le performance individuali e le esigenze formative. Può inoltre evidenziare opportunità di automazione mostrando quali attività manuali vengono eseguite dal maggior numero di utenti. È anche fondamentale per la conformità e l'analisi della traccia di audit. Perché è importante Consente di analizzare la distribuzione del carico di lavoro, le performance dei singoli utenti e l'aderenza al processo, aspetti essenziali per la gestione delle risorse e la formazione mirata. Dove reperirlo Disponibile nella scheda secondaria System Notes o nei campi specifici 'Modified By' dei record Invoice e delle transazioni correlate in NetSuite. Esempi Alice SmithBob JohnsonSYSTEM | |||
| Condizioni di pagamento PaymentTerms | Le condizioni di pagamento concordate tra l’azienda e il cliente. | ||
| Descrizione Le Payment Terms definiscono quando e come il cliente deve pagare la fattura, ad esempio «Net 30» o «Due on receipt». Queste informazioni vengono utilizzate per calcolare automaticamente la data di scadenza della fattura. Questo attributo è fondamentale per il Dashboard «Payment Terms Adherence». L’analisi dei tassi di pagamento puntuale in base alle diverse condizioni di pagamento aiuta a valutarne l’efficacia. Ad esempio, può mostrare se i clienti con condizioni «Net 15» pagano più rapidamente di quelli con condizioni «Net 30», fornendo indicazioni utili per le future negoziazioni contrattuali e le politiche di credito. Perché è importante È essenziale per analizzare l’efficacia delle diverse condizioni di pagamento e il loro impatto sulla puntualità dei pagamenti dei clienti. Dove reperirlo Corrisponde al campo «Terms» del record della transazione Invoice in NetSuite. Esempi 30 giorni netti60 giorni nettiPagamento alla ricezione | |||
| È rielaborazione IsRework | Un indicatore calcolato che identifica le attività considerate rielaborazioni o cicli di correzione. | ||
| Descrizione Questo indicatore booleano viene impostato su true per le attività che rappresentano rielaborazioni prive di valore aggiunto, come «Invoice Corrected» o un secondo evento «Invoice Approved» all’interno dello stesso caso. In genere viene ricavato in base al nome dell’attività o alla ripetizione di un’attività. Questo attributo è essenziale per il Dashboard «Invoice Rework and Rejection Analysis» e per il KPI «Invoice Error Rate». Consente di quantificare facilmente le rielaborazioni e di mettere in evidenza i problemi di qualità del processo. Filtrando le attività di rielaborazione, i team possono individuare rapidamente le cause alla radice degli errori e misurare l’impatto delle iniziative di miglioramento del processo. Perché è importante Misura direttamente la qualità del processo segnalando i cicli di rielaborazione inefficienti e consentendo di analizzare le cause alla radice e l’impatto finanziario degli errori di fatturazione. Dove reperirlo È un attributo derivato calcolato durante la trasformazione dei dati. Viene applicata una logica per identificare le rielaborazioni, ad esempio contrassegnando specifici nomi di attività («Invoice Corrected») o attività ripetute. Esempi truefalse | |||
| Giorni medi di incasso dei crediti commerciali DaysSalesOutstanding | Il numero di giorni tra la data della fattura e la data di ricezione del pagamento. | ||
| Descrizione Days Sales Outstanding (DSO) è una metrica finanziaria 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 un’analisi dettagliata. Sebbene venga spesso aggregato come KPI di alto livello, disporre del DSO a livello di singola fattura consente analisi approfondite. Può essere utilizzato per individuare i clienti, le regioni o le tipologie di fattura con il DSO più elevato. Il Dashboard «DSO Trend» si basa su questa metrica per visualizzare nel tempo l’efficienza degli incassi, fornendo indicazioni fondamentali per la gestione del capitale circolante. Perché è importante Quantifica l’efficienza degli incassi a livello di singola fattura, consentendo un’analisi dettagliata delle cause alla radice di un DSO elevato e del relativo impatto sul flusso di cassa. Dove reperirlo Calcolato sottraendo «InvoiceDate» dal timestamp dell’attività «Customer Payment Received». Esempi 294562 | |||
| Numero dell’ordine di vendita SalesOrderNumber | L’identificativo dell’ordine di vendita da cui è stata generata la fattura. | ||
| Descrizione Questo attributo fornisce un collegamento diretto all’ordine di vendita originario, connettendo il processo di fatturazione ai processi di vendita e di evasione degli ordini che lo precedono. L’inclusione del Sales Order Number consente di ottenere una visione più completa dell’intero ciclo Order-to-Cash. Permette di ricondurre i problemi di fatturazione alla loro origine nel processo di vendita. Ad esempio, correzioni frequenti delle fatture potrebbero essere collegate a errori di inserimento dati in specifiche tipologie di ordini di vendita. Perché è importante Collega il processo di fatturazione al processo di vendita, consentendo un’analisi Order-to-Cash più ampia e completa, utile per individuare le cause alla radice dei problemi di fatturazione. Dove reperirlo È disponibile nel campo «Created From» o nella sottoscheda «Related Records» di una transazione Invoice in NetSuite. Esempi SO-0009876SO-0009877SO-0009878 | |||
| Pagamento puntuale IsOnTimePayment | Un indicatore che specifica se il pagamento del cliente è stato ricevuto entro o prima della data di scadenza della fattura. | ||
| Descrizione Questo indicatore booleano calcolato confronta il timestamp dell’attività «Customer Payment Received» con la «DueDate» della fattura. Viene impostato su true se il pagamento è stato effettuato puntualmente o in anticipo e su false se è stato effettuato in ritardo. Questo attributo costituisce la base del KPI «On-Time Payment Rate» e del Dashboard «Payment Terms Adherence». Fornisce una misura binaria chiara del comportamento di pagamento dei clienti, semplificando l’analisi e la reportistica. Aiuta a individuare rapidamente le tendenze nella puntualità dei pagamenti e a valutare l’efficacia delle strategie di recupero. Perché è importante Fornisce una chiara metrica di successo per le attività di recupero, supportando direttamente il calcolo del KPI On-Time Payment Rate e l’analisi del comportamento dei clienti. Dove reperirlo È un attributo calcolato. Richiede il confronto tra il timestamp 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 rappresenta il reparto interno, ad esempio Sales, Services o una specifica linea di business, responsabile della transazione. In NetSuite è un segmento di classificazione standard. L’analisi del processo per reparto consente di effettuare benchmark interni e di verificare se alcuni reparti gestiscono la fatturazione in modo più efficiente di altri. Può evidenziare variazioni nell’aderenza al processo o nell’allocazione delle risorse, fornendo indicazioni utili per iniziative di miglioramento mirate all’interno di specifiche aree dell’organizzazione. Perché è importante Consente di confrontare le performance del processo tra diversi reparti interni, mettendo in evidenza variazioni e opportunità di standardizzazione interna. Dove reperirlo Corrisponde al campo di classificazione «Department», che può essere impostato a livello di intestazione o di riga di una transazione Invoice in NetSuite. Esempi Vendite - EnterpriseServizi professionaliHardware | |||
| Stato della fattura InvoiceStatus | Lo stato attuale della fattura nel suo ciclo di vita. | ||
| Descrizione Questo attributo riflette lo stato attuale della fattura, ad esempio «Open», «Paid in Full» o «Voided». Fornisce una fotografia della posizione della fattura nel processo in un determinato momento. Il Dashboard «Open Invoices Status Overview» si basa direttamente su questo attributo. Consente di valutare in tempo reale i crediti verso clienti, aiutando i team finanziari a monitorare i saldi insoluti, gestire le attività di recupero e prevedere gli incassi. L’analisi dello stato finale aiuta inoltre a comprendere gli esiti del processo. Perché è importante Fornisce una fotografia dello stato attuale dei crediti verso clienti e consente di creare Dashboard per monitorare le fatture aperte e l’avanzamento complessivo della fatturazione. Dove reperirlo Corrisponde al campo «Status» del record della transazione Invoice in NetSuite. Esempi ApertaPagata integralmenteAnnullataIn attesa di approvazione | |||
| Valuta Currency | Il codice della valuta dell’importo della fattura. | ||
| Descrizione Questo attributo specifica la valuta in cui è espresso l’importo della fattura, ad esempio USD, EUR o GBP. Costituisce un contesto essenziale per qualsiasi valore monetario. Per le organizzazioni multinazionali, l’analisi per valuta è importante per comprendere le performance finanziarie nei diversi mercati. Garantisce che i valori monetari siano interpretati correttamente e consente di aggregarli e confrontarli in modo appropriato dopo la conversione valutaria, se necessaria. Perché è importante Fornisce il contesto necessario per tutti i valori monetari, un elemento fondamentale per una rendicontazione e un’analisi finanziaria accurate, soprattutto nelle attività multinazionali. Dove reperirlo Corrisponde al campo «Currency» del record della transazione Invoice 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 acquisito quando lo stato di approvazione passa da 'Pending Approval' ad 'Approved', generalmente tramite un'azione del Workflow. | ||
| 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 'Automated Billing Ratio'. Dove reperirlo Dedotto dal passaggio del campo 'Approval Status' del record Invoice ad 'Approved'. Il timestamp preciso è registrato nelle system notes della transazione. Acquisizione Dedotto dalla modifica del campo 'Approval Status' ad 'Approved' nelle system notes. Tipo di evento inferred | |||
| Fattura creata | Indica la creazione ufficiale del record della transazione di fatturazione in NetSuite. Questo evento rappresenta l'inizio del processo di fatturazione per ogni numero di fattura univoco e viene acquisito dal timestamp di creazione della transazione. | ||
| Perché è importante Questo è il principale evento iniziale del processo di fatturazione. Analizzare il tempo che intercorre tra questo evento e gli altri rivela l'efficienza complessiva del processo e costituisce la base per il KPI Invoice Generation Cycle Time. Dove reperirlo Acquisito dal timestamp 'Date Created' del record della transazione Invoice. Le system notes di NetSuite registrano inoltre esplicitamente l'evento di creazione e l'utente della fattura. Acquisizione Evento registrato al momento della creazione del record della transazione Invoice. Tipo di evento explicit | |||
| Fattura inviata al cliente | Indica che la fattura è stata inviata al cliente, generalmente tramite e-mail. L'evento viene acquisito registrando il momento in cui un utente esegue l'azione 'Email' dal record della fattura. | ||
| Perché è importante Segna l'inizio del periodo di riscossione dal cliente ed è il principale punto di partenza per il calcolo del Days Sales Outstanding (DSO). Dove reperirlo Dedotto dalla compilazione del campo 'Date Last Emailed' nel record Invoice. In alternativa, può essere acquisito dalla creazione di un record di messaggio e-mail nella scheda secondaria Communication. Acquisizione Dedotto dalla compilazione di 'Date Last Emailed' o dalla creazione di un record di comunicazione. Tipo di evento inferred | |||
| Fattura pagata integralmente | Lo stato della fattura è passato a 'Paid In Full', indicando che il saldo è ora pari a zero. Questa rappresenta la conclusione positiva del ciclo di fatturazione e riscossione della fattura. | ||
| Perché è importante Questo è il principale evento finale positivo del processo. Analizzare il tempo complessivo necessario per raggiungere questo stato fornisce il tempo di ciclo end-to-end del ciclo di conversione della liquidità. Dove reperirlo Dedotto dal passaggio del campo 'Status' del record Invoice a 'Paid In Full'. Il timestamp della modifica di stato è disponibile nelle system notes della transazione. Acquisizione Dedotto dalla modifica del campo 'Status' a 'Paid In Full' nelle system notes. Tipo di evento inferred | |||
| Pagamento del cliente ricevuto | È stato ricevuto un pagamento dal cliente e registrato nel sistema. L'evento viene acquisito tramite la creazione di una transazione 'Customer Payment' in NetSuite, che può essere applicata a una o più fatture. | ||
| Perché è importante Indica la ricezione dell'incasso, ma non necessariamente la sua applicazione a una fattura specifica. È il primo passaggio del processo di applicazione degli incassi e un evento fondamentale per il calcolo del DSO. Dove reperirlo Acquisito dalla data di creazione del record della transazione 'Customer Payment'. Il collegamento alla fattura viene stabilito nella scheda secondaria 'Apply' del pagamento. Acquisizione Creazione di un record della transazione Customer Payment. Tipo di evento explicit | |||
| Fattura annullata | La fattura è stata annullata, con conseguente cancellazione e storno dell'impatto sul libro mastro generale. Questa azione viene generalmente eseguita per fatture create per errore prima del pagamento. | ||
| Perché è importante Rappresenta un'eccezione di processo e uno stato terminale. Comprendere perché le fatture vengono annullate può rivelare errori di inserimento dati o di processo da correggere a monte. Dove reperirlo Si tratta di un'azione esplicita dell'utente. Può essere acquisita dalle system notes del record della fattura, che registrano quando e da chi la transazione è stata annullata. Acquisizione Azione esplicita 'Void' registrata nelle system notes della fattura. Tipo di evento explicit | |||
| Fattura chiusa | La transazione della fattura è stata chiusa, spesso nell'ambito delle attività contabili di fine periodo. Questa azione impedisce ulteriori modifiche alla transazione dopo che è stata completamente pagata e riconciliata. | ||
| Perché è importante Sebbene avvenga spesso dopo 'Paid In Full', può rappresentare un passaggio amministrativo finale. Analizzare i ritardi tra il pagamento e la chiusura potrebbe incidere sulla tempestività della rendicontazione finanziaria. Dove reperirlo Dedotto dal passaggio del campo 'Status' a 'Closed' o a uno stato analogo. Il timestamp della modifica viene acquisito dalle system notes. Acquisizione Dedotto dalla modifica del campo 'Status' nelle system notes. Tipo di evento inferred | |||
| Fattura inviata per l'approvazione | Rappresenta il passaggio dello stato della fattura a 'Pending Approval'. Questo evento viene acquisito quando un utente inserisce la fattura in un Workflow di approvazione configurato, una personalizzazione comune. | ||
| Perché è importante Questa attività identifica l'inizio di un potenziale collo di bottiglia nell'approvazione. Il tempo trascorso in attesa dell'approvazione è una componente fondamentale del tempo complessivo del ciclo di elaborazione della fattura. Dove reperirlo Dedotto dal passaggio del campo 'Approval Status' del record Invoice a 'Pending Approval'. Il timestamp della modifica è disponibile nella traccia di audit delle system notes della fattura. Acquisizione Dedotto dalla modifica del campo 'Approval Status' registrata nelle system notes. Tipo di evento inferred | |||
| Nota di credito creata | È stata creata e applicata alla fattura una transazione di nota di credito, riducendo il saldo insoluto. Questo indica generalmente un reso, una contestazione relativa al servizio o una correzione del prezzo. | ||
| Perché è importante Evidenzia rilavorazioni, problemi di qualità o contestazioni dei clienti. Una frequenza elevata può segnalare problemi sottostanti ed è un elemento fondamentale per la Dashboard 'Invoice Rework and Rejection Analysis'. Dove reperirlo Acquisito dalla creazione di una transazione Credit Memo. Il collegamento alla fattura originale si trova nel campo 'Created From' o nella scheda secondaria 'Apply' della nota di credito. Acquisizione Creazione di un record Credit Memo collegato alla fattura originale. Tipo di evento explicit | |||
| Pagamento applicato alla fattura | Il pagamento ricevuto dal cliente è stato applicato specificamente a questa fattura, riducendone l'importo dovuto. L'evento viene registrato quando l'applicazione viene salvata nel record Customer Payment. | ||
| Perché è importante Questo è il collegamento fondamentale tra la ricezione dell'incasso e la chiusura della fattura. La durata tra 'Payment Received' e questo evento definisce il KPI 'Cash Application Cycle Time'. Dove reperirlo Acquisito dalle system notes o dalla traccia di audit della transazione Customer Payment, precisamente quando viene salvata l'applicazione alla riga della fattura. Il timestamp di questa applicazione è fondamentale. Acquisizione Registrato quando il record Customer Payment viene salvato con un'applicazione alla fattura. Tipo di evento explicit | |||
| Raggiunta la data di scadenza del pagamento | Un 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 Funge da riferimento fondamentale per misurare la puntualità dei pagamenti. È essenziale per calcolare il KPI 'On-Time Payment Rate' e analizzare i comportamenti di pagamento dei clienti. Dove reperirlo Non si tratta di un evento esplicito in NetSuite. Viene calcolato confrontando il timestamp dell'Event Log con il campo 'Due Date' del record della transazione Invoice. Acquisizione Calcolato quando il timestamp dell'evento coincide con il campo 'Due Date' della fattura. Tipo di evento calculated | |||
| Sollecito di pagamento inviato | È stata inviata al cliente una comunicazione relativa a un pagamento insoluto. L'evento viene acquisito come attività registrata o e-mail inviata dal record della fattura o del cliente, spesso tramite una soluzione di dunning. | ||
| Perché è importante È essenziale per valutare l'efficacia delle strategie di riscossione. Analizzare l'impatto di questa attività sui pagamenti successivi aiuta a ottimizzare frequenza e tempistica dei solleciti. Dove reperirlo Acquisito dalla creazione di un record e-mail nella scheda secondaria Communication > Messages del record Invoice o Customer. Le soluzioni automatizzate di dunning possono registrare questi eventi anche come record o attività personalizzati. Acquisizione Registrato come record e-mail o attività associato alla fattura. Tipo di evento explicit | |||
Guide all’estrazione
Passaggi
- Acceda a NetSuite: acceda al Suo account NetSuite utilizzando un ruolo con autorizzazioni sufficienti per creare ed eseguire Saved Searches sui record delle transazioni.
- Acceda a Saved Searches: vada a Report > Saved Searches > All Saved Searches > New. Selezioni "Transazione" dall’elenco dei tipi di ricerca. Questa sarà la base per creare più ricerche, una per ogni tipo di evento.
- Crei la ricerca "Invoice Created": questa è la ricerca principale per acquisire la creazione delle fatture.
- Nella scheda "Criteria", in "Standard", imposti il filtro "Tipo" su "is Fattura".
- Aggiunga un altro filtro per "Main Line" e lo imposti su "is true" per ottenere un record per ogni fattura.
- Nella scheda "Results", aggiunga le colonne necessarie. Utilizzi le 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 modifiche di stato (Approval, Paid, Voided, Closed): molte attività corrispondono a modifiche di stato. Il modo più affidabile per acquisire il timestamp esatto consiste nell’utilizzare le System Notes.
- Crei una nuova Transaction Saved Search.
- Nella scheda "Criteria", imposti "Tipo" su "is Fattura".
- Nella sottoscheda "Standard", aggiunga il filtro "System Notes : Field" e selezioni il campo di stato pertinente, ad esempio "Approval Status".
- Aggiunga un altro filtro, "System Notes : New Value", e lo imposti sullo stato di destinazione, ad esempio "Approvato".
- Nella scheda "Results", associ "System Notes : Date" a
EventTimestampe "System Notes : Set by" aUtente. - Ripeta la procedura per ogni attività basata sullo stato: "Invoice Submitted for Approval", "Invoice Approved", "Invoice Paid In Full", "Invoice Voided" e "Invoice Closed", modificando di conseguenza i filtri relativi al campo e al valore.
- Crei la ricerca "Invoice Sent to Customer": in genere questo evento viene acquisito monitorando i messaggi e-mail inviati dal record della fattura.
- Crei una nuova Transaction Saved Search con "Tipo" impostato su "is Fattura".
- Nella scheda "Criteria", in "Related Records", aggiunga un filtro per "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 le attività relative a pagamenti e note di credito: queste attività riguardano tipi di transazione separati collegati alla fattura.
- Per "Customer Payment Received", crei una ricerca con "Tipo" impostato su "Pagamento cliente". Acquisisca la data di creazione come timestamp dell’evento.
- Per "Payment Applied To Invoice", utilizzi la stessa ricerca "Pagamento cliente", collegandola ai campi "Applied To Transaction". La "Date Created" della transazione di pagamento funge da timestamp. Otterrà una riga per ogni applicazione alla fattura.
- Per "Credit Memo Created", crei una ricerca con "Tipo" impostato su "Nota di credito" e si colleghi al campo "Created From" per ottenere il numero della fattura originale.
- Esegua ed esporti ogni Saved Search: esegua ciascuna ricerca salvata. Nella pagina dei risultati, faccia clic sull’icona di esportazione (CSV, Excel o PDF) e scelga CSV. Se il set di risultati supera il limite di esportazione di NetSuite, potrebbe essere necessario esportare i dati in più blocchi.
- Combini e trasformi i dati: consolidi 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 "Payment Due Date Reached": nel file di dati combinato, crei una nuova riga per ogni evento "Invoice Created". Imposti
ActivityNamesu "Payment Due Date Reached",EventTimestampsul valore del campoDueDatedella fattura e copi gli altri attributi pertinenti della fattura. - Completi l’Event Log: standardizzi tutte le intestazioni delle colonne in modo che corrispondano allo schema richiesto, ad esempio
InvoiceNumber,ActivityName,EventTimestamp. Verifichi che i formati dei timestamp siano coerenti. Aggiunga le colonneSourceSystemeLastDataUpdatecon valori statici per questo batch di estrazione. Salvi il file consolidato finale in formato CSV per il caricamento.
Configurazione
- Prerequisiti: è necessario disporre di un ruolo utente con autorizzazioni per creare, modificare ed eseguire Saved Searches 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'. Questo tipo 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 utilizzare il filtro 'Date Created' per un periodo compreso tra gli ultimi 3 e 6 mesi.
- Filtro Main Line: utilizzi il criterio 'Main Line' impostato su 'true' per gli eventi a livello di intestazione del documento, come 'Invoice Created'. Lo imposti su 'false' quando deve analizzare i dettagli delle righe, operazione non necessaria per questo processo.
- System Notes: l'acquisizione delle modifiche di stato dipende in larga misura da System Notes. Verifichi che l'audit sia abilitato per i principali campi delle transazioni, come 'Status' e 'Approval Status', nella configurazione NetSuite (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Considerazioni sulle prestazioni: le ricerche complesse, con numerosi join e campi formula su un intervallo di date ampio, possono essere lente nell'interfaccia NetSuite. È consigliabile eseguire ed esportare queste ricerche negli orari di minore attività. Se una ricerca va in timeout, riduca l'intervallo di date ed esporti i dati in batch più piccoli.
a 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: abiliti SuiteAnalytics Connect: verifichi che il modulo SuiteAnalytics Connect sia dotato di licenza e abilitato nella Sua istanza NetSuite. In genere, questa operazione viene eseguita da un amministratore NetSuite in Setup > Company > Enable Features > Analytics.
- Scarichi e configuri il driver ODBC: acceda alla 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 Suo sistema operativo. Segua le istruzioni di installazione fornite da NetSuite per installare e configurare il driver, specificando service host, porta, Account ID, Role ID, e-mail e password.
- Stabilisca la connessione al database: utilizzi uno strumento client SQL che supporti le connessioni ODBC, come DBeaver, Tableau o Power BI. Crei una nuova connessione ODBC utilizzando il driver configurato nel passaggio precedente. Verifichi la connessione per assicurarsi di poter eseguire correttamente l'autenticazione e accedere al database read-replica di NetSuite.
- Prepari la query SQL: copi la query SQL completa fornita nella sezione 'Query' di questo documento. La query è progettata per estrarre tutte le attività e gli attributi richiesti per il processo di fatturazione Order to Cash.
- Imposti i parametri della query: prima dell'esecuzione, individui nella query i valori segnaposto. Deve sostituire
'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 società controllata NetSuite che desidera analizzare. - Esegua la query: esegua la query modificata nel Suo client SQL. Il tempo di esecuzione varia in base all'intervallo di date e al volume delle transazioni presenti nel Suo account NetSuite.
- Esamini i risultati: al termine dell'esecuzione della query, verrà restituita una tabella piatta che rappresenta l'Event Log. Ogni riga corrisponde a un'attività specifica nel ciclo di vita della fattura. Verifichi la completezza e l'accuratezza dei dati.
- 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 il caricamento: prima di caricare i dati in uno strumento di Process Mining, verifichi che le intestazioni delle colonne corrispondano ai nomi degli attributi richiesti, come InvoiceNumber, ActivityName ed EventTimestamp. Controlli che i formati di data e ora siano coerenti.
Configurazione
- Licenza SuiteAnalytics Connect: per accedere al database read-replica di NetSuite è obbligatoria una licenza valida per il modulo SuiteAnalytics Connect. Senza tale licenza, l'accesso SQL diretto non è possibile.
- Ruolo e utente dedicati: è fortemente consigliabile creare un NetSuite Role dedicato, con autorizzazioni appropriate per SuiteAnalytics Connect. Il ruolo dovrebbe disporre di accesso in sola lettura ai record necessari, inclusi Transactions, Customers e System Notes. Per l'estrazione, assegni a questo ruolo un utente dedicato, così da garantire sicurezza e tracciabilità.
- Filtro per intervallo di date: la query fornita include una clausola
WHEREsulla data di creazione della fattura (Transaction.TRANDATE). Per le estrazioni iniziali, è consigliabile iniziare con un intervallo più breve, ad esempio gli ultimi 3-6 mesi, per gestire prestazioni e volume dei dati. Esempio:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filtro per società controllata: negli account con più società controllate, filtrare per la società 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 read-replica. I dati vengono generalmente aggiornati più volte all'ora, ma non sono in tempo reale. Consideri la possibile presenza di un ritardo fino a qualche ora tra il verificarsi di una transazione in NetSuite e la sua disponibilità nel database Connect.
a 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 per iniziare?
Utilizzi questo Template per avviare il Suo progetto di Process Mining e ottenere informazioni utili sulle attività di fatturazione e incasso. Inizi oggi stesso a ottimizzare il Suo processo Order to Cash.
Ottimizzi subito la fatturazione NetSuite per accelerare il flusso di cassa
Riduca del 30% i tempi del ciclo di fatturazione NetSuite e aumenti il Suo flusso di cassa.
Non è richiesta alcuna carta di credito. Configurazione in pochi minuti.