Su Pedido a Cobro - Facturación Data Template
Su Pedido a Cobro - Facturación Data Template
- Atributos recomendados para recopilar
- Actividades clave para el seguimiento
- Guía de extracción para NetSuite
Atributos de Pedido a Cobro - Facturación
| Nombre | Descripción | ||
|---|---|---|---|
| Nombre de la Actividad ActivityName | El nombre del `event` de negocio que ocurrió en un punto específico del ciclo de vida de la factura. | ||
| Descripción El Nombre de la Actividad describe un paso o Analizar la secuencia y frecuencia de estas actividades es fundamental para el Process Mining. Ayuda a visualizar el flujo de proceso real, identificar rutas de proceso comunes y raras (variantes), y señalar actividades que se repiten con frecuencia, lo que indica retrabajo o ineficiencia. Por qué es importante Este Dónde obtener Derivado de los registros del sistema, cambios de estado o registros de eventos específicos asociados con la transacción de Factura en NetSuite. Esto a menudo requiere mapear los cambios de estado de la transacción o las creaciones de registros relacionados a nombres de actividad definidos. Ejemplos Factura CreadaFactura AprobadaPago de cliente recibidoFactura Pagada en su Totalidad | |||
| Número de Factura InvoiceNumber | El identificador único para cada documento de factura, sirviendo como el identificador de `case` principal para el proceso de facturación. | ||
| Descripción El Invoice Number es la piedra angular del análisis del proceso de facturación, identificando de forma única cada factura desde su creación hasta su cierre final. Agrupa todas las actividades relacionadas, como aprobación, envío y aplicación de pagos, en un único En Process Mining, analizar el recorrido de cada Invoice Number permite una visión integral de todo el ciclo de vida de la facturación. Esto posibilita la identificación de variantes del proceso, Por qué es importante Es esencial para rastrear el ciclo de vida de principio a fin de cada factura, permitiendo la reconstrucción de todo el proceso de facturación y posibilitando un análisis detallado del rendimiento. Dónde obtener Este es típicamente el 'Transaction ID' o un Ejemplos INV-0012345INV-0012346INV-0012347 | |||
| Timestamp del Evento EventTimestamp | La fecha y hora exactas en que ocurrió una actividad o evento específico. | ||
| Descripción Este In Process Mining, the Por qué es importante Proporciona el orden cronológico de los eventos, lo cual es esencial para calcular todas las métricas basadas en la duración, identificar cuellos de botella y analizar el rendimiento del proceso a lo largo del tiempo. Dónde obtener
Ejemplos 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Source System SourceSystem | El sistema del cual se extrajo la data. | ||
| Descripción Este In a broader analytics context, especially in organizations with multiple ERPs or integrated systems, this Por qué es importante Proporciona un contexto crucial para el origen y la gobernanza de los datos, especialmente en entornos donde múltiples sistemas podrían estar integrados. Dónde obtener Este es un Ejemplos NetSuite | |||
| Última actualización de datos LastDataUpdate | La `timestamp` que indica la última vez que los `datos` se actualizaron desde el sistema de origen. | ||
| Descripción Este Analysts and business stakeholders use this information to understand if the insights reflect the most current operational state. It is a critical piece of metadata for any Por qué es importante Esto informa a los usuarios about the Dónde obtener Este Ejemplos 2024-05-21T02:00:00Z | |||
| Automatizado IsAutomated | Un indicador que señala si una actividad fue realizada automáticamente por el sistema. | ||
| Descripción Este Este Por qué es importante Ayuda a medir el nivel de automatización en el proceso, identificando oportunidades para reducir el esfuerzo manual y aumentar la eficiencia. Dónde obtener Esto se deriva típicamente by checking the 'User' associated with an Ejemplos truefalse | |||
| Fecha de Factura InvoiceDate | La fecha oficial de la factura, tal como se emitió al cliente. | ||
| Descripción La Invoice Date, o fecha de transacción, es el punto de partida para muchos cálculos financieros relacionados con la facturación. Es la fecha a partir de la cual se suelen calcular las Payment Terms y Due Dates. En el análisis, esta fecha sirve como ancla principal para calcular KPIs financieros clave como Days Sales Outstanding (DSO) y Invoice Aging. Permite el Por qué es importante Esta Dónde obtener Esto corresponde al campo 'Date' (trandate) en el Invoice transaction record en NetSuite. Ejemplos 2023-10-262023-10-272023-11-15 | |||
| Fecha de Vencimiento DueDate | La fecha límite en la que debe realizarse el pago de la factura. | ||
| Descripción La Fecha de Vencimiento se calcula en función de la Invoice Date y las Payment Terms acordadas. Representa la fecha límite para que el cliente realice un pago sin considerarse retrasado. Este Por qué es importante Es fundamental para medir el rendimiento de los pagos a tiempo y analizar el comportamiento de pago de los clientes, apoyando directamente las cobranzas y la previsión del flujo de caja. Dónde obtener Esto corresponde al campo 'Due Date' (duedate) en el Invoice transaction record en NetSuite. Ejemplos 2023-11-252023-11-262023-12-15 | |||
| Hora Fin del Evento EventEndTime | La fecha y hora precisas en que se completó una actividad o `event` específico. | ||
| Descripción La Hora de Finalización del Este Por qué es importante Permite el cálculo preciso de cuánto tiempo tarda cada actividad en completarse, lo cual es esencial para analizar la eficiencia de los recursos e identificar tareas que consumen mucho tiempo. Dónde obtener Similar a StartTime, esto puede obtenerse de los registros de auditoría del sistema en NetSuite. Puede requerir lógica para emparejar un 'start' Ejemplos 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Importe Total de la Factura InvoiceTotalAmount | El valor monetario total de la factura, incluyendo impuestos y otros cargos. | ||
| Descripción Este Analyzing the process based on invoice amount allows for Por qué es importante Permite el análisis de procesos basado en el valor, ayudando a priorizar las facturas de alto valor y a comprender el impacto financiero de las ineficiencias del proceso. Dónde obtener Esto corresponde al campo 'Total' (total) en el Invoice transaction record en NetSuite. Ejemplos 1500.0089.9912500.50 | |||
| Nombre del Cliente CustomerName | El nombre del cliente al que se emitió la factura. | ||
| Descripción Este Analyzing the billing process by customer helps identify patterns in payment behavior, disputes, or invoice complexity for specific clients. This can inform customer segmentation strategies, credit limit decisions, and tailored collection approaches. For example, it can reveal if a particular customer consistently has invoices that require rework. Por qué es importante Permite un análisis centrado en el cliente, ayudando a identificar patrones de pago, problemas frecuentes o desviaciones de proceso específicas de ciertos clientes. Dónde obtener Esto corresponde al campo de nombre 'Customer' o 'Entity' en el Invoice transaction record en NetSuite. Ejemplos `Global Tech Inc.`Innovate Solutions LLCCornerstone Corp | |||
| Región Region | La región geográfica asociada con el cliente o la transacción. | ||
| Descripción El Esta es una dimensión potente para el análisis comparativo. El Por qué es importante Permite un análisis comparativo entre diferentes áreas geográficas, lo cual es clave para identificar brechas de rendimiento regionales y estandarizar las mejores prácticas. Dónde obtener Esta Ejemplos América del NorteEMEAAPAC | |||
| Usuario User | El nombre o ID del usuario que realizó la actividad. | ||
| Descripción Este Analyzing the process by user helps in understanding workload distribution, individual performance, and identifying training needs. It can also highlight potential automation opportunities by showing which manual Por qué es importante Permite el análisis de la distribución de la carga de trabajo, el rendimiento específico del usuario y la adherencia al proceso, lo cual es vital para la gestión de recursos y la capacitación dirigida. Dónde obtener Disponible en la subpestaña Notas del Sistema o en campos específicos 'Modificado por' en los registros de Factura y transacciones relacionadas en NetSuite. Ejemplos Alice SmithBob JohnsonSYSTEM | |||
| ¿Es Retrabajo? IsRework | Un indicador calculado que identifica actividades consideradas como reprocesos o ciclos de corrección. | ||
| Descripción Este Este Por qué es importante Mide directamente la calidad del proceso al señalar los ciclos de reprocesos ineficientes, lo que permite el análisis de las causas raíz y el impacto financiero de los errores de facturación. Dónde obtener Este is a Ejemplos truefalse | |||
| Condiciones de Pago PaymentTerms | Las condiciones de pago acordadas entre la empresa y el cliente. | ||
| Descripción Los Términos de Pago definen cuándo y cómo se espera que un cliente pague su factura, por ejemplo, 'Neto 30' o 'A la recepción'. Esta información se utiliza para calcular automáticamente la fecha de vencimiento de la factura. Este atributo es crucial para el tablero de 'Adherencia a los Términos de Pago'. Analizar las tasas de pago a tiempo por diferentes términos de pago ayuda a evaluar su efectividad. Por ejemplo, puede mostrar si los clientes con términos 'Neto 15' pagan más rápido que aquellos con 'Neto 30', lo que informa futuras negociaciones de contratos y políticas de crédito. Por qué es importante Es esencial para analizar la efectividad de diferentes condiciones de pago y su impacto en la puntualidad de los pagos de los clientes. Dónde obtener Esto corresponde al campo 'Terms' en el Invoice transaction record en NetSuite. Ejemplos Neto 30Neto 60Vencimiento al recibir | |||
| Departamento Department | El departamento interno asociado con la factura. | ||
| Descripción Este Analyzing the process by department allows for Por qué es importante Permite comparar el rendimiento del proceso entre diferentes departamentos internos, destacando variaciones y oportunidades para la estandarización interna del proceso. Dónde obtener Esto corresponde al campo de clasificación 'Department', el cual puede establecerse a nivel de header o line del Invoice transaction en NetSuite. Ejemplos Ventas - EmpresarialServicios ProfesionalesHardware | |||
| Días de Cobro Pendiente DaysSalesOutstanding | El 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 de Cartera (DSO) son una métrica financiera clave que mide el número promedio de días que tarda en cobrarse un pago después de que se ha emitido una factura. Este atributo se calcula para cada factura individual para permitir un análisis detallado. Aunque a menudo se agrega como un KPI de alto nivel, tener el DSO a nivel de factura individual permite un análisis potente. Se puede utilizar para identificar qué clientes, regiones o tipos de factura tienen el DSO más alto. El tablero 'Tendencia de DSO' se basa en esta métrica para visualizar la eficiencia de cobro a lo largo del tiempo, proporcionando información crítica para la gestión del capital de trabajo. Por qué es importante Cuantifica la eficiencia de cobro a nivel de factura individual, lo que permite un análisis detallado de la causa raíz de un DSO alto y su impacto en el flujo de caja. Dónde obtener Calculado restando la 'Fecha de Factura' de la marca de tiempo de la actividad 'Pago de Cliente Recibido'. Ejemplos 294562 | |||
| Es Pago a Tiempo IsOnTimePayment | Un indicador que señala si el pago del cliente se recibió en o antes de la fecha de vencimiento de la factura. | ||
| Descripción Este Este Por qué es importante Esto provides a Dónde obtener Este is a Ejemplos truefalse | |||
| Estado de la Factura InvoiceStatus | El estado actual de la factura en su ciclo de vida. | ||
| Descripción Este The 'Open Invoices Status Overview' Por qué es importante Proporciona una instantánea del estado actual de las cuentas por cobrar, habilitando paneles (dashboards) que monitorean las facturas abiertas y el progreso general de la facturación. Dónde obtener Esto corresponde al campo 'Status' en el Invoice transaction record en NetSuite. Ejemplos AbiertoPagado por CompletoAnuladaPendiente de aprobación | |||
| Moneda Currency | El código de moneda para el importe de la factura. | ||
| Descripción Este For Por qué es importante Proporciona el contexto necesario para todos los valores monetarios, lo cual es crucial para una presentación de informes y un análisis financiero precisos, especialmente en operaciones multinacionales. Dónde obtener Esto corresponde al campo 'Currency' en el Invoice transaction record en NetSuite. Ejemplos USDEURGBP | |||
| Número de Pedido de Venta SalesOrderNumber | El identificador del pedido de venta a partir del cual se generó la factura. | ||
| Descripción Este Including the Sales Order Number allows for a more holistic view of the entire Order-to-Cash cycle. It enables analysis that can trace Por qué es importante Vincula el proceso de facturación con el proceso de ventas, permitiendo un análisis más amplio y de principio a fin de Pedido a Cobro para identificar las causas raíz de los problemas de facturación. Dónde obtener Se encuentra en el campo 'Creado desde' o en la subpestaña 'Registros relacionados' de una transacción de Factura en NetSuite. Ejemplos SO-0009876SO-0009877SO-0009878 | |||
| Tiempo de procesamiento de la actividad ActivityProcessingTime | La duración del tiempo dedicado activamente a una `actividad` específica. | ||
| Descripción Esta Esta es una Por qué es importante Cuantifica el esfuerzo real para cada tarea, ayudando a distinguir el tiempo de trabajo activo del tiempo de espera inactivo y señalando actividades ineficientes. Dónde obtener Calculado restando el EventTimestamp (StartTime) de EventEndTime para cada registro de actividad. Ejemplos 300601200 | |||
Actividades de Pedido a Cobro - Facturación
| Actividad | Descripción | ||
|---|---|---|---|
| Factura Aprobada | La factura ha sido aprobada formalmente y está lista para ser enviada al cliente. Esto se captura cuando el estado de aprobación se actualiza de 'Pending Approval' a 'Approved', generalmente a través de una acción de `workflow`. | ||
| Por qué es importante Un hito clave que controla el envío de la factura al cliente. Es crucial para medir los tiempos de ciclo de aprobación y para calcular el KPI de 'Ratio de Facturación Automatizada'. Dónde obtener Inferido del cambio del campo 'Estado de Aprobación' en el registro de Factura a 'Aprobado'. La marca de tiempo precisa se registra en las notas del sistema para la transacción. Capturar Inferido del cambio del campo 'Estado de Aprobación' a 'Aprobado' en las notas del sistema. Tipo de evento inferred | |||
| Factura Creada | Marca la creación oficial del registro de transacción de la factura en NetSuite. Este evento es el punto de partida del proceso de facturación para cada número de factura único y se captura de la marca de tiempo de creación de la transacción. | ||
| Por qué es importante Este es el primary start Dónde obtener Capturado de la marca de tiempo 'Fecha de Creación' en el registro de transacción de la Factura. Las notas del sistema de NetSuite para la factura también registran explícitamente el evento de creación y el usuario. Capturar Evento registrado tras la creación del registro de transacción de Factura. Tipo de evento explicit | |||
| Factura Enviada al Cliente | Significa que la factura ha sido enviada al cliente, generalmente por correo electrónico. Este `event` se captura al rastrear cuándo un usuario ejecuta la acción 'Email' desde el registro de la factura. | ||
| Por qué es importante Esto marks the beginning of the Dónde obtener Inferido de la población del campo 'Fecha del último correo electrónico' en el registro de Factura. Alternativamente, se puede capturar de la creación de un registro de mensaje de correo electrónico en la subpestaña Comunicación. Capturar Inferido de la población de 'Fecha del último correo electrónico' o de la creación de un registro de comunicación. Tipo de evento inferred | |||
| Factura Pagada en su Totalidad | El estado de la factura ha cambiado a 'Paid In Full', indicando que su saldo es ahora cero. Esta es la conclusión exitosa del ciclo de facturación y cobro de la factura. | ||
| Por qué es importante Este is the Dónde obtener Inferido del cambio del campo 'Estado' del registro de Factura a 'Pagado en su totalidad'. La marca de tiempo de este cambio de estado está disponible en las notas del sistema de la transacción. Capturar Inferido del cambio del campo 'Estado' a 'Pagado en su totalidad' en las notas del sistema. Tipo de evento inferred | |||
| Pago de cliente recibido | Se ha recibido un pago del cliente y se ha registrado en el sistema. Esto se captura mediante la creación de una transacción de 'Pago de Cliente' en NetSuite, que puede aplicarse a una o varias facturas. | ||
| Por qué es importante Marca la recepción de efectivo, pero no necesariamente su aplicación a una factura específica. Es el primer paso en el proceso de aplicación de efectivo y un evento clave para los cálculos de DSO. Dónde obtener Capturado de la fecha de creación del registro de transacción de 'Pago de Cliente'. La conexión con la factura se realiza en la subpestaña 'Aplicar' del pago. Capturar Creación de un registro de transacción de Pago de Cliente. Tipo de evento explicit | |||
| Factura Anulada | La factura ha sido anulada, cancelándola efectivamente y revirtiendo cualquier impacto en el libro mayor. Esta acción se suele tomar para facturas creadas por error antes de ser pagadas. | ||
| Por qué es importante Representa una excepción del proceso y un estado terminal. Comprender por qué se anulan las facturas puede revelar Dónde obtener Esta es una Capturar Acción explícita de 'Anular' registrada en las notas del sistema de la factura. Tipo de evento explicit | |||
| Factura Cerrada | La transacción de la factura ha sido cerrada, a menudo como parte de un proceso contable de cierre de período. Esta acción evita cambios adicionales en la transacción una vez que ha sido completamente pagada y conciliada. | ||
| Por qué es importante Mientras que a menudo occurring after 'Paid In Full', this can be a Dónde obtener Inferido del cambio del campo 'Estado' a 'Cerrado' o un estado similar. La marca de tiempo de este cambio se captura de las notas del sistema. Capturar Inferido del cambio en el campo 'Estado' en las notas del sistema. Tipo de evento inferred | |||
| Factura enviada para aprobación | Representa el cambio de estado de la factura a 'Pending Approval'. Este `event` se captura cuando un usuario envía la factura a un `workflow` de aprobación configurado, lo cual es una personalización común. | ||
| Por qué es importante Esta Dónde obtener Inferido del cambio del campo 'Estado de Aprobación' en el registro de Factura a 'Pendiente de Aprobación'. La marca de tiempo de este cambio se puede encontrar en la pista de auditoría de las notas del sistema para la factura. Capturar Inferido del cambio en el campo 'Estado de Aprobación' registrado en las notas del sistema. Tipo de evento inferred | |||
| Fecha de Vencimiento de Pago Alcanzada | Un evento calculado que ocurre cuando la fecha actual coincide con la fecha de vencimiento de la factura. Este evento no corresponde a una acción directa del usuario o del sistema, sino que se deriva de datos existentes durante el análisis. | ||
| Por qué es importante Actúa como un punto de referencia crítico para medir la puntualidad de los pagos. Es esencial para calcular el KPI de 'Tasa de Pago a Tiempo' y analizar los comportamientos de pago de los clientes. Dónde obtener Este no es un Capturar Calculado cuando la marca de tiempo del evento es igual al campo 'Fecha de Vencimiento' en la factura. Tipo de evento calculated | |||
| Nota de Crédito Creada | Se ha creado y aplicado una transacción de nota de crédito a la factura, reduciendo el saldo pendiente. Esto suele indicar una devolución de producto, una queja de servicio o una corrección de precio. | ||
| Por qué es importante Destaca reprocesos, problemas de calidad o disputas con clientes. Las ocurrencias frecuentes pueden indicar problemas subyacentes y son clave para el tablero de 'Análisis de Reprocesos y Rechazos de Facturas'. Dónde obtener Capturado de la creación de una transacción de Nota de Crédito. El enlace a la factura original se encuentra en el campo 'Creado desde' o en la subpestaña 'Aplicar' 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 de cliente recibido se ha aplicado específicamente a esta factura, reduciendo su importe adeudado. Esto se registra cuando la aplicación se guarda en el registro de Customer Payment. | ||
| Por qué es importante Este es el Dónde obtener Capturado de las notas del sistema o la pista de auditoría de la transacción de Pago de Cliente, específicamente cuando se guarda la aplicación a la línea de la factura. La marca de tiempo de esta aplicación es clave. Capturar Registrado cuando el registro de Pago de Cliente se guarda con una aplicación a la factura. Tipo de evento explicit | |||
| Recordatorio de Pago Emitido | Se ha enviado una comunicación al cliente con respecto a un pago pendiente. Esto se captura como una actividad registrada o un correo electrónico enviado desde el registro de la factura o del cliente, a menudo por una solución de gestión de cobros. | ||
| Por qué es importante Es esencial para evaluar la efectividad de las estrategias de cobro. Analizar el impacto de esta actividad en los pagos posteriores ayuda a optimizar la frecuencia y el momento de los recordatorios. Dónde obtener Capturado de la creación de un registro de correo electrónico en la subpestaña Comunicación > Mensajes del registro de Factura o Cliente. Las soluciones de gestión de cobros automatizadas también pueden registrar estos como registros personalizados o tareas. Capturar Registrado como un correo electrónico o registro de actividad asociado a la factura. Tipo de evento explicit | |||
Guías de Extracción
Pasos
- Iniciar sesión en NetSuite: Acceda a su cuenta de NetSuite utilizando un rol con permisos suficientes para crear y ejecutar búsquedas guardadas en registros de transacciones.
- Navegar a Búsquedas guardadas: Vaya a Informes > Búsquedas guardadas > Todas las búsquedas guardadas > Nueva. Seleccione 'Transacción' de la lista de tipos de búsqueda. Esta será la base para crear múltiples búsquedas, una para cada tipo de evento.
- Crear la búsqueda 'Factura creada': Esta es la búsqueda principal que captura la creación de facturas.
- En la pestaña 'Criterios', en 'Estándar', establezca el filtro 'Tipo' en 'es Factura'.
- Agregue otro filtro para 'Línea principal' y establézcalo en 'es verdadero' para obtener un registro por factura.
- En la pestaña 'Resultados', agregue las columnas requeridas. Utilice fórmulas para crear campos estandarizados como 'ActivityName'. Por ejemplo, agregue un campo 'Fórmula (Texto)' con la fórmula
_UTF8'Invoice Created'.
- Crear búsquedas para cambios de estado (Aprobación, Pagado, Anulado, Cerrado): Muchas actividades son cambios de estado. La forma más fiable de capturar la marca de tiempo exacta es a través de las Notas del Sistema.
- Cree una nueva búsqueda guardada de transacción.
- En la pestaña 'Criterios', establezca 'Tipo' en 'es Factura'.
- En la subpestaña 'Estándar', agregue el filtro 'Notas del Sistema : Campo' y seleccione el campo de estado relevante, por ejemplo, 'Estado de aprobación'.
- Agregue otro filtro 'Notas del Sistema : Nuevo Valor' y establézcalo en el estado objetivo, por ejemplo, 'Aprobado'.
- En la pestaña 'Resultados', mapee 'Notas del Sistema : Fecha' a
EventTimestampy 'Notas del Sistema : Establecido por' aUser. - Repita este 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', ajustando los filtros de campo y valor según corresponda.
- Crear la búsqueda 'Factura enviada al cliente': Este evento se captura típicamente rastreando los mensajes de correo electrónico enviados desde el registro de la factura.
- Cree una nueva búsqueda guardada de transacción con 'Tipo' establecido en 'es Factura'.
- En la pestaña 'Criterios', en 'Registros relacionados', agregue un filtro para 'Mensajes : Fecha de envío' y establézcalo en 'no está vacío'.
- En la pestaña 'Resultados', mapee 'Mensajes : Fecha de envío' a
EventTimestampy 'Mensajes : Autor' aUser.
- Crear búsquedas para actividades de pago y notas de crédito: Estas implican tipos de transacción separados vinculados a la factura.
- Para 'Pago de cliente recibido', cree una búsqueda para 'Tipo' es 'Pago de cliente'. Capture la fecha de creación como la marca de tiempo del evento.
- Para 'Pago aplicado a factura', use la misma búsqueda de 'Pago de cliente' pero únase a los campos 'Aplicado a transacción'. La 'Fecha de creación' de la transacción de pago sirve como marca de tiempo. Obtendrá una fila por aplicación de factura.
- Para 'Nota de crédito creada', cree una búsqueda para 'Tipo' es 'Nota de crédito' y vincule al campo 'Creado desde' para obtener el número de factura original.
- Ejecutar y exportar cada búsqueda guardada: Ejecute cada búsqueda guardada que creó. Desde la página de resultados, haga clic en el icono de exportación (CSV, Excel o PDF) y elija CSV. Es posible que deba exportar en lotes si el conjunto de resultados es mayor que su límite de exportación de NetSuite.
- Combinar y transformar datos: Consolide todos los archivos CSV exportados en un solo archivo utilizando una herramienta como Microsoft Excel, un script de Python o una herramienta de preparación de datos.
- Derivar el evento 'Fecha de vencimiento de pago alcanzada': En su archivo de datos combinado, para cada evento 'Factura creada', cree una nueva fila. Establezca el
ActivityNameen 'Fecha de vencimiento de pago alcanzada', elEventTimestampen el valor del campoDueDatede la factura y copie los demás atributos relevantes de la factura. - Finalizar 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 consistentes. Agregue las columnasSourceSystemyLastDataUpdatecon valores estáticos para este lote de extracción. Guarde el archivo consolidado final como CSV para su carga.
Configuración
- Requisitos previos: Se necesita un rol de usuario con permisos para crear, editar y ejecutar búsquedas guardadas de tipo 'Transacción'. También es necesario tener acceso para ver registros de Facturas, Pagos de Clientes, Notas de Crédito y Notas del Sistema.
- Tipo de búsqueda: El tipo de búsqueda principal utilizado para todas las extracciones es 'Transacción'. Este tipo permite acceder a todos los registros necesarios y sus relaciones.
- Filtrado por rango de fechas: Para gestionar el rendimiento y el volumen de datos, aplique un filtro de rango de fechas a cada búsqueda. Para el análisis inicial, se recomienda un filtro por 'Fecha de creación' para un período de los últimos 3 a 6 meses.
- Filtro de línea principal: Utilice el criterio 'Línea principal' establecido en 'verdadero' para eventos a nivel de encabezado del documento, como 'Factura creada'. Establézcalo en 'falso' cuando necesite analizar detalles de líneas de artículos, lo cual no es necesario para este proceso.
- Notas del sistema: La captura de cambios de estado depende en gran medida de las Notas del sistema. Asegúrese de que la auditoría esté habilitada para campos de transacción clave como 'Estado' y 'Estado de aprobación' en su configuración de NetSuite (Configuración > Empresa > Habilitar funciones > SuiteCloud > SuiteAudit Trail).
- Consideraciones de rendimiento: Las búsquedas complejas con muchas uniones y campos de fórmula en un rango de fechas amplio pueden ser lentas de ejecutar en la interfaz de usuario de NetSuite. Es aconsejable ejecutar y exportar estas búsquedas durante las horas de menor actividad. Si una búsqueda agota el tiempo de espera, reduzca el rango de fechas y exporte los datos en lotes más pequeños.
a Consulta de ejemplo config
/*
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: Habilitar SuiteAnalytics Connect: Asegúrese de que el módulo SuiteAnalytics Connect esté licenciado y habilitado en su instancia de NetSuite. Esto lo suele hacer un administrador de NetSuite en Configuración > Empresa > Habilitar funciones > Análisis.
- Descargar y configurar el controlador ODBC: Navegue al panel de control principal de NetSuite y localice el portlet 'Configuración'. Haga clic en el enlace 'Configurar SuiteAnalytics Connect' para descargar el controlador ODBC adecuado para su sistema operativo. Siga las instrucciones de instalación proporcionadas por NetSuite para instalar y configurar el controlador, proporcionando su host de servicio, puerto, ID de cuenta, ID de rol, correo electrónico y contraseña.
- Establecer conexión a la base de datos: Utilice una herramienta cliente SQL que admita conexiones ODBC, como DBeaver, Tableau o Power BI. Cree una nueva conexión ODBC utilizando el controlador que configuró en el paso anterior. Pruebe la conexión para asegurarse de que puede autenticarse y acceder correctamente a la base de datos de réplica de lectura de NetSuite.
- Preparar la consulta SQL: Copie la consulta SQL completa proporcionada en la sección 'Consulta' de este documento. Esta consulta está diseñada para extraer todas las actividades y atributos requeridos para el proceso de facturación de Pedido a Cobro.
- Establecer parámetros de consulta: Antes de ejecutar, localice los valores de marcador de posición dentro de la consulta. Debe reemplazar
'YYYY-MM-DD'con las fechas de inicio y fin deseadas para el período de extracción. Además, reemplace[Su ID de Subsidiaria]con el ID interno de la subsidiaria de NetSuite que desea analizar. - Ejecutar la consulta: Ejecute la consulta modificada en su cliente SQL. El tiempo de ejecución variará según el rango de fechas y el volumen de transacciones en su cuenta de NetSuite.
- Revisar los resultados: Una vez completada la consulta, se devolverá una tabla plana que representa el registro de eventos. Cada fila corresponde a una actividad específica en el ciclo de vida de la factura. Revise los datos para verificar su completitud y precisión.
- Exportar el registro de eventos: Exporte los resultados de la consulta de su cliente SQL a un archivo CSV. Asegúrese de que el archivo esté codificado en UTF-8 para evitar problemas de caracteres.
- Preparar para la carga: Antes de cargar en una herramienta de Process Mining, confirme que los encabezados de columna coincidan con los nombres de atributos requeridos, como InvoiceNumber, ActivityName y EventTimestamp. Verifique que los formatos de fecha y hora sean consistentes.
Configuración
- Licencia de SuiteAnalytics Connect: Una licencia válida para el módulo SuiteAnalytics Connect es obligatoria para acceder a la base de datos de réplica de lectura de NetSuite. Sin ella, el acceso directo a SQL no es posible.
- Rol y usuario dedicados: Se recomienda encarecidamente crear un rol de NetSuite dedicado con los permisos adecuados para SuiteAnalytics Connect. Este rol debe tener acceso de solo lectura a los registros necesarios, incluyendo Transacciones, Clientes y Notas del Sistema. Asigne un un usuario dedicado a este rol para la extracción, asegurando la seguridad y la auditabilidad.
- Filtrado por rango de fechas: La consulta proporcionada incluye una cláusula
WHEREpara la fecha de creación de la factura (Transaction.TRANDATE). Para las extracciones iniciales, es aconsejable comenzar con un rango de fechas más pequeño, como los últimos 3 a 6 meses, para gestionar el rendimiento y el volumen de datos. Por ejemplo:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filtrado por subsidiaria: Para cuentas con múltiples subsidiarias, el filtrado por la subsidiaria específica es fundamental tanto para el rendimiento como para la relevancia de los datos. La consulta incluye un marcador de posición
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID]que debe configurarse. - Actualización de datos: La base de datos de SuiteAnalytics Connect es una réplica de lectura. Los datos se actualizan varias veces por hora, pero no en tiempo real. Tenga en cuenta un posible retraso de hasta unas pocas horas entre la ocurrencia de una transacción en NetSuite y su aparición en la base de datos de Connect.
a 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');