Su Template de datos para el proceso de pedido a cobro, facturación y emisión de facturas
Su Template de datos para el proceso de pedido a cobro, facturación y emisión de facturas
- Atributos recomendados para recopilar
- Actividades clave que debe registrar
- Guía de extracción para NetSuite
Atributos del proceso de pedido a cobro, facturación y emisión de facturas
| Nombre | Descripción | ||
|---|---|---|---|
| Marca de tiempo del evento EventTimestamp | Fecha y hora exactas en que se produjo una actividad o un evento específico. | ||
| Descripción Este atributo registra el momento exacto en que tuvo lugar una actividad. Es fundamental para ordenar cronológicamente los eventos y realizar cualquier análisis basado en el tiempo. En Process Mining, la marca de tiempo del evento se utiliza para calcular los tiempos de ciclo entre actividades, la duración de los casos y los tiempos de espera. Es esencial para identificar cuellos de botella, medir el rendimiento del proceso frente a los SLA y comprender la dinámica temporal del proceso de facturación. Por ejemplo, permite calcular el tiempo de ciclo de generación de facturas y los días pendientes de cobro (DSO). Por qué es importante Establece el orden cronológico de los eventos, algo esencial para calcular todas las métricas de duración, identificar cuellos de botella y analizar el rendimiento del proceso a lo largo del tiempo. Dónde obtenerlo En NetSuite, la información de las marcas de tiempo suele encontrarse en las notas del sistema, los registros de auditoría o los campos «Date Created» de los registros relacionados con cada transacción de factura. Ejemplos 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Nombre de la actividad ActivityName | Nombre del evento de negocio que se produjo en un momento concreto del ciclo de vida de la factura. | ||
| Descripción El nombre de la actividad describe un paso o evento específico del proceso de facturación, como «Factura creada», «Factura aprobada» o «Pago del cliente recibido». Estas actividades son los componentes secuenciales del mapa del proceso. Analizar la secuencia y la frecuencia de estas actividades es fundamental en Process Mining. Permite visualizar el flujo real del proceso, identificar las rutas habituales y poco frecuentes (variantes) y detectar actividades que se repiten con frecuencia, lo que puede indicar retrabajos o ineficiencias. Por qué es importante Este atributo es fundamental para crear el mapa del proceso y visualizar y analizar los distintos pasos y recorridos de una factura. Dónde obtenerlo Se obtiene de los registros del sistema, los cambios de estado o los registros de eventos específicos asociados a la transacción de la factura en NetSuite. A menudo es necesario asignar los cambios de estado de la transacción o la creación de registros relacionados a nombres de actividad definidos. Ejemplos Factura creadaFactura aprobadaPago del cliente recibidoFactura pagada en su totalidad | |||
| Número de factura InvoiceNumber | Identificador único de cada documento de factura, que sirve como identificador principal del caso en el proceso de facturación. | ||
| Descripción El número de factura es la base del análisis del proceso de facturación, ya que identifica de forma única cada factura desde su creación hasta el cierre final. Agrupa en un único caso todas las actividades relacionadas, como la aprobación, el envío y la aplicación del pago. En Process Mining, analizar el recorrido de cada número de factura permite obtener una visión completa de todo el ciclo de facturación. Así se identifican variantes del proceso, cuellos de botella y desviaciones del procedimiento estándar, y se obtiene información clave para optimizar el flujo de caja y la eficiencia operativa. Por qué es importante Es esencial para hacer un seguimiento del ciclo de vida integral de cada factura, reconstruir todo el proceso de facturación y analizar su rendimiento en detalle. Dónde obtenerlo Normalmente corresponde al campo «Transaction ID» o a otro campo de identificador único similar del registro de transacción de la factura en NetSuite. Ejemplos INV-0012345INV-0012346INV-0012347 | |||
| Sistema de origen SourceSystem | Sistema del que se extrajeron los datos. | ||
| Descripción Este atributo identifica el origen de los datos del proceso. En esta vista, el valor sería siempre «NetSuite». En un contexto de análisis más amplio, especialmente en organizaciones con varios ERP o sistemas integrados, este atributo es clave para el linaje de datos y la gobernanza. Ayuda a distinguir procesos que pueden abarcar distintas plataformas y garantiza que el análisis se atribuya al sistema de registro correspondiente. Por qué es importante Aporta contexto clave sobre el origen de los datos y la gobernanza, especialmente en entornos donde se integran varios sistemas. Dónde obtenerlo Es un valor estático («NetSuite») que se añade durante la extracción y transformación de los datos. Ejemplos NetSuite | |||
| Última actualización de los datos LastDataUpdate | Marca de tiempo que indica la última actualización de los datos desde el sistema de origen. | ||
| Descripción Este atributo registra cuándo se actualizó el conjunto de datos por última vez. Permite conocer la actualidad y la relevancia del análisis de Process Mining. Los analistas y las partes interesadas del negocio utilizan esta información para saber si las conclusiones reflejan el estado operativo más reciente. Es un metadato clave para cualquier Dashboard o informe, ya que permite tomar decisiones con datos cuya antigüedad se conoce y evita interpretarlos como datos en tiempo real cuando no lo son. Por qué es importante Informa sobre la actualidad de los datos para que los usuarios conozcan el período que abarca el análisis y la relevancia de sus conclusiones. Dónde obtenerlo La herramienta o el proceso de extracción de datos genera y registra esta marca de tiempo al actualizar los datos. Ejemplos 2024-05-21T02:00:00Z | |||
| Está automatizada IsAutomated | Indicador que señala si el sistema realizó una actividad automáticamente. | ||
| Descripción Este atributo booleano distingue las actividades realizadas manualmente por una persona de las ejecutadas automáticamente mediante un flujo de trabajo, un script o una integración del sistema. Este atributo es clave para medir el nivel de automatización del proceso de facturación y permite calcular directamente el KPI «Porcentaje de facturación automatizada». Al filtrar las actividades automatizadas o manuales, los analistas pueden detectar cuellos de botella causados por la intervención manual e identificar oportunidades para aumentar la automatización, reducir los errores humanos y mejorar la eficiencia. Por qué es importante Permite medir el nivel de automatización del proceso e identificar oportunidades para reducir el trabajo manual y mejorar la eficiencia. Dónde obtenerlo Por lo general, se determina comprobando el «Usuario» asociado a una actividad. Los eventos iniciados por usuarios llamados «SYSTEM», «Workflow» o «Integration» se marcan como automatizados. Ejemplos truefalse | |||
| Fecha de la factura InvoiceDate | Fecha oficial de la factura emitida al cliente. | ||
| Descripción La fecha de la factura, o fecha de la transacción, es el punto de partida de muchos cálculos financieros relacionados con la facturación. A partir de ella suelen calcularse las condiciones y las fechas de vencimiento del pago. En el análisis, esta fecha sirve como referencia principal para calcular KPI financieros clave, como los días pendientes de cobro (DSO) y la antigüedad de las facturas. También permite analizar cohortes y comparar el rendimiento de la facturación en distintos períodos, por ejemplo, mes a mes o año a año. Por qué es importante Esta fecha sirve de referencia para métricas financieras clave, como los días pendientes de cobro (DSO) y la antigüedad de las facturas, y afecta directamente al análisis del capital de trabajo. Dónde obtenerlo Corresponde al campo «Date» (trandate) del registro de transacción de la factura en NetSuite. Ejemplos 2023-10-262023-10-272023-11-15 | |||
| Fecha de vencimiento DueDate | Fecha límite para pagar la factura. | ||
| Descripción La fecha de vencimiento se calcula a partir de la fecha de la factura y de las condiciones de pago acordadas. Indica el límite para que el cliente pague sin que el pago se considere atrasado. Este atributo es esencial para supervisar las cuentas por cobrar y gestionar el flujo de caja. Sirve de referencia para calcular el KPI de tasa de pagos puntuales y analizar el comportamiento de pago de los clientes. Hacer un seguimiento de las desviaciones respecto a la fecha de vencimiento ayuda a identificar a los clientes que suelen pagar tarde y a evaluar la eficacia de las estrategias de cobro. Por qué es importante Es fundamental para medir la puntualidad de los pagos y analizar el comportamiento de pago de los clientes, y contribuye directamente a la gestión de cobros y a la previsión del flujo de caja. Dónde obtenerlo Corresponde al campo «Due Date» (duedate) del registro de transacción de la factura en NetSuite. Ejemplos 2023-11-252023-11-262023-12-15 | |||
| Hora de fin del evento EventEndTime | Fecha y hora exactas en que se completó una actividad o un evento específico. | ||
| Descripción La hora de fin del evento marca la finalización de una actividad. Muchas actividades son instantáneas, por lo que la hora de inicio y la de fin coinciden, pero otras, como un paso de aprobación, pueden tener una duración medible. Este atributo, junto con la marca de tiempo del evento (hora de inicio), permite calcular directamente el tiempo de procesamiento de la actividad. Analizarlo ayuda a identificar qué pasos concretos consumen más tiempo y recursos, y a distinguirlo del tiempo de espera entre actividades. Esto es fundamental para detectar ineficiencias en tareas específicas. Por qué es importante Permite calcular con precisión cuánto tarda cada actividad en completarse, algo esencial para analizar la eficiencia de los recursos e identificar las tareas que consumen más tiempo. Dónde obtenerlo Al igual que StartTime, este dato puede obtenerse de los registros de auditoría del sistema en NetSuite. Es posible que se necesite una lógica para emparejar un evento de «inicio» con el evento de «fin» correspondiente. Ejemplos 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Importe total de la factura InvoiceTotalAmount | Valor monetario total de la factura, incluidos los impuestos y otros cargos. | ||
| Descripción Este atributo representa el importe total que se espera que pague el cliente. Es un dato financiero fundamental para cada caso de facturación. Analizar el proceso según el importe de la factura permite realizar análisis basados en el valor. Por ejemplo, puede revelar si las facturas de importe elevado siguen un proceso distinto y más complejo que las de importe bajo. También sirve para priorizar las gestiones de cobro y comprender el impacto financiero de los retrasos en los pagos o de los errores en las facturas. Por qué es importante Permite analizar el proceso según el valor, priorizar las facturas de importe elevado y comprender el impacto financiero de las ineficiencias del proceso. Dónde obtenerlo Corresponde al campo «Total» (total) del registro de transacción de la factura en NetSuite. Ejemplos 1500.0089.9912500.50 | |||
| Nombre del cliente CustomerName | Nombre del cliente al que se emitió la factura. | ||
| Descripción Este atributo identifica a la persona física o jurídica a la que se factura. Vincula el proceso de facturación con la gestión de las relaciones con los clientes. Analizar el proceso de facturación por cliente ayuda a identificar patrones de pago, disputas o complejidad de las facturas de clientes específicos. Esta información puede orientar la segmentación de clientes, las decisiones sobre límites de crédito y las estrategias de cobro adaptadas. Por ejemplo, puede revelar si un cliente concreto suele tener facturas que requieren retrabajo. Por qué es importante Permite analizar el proceso desde la perspectiva del cliente e identificar patrones de pago, problemas frecuentes o desviaciones del proceso específicos de determinados clientes. Dónde obtenerlo Corresponde al campo «Customer» o «Entity» del registro de transacción de la factura en NetSuite. Ejemplos Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Región Region | Región geográfica asociada al cliente o a la transacción. | ||
| Descripción El atributo de región clasifica las facturas por zona geográfica, que puede determinarse a partir de la dirección del cliente o de la unidad de negocio que emitió la factura. Es una dimensión útil para realizar comparativas. El Dashboard de «Comparación regional del proceso de facturación» utiliza este atributo para comparar KPI como los tiempos de ciclo, las tasas de error y las variantes del proceso en distintas regiones. Esto ayuda a detectar diferencias de rendimiento regionales, identificar buenas prácticas en las regiones con mejores resultados e impulsar la estandarización de los procesos en toda la organización. Por qué es importante Permite realizar comparativas entre distintas zonas geográficas, algo clave para detectar diferencias de rendimiento regionales y estandarizar las buenas prácticas. Dónde obtenerlo En NetSuite, estos datos suelen almacenarse en un segmento personalizado o en un campo de clasificación del registro maestro del cliente o del registro de transacción. Ejemplos América del NorteEuropa, Oriente Medio y ÁfricaAsia-Pacífico | |||
| Usuario User | Nombre o ID del usuario que realizó la actividad. | ||
| Descripción Este atributo identifica al empleado o usuario del sistema responsable de ejecutar un paso específico del proceso. Puede ser quien creó la factura, la aprobó o aplicó el pago. Analizar el proceso por usuario ayuda a comprender la distribución de la carga de trabajo y el rendimiento individual, así como a detectar necesidades de formación. También puede revelar oportunidades de automatización al mostrar qué actividades manuales realizan más usuarios. Además, es clave para el cumplimiento y el análisis de los registros de auditoría. Por qué es importante Permite analizar la distribución de la carga de trabajo, el rendimiento por usuario y el cumplimiento del proceso, aspectos esenciales para gestionar los recursos y orientar la formación. Dónde obtenerlo Está disponible en la subpestaña System Notes o en campos específicos «Modified By» de la factura y de los registros de transacciones relacionados en NetSuite. Ejemplos Alice SmithBob JohnsonSISTEMA | |||
| Condiciones de pago PaymentTerms | Condiciones de pago acordadas entre la empresa y el cliente. | ||
| Descripción Las condiciones de pago establecen cuándo y cómo se espera que el cliente pague la factura, por ejemplo, «30 días netos» o «Pago al recibir». Esta información se utiliza para calcular automáticamente la fecha de vencimiento de la factura. Este atributo es clave para el Dashboard de «Cumplimiento de las condiciones de pago». Analizar las tasas de pago puntual según las distintas condiciones permite evaluar su eficacia. Por ejemplo, puede mostrar si los clientes con condiciones de pago a 15 días pagan antes que aquellos con condiciones a 30 días, lo que ayuda a negociar futuros contratos y definir políticas de crédito. Por qué es importante Es esencial para analizar la eficacia de las distintas condiciones de pago y su impacto en la puntualidad de los pagos de los clientes. Dónde obtenerlo Corresponde al campo «Terms» del registro de transacción de la factura en NetSuite. Ejemplos 30 días netos60 días netosPago al recibir | |||
| Departamento Department | Departamento interno asociado a la factura. | ||
| Descripción Este atributo representa el departamento interno, como Ventas, Servicios o una línea de negocio específica, responsable de la transacción. Es un segmento de clasificación estándar en NetSuite. El análisis del proceso por departamento permite realizar comparaciones internas y determinar si algunos departamentos gestionan la facturación con mayor eficiencia que otros. También puede revelar diferencias en el cumplimiento del proceso o en la asignación de recursos, y aportar información para orientar iniciativas de mejora a áreas concretas de la organización. Por qué es importante Permite comparar el rendimiento del proceso entre distintos departamentos y detectar diferencias y oportunidades para estandarizar los procesos internos. Dónde obtenerlo Corresponde al campo de clasificación «Department», que puede configurarse en el encabezado o en las líneas de una transacción de factura en NetSuite. Ejemplos Ventas - EmpresasServicios profesionalesHardware | |||
| Días pendientes de cobro DaysSalesOutstanding | Número de días entre la fecha de la factura y la fecha en que se recibió el pago. | ||
| Descripción Los días pendientes de cobro (DSO) son una métrica financiera clave que mide el promedio de días que se tarda en cobrar una factura desde su emisión. Este atributo se calcula para cada factura, lo que permite realizar un análisis detallado. Aunque suele agregarse como KPI de alto nivel, disponer del DSO de cada factura permite realizar análisis más precisos. Puede utilizarse para identificar qué clientes, regiones o tipos de factura presentan el DSO más alto. El Dashboard «Tendencia del DSO» utiliza esta métrica para mostrar la eficiencia de cobro a lo largo del tiempo y aportar información clave sobre la gestión del capital de trabajo. Por qué es importante Cuantifica la eficiencia de cobro para cada factura y permite analizar en detalle las causas de un DSO elevado y su impacto en el flujo de caja. Dónde obtenerlo Se calcula restando «InvoiceDate» de la marca de tiempo de la actividad «Pago del cliente recibido». Ejemplos 294562 | |||
| Es retrabajo IsRework | Indicador calculado que identifica las actividades que se consideran retrabajo o ciclos de corrección. | ||
| Descripción Este indicador booleano se establece como verdadero para las actividades que representan retrabajo sin valor añadido, como «Factura corregida» o un segundo evento «Factura aprobada» en el mismo caso. Por lo general, se calcula a partir del nombre de la actividad o de su repetición. Este atributo es esencial para el Dashboard «Análisis de retrabajos y rechazos de facturas» y el KPI «Tasa de errores en facturas». Permite cuantificar fácilmente el retrabajo y ayuda a detectar problemas de calidad del proceso. Al filtrar las actividades de retrabajo, los equipos pueden identificar rápidamente las causas de los errores y medir el impacto de las iniciativas de mejora. Por qué es importante Mide directamente la calidad del proceso al señalar ciclos de retrabajo ineficientes, lo que permite analizar las causas y el impacto financiero de los errores de facturación. Dónde obtenerlo Es un atributo derivado que se calcula durante la transformación de datos. Se aplica una lógica para identificar el retrabajo, por ejemplo, marcando nombres de actividades específicos («Factura corregida») o actividades repetidas. Ejemplos truefalse | |||
| Estado de la factura InvoiceStatus | Estado actual de la factura en su ciclo de vida. | ||
| Descripción Este atributo refleja el estado actual de la factura, por ejemplo, «Abierta», «Pagada en su totalidad» o «Anulada». Muestra en qué punto del proceso se encuentra la factura en un momento determinado. El Dashboard «Resumen del estado de las facturas abiertas» se basa directamente en este atributo. Permite evaluar las cuentas por cobrar en tiempo real y ayuda a los equipos financieros a supervisar los saldos pendientes, gestionar los cobros y prever las entradas de efectivo. Analizar el estado final también ayuda a comprender los resultados del proceso. Por qué es importante Ofrece una visión del estado actual de las cuentas por cobrar y permite crear Dashboards para supervisar las facturas abiertas y el avance general de la facturación. Dónde obtenerlo Corresponde al campo «Status» del registro de transacción de la factura en NetSuite. Ejemplos AbiertaPagada en su totalidadAnuladaPendiente de aprobación | |||
| Moneda Currency | Código de moneda del importe de la factura. | ||
| Descripción Este atributo especifica la moneda en la que se expresa el importe de la factura, por ejemplo, USD, EUR o GBP. Es un dato contextual esencial para cualquier valor monetario. En las organizaciones multinacionales, analizar los datos por moneda ayuda a comprender el rendimiento financiero en distintos mercados. También garantiza que los valores monetarios se interpreten correctamente y permite agregarlos y compararlos de forma adecuada después de convertirlos, si es necesario. Por qué es importante Aporta el contexto necesario para interpretar todos los valores monetarios, algo crucial para elaborar informes y análisis financieros precisos, especialmente en operaciones multinacionales. Dónde obtenerlo Corresponde al campo «Currency» del registro de transacción de la factura en NetSuite. Ejemplos USDEURGBP | |||
| Número de pedido de venta SalesOrderNumber | Identificador del pedido de venta a partir del cual se generó la factura. | ||
| Descripción Este atributo enlaza directamente con el pedido de venta de origen y conecta el proceso de facturación con los procesos anteriores de venta y cumplimiento de pedidos. Incluir el número de pedido de venta permite obtener una visión más completa de todo el ciclo de pedido a cobro. Facilita el análisis para rastrear problemas de facturación hasta su origen en el proceso de venta. Por ejemplo, las correcciones frecuentes de facturas podrían estar relacionadas con errores de captura de datos en determinados tipos de pedidos de venta. Por qué es importante Vincula el proceso de facturación con el proceso de venta y permite analizar de principio a fin el ciclo de pedido a cobro para identificar las causas raíz de los problemas de facturación. Dónde obtenerlo Se encuentra en el campo 'Created From' o en la subpestaña 'Related Records' de una transacción de factura en NetSuite. Ejemplos SO-0009876SO-0009877SO-0009878 | |||
| Pago puntual IsOnTimePayment | Indicador que señala si el pago del cliente se recibió en la fecha de vencimiento de la factura o antes. | ||
| Descripción Este indicador booleano calculado compara la marca de tiempo de la actividad «Pago del cliente recibido» con el atributo «DueDate» de la factura. Se establece como verdadero si el pago se recibió a tiempo o antes, y como falso si se recibió tarde. Este atributo es la base del KPI «Tasa de pagos puntuales» y del Dashboard «Cumplimiento de las condiciones de pago». Ofrece una medida clara y binaria del comportamiento de pago de los clientes, lo que simplifica el análisis y la elaboración de informes. También ayuda a detectar rápidamente tendencias en la puntualidad de los pagos y a evaluar la eficacia de las estrategias de cobro. Por qué es importante Proporciona una medida clara del éxito de la gestión de cobros y permite calcular directamente el KPI de pagos puntuales y analizar el comportamiento de los clientes. Dónde obtenerlo Es un atributo calculado. Para obtenerlo, se compara la marca de tiempo del evento de pago con el atributo «DueDate» del caso. Ejemplos truefalse | |||
Actividades del proceso de pedido a cobro, facturación y emisión de facturas
| Actividad | Descripción | ||
|---|---|---|---|
| Factura aprobada | La factura se ha aprobado formalmente y está lista para enviarse al cliente. Se registra cuando el estado de aprobación cambia de «Pendiente de aprobación» a «Aprobado», normalmente mediante una acción del flujo de trabajo. | ||
| Por qué es importante Es un hito clave que permite enviar la factura al cliente. Resulta fundamental para medir los tiempos de ciclo de aprobación y calcular el KPI de «Proporción de facturación automatizada». Dónde obtenerlo Se infiere cuando el campo «Approval Status» del registro de la factura cambia a «Aprobado». Las notas del sistema de la transacción registran la marca de tiempo exacta. Capturar Se infiere a partir del cambio del campo «Approval Status» a «Aprobado» registrado en las notas del sistema. Tipo de evento inferred | |||
| Factura creada | Indica la creación oficial del registro de transacción de la factura en NetSuite. Este evento marca el inicio del proceso de facturación para cada número de factura y se registra a partir de la marca de tiempo de creación de la transacción. | ||
| Por qué es importante Es el evento de inicio principal del proceso de facturación. Analizar el tiempo transcurrido entre este evento y los demás permite evaluar la eficiencia general del proceso y establecer la referencia para el KPI de tiempo de ciclo de generación de facturas. Dónde obtenerlo Se obtiene de la marca de tiempo «Date Created» del registro de transacción de la factura. Las notas del sistema de NetSuite también registran explícitamente el evento de creación y el usuario. Capturar Evento registrado al crear el registro de transacción de la factura. Tipo de evento explicit | |||
| Factura enviada al cliente | Indica que la factura se ha enviado al cliente, normalmente por correo electrónico. Este evento se registra cuando un usuario ejecuta la acción «Email» desde el registro de la factura. | ||
| Por qué es importante Marca el inicio del período de cobro al cliente y es el punto de partida principal para calcular los días pendientes de cobro (DSO). Dónde obtenerlo Se infiere cuando se completa el campo «Date Last Emailed» del registro de la factura. También puede registrarse al crear un registro de mensaje de correo electrónico en la subpestaña Communication. Capturar Se infiere cuando se completa «Date Last Emailed» o se crea un registro de comunicación. Tipo de evento inferred | |||
| Factura pagada en su totalidad | El estado de la factura ha cambiado a «Pagada en su totalidad», lo que indica que el saldo es cero. Este evento marca la conclusión satisfactoria del ciclo de facturación y cobro de la factura. | ||
| Por qué es importante Es el evento de fin satisfactorio principal del proceso. Analizar el tiempo total hasta alcanzar este estado permite calcular el tiempo de ciclo integral del ciclo de conversión de efectivo. Dónde obtenerlo Se infiere cuando el campo «Status» del registro de la factura cambia a «Pagada en su totalidad». La marca de tiempo de este cambio de estado está disponible en las notas del sistema de la transacción. Capturar Se infiere a partir del cambio del campo «Status» a «Pagada en su totalidad» registrado en las notas del sistema. Tipo de evento inferred | |||
| Pago del cliente recibido | Se ha recibido un pago del cliente y se ha registrado en el sistema. Se registra al crear una transacción «Customer Payment» en NetSuite, que puede aplicarse a una o varias facturas. | ||
| Por qué es importante Indica la recepción del dinero, pero no necesariamente su aplicación a una factura específica. Es el primer paso del proceso de aplicación de pagos y un evento clave para calcular los días pendientes de cobro (DSO). Dónde obtenerlo Se obtiene de la fecha de creación del registro de transacción «Customer Payment». El vínculo con la factura se establece en la subpestaña «Apply» del pago. Capturar Creación de un registro de transacción Customer Payment. Tipo de evento explicit | |||
| Factura anulada | La factura se ha anulado, lo que la cancela y revierte cualquier impacto en el libro mayor. Esta acción suele realizarse con facturas creadas por error antes de que se paguen. | ||
| Por qué es importante Representa una excepción del proceso y un estado final. Comprender por qué se anulan las facturas puede revelar errores de captura de datos o del proceso que deben corregirse en etapas anteriores. Dónde obtenerlo Es una acción explícita del usuario. Puede registrarse en las notas del sistema de la factura, donde se indica cuándo se anuló la transacción y quién lo hizo. Capturar Acción explícita «Void» registrada en las notas del sistema de la factura. Tipo de evento explicit | |||
| Factura cerrada | La transacción de la factura se ha cerrado, a menudo como parte del proceso contable de cierre de período. Esta acción impide realizar más cambios en la transacción una vez pagada y conciliada por completo. | ||
| Por qué es importante Aunque suele ocurrir después de «Pagada en su totalidad», puede ser un paso administrativo final. Analizar las demoras entre el pago y el cierre puede ayudar a evaluar la puntualidad de los informes financieros. Dónde obtenerlo Se infiere cuando el campo «Status» cambia a «Cerrada» o a un estado similar. La marca de tiempo del cambio se obtiene de las notas del sistema. Capturar Se infiere a partir del cambio del campo «Status» registrado en las notas del sistema. Tipo de evento inferred | |||
| Factura enviada para aprobación | Representa el cambio de estado de la factura a «Pendiente de aprobación». Este evento se registra cuando un usuario envía la factura a un flujo de trabajo de aprobación configurado, una personalización habitual. | ||
| Por qué es importante Esta actividad señala el inicio de un posible cuello de botella en la aprobación. El tiempo de espera hasta obtener la aprobación es un componente clave del tiempo de ciclo total del procesamiento de facturas. Dónde obtenerlo Se infiere cuando el campo «Approval Status» del registro de la factura cambia a «Pendiente de aprobación». La marca de tiempo del cambio se encuentra en el historial de auditoría de las notas del sistema de la factura. Capturar Se infiere a partir del cambio del campo «Approval Status» registrado en las notas del sistema. Tipo de evento inferred | |||
| Llegada de la fecha de vencimiento del pago | Evento calculado que se produce cuando la fecha actual coincide con la fecha de vencimiento de la factura. No corresponde a una acción directa del usuario ni del sistema, sino que se deriva de los datos existentes durante el análisis. | ||
| Por qué es importante Sirve como referencia clave para medir la puntualidad de los pagos. Es esencial para calcular el KPI de «Tasa de pagos puntuales» y analizar el comportamiento de pago de los clientes. Dónde obtenerlo No es un evento explícito en NetSuite. Se calcula comparando la marca de tiempo del registro de eventos con el campo «Due Date» del registro de transacción de la factura. Capturar Se calcula cuando la marca de tiempo del evento coincide con el campo «Due Date» de la factura. Tipo de evento calculated | |||
| Nota de crédito creada | Se ha creado y aplicado a la factura una transacción de nota de crédito, lo que reduce el saldo pendiente. Suele indicar una devolución de producto, una reclamación sobre el servicio o una corrección de precios. | ||
| Por qué es importante Pone de manifiesto retrabajos, problemas de calidad o disputas con clientes. Su frecuencia puede revelar problemas subyacentes y es un dato clave para el Dashboard de «Análisis de retrabajos y rechazos de facturas». Dónde obtenerlo Se obtiene al crear una transacción de nota de crédito. El vínculo con la factura original se encuentra en el campo «Created From» o en la subpestaña «Apply» de la nota de crédito. Capturar Creación de un registro de nota de crédito vinculado a la factura original. Tipo de evento explicit | |||
| Pago aplicado a la factura | El pago recibido del cliente se ha aplicado específicamente a esta factura, lo que reduce el importe pendiente. Se registra cuando se guarda la aplicación en el registro Customer Payment. | ||
| Por qué es importante Este es el vínculo fundamental entre la recepción del dinero y la liquidación de la factura. El tiempo transcurrido entre «Pago recibido» y este evento determina el KPI de «Tiempo de ciclo de aplicación de pagos». Dónde obtenerlo Se obtiene de las notas del sistema o del historial de auditoría de la transacción Customer Payment, concretamente cuando se guarda la aplicación a la línea de la factura. La marca de tiempo de esta aplicación es clave. Capturar Se registra cuando se guarda el registro Customer Payment con una aplicación a la factura. Tipo de evento explicit | |||
| Recordatorio de pago enviado | Se ha enviado al cliente una comunicación sobre un pago pendiente. Se registra como una actividad o un correo electrónico enviado desde el registro de la factura o del cliente, a menudo mediante una solución de gestión de cobros. | ||
| Por qué es importante Es esencial para evaluar la eficacia de las estrategias de cobro. Analizar cómo influye esta actividad en los pagos posteriores ayuda a optimizar la frecuencia y el momento de los recordatorios. Dónde obtenerlo Se obtiene al crear un registro de correo electrónico en la subpestaña Communication > Messages del registro de la factura o del cliente. Las soluciones automatizadas de gestión de cobros también pueden registrarlos como registros personalizados o tareas. Capturar Se registra como un correo electrónico o una actividad asociada a la factura. Tipo de evento explicit | |||
Guías de extracción
Pasos
- Inicie sesión en NetSuite: Acceda a su cuenta de NetSuite con un rol que tenga permisos suficientes para crear y ejecutar búsquedas guardadas en registros de transacciones.
- Vaya a Búsquedas guardadas: Vaya a Reports > Saved Searches > All Saved Searches > New. Seleccione «Transaction» en la lista de tipos de búsqueda. Esta búsqueda servirá de base para crear varias búsquedas, una por cada tipo de evento.
- Cree la búsqueda «Factura creada»: Esta búsqueda principal registra la creación de facturas.
- En la pestaña «Criteria», en «Standard», establezca el filtro «Type» en «is Invoice».
- Añada otro filtro para «Main Line» y establézcalo en «is true» para obtener un registro por factura.
- En la pestaña «Results», añada las columnas necesarias. Utilice fórmulas para crear campos estandarizados como «ActivityName». Por ejemplo, añada un campo «Formula (Text)» con la fórmula
_UTF8'Invoice Created'.
- Cree búsquedas para los cambios de estado (aprobada, pagada, anulada y cerrada): Muchas actividades corresponden a cambios de estado. La forma más fiable de registrar la marca de tiempo exacta es mediante System Notes.
- Cree una nueva búsqueda guardada de tipo Transaction.
- En la pestaña «Criteria», establezca «Type» en «is Invoice».
- En la subpestaña «Standard», añada el filtro «System Notes : Field» y seleccione el campo de estado correspondiente, por ejemplo, «Approval Status».
- Añada otro filtro, «System Notes : New Value», y establézcalo en el estado deseado, por ejemplo, «Approved».
- En la pestaña «Results», asigne «System Notes : Date» a
EventTimestampy «System Notes : Set by» aUsuario. - Repita el proceso para cada actividad basada en el estado: «Factura enviada para aprobación», «Factura aprobada», «Factura pagada en su totalidad», «Factura anulada» y «Factura cerrada». Ajuste los filtros de campo y valor según corresponda.
- Cree la búsqueda «Factura enviada al cliente»: Este evento suele registrarse mediante el seguimiento de los mensajes de correo electrónico enviados desde el registro de la factura.
- Cree una nueva búsqueda guardada de tipo Transaction con «Type» establecido en «is Invoice».
- En la pestaña «Criteria», en «Related Records», añada un filtro para «Messages : Date Sent» y establézcalo en «is not empty».
- En la pestaña «Results», asigne «Messages : Date Sent» a
EventTimestampy «Messages : Author» aUsuario.
- Cree búsquedas para los pagos y las notas de crédito: Estos eventos corresponden a tipos de transacción independientes vinculados a la factura.
- Para «Pago del cliente recibido», cree una búsqueda con «Type» establecido en «Customer Payment». Registre la fecha de creación como marca de tiempo del evento.
- Para «Pago aplicado a la factura», utilice la misma búsqueda de «Customer Payment», pero únala a los campos «Applied To Transaction». La fecha de creación de la transacción de pago sirve como marca de tiempo. Obtendrá una fila por cada aplicación a una factura.
- Para «Nota de crédito creada», cree una búsqueda con «Type» establecido en «Credit Memo» y vincúlela al campo «Created From» para obtener el número de la factura original.
- Ejecute y exporte cada búsqueda guardada: Ejecute cada búsqueda guardada que haya creado. En la página de resultados, haga clic en el icono de exportación (CSV, Excel o PDF) y seleccione CSV. Si el conjunto de resultados supera el límite de exportación de NetSuite, puede que tenga que exportarlo en varios lotes.
- Combine y transforme los datos: Consolide todos los archivos CSV exportados en un solo archivo con una herramienta como Microsoft Excel, un script de Python o una herramienta de preparación de datos.
- Obtenga el evento «Fecha de vencimiento del pago alcanzada»: En el archivo de datos combinado, cree una fila nueva por cada evento «Factura creada». Establezca
ActivityNameen «Payment Due Date Reached»,EventTimestampen el valor del campo «DueDate» de la factura y copie los demás atributos pertinentes de la factura. - Finalice el registro de eventos: Estandarice todos los encabezados de columna para que coincidan con el esquema requerido (por ejemplo,
InvoiceNumber,ActivityName,EventTimestamp). Asegúrese de que los formatos de marca de tiempo sean coherentes. Añada las columnasSourceSystemyLastDataUpdatecon valores estáticos para este lote de extracción. Guarde el archivo consolidado final en formato CSV para cargarlo.
Configuración
- Requisitos previos: Se necesita un rol de usuario con permisos para crear, editar y ejecutar búsquedas guardadas de tipo «Transaction». También es necesario poder consultar los registros de facturas, pagos de clientes, notas de crédito y System Notes.
- Tipo de búsqueda: El tipo de búsqueda principal para todas las extracciones es «Transaction». Permite acceder a todos los registros y relaciones necesarios.
- Filtro por intervalo de fechas: Para controlar el rendimiento y el volumen de datos, aplique un filtro de fechas a cada búsqueda. Para el análisis inicial, se recomienda filtrar por «Date Created» y limitar el período a los últimos 3 a 6 meses.
- Filtro Main Line: Para los eventos del encabezado del documento, como «Factura creada», establezca el criterio «Main Line» en «true». Establézcalo en «false» si necesita analizar los detalles de las líneas, algo que no se requiere para este proceso.
- System Notes: El registro de los cambios de estado depende en gran medida de System Notes. Asegúrese de que la auditoría esté habilitada para campos clave de las transacciones, como «Status» y «Approval Status», en la configuración de NetSuite (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Consideraciones de rendimiento: Las búsquedas complejas con muchas uniones y campos de fórmula que abarcan un intervalo de fechas amplio pueden tardar en ejecutarse en la interfaz de NetSuite. Se recomienda ejecutarlas y exportarlas fuera de las horas de mayor actividad. Si una búsqueda agota el tiempo de espera, reduzca el intervalo de fechas y exporte los datos en lotes más pequeños.
Consulta de ejemplo 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.
*/ Pasos
- Requisito previo: habilite SuiteAnalytics Connect: Asegúrese de que el módulo SuiteAnalytics Connect tenga licencia y esté habilitado en su instancia de NetSuite. Normalmente, un administrador de NetSuite lo configura en Setup > Company > Enable Features > Analytics.
- Descargue y configure el controlador ODBC: Vaya al Dashboard de inicio de NetSuite y localice el portlet «Settings». Haga clic en el enlace «Set Up SuiteAnalytics Connect» para descargar el controlador ODBC adecuado para su sistema operativo. Siga las instrucciones de instalación de NetSuite para instalar y configurar el controlador. Deberá proporcionar el host del servicio, el puerto, el ID de cuenta, el ID de rol, el correo electrónico y la contraseña.
- Establezca la conexión con la base de datos: Utilice un cliente SQL compatible con conexiones ODBC, como DBeaver, Tableau o Power BI. Cree una nueva conexión ODBC con el controlador que configuró en el paso anterior. Pruebe la conexión para comprobar que puede autenticarse y acceder a la réplica de lectura de la base de datos de NetSuite.
- Prepare la consulta SQL: Copie la consulta SQL completa de la sección «Query» de este documento. Está diseñada para extraer todas las actividades y los atributos necesarios para el proceso de facturación de pedido a cobro.
- Configure los parámetros de la consulta: Antes de ejecutarla, localice los valores de marcador de posición en la consulta. Sustituya
'YYYY-MM-DD'por las fechas de inicio y fin del período de extracción que desee. Sustituya también[Your Subsidiary ID]por el ID interno de la subsidiaria de NetSuite que quiera analizar. - Ejecute la consulta: Ejecute la consulta modificada en su cliente SQL. El tiempo de ejecución dependerá del intervalo de fechas y del volumen de transacciones de su cuenta de NetSuite.
- Revise los resultados: Cuando termine la consulta, se devolverá una tabla plana que representa el registro de eventos. Cada fila corresponde a una actividad concreta del ciclo de vida de la factura. Revise que los datos estén completos y sean precisos.
- Exporte el registro de eventos: Exporte los resultados de la consulta desde su cliente SQL a un archivo CSV. Asegúrese de que esté codificado en UTF-8 para evitar problemas con los caracteres.
- Prepare los datos para cargarlos: Antes de cargarlos en una herramienta de Process Mining, compruebe que los encabezados de columna coincidan con los nombres de atributo requeridos, como InvoiceNumber, ActivityName y EventTimestamp. Verifique que los formatos de fecha y hora sean coherentes.
Configuración
- Licencia de SuiteAnalytics Connect: Para acceder a la réplica de lectura de la base de datos de NetSuite, es imprescindible contar con una licencia válida del módulo SuiteAnalytics Connect. Sin ella, no es posible acceder directamente mediante SQL.
- Rol y usuario dedicados: Se recomienda crear un rol de NetSuite específico con los permisos adecuados para SuiteAnalytics Connect. Este rol debe tener acceso de solo lectura a los registros necesarios, incluidos Transactions, Customers y System Notes. Asigne un usuario específico a este rol para la extracción, a fin de garantizar la seguridad y la auditabilidad.
- Filtro por intervalo de fechas: La consulta proporcionada incluye una cláusula
WHEREsobre la fecha de creación de la factura (Transaction.TRANDATE). Para las extracciones iniciales, se recomienda empezar con un intervalo más corto, por ejemplo, los últimos 3 a 6 meses, para controlar el rendimiento y el volumen de datos. Por ejemplo:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filtro por subsidiaria: Si la cuenta tiene varias subsidiarias, es fundamental filtrar por la subsidiaria específica para optimizar el rendimiento y obtener datos pertinentes. La consulta incluye el marcador de posición
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID], que debe configurar. - Actualización de los datos: La base de datos de SuiteAnalytics Connect es una réplica de lectura. Los datos suelen actualizarse varias veces por hora, pero no en tiempo real. Tenga en cuenta que puede haber un retraso de hasta unas horas entre una transacción en NetSuite y su aparición en la base de datos de Connect.
Consulta de ejemplo 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'); ¿Todo listo para empezar?
Utilice este Template para poner en marcha su iniciativa de Process Mining y obtener información sobre sus operaciones de facturación y emisión de facturas. Empiece hoy a optimizar su proceso de pedido a cobro.
Optimice ahora la facturación en NetSuite y acelere el flujo de caja
Reduzca un 30 % el tiempo del ciclo de facturación en NetSuite y mejore su flujo de caja.
No se requiere tarjeta de crédito. Configuración en minutos.