Seu Template de dados de Order-to-Cash - Faturamento e emissão de faturas
Seu Template de dados de Order-to-Cash - Faturamento e emissão de faturas
- Atributos recomendados para coletar
- Principais atividades para acompanhar
- Orientações para extração no NetSuite
Atributos de faturamento e emissão de notas fiscais, do pedido ao recebimento
| Nome | Descrição | ||
|---|---|---|---|
| Nome da atividade ActivityName | O nome do evento de negócio que ocorreu em um ponto específico do ciclo de vida da fatura. | ||
| Descrição O nome da atividade descreve uma etapa ou evento específico do processo de faturamento, como 'Invoice Created', 'Invoice Approved' ou 'Customer Payment Received'. Essas atividades formam os blocos sequenciais do mapa do processo. Analisar a sequência e a frequência dessas atividades é fundamental para o Process Mining. Isso ajuda a visualizar o fluxo real do processo, identificar caminhos comuns e raros do processo, as variantes, e apontar atividades que são repetidas com frequência, indicando retrabalho ou ineficiência. Por que isso importa Esse atributo é fundamental para construir o mapa do processo, permitindo visualizar e analisar as diferentes etapas e caminhos percorridos por uma fatura. Onde obter Derivado dos registros do sistema, das alterações de status ou de registros de eventos específicos associados à transação Invoice no NetSuite. Isso geralmente exige mapear alterações de status da transação ou criações de registros relacionados para nomes de atividades definidos. Exemplos Fatura criadaFatura aprovadaPagamento do cliente recebidoFatura totalmente paga | |||
| Número da fatura InvoiceNumber | O identificador exclusivo de cada documento de fatura, que funciona como o principal identificador do caso no processo de faturamento. | ||
| Descrição O número da fatura é a base da análise do processo de faturamento, identificando exclusivamente cada fatura desde sua criação até o fechamento final. Ele agrupa todas as atividades relacionadas, como aprovação, envio e aplicação do pagamento, em um único caso coeso. No Process Mining, analisar a jornada de cada número de fatura permite ter uma visão abrangente de todo o ciclo de vida do faturamento. Isso possibilita identificar variantes do processo, gargalos e desvios do procedimento padrão, gerando insights essenciais para otimizar o fluxo de caixa e a eficiência operacional. Por que isso importa É essencial para acompanhar o ciclo de vida de ponta a ponta de cada fatura, permitindo reconstruir todo o processo de faturamento e realizar uma análise detalhada da performance. Onde obter Normalmente é o campo 'Transaction ID' ou outro campo de identificador exclusivo semelhante no registro da transação Invoice do NetSuite. Exemplos INV-0012345INV-0012346INV-0012347 | |||
| Registro de data e hora do evento EventTimestamp | A data e a hora precisas em que uma atividade ou evento específico ocorreu. | ||
| Descrição Esse atributo registra o momento exato em que uma atividade ocorreu. Ele é um componente essencial para ordenar cronologicamente os eventos e para todas as análises baseadas em tempo. No Process Mining, o registro de data e hora do evento é usado para calcular os tempos de ciclo entre atividades, as durações dos casos e os tempos de espera. Ele é fundamental para identificar gargalos, medir a performance do processo em relação aos SLAs e entender a dinâmica temporal do processo de faturamento. Por exemplo, é usado para calcular o Invoice Generation Cycle Time e o Days Sales Outstanding (DSO). Por que isso importa Ele fornece a ordem cronológica dos eventos, essencial para calcular todas as métricas baseadas em duração, identificar gargalos e analisar a performance do processo ao longo do tempo. Onde obter As informações de data e hora normalmente estão nas notas do sistema, nas trilhas de auditoria ou nos campos 'Date Created' dos registros relacionados a cada transação Invoice no NetSuite. Exemplos 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Sistema de origem SourceSystem | O sistema do qual os dados foram extraídos. | ||
| Descrição Esse atributo identifica a origem dos dados do processo. Nesta visão, ele seria sempre 'NetSuite'. Em um contexto mais amplo de analytics, especialmente em organizações com vários ERPs ou sistemas integrados, esse atributo é fundamental para a linhagem e a governança dos dados. Ele ajuda a diferenciar processos que podem abranger diferentes plataformas e garante que a análise seja atribuída corretamente ao sistema de registro apropriado. Por que isso importa Ele fornece um contexto essencial sobre a origem e a governança dos dados, especialmente em ambientes nos quais vários sistemas podem estar integrados. Onde obter Esse é um valor estático ('NetSuite') adicionado durante o processo de extração e transformação dos dados. Exemplos NetSuite | |||
| Última atualização dos dados LastDataUpdate | O registro de data e hora que indica a última vez em que os dados foram atualizados a partir do sistema de origem. | ||
| Descrição Esse atributo registra quando o conjunto de dados foi atualizado pela última vez. Ele fornece contexto sobre a atualidade e a relevância da análise de Process Mining. Analistas e stakeholders do negócio usam essas informações para entender se os insights refletem o estado operacional mais recente. Esse é um metadado essencial para qualquer Dashboard ou relatório, garantindo que as decisões sejam baseadas em dados com uma idade conhecida e não sejam interpretadas como dados em tempo real quando não forem. Por que isso importa Isso informa aos usuários o quanto os dados estão atualizados, garantindo que eles entendam o período da análise e a relevância dos insights. Onde obter Esse registro de data e hora é gerado e armazenado pela ferramenta ou pelo pipeline de extração de dados no momento da atualização dos dados. Exemplos 2024-05-21T02:00:00Z | |||
| Data da fatura InvoiceDate | A data oficial da fatura, conforme emitida ao cliente. | ||
| Descrição A data da fatura, ou data da transação, é o ponto de partida para muitos cálculos financeiros relacionados ao faturamento. É a partir dela que normalmente são calculados as condições de pagamento e os vencimentos. Na análise, essa data serve como a principal referência para calcular KPIs financeiros importantes, como Days Sales Outstanding (DSO) e o aging das faturas. Ela permite fazer uma análise de coortes, comparando a performance do faturamento em diferentes períodos, por exemplo, mês a mês ou ano a ano. Por que isso importa Essa data é a base para métricas financeiras importantes, como Days Sales Outstanding (DSO) e aging das faturas, afetando diretamente a análise do capital de giro. Onde obter Corresponde ao campo 'Date' (trandate) no registro da transação Invoice do NetSuite. Exemplos 2023-10-262023-10-272023-11-15 | |||
| Data de vencimento DueDate | A data até a qual o pagamento da fatura deve ser realizado. | ||
| Descrição A data de vencimento é calculada com base na data da fatura e nas condições de pagamento acordadas. Ela representa o prazo para o cliente efetuar o pagamento sem que ele seja considerado atrasado. Esse atributo é essencial para monitorar as contas a receber e gerenciar o fluxo de caixa. Ele é a referência usada para calcular o KPI On-Time Payment Rate e analisar o comportamento de pagamento dos clientes. Acompanhar os desvios em relação à data de vencimento ajuda a identificar clientes que frequentemente pagam em atraso e avaliar a eficácia das estratégias de cobrança. Por que isso importa É fundamental para medir a performance dos pagamentos no prazo e analisar o comportamento de pagamento dos clientes, apoiando diretamente a cobrança e a previsão do fluxo de caixa. Onde obter Corresponde ao campo 'Due Date' (duedate) no registro da transação Invoice do NetSuite. Exemplos 2023-11-252023-11-262023-12-15 | |||
| É automatizado IsAutomated | Um indicador que mostra se uma atividade foi executada automaticamente pelo sistema. | ||
| Descrição Este atributo booleano diferencia as atividades executadas manualmente por um usuário daquelas executadas automaticamente por um Workflow, script ou integração do sistema. Este atributo é fundamental para medir o nível de automação do processo de faturamento, dando suporte direto ao KPI 'Automated Billing Ratio'. Ao filtrar atividades automatizadas ou manuais, os analistas podem identificar gargalos causados por intervenção manual e encontrar oportunidades para aumentar a automação, reduzir erros humanos e melhorar a eficiência. Por que isso importa Ele ajuda a medir o nível de automação do processo, identificando oportunidades para reduzir o esforço manual e aumentar a eficiência. Onde obter Normalmente, isso é determinado verificando o 'User' associado a uma atividade. Eventos acionados por usuários chamados 'SYSTEM', 'Workflow' ou 'Integration' são marcados como automatizados. Exemplos truefalse | |||
| Hora de término do evento EventEndTime | A data e a hora precisas em que uma atividade ou evento específico foi concluído. | ||
| Descrição A hora de término do evento marca a conclusão de uma atividade. Embora muitas atividades sejam instantâneas, com a mesma hora de início e término, algumas, como uma etapa de aprovação, podem ter uma duração mensurável. Esse atributo, junto com o registro de data e hora do evento, a hora de início, permite calcular diretamente o tempo de processamento da atividade. Analisar o tempo de processamento ajuda a identificar quais etapas específicas consomem mais tempo e recursos, diferenciando-o do tempo de espera entre atividades. Isso é fundamental para localizar ineficiências em tarefas específicas. Por que isso importa Ele permite calcular com precisão quanto tempo cada atividade leva para ser concluída, o que é essencial para analisar a eficiência dos recursos e identificar tarefas que consomem muito tempo. Onde obter Assim como StartTime, esse dado pode ser obtido nas trilhas de auditoria do sistema no NetSuite. Talvez seja necessário usar uma lógica para associar um evento de 'início' ao evento de 'término' correspondente. Exemplos 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Nome do cliente CustomerName | O nome do cliente para quem a fatura foi emitida. | ||
| Descrição Este atributo identifica a entidade jurídica ou a pessoa que está sendo cobrada. Ele conecta o processo de faturamento à função de gestão do relacionamento com o cliente. Analisar o processo de faturamento por cliente ajuda a identificar padrões de comportamento de pagamento, disputas ou complexidade das faturas para clientes específicos. Isso pode orientar estratégias de segmentação de clientes, decisões sobre limites de crédito e abordagens de cobrança personalizadas. Por exemplo, pode revelar se determinado cliente tem faturas que exigem retrabalho de forma recorrente. Por que isso importa Ele permite uma análise centrada no cliente, ajudando a identificar padrões de pagamento, problemas frequentes ou desvios de processo específicos de determinados clientes. Onde obter Isso corresponde ao campo de nome 'Customer' ou 'Entity' no registro de transação Invoice do NetSuite. Exemplos Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Região Region | A região geográfica associada ao cliente ou à transação. | ||
| Descrição O atributo Region classifica as faturas com base na localização geográfica, que pode ser determinada pelo endereço do cliente ou pela unidade de negócio que emitiu a fatura. Essa é uma dimensão poderosa para análises comparativas. O Dashboard 'Regional Billing Process Comparison' usa esse atributo para comparar KPIs, como tempos de ciclo, taxas de erro e variantes do processo, entre diferentes regiões. Isso ajuda a identificar diferenças de performance regionais, descobrir boas práticas em regiões de alto desempenho e promover a padronização dos processos em toda a organização. Por que isso importa Ele permite comparar diferentes áreas geográficas, algo fundamental para identificar lacunas de performance regionais e padronizar boas práticas. Onde obter Esses dados geralmente são armazenados em um segmento personalizado ou campo de classificação no cadastro mestre do cliente ou no registro de transação do NetSuite. Exemplos América do NorteEMEAAPAC | |||
| Usuário User | O nome ou ID do usuário que executou a atividade. | ||
| Descrição Esse atributo identifica o funcionário ou usuário do sistema responsável por executar uma etapa específica do processo. Pode ser a pessoa que criou a fatura, aprovou-a ou aplicou o pagamento. Analisar o processo por usuário ajuda a entender a distribuição da carga de trabalho, a performance individual e as necessidades de treinamento. Também pode destacar oportunidades de automação ao mostrar quais atividades manuais são executadas pelo maior número de usuários. Além disso, é fundamental para a conformidade e a análise da trilha de auditoria. Por que isso importa Ele permite analisar a distribuição da carga de trabalho, a performance por usuário e a aderência ao processo, aspectos essenciais para a gestão de recursos e o treinamento direcionado. Onde obter Disponível na aba System Notes ou em campos específicos 'Modified By' dos registros Invoice e das transações relacionadas no NetSuite. Exemplos Alice SmithBob JohnsonSYSTEM | |||
| Valor total da fatura InvoiceTotalAmount | O valor monetário total da fatura, incluindo impostos e outras cobranças. | ||
| Descrição Esse atributo representa o valor total que o cliente deve pagar. É um dado financeiro fundamental para cada caso de faturamento. Analisar o processo com base no valor da fatura permite uma análise orientada por valor. Por exemplo, pode revelar se faturas de alto valor seguem um processo diferente e mais complexo do que faturas de baixo valor. Esse dado também é usado para priorizar os esforços de cobrança e entender o impacto financeiro de atrasos nos pagamentos ou erros nas faturas. Por que isso importa Ele permite analisar o processo com base no valor, ajudando a priorizar faturas de alto valor e entender o impacto financeiro das ineficiências do processo. Onde obter Isso corresponde ao campo 'Total' (total) no registro de transação Invoice do NetSuite. Exemplos 1500.0089.9912500.50 | |||
| Condições de pagamento PaymentTerms | As condições de pagamento acordadas entre a empresa e o cliente. | ||
| Descrição As Payment Terms definem quando e como o cliente deve pagar a fatura, por exemplo, 'Net 30' ou 'Due on receipt'. Essas informações são usadas para calcular automaticamente a data de vencimento da fatura. Este atributo é essencial para o Dashboard 'Payment Terms Adherence'. Analisar as taxas de pagamento em dia por condição de pagamento ajuda a avaliar a eficácia de cada uma. Por exemplo, pode mostrar se clientes com condições 'Net 15' pagam mais rápido do que aqueles com 'Net 30', contribuindo para futuras negociações contratuais e políticas de crédito. Por que isso importa Ele é essencial para analisar a eficácia de diferentes condições de pagamento e seu impacto na pontualidade dos pagamentos dos clientes. Onde obter Isso corresponde ao campo 'Terms' no registro de transação Invoice do NetSuite. Exemplos Líquido em 30 diasLíquido em 60 diasVencimento na entrega | |||
| Departamento Department | O departamento interno associado à fatura. | ||
| Descrição Este atributo representa o departamento interno, como Sales, Services ou uma linha de negócio específica, responsável pela transação. Ele é um segmento de classificação padrão no NetSuite. Analisar o processo por departamento permite fazer benchmarking interno e ajuda a identificar se determinados departamentos têm processos de faturamento mais eficientes do que outros. Isso pode revelar variações na adesão ao processo ou na alocação de recursos, gerando insights para iniciativas direcionadas de melhoria de processos em áreas específicas da organização. Por que isso importa Ele permite comparar a performance do processo entre diferentes departamentos internos, destacando variações e oportunidades de padronização interna. Onde obter Isso corresponde ao campo de classificação 'Department', que pode ser definido no nível do cabeçalho ou da linha de uma transação Invoice no NetSuite. Exemplos Vendas corporativasServiços profissionaisHardware | |||
| Dias de vendas pendentes DaysSalesOutstanding | O número de dias entre a data da fatura e a data em que o pagamento foi recebido. | ||
| Descrição Days Sales Outstanding (DSO) é uma métrica financeira importante que mede o número médio de dias necessários para receber o pagamento após a emissão de uma fatura. Este atributo é calculado para cada fatura individual, permitindo uma análise detalhada. Embora seja frequentemente agregado como um KPI de alto nível, ter o DSO no nível de cada fatura permite análises mais aprofundadas. Ele pode ser usado para identificar quais clientes, regiões ou tipos de fatura têm o DSO mais alto. O Dashboard 'DSO Trend' usa essa métrica para visualizar a eficiência da cobrança ao longo do tempo, fornecendo insights importantes para a gestão do capital de giro. Por que isso importa Ele quantifica a eficiência da cobrança no nível de cada fatura, permitindo uma análise detalhada das causas-raiz do DSO elevado e de seu impacto no fluxo de caixa. Onde obter Calculado subtraindo 'InvoiceDate' do timestamp da atividade 'Customer Payment Received'. Exemplos 294562 | |||
| É retrabalho IsRework | Um indicador calculado que identifica atividades consideradas retrabalho ou ciclos de correção. | ||
| Descrição Este indicador booleano recebe o valor true para atividades que representam retrabalho sem valor agregado, como 'Invoice Corrected' ou um segundo evento 'Invoice Approved' no mesmo caso. Normalmente, ele é derivado com base no nome da atividade ou na repetição de uma atividade. Este atributo é essencial para o Dashboard 'Invoice Rework and Rejection Analysis' e para o KPI 'Invoice Error Rate'. Ele permite quantificar o retrabalho com facilidade, ajudando a destacar problemas de qualidade do processo. Ao filtrar atividades de retrabalho, as equipes podem identificar rapidamente as causas-raiz dos erros e medir o impacto das iniciativas de melhoria de processos. Por que isso importa Ele mede diretamente a qualidade do processo ao sinalizar ciclos de retrabalho ineficientes, permitindo analisar as causas-raiz e o impacto financeiro dos erros de faturamento. Onde obter Este é um atributo derivado, calculado durante a transformação dos dados. Uma lógica específica é aplicada para identificar retrabalho, como marcar determinados nomes de atividade ('Invoice Corrected') ou atividades repetidas. Exemplos truefalse | |||
| Moeda Currency | O código da moeda do valor da fatura. | ||
| Descrição Este atributo especifica a moeda em que o valor da fatura é denominado, por exemplo, USD, EUR ou GBP. Ele é um contexto essencial para qualquer valor monetário. Para organizações multinacionais, analisar os dados por moeda é importante para entender a performance financeira em diferentes mercados. Isso garante que os valores monetários sejam interpretados corretamente e permite agregá-los e compará-los de forma adequada após a conversão cambial, quando necessário. Por que isso importa Ele fornece o contexto necessário para todos os valores monetários, algo essencial para gerar relatórios e análises financeiras precisos, especialmente em operações multinacionais. Onde obter Isso corresponde ao campo 'Currency' no registro de transação Invoice do NetSuite. Exemplos USDEURGBP | |||
| Número do pedido de venda SalesOrderNumber | O identificador do pedido de venda a partir do qual a fatura foi gerada. | ||
| Descrição Este atributo fornece um link direto para o pedido de venda de origem, conectando o processo de faturamento aos processos anteriores de vendas e atendimento do pedido. Incluir o Sales Order Number permite ter uma visão mais completa de todo o ciclo Order-to-Cash. Isso possibilita rastrear problemas no faturamento até sua origem no processo de vendas. Por exemplo, correções frequentes de faturas podem estar relacionadas a erros de entrada de dados em determinados tipos de pedidos de venda. Por que isso importa Ele conecta o processo de faturamento ao processo de vendas, permitindo uma análise mais ampla e de ponta a ponta do Order-to-Cash para identificar as causas-raiz dos problemas de faturamento. Onde obter Encontrado no campo 'Created From' ou na subtaba 'Related Records' de uma transação Invoice no NetSuite. Exemplos SO-0009876SO-0009877SO-0009878 | |||
| Pagamento em dia IsOnTimePayment | Um indicador que mostra se o pagamento do cliente foi recebido até a data de vencimento da fatura. | ||
| Descrição Este indicador booleano calculado compara o timestamp da atividade 'Customer Payment Received' com o 'DueDate' da fatura. Ele recebe o valor true quando o pagamento é feito no prazo ou antecipadamente, e false quando é feito com atraso. Este atributo é a base do KPI 'On-Time Payment Rate' e do Dashboard 'Payment Terms Adherence'. Ele fornece uma medida binária clara do comportamento de pagamento dos clientes, simplificando a análise e os relatórios. Também ajuda a identificar rapidamente tendências na pontualidade dos pagamentos e avaliar a eficácia das estratégias de cobrança. Por que isso importa Ele fornece uma métrica clara de sucesso para a cobrança, dando suporte direto ao cálculo do KPI On-Time Payment Rate e à análise do comportamento dos clientes. Onde obter Este é um atributo calculado. É necessário comparar o timestamp do evento de pagamento com o atributo 'DueDate' no nível do caso. Exemplos truefalse | |||
| Status da fatura InvoiceStatus | O status atual da fatura em seu ciclo de vida. | ||
| Descrição Este atributo reflete o estado atual da fatura, como 'Open', 'Paid in Full' ou 'Voided'. Ele mostra em que ponto do processo a fatura está em determinado momento. O Dashboard 'Open Invoices Status Overview' é criado diretamente com base nesse atributo. Ele permite avaliar as contas a receber em tempo real, ajudando as equipes financeiras a monitorar saldos em aberto, gerenciar cobranças e prever entradas de caixa. Analisar o status final também ajuda a entender os resultados do processo. Por que isso importa Ele mostra o estado atual das contas a receber, permitindo criar Dashboards que monitoram faturas em aberto e o progresso geral do faturamento. Onde obter Isso corresponde ao campo 'Status' no registro de transação Invoice do NetSuite. Exemplos Em abertoPaga integralmenteAnuladaAguardando aprovação | |||
Atividades de faturamento e emissão de notas fiscais, do pedido ao recebimento
| Atividade | Descrição | ||
|---|---|---|---|
| Fatura aprovada | A fatura foi formalmente aprovada e está pronta para ser enviada ao cliente. Isso é capturado quando o status de aprovação é atualizado de 'Pending Approval' para 'Approved', normalmente por meio de uma ação de Workflow. | ||
| Por que isso importa Um marco importante que libera o envio da fatura ao cliente. É fundamental para medir os tempos do ciclo de aprovação e calcular o KPI 'Automated Billing Ratio'. Onde obter Inferido a partir da alteração do campo 'Approval Status' no registro Invoice para 'Approved'. O registro de data e hora preciso é armazenado nas notas do sistema da transação. Captura Inferido a partir da alteração do campo 'Approval Status' para 'Approved' nas notas do sistema. Tipo de evento inferred | |||
| Fatura criada | Marca a criação oficial do registro da transação da fatura no NetSuite. Esse evento é o ponto de partida do processo de faturamento para cada número de fatura exclusivo e é capturado a partir do registro de data e hora da criação da transação. | ||
| Por que isso importa Esse é o principal evento inicial do processo de faturamento. Analisar o tempo entre esse evento e os demais revela a eficiência geral do processo e estabelece a base para o KPI Invoice Generation Cycle Time. Onde obter Capturado a partir do registro de data e hora 'Date Created' no registro da transação Invoice. As notas do sistema do NetSuite para a fatura também registram explicitamente o evento de criação e o usuário. Captura Evento registrado após a criação do registro da transação Invoice. Tipo de evento explicit | |||
| Fatura enviada ao cliente | Indica que a fatura foi enviada ao cliente, normalmente por e-mail. Esse evento é capturado quando um usuário executa a ação 'Email' no registro da fatura. | ||
| Por que isso importa Marca o início do período de cobrança do cliente e é o principal ponto de partida para calcular o Days Sales Outstanding (DSO). Onde obter Inferido a partir do preenchimento do campo 'Date Last Emailed' no registro Invoice. Como alternativa, pode ser capturado pela criação de um registro de mensagem de e-mail na aba Communication. Captura Inferido a partir do preenchimento de 'Date Last Emailed' ou da criação de um registro de comunicação. Tipo de evento inferred | |||
| Fatura totalmente paga | O status da fatura foi alterado para 'Paid In Full', indicando que seu saldo agora é zero. Essa é a conclusão bem-sucedida do ciclo de faturamento e cobrança da fatura. | ||
| Por que isso importa Esse é o principal evento final bem-sucedido do processo. Analisar o tempo total até alcançar esse estado fornece o tempo de ciclo de ponta a ponta do ciclo de conversão de caixa. Onde obter Inferido a partir da alteração do campo 'Status' do registro Invoice para 'Paid In Full'. O registro de data e hora dessa alteração de status está disponível nas notas do sistema da transação. Captura Inferido a partir da alteração do campo 'Status' para 'Paid In Full' nas notas do sistema. Tipo de evento inferred | |||
| Pagamento do cliente recebido | Um pagamento foi recebido do cliente e registrado no sistema. Isso é capturado pela criação de uma transação 'Customer Payment' no NetSuite, que pode ser aplicada a uma ou várias faturas. | ||
| Por que isso importa Marca o recebimento do dinheiro, mas não necessariamente sua aplicação a uma fatura específica. É a primeira etapa do processo de aplicação do recebimento e um evento importante para os cálculos de DSO. Onde obter Capturado a partir da data de criação do registro da transação 'Customer Payment'. A conexão com a fatura é feita na aba 'Apply' do pagamento. Captura Criação de um registro de transação Customer Payment. Tipo de evento explicit | |||
| Data de vencimento do pagamento atingida | Um evento calculado que ocorre quando a data atual coincide com a data de vencimento da fatura. Esse evento não corresponde a uma ação direta do usuário ou do sistema, mas é derivado dos dados existentes durante a análise. | ||
| Por que isso importa Funciona como uma referência essencial para medir a pontualidade dos pagamentos. É fundamental para calcular o KPI 'On-Time Payment Rate' e analisar o comportamento de pagamento dos clientes. Onde obter Esse não é um evento explícito no NetSuite. Ele é calculado comparando o registro de data e hora do Event Log com o campo 'Due Date' do registro da transação Invoice. Captura Calculado quando o registro de data e hora do evento é igual ao campo 'Due Date' da fatura. Tipo de evento calculated | |||
| Fatura anulada | A fatura foi anulada, cancelando-a efetivamente e revertendo qualquer impacto no razão geral. Essa ação normalmente é tomada para faturas criadas por engano antes de serem pagas. | ||
| Por que isso importa Representa uma exceção do processo e um estado terminal. Entender por que as faturas são anuladas pode revelar erros de entrada de dados ou do processo que precisam ser corrigidos na origem. Onde obter Essa é uma ação explícita do usuário. Ela pode ser capturada nas notas do sistema do registro da fatura, que registram quando e por quem a transação foi anulada. Captura Ação explícita 'Void' registrada nas notas do sistema da fatura. Tipo de evento explicit | |||
| Fatura enviada para aprovação | Representa a alteração do status da fatura para 'Pending Approval'. Esse evento é capturado quando um usuário envia a fatura para um Workflow de aprovação configurado, uma personalização comum. | ||
| Por que isso importa Essa atividade identifica o início de um possível gargalo de aprovação. O tempo gasto aguardando aprovação é um componente importante do tempo total do ciclo de processamento da fatura. Onde obter Inferido a partir da alteração do campo 'Approval Status' no registro Invoice para 'Pending Approval'. O registro de data e hora dessa alteração pode ser encontrado na trilha de auditoria das notas do sistema da fatura. Captura Inferido a partir da alteração do campo 'Approval Status' registrada nas notas do sistema. Tipo de evento inferred | |||
| Fatura fechada | A transação da fatura foi fechada, geralmente como parte do processo contábil de encerramento do período. Essa ação impede novas alterações na transação depois que ela foi totalmente paga e conciliada. | ||
| Por que isso importa Embora geralmente ocorra depois de 'Paid In Full', essa pode ser uma etapa administrativa final. Analisar os atrasos entre o pagamento e o fechamento pode afetar a pontualidade dos relatórios financeiros. Onde obter Inferido a partir da alteração do campo 'Status' para 'Closed' ou um estado semelhante. O registro de data e hora dessa alteração é capturado nas notas do sistema. Captura Inferido a partir da alteração do campo 'Status' nas notas do sistema. Tipo de evento inferred | |||
| Lembrete de pagamento enviado | Uma comunicação foi enviada ao cliente sobre um pagamento pendente. Isso é capturado como uma atividade registrada ou um e-mail enviado a partir do registro da fatura ou do cliente, geralmente por uma solução de cobrança automática. | ||
| Por que isso importa É essencial para avaliar a eficácia das estratégias de cobrança. Analisar o impacto dessa atividade nos pagamentos posteriores ajuda a otimizar a frequência e o momento dos lembretes. Onde obter Capturado a partir da criação de um registro de e-mail na aba Communication > Messages do registro Invoice ou Customer. Soluções automatizadas de cobrança também podem registrar esses eventos como registros ou tarefas personalizadas. Captura Registrado como um e-mail ou registro de atividade associado à fatura. Tipo de evento explicit | |||
| Nota de crédito criada | Uma transação de nota de crédito foi criada e aplicada à fatura, reduzindo o saldo pendente. Isso normalmente indica uma devolução de produto, reclamação sobre o serviço ou correção de preço. | ||
| Por que isso importa Destaca retrabalho, problemas de qualidade ou disputas com clientes. Ocorrências frequentes podem indicar problemas subjacentes e são importantes para o Dashboard 'Invoice Rework and Rejection Analysis'. Onde obter Capturado a partir da criação de uma transação Credit Memo. O vínculo com a fatura original é encontrado no campo 'Created From' ou na aba 'Apply' da nota de crédito. Captura Criação de um registro Credit Memo vinculado à fatura original. Tipo de evento explicit | |||
| Pagamento aplicado à fatura | O pagamento recebido do cliente foi aplicado especificamente a esta fatura, reduzindo o valor devido. Isso é registrado quando a aplicação é salva no registro Customer Payment. | ||
| Por que isso importa Esse é o vínculo essencial entre o recebimento do dinheiro e a liquidação da fatura. A duração entre 'Payment Received' e este evento define o KPI 'Cash Application Cycle Time'. Onde obter Capturado nas notas do sistema ou na trilha de auditoria da transação Customer Payment, especificamente quando a aplicação à linha da fatura é salva. O registro de data e hora dessa aplicação é fundamental. Captura Registrado quando o registro Customer Payment é salvo com uma aplicação à fatura. Tipo de evento explicit | |||
Guias de extração
Etapas
- Faça login no NetSuite: acesse sua conta do NetSuite usando uma função com permissões suficientes para criar e executar Saved Searches em registros de transações.
- Acesse Saved Searches: vá para Reports > Saved Searches > All Saved Searches > New. Selecione 'Transaction' na lista de tipos de pesquisa. Essa será a base para criar várias pesquisas, uma para cada tipo de evento.
- Crie a pesquisa 'Invoice Created': essa é a pesquisa principal que captura a criação de faturas.
- Na aba 'Criteria', em 'Standard', defina o filtro 'Type' como 'is Invoice'.
- Adicione outro filtro para 'Main Line' e defina-o como 'is true' para obter um registro por fatura.
- Na aba 'Results', adicione as colunas necessárias. Use fórmulas para criar campos padronizados, como 'ActivityName'. Por exemplo, adicione um campo 'Formula (Text)' com a fórmula
_UTF8'Invoice Created'.
- Crie pesquisas para alterações de status (aprovação, pagamento, anulação e fechamento): muitas atividades são alterações de status. A maneira mais confiável de capturar o timestamp exato é usar System Notes.
- Crie uma nova Transaction Saved Search.
- Na aba 'Criteria', defina 'Type' como 'is Invoice'.
- Na subaba 'Standard', adicione o filtro 'System Notes : Field' e selecione o campo de status relevante, por exemplo, 'Approval Status'.
- Adicione outro filtro 'System Notes : New Value' e defina-o como o status de destino, por exemplo, 'Approved'.
- Na aba 'Results', mapeie 'System Notes : Date' para
EventTimestampe 'System Notes : Set by' paraUsuário. - Repita esse processo para cada atividade baseada em status: 'Invoice Submitted for Approval', 'Invoice Approved', 'Invoice Paid In Full', 'Invoice Voided' e 'Invoice Closed', ajustando os filtros de campo e valor conforme necessário.
- Crie a pesquisa 'Invoice Sent to Customer': esse evento normalmente é capturado rastreando as mensagens de e-mail enviadas a partir do registro da fatura.
- Crie uma nova Transaction Saved Search com 'Type' definido como 'is Invoice'.
- Na aba 'Criteria', em 'Related Records', adicione um filtro para 'Messages : Date Sent' e defina-o como 'is not empty'.
- Na aba 'Results', mapeie 'Messages : Date Sent' para
EventTimestampe 'Messages : Author' paraUsuário.
- Crie pesquisas para atividades de pagamento e nota de crédito: elas envolvem tipos de transação separados e vinculados à fatura.
- Para 'Customer Payment Received', crie uma pesquisa com 'Type' igual a 'Customer Payment'. Capture a data de criação como timestamp do evento.
- Para 'Payment Applied To Invoice', use a mesma pesquisa 'Customer Payment', mas faça a junção com os campos 'Applied To Transaction'. A 'Date Created' da transação de pagamento serve como timestamp. Você obterá uma linha por aplicação à fatura.
- Para 'Credit Memo Created', crie uma pesquisa com 'Type' igual a 'Credit Memo' e faça a vinculação com o campo 'Created From' para obter o número da fatura original.
- Execute e exporte cada Saved Search: execute cada pesquisa salva criada. Na página de resultados, clique no ícone de exportação (CSV, Excel ou PDF) e escolha CSV. Talvez seja necessário exportar em lotes se o conjunto de resultados for maior que o limite de exportação do NetSuite.
- Combine e transforme os dados: consolide todos os arquivos CSV exportados em um único arquivo usando uma ferramenta como Microsoft Excel, um script Python ou uma ferramenta de preparação de dados.
- Derive o evento 'Payment Due Date Reached': no arquivo de dados combinado, crie uma nova linha para cada evento 'Invoice Created'. Defina
ActivityNamecomo 'Payment Due Date Reached',EventTimestampcomo o valor do campoDueDateda fatura e copie os demais atributos relevantes da fatura. - Finalize o Event Log: padronize todos os cabeçalhos das colunas para corresponder ao esquema exigido, por exemplo,
InvoiceNumber,ActivityNameeEventTimestamp. Verifique se os formatos dos timestamps são consistentes. Adicione as colunasSourceSystemeLastDataUpdatecom valores estáticos para este lote de extração. Salve o arquivo consolidado final como CSV para carregamento.
Configuração
- Pré-requisitos: É necessária uma função de usuário com permissões para criar, editar e executar Saved Searches do tipo 'Transaction'. Também é necessário ter acesso para visualizar registros de Invoice, Customer Payment, Credit Memo e System Notes.
- Tipo de pesquisa: O principal tipo de pesquisa usado em todas as extrações é 'Transaction'. Esse tipo permite acessar todos os registros necessários e seus relacionamentos.
- Filtragem por período: Para controlar a performance e o volume de dados, aplique um filtro de período a cada pesquisa. Para a análise inicial, recomenda-se filtrar 'Date Created' pelos últimos 3 a 6 meses.
- Filtro Main Line: Use o critério 'Main Line' definido como 'true' para eventos no nível do cabeçalho do documento, como 'Invoice Created'. Defina-o como 'false' quando precisar analisar detalhes dos itens, o que não é necessário neste processo.
- System Notes: A captura de mudanças de status depende bastante de System Notes. Garanta que a auditoria esteja habilitada para campos importantes das transações, como 'Status' e 'Approval Status', na configuração do NetSuite (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Considerações de performance: Pesquisas complexas, com muitas junções e campos de fórmula em um período amplo, podem ser lentas na interface do NetSuite. Recomenda-se executar e exportar essas pesquisas fora dos horários de pico. Se uma pesquisa atingir o tempo limite, reduza o período e exporte os dados em lotes menores.
a Consulta de exemplo 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.
*/ Etapas
- Pré-requisito: habilite o SuiteAnalytics Connect: Garanta que o módulo SuiteAnalytics Connect esteja licenciado e habilitado na sua instância do NetSuite. Normalmente, essa configuração é feita por um administrador do NetSuite em Setup > Company > Enable Features > Analytics.
- Baixe e configure o driver ODBC: Acesse o Dashboard inicial do NetSuite e localize o portlet 'Settings'. Clique no link 'Set Up SuiteAnalytics Connect' para baixar o driver ODBC adequado ao seu sistema operacional. Siga as instruções fornecidas pelo NetSuite para instalar e configurar o driver, informando o host do serviço, a porta, o Account ID, o Role ID, o e-mail e a senha.
- Estabeleça a conexão com o banco de dados: Use uma ferramenta cliente SQL compatível com conexões ODBC, como DBeaver, Tableau ou Power BI. Crie uma nova conexão ODBC usando o driver configurado na etapa anterior. Teste a conexão para confirmar que você consegue autenticar e acessar o banco de dados read-replica do NetSuite.
- Prepare a consulta SQL: Copie a consulta SQL completa fornecida na seção 'Query' deste documento. Essa consulta foi criada para extrair todas as atividades e os atributos necessários para o processo de faturamento Order to Cash.
- Defina os parâmetros da consulta: Antes de executar, localize os valores de placeholder na consulta. Substitua
'YYYY-MM-DD'pelas datas inicial e final desejadas para o período de extração. Substitua também[Your Subsidiary ID]pelo ID interno da subsidiária do NetSuite que você deseja analisar. - Execute a consulta: Execute a consulta modificada no seu cliente SQL. O tempo de execução varia conforme o período e o volume de transações na sua conta do NetSuite.
- Revise os resultados: Quando a consulta for concluída, será retornada uma tabela simples que representa o Event Log. Cada linha corresponde a uma atividade específica do ciclo de vida da fatura. Revise os dados para verificar se estão completos e corretos.
- Exporte o Event Log: Exporte os resultados da consulta do seu cliente SQL para um arquivo CSV. Garanta que o arquivo esteja codificado em UTF-8 para evitar problemas com caracteres.
- Prepare o upload: Antes de fazer o upload para uma ferramenta de Process Mining, confirme se os cabeçalhos das colunas correspondem aos nomes de atributos necessários, como InvoiceNumber, ActivityName e EventTimestamp. Verifique se os formatos de data e hora são consistentes.
Configuração
- Licença do SuiteAnalytics Connect: É obrigatória uma licença válida do módulo SuiteAnalytics Connect para acessar o banco de dados read-replica do NetSuite. Sem ela, o acesso SQL direto não é possível.
- Função e usuário dedicados: É altamente recomendável criar uma função dedicada do NetSuite com as permissões apropriadas para o SuiteAnalytics Connect. Essa função deve ter acesso somente leitura aos registros necessários, incluindo Transactions, Customers e System Notes. Atribua um usuário dedicado a essa função para a extração, garantindo segurança e rastreabilidade.
- Filtragem por período: A consulta fornecida inclui uma cláusula
WHEREna data de criação da fatura (Transaction.TRANDATE). Para as extrações iniciais, recomenda-se começar com um período menor, como os últimos 3 a 6 meses, para controlar a performance e o volume de dados. Por exemplo:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filtragem por subsidiária: Em contas com várias subsidiárias, filtrar pela subsidiária específica é essencial tanto para a performance quanto para a relevância dos dados. A consulta inclui o placeholder
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID], que deve ser configurado. - Atualização dos dados: O banco de dados do SuiteAnalytics Connect é uma read-replica. Os dados normalmente são atualizados várias vezes por hora, mas não em tempo real. Considere que pode haver um atraso de até algumas horas entre a ocorrência de uma transação no NetSuite e sua disponibilização no banco de dados do Connect.
a Consulta de exemplo sql
WITH Invoices AS (
SELECT
T.TRANSACTION_ID,
T.TRANID AS InvoiceNumber,
T.TRANDATE AS InvoiceDate,
T.DUEDATE AS DueDate,
T.FOREIGN_TOTAL AS InvoiceTotalAmount,
C.COMPANYNAME AS CustomerName,
BUILTIN.DF(C.LOCATION) AS Region,
T.CREATED_DATE AS InvoiceCreationDate,
CREATOR.FIRST_NAME || ' ' || CREATOR.LAST_NAME AS CreatorUser
FROM
TRANSACTIONS T
JOIN
CUSTOMERS C ON T.ENTITY_ID = C.CUSTOMER_ID
LEFT JOIN
EMPLOYEES CREATOR ON T.CREATED_BY_ID = CREATOR.EMPLOYEE_ID
WHERE
T.TRANSACTION_TYPE = 'Invoice'
AND T.TRANDATE BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD')
-- AND T.SUBSIDIARY_ID = [Your Subsidiary ID] -- Add your subsidiary filter if needed
)
-- 1. Invoice Created
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Created' AS "ActivityName",
I.InvoiceCreationDate AS "EventTimestamp",
I.InvoiceCreationDate AS "EventEndTime",
I.CreatorUser AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN I.CreatorUser LIKE '%System%' THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
UNION ALL
-- 2. Invoice Submitted for Approval & 3. Invoice Approved
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE WHEN SN.NEW_VALUE = 'Pending Approval' THEN 'Invoice Submitted for Approval' ELSE 'Invoice Approved' END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
SN.FIELD = 'TRANSACTION.APPROVALSTATUS' AND SN.NEW_VALUE IN ('Pending Approval', 'Approved')
UNION ALL
-- 4. Invoice Sent to Customer
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Sent to Customer' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' -- Indicates an outgoing message
UNION ALL
-- 5. Payment Due Date Reached
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Due Date Reached' AS "ActivityName",
I.DueDate AS "EventTimestamp",
I.DueDate AS "EventEndTime",
'System' AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
1 AS "IsAutomated"
FROM
Invoices I
WHERE
I.DueDate IS NOT NULL AND I.DueDate < SYSDATE
UNION ALL
-- 6. Payment Reminder Issued (based on Messages table, requires a specific subject line convention)
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Reminder Issued' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN M.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' AND UPPER(M.SUBJECT) LIKE '%PAYMENT REMINDER%'
UNION ALL
-- 7. Credit Memo Created & Applied
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Credit Memo Created' AS "ActivityName",
CM.CREATED_DATE AS "EventTimestamp",
CM.CREATED_DATE AS "EventEndTime",
CM_CREATOR.FIRST_NAME || ' ' || CM_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS CM ON T_LINES.TRANSACTION_ID = CM.TRANSACTION_ID
LEFT JOIN
EMPLOYEES CM_CREATOR ON CM.CREATED_BY_ID = CM_CREATOR.EMPLOYEE_ID
WHERE
CM.TRANSACTION_TYPE = 'Credit Memo'
UNION ALL
-- 8. Customer Payment Received & 9. Payment Applied to Invoice
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Customer Payment Received' AS "ActivityName", -- Can also create a separate 'Payment Applied' event if needed
PAYMENT.CREATED_DATE AS "EventTimestamp",
PAYMENT.CREATED_DATE AS "EventEndTime",
PMT_CREATOR.FIRST_NAME || ' ' || PMT_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS PAYMENT ON T_LINES.TRANSACTION_ID = PAYMENT.TRANSACTION_ID
LEFT JOIN
EMPLOYEES PMT_CREATOR ON PAYMENT.CREATED_BY_ID = PMT_CREATOR.EMPLOYEE_ID
WHERE
PAYMENT.TRANSACTION_TYPE = 'Customer Payment'
UNION ALL
-- 10. Invoice Paid In Full, 11. Invoice Voided, 12. Invoice Closed
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE
WHEN SN.NEW_VALUE_ID = 'Invoice:B' THEN 'Invoice Paid In Full' -- 'B' is status 'Paid In Full'
WHEN SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Voided'
WHEN SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Closed'
END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
(SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE_ID = 'Invoice:B')
OR (SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T')
OR (SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T'); Pronto para começar?
Use este Template para dar o pontapé inicial na sua iniciativa de Process Mining e obter insights sobre suas operações de faturamento e emissão de faturas. Comece hoje a otimizar seu processo de Order-to-Cash.
Otimize agora seu faturamento e emissão de faturas no NetSuite para acelerar o fluxo de caixa
Reduza em 30% o tempo do ciclo de faturamento no NetSuite e aumente seu fluxo de caixa.
Não é necessário cartão de crédito. Configure em poucos minutos.