Mẫu dữ liệu Order to Cash - lập hóa đơn và xuất hóa đơn
Mẫu dữ liệu Order to Cash - lập hóa đơn và xuất hóa đơn
- Các thuộc tính nên thu thập
- Các hoạt động chính cần theo dõi
- Hướng dẫn trích xuất dữ liệu từ NetSuite
Thuộc tính Order to Cash - lập hóa đơn và xuất hóa đơn
| Tên | Mô tả | ||
|---|---|---|---|
| Dấu thời gian sự kiện EventTimestamp | Ngày và giờ chính xác khi một hoạt động hoặc sự kiện cụ thể xảy ra. | ||
| Mô tả Thuộc tính này ghi lại thời điểm chính xác một hoạt động diễn ra. Đây là thành phần quan trọng để sắp xếp sự kiện theo trình tự thời gian và thực hiện mọi phân tích dựa trên thời gian. Trong process mining, dấu thời gian sự kiện được dùng để tính thời gian xử lý giữa các hoạt động, thời lượng hồ sơ và thời gian chờ. Thông tin này rất cần thiết để xác định điểm nghẽn, đo hiệu suất quy trình so với SLA và hiểu diễn biến theo thời gian của quy trình lập hóa đơn. Ví dụ, thuộc tính này được dùng để tính thời gian tạo hóa đơn và số ngày phải thu bình quân (DSO). Vì sao điều này quan trọng Thuộc tính này xác định thứ tự thời gian của các sự kiện, rất cần thiết để tính mọi chỉ số về thời lượng, tìm điểm nghẽn và phân tích hiệu suất quy trình theo thời gian. Lấy dữ liệu ở đâu Thông tin dấu thời gian thường có trong system notes, nhật ký kiểm tra hoặc trường 'Date Created' của các bản ghi liên quan đến từng giao dịch hóa đơn trong NetSuite. Ví dụ 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Số hóa đơn InvoiceNumber | Mã định danh duy nhất của từng hóa đơn, dùng làm mã hồ sơ chính cho quy trình lập hóa đơn. | ||
| Mô tả Số hóa đơn là nền tảng để phân tích quy trình lập hóa đơn, giúp nhận diện riêng từng hóa đơn từ lúc tạo đến khi đóng. Số này nhóm các hoạt động liên quan như phê duyệt, gửi hóa đơn và hạch toán thanh toán vào cùng một hồ sơ. Trong process mining, phân tích hành trình của từng số hóa đơn giúp bạn nắm được toàn bộ vòng đời lập hóa đơn. Qua đó, bạn có thể xác định các biến thể quy trình, điểm nghẽn và sai lệch so với quy trình chuẩn, từ đó tìm ra thông tin cần thiết để cải thiện dòng tiền và hiệu quả vận hành. Vì sao điều này quan trọng Thông tin này rất cần thiết để theo dõi toàn bộ vòng đời của từng hóa đơn, tái dựng quy trình lập hóa đơn và phân tích hiệu suất chi tiết. Lấy dữ liệu ở đâu Thông thường, đây là trường 'Transaction ID' hoặc một trường mã định danh duy nhất tương tự trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ INV-0012345INV-0012346INV-0012347 | |||
| Tên hoạt động ActivityName | Tên sự kiện nghiệp vụ xảy ra tại một thời điểm cụ thể trong vòng đời hóa đơn. | ||
| Mô tả Tên hoạt động mô tả một bước hoặc sự kiện cụ thể trong quy trình lập hóa đơn, chẳng hạn như 'Invoice Created', 'Invoice Approved' hoặc 'Customer Payment Received'. Các hoạt động này tạo thành chuỗi bước trong sơ đồ quy trình. Phân tích thứ tự và tần suất của các hoạt động là nền tảng của process mining. Việc này giúp trực quan hóa luồng quy trình thực tế, xác định các đường đi phổ biến và hiếm gặp (biến thể), đồng thời tìm ra những hoạt động thường xuyên lặp lại, dấu hiệu cho thấy phải làm lại hoặc quy trình chưa hiệu quả. Vì sao điều này quan trọng Thuộc tính này rất cần thiết để dựng sơ đồ quy trình, trực quan hóa và phân tích các bước cũng như đường đi khác nhau của hóa đơn. Lấy dữ liệu ở đâu Được suy ra từ nhật ký hệ thống, thay đổi trạng thái hoặc bản ghi sự kiện cụ thể gắn với giao dịch Invoice trong NetSuite. Việc này thường cần ánh xạ thay đổi trạng thái giao dịch hoặc bản ghi liên quan được tạo sang tên hoạt động đã xác định. Ví dụ Tạo hóa đơnHóa đơn được phê duyệtNhận thanh toán từ khách hàngThanh toán đủ hóa đơn | |||
| Hệ thống nguồn SourceSystem | Hệ thống nơi dữ liệu được trích xuất. | ||
| Mô tả Thuộc tính này cho biết nguồn gốc của dữ liệu quy trình. Trong chế độ xem này, giá trị sẽ luôn là 'NetSuite'. Trong bối cảnh phân tích rộng hơn, đặc biệt ở các tổ chức dùng nhiều hệ thống ERP hoặc hệ thống tích hợp, thuộc tính này rất quan trọng để theo dõi nguồn gốc dữ liệu và quản trị dữ liệu. Thuộc tính giúp phân biệt các quy trình có thể trải rộng trên nhiều nền tảng và đảm bảo kết quả phân tích được gắn đúng với hệ thống ghi nhận dữ liệu. Vì sao điều này quan trọng Thuộc tính này cung cấp thông tin quan trọng về nguồn gốc và cách quản trị dữ liệu, nhất là trong môi trường tích hợp nhiều hệ thống. Lấy dữ liệu ở đâu Đây là giá trị cố định ('NetSuite'), được thêm trong quá trình trích xuất và chuyển đổi dữ liệu. Ví dụ NetSuite | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian cho biết lần gần nhất dữ liệu được làm mới từ hệ thống nguồn. | ||
| Mô tả Thuộc tính này ghi lại thời điểm bộ dữ liệu được cập nhật gần nhất. Nhờ đó, bạn biết dữ liệu phân tích quy trình mới đến đâu và còn phù hợp hay không. Chuyên viên phân tích và các bên liên quan trong doanh nghiệp dùng thông tin này để biết liệu kết quả phân tích có phản ánh tình hình vận hành mới nhất hay không. Đây là siêu dữ liệu quan trọng của mọi bảng điều khiển hoặc báo cáo, giúp mọi người biết dữ liệu đã cũ đến mức nào và tránh nhầm lẫn dữ liệu cũ với dữ liệu thời gian thực. Vì sao điều này quan trọng Thông tin này cho người dùng biết dữ liệu được cập nhật gần đây đến đâu, giúp họ hiểu khoảng thời gian được phân tích và mức độ phù hợp của kết quả. Lấy dữ liệu ở đâu Dấu thời gian này do công cụ hoặc pipeline trích xuất dữ liệu tạo và ghi lại khi làm mới dữ liệu. Ví dụ 2024-05-21T02:00:00Z | |||
| Có tự động hóa IsAutomated | Cờ cho biết hoạt động có được hệ thống tự động thực hiện hay không. | ||
| Mô tả Thuộc tính boolean này phân biệt hoạt động do người dùng thực hiện với hoạt động được tự động chạy bởi workflow, tập lệnh hoặc hệ thống tích hợp. Thuộc tính này giúp đo lường mức độ tự động hóa trong quy trình lập hóa đơn và trực tiếp hỗ trợ KPI 'Tỷ lệ lập hóa đơn tự động'. Khi lọc các hoạt động tự động hoặc thủ công, chuyên viên phân tích có thể tìm ra điểm nghẽn do thao tác thủ công và xác định cơ hội tăng tự động hóa, giảm lỗi do con người và nâng cao hiệu quả. Vì sao điều này quan trọng Thuộc tính này giúp đo lường mức độ tự động hóa của quy trình, qua đó xác định cơ hội giảm thao tác thủ công và nâng cao hiệu quả. Lấy dữ liệu ở đâu Thông tin này thường được xác định bằng cách kiểm tra trường 'User' gắn với hoạt động. Các sự kiện do người dùng có tên 'SYSTEM', 'Workflow' hoặc 'Integration' kích hoạt sẽ được đánh dấu là tự động. Ví dụ truefalse | |||
| Khu vực Region | Khu vực địa lý gắn với khách hàng hoặc giao dịch. | ||
| Mô tả Thuộc tính Khu vực phân loại hóa đơn theo địa lý. Thông tin này có thể được suy ra từ địa chỉ khách hàng hoặc đơn vị kinh doanh phát hành hóa đơn. Đây là chiều phân tích hữu ích để so sánh. Bảng điều khiển 'So sánh quy trình lập hóa đơn theo khu vực' dùng thuộc tính này để so sánh các KPI như thời gian xử lý, tỷ lệ lỗi và biến thể quy trình giữa các khu vực. Nhờ đó, bạn có thể xác định chênh lệch hiệu suất giữa các khu vực, tìm hiểu cách làm hiệu quả ở những khu vực có kết quả tốt và thúc đẩy chuẩn hóa quy trình trong toàn tổ chức. Vì sao điều này quan trọng Thuộc tính này cho phép so sánh giữa các khu vực địa lý, giúp xác định chênh lệch hiệu suất và chuẩn hóa các cách làm hiệu quả. Lấy dữ liệu ở đâu Dữ liệu này thường được lưu trong phân đoạn tùy chỉnh hoặc trường phân loại trên hồ sơ khách hàng chính hay bản ghi giao dịch trong NetSuite. Ví dụ Bắc MỹChâu Âu, Trung Đông và châu PhiChâu Á - Thái Bình Dương | |||
| Ngày đến hạn DueDate | Ngày khách hàng phải thanh toán hóa đơn. | ||
| Mô tả Ngày đến hạn được tính dựa trên ngày hóa đơn và điều khoản thanh toán đã thỏa thuận. Đây là hạn cuối để khách hàng thanh toán mà không bị xem là trễ hạn. Thuộc tính này rất cần thiết để theo dõi các khoản phải thu và quản lý dòng tiền. Đây là mốc dùng để tính KPI tỷ lệ thanh toán đúng hạn và phân tích hành vi thanh toán của khách hàng. Theo dõi các khoản thanh toán trễ hạn giúp xác định khách hàng thường xuyên trả chậm và đánh giá hiệu quả của các chiến lược thu hồi công nợ. Vì sao điều này quan trọng Thuộc tính này rất quan trọng để đo lường tỷ lệ thanh toán đúng hạn và phân tích hành vi thanh toán của khách hàng, qua đó hỗ trợ trực tiếp việc thu hồi công nợ và dự báo dòng tiền. Lấy dữ liệu ở đâu Tương ứng với trường 'Due Date' (duedate) trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ 2023-11-252023-11-262023-12-15 | |||
| Ngày hóa đơn InvoiceDate | Ngày chính thức ghi trên hóa đơn gửi cho khách hàng. | ||
| Mô tả Ngày hóa đơn, hay ngày giao dịch, là mốc bắt đầu của nhiều phép tính tài chính liên quan đến lập hóa đơn. Thông thường, ngày này được dùng để tính thời hạn thanh toán và ngày đến hạn. Trong phân tích, đây là mốc chính để tính các KPI tài chính quan trọng như số ngày phải thu bình quân (DSO) và tuổi nợ hóa đơn. Ngày này cũng cho phép phân tích theo nhóm thời gian, giúp so sánh hiệu suất lập hóa đơn giữa các giai đoạn, chẳng hạn như theo tháng hoặc theo năm. Vì sao điều này quan trọng Ngày này là mốc cơ sở để tính các chỉ số tài chính quan trọng như số ngày phải thu bình quân (DSO) và tuổi nợ hóa đơn, đồng thời ảnh hưởng trực tiếp đến phân tích vốn lưu động. Lấy dữ liệu ở đâu Tương ứng với trường 'Date' (trandate) trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ 2023-10-262023-10-272023-11-15 | |||
| Người dùng User | Tên hoặc mã người dùng đã thực hiện hoạt động. | ||
| Mô tả Thuộc tính này xác định nhân viên hoặc người dùng hệ thống chịu trách nhiệm thực hiện một bước cụ thể trong quy trình. Đó có thể là người tạo hóa đơn, phê duyệt hóa đơn hoặc hạch toán khoản thanh toán. Phân tích quy trình theo người dùng giúp bạn hiểu cách phân bổ khối lượng công việc, hiệu suất của từng người và nhu cầu đào tạo. Phân tích này cũng có thể cho thấy cơ hội tự động hóa bằng cách xác định những hoạt động thủ công do nhiều người dùng thực hiện nhất. Đây cũng là thông tin quan trọng để phân tích việc tuân thủ và nhật ký kiểm tra. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích cách phân bổ khối lượng công việc, hiệu suất của từng người dùng và mức độ tuân thủ quy trình, rất cần thiết để quản lý tài nguyên và xác định nhu cầu đào tạo. Lấy dữ liệu ở đâu Có trong thẻ phụ System Notes hoặc các trường 'Modified By' cụ thể trên bản ghi Invoice và giao dịch liên quan trong NetSuite. Ví dụ Alice SmithBob JohnsonSYSTEM | |||
| Tên khách hàng CustomerName | Tên khách hàng được xuất hóa đơn. | ||
| Mô tả Thuộc tính này xác định pháp nhân hoặc cá nhân được lập hóa đơn. Thuộc tính kết nối quy trình lập hóa đơn với hoạt động quản lý quan hệ khách hàng. Phân tích quy trình lập hóa đơn theo khách hàng giúp phát hiện các kiểu thanh toán, tranh chấp hoặc mức độ phức tạp của hóa đơn ở từng khách hàng. Thông tin này có thể hỗ trợ phân nhóm khách hàng, quyết định hạn mức tín dụng và xây dựng cách thu hồi công nợ phù hợp. Ví dụ, bạn có thể phát hiện hóa đơn của một khách hàng cụ thể thường xuyên phải làm lại. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích theo từng khách hàng, giúp xác định kiểu thanh toán, vấn đề thường gặp hoặc sai lệch quy trình ở một số khách hàng cụ thể. Lấy dữ liệu ở đâu Tương ứng với trường tên 'Customer' hoặc 'Entity' trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Thời điểm kết thúc sự kiện EventEndTime | Ngày và giờ chính xác khi một hoạt động hoặc sự kiện cụ thể hoàn tất. | ||
| Mô tả Thời điểm kết thúc sự kiện đánh dấu lúc một hoạt động hoàn tất. Nhiều hoạt động diễn ra tức thời, nghĩa là thời điểm bắt đầu và kết thúc trùng nhau. Một số hoạt động, chẳng hạn như bước phê duyệt, có thể kéo dài trong một khoảng thời gian đo được. Kết hợp thuộc tính này với dấu thời gian sự kiện (thời điểm bắt đầu), bạn có thể tính trực tiếp thời gian xử lý hoạt động. Phân tích thời gian xử lý giúp xác định bước nào mất nhiều thời gian và tài nguyên nhất, đồng thời phân biệt thời gian xử lý với thời gian chờ giữa các hoạt động. Đây là thông tin quan trọng để tìm ra điểm kém hiệu quả trong từng tác vụ. Vì sao điều này quan trọng Thuộc tính này giúp tính chính xác thời gian hoàn tất từng hoạt động, cần thiết để phân tích hiệu quả sử dụng tài nguyên và xác định các tác vụ tốn nhiều thời gian. Lấy dữ liệu ở đâu Tương tự StartTime, thông tin này có thể lấy từ nhật ký kiểm tra hệ thống trong NetSuite. Có thể cần logic để ghép sự kiện 'bắt đầu' với sự kiện 'kết thúc' tương ứng. Ví dụ 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Tổng tiền hóa đơn InvoiceTotalAmount | Tổng giá trị hóa đơn, bao gồm thuế và các khoản phí khác. | ||
| Mô tả Thuộc tính này thể hiện toàn bộ số tiền khách hàng cần thanh toán. Đây là dữ liệu tài chính cơ bản của mỗi hồ sơ lập hóa đơn. Phân tích quy trình theo giá trị hóa đơn giúp bạn so sánh quy trình dựa trên số tiền. Ví dụ, bạn có thể phát hiện hóa đơn giá trị cao có quy trình khác và phức tạp hơn hóa đơn giá trị thấp hay không. Thông tin này cũng được dùng để ưu tiên thu hồi công nợ và đánh giá ảnh hưởng tài chính của việc thanh toán chậm hoặc hóa đơn sai. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích quy trình theo giá trị, giúp ưu tiên xử lý hóa đơn giá trị cao và hiểu rõ ảnh hưởng tài chính của những điểm kém hiệu quả trong quy trình. Lấy dữ liệu ở đâu Tương ứng với trường 'Total' (total) trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ 1500.0089.9912500.50 | |||
| Có làm lại IsRework | Cờ được tính toán để xác định hoạt động nào là làm lại hoặc thuộc vòng lặp sửa lỗi. | ||
| Mô tả Cờ boolean này được đặt thành true cho các hoạt động làm lại không tạo thêm giá trị, chẳng hạn như 'Đã sửa hóa đơn' hoặc sự kiện 'Đã duyệt hóa đơn' lần thứ hai trong cùng một case. Cờ thường được xác định dựa trên tên hoạt động hoặc việc hoạt động đó lặp lại. Thuộc tính này rất cần thiết cho dashboard 'Phân tích hóa đơn làm lại và bị từ chối' và KPI 'Tỷ lệ lỗi hóa đơn'. Thuộc tính giúp định lượng số lần làm lại và làm rõ vấn đề về chất lượng quy trình. Khi lọc các hoạt động làm lại, nhóm có thể nhanh chóng tìm nguyên nhân gốc rễ của lỗi và đo lường tác động của các sáng kiến cải tiến quy trình. Vì sao điều này quan trọng Thuộc tính này đo lường trực tiếp chất lượng quy trình bằng cách đánh dấu các vòng lặp làm lại kém hiệu quả, giúp phân tích nguyên nhân gốc rễ và tác động tài chính của lỗi lập hóa đơn. Lấy dữ liệu ở đâu Đây là thuộc tính được tính trong quá trình chuyển đổi dữ liệu. Logic sẽ xác định các trường hợp làm lại, chẳng hạn như đánh dấu tên hoạt động cụ thể ('Đã sửa hóa đơn') hoặc hoạt động lặp lại. Ví dụ truefalse | |||
| Điều khoản thanh toán PaymentTerms | Các điều kiện thanh toán đã thỏa thuận giữa công ty và khách hàng. | ||
| Mô tả Điều khoản thanh toán quy định thời điểm và cách thức khách hàng cần thanh toán hóa đơn, chẳng hạn như 'Net 30' hoặc 'Due on receipt'. Thông tin này được dùng để tự động tính ngày đến hạn của hóa đơn. Thuộc tính này rất quan trọng đối với bảng điều khiển 'Mức độ tuân thủ điều khoản thanh toán'. Phân tích tỷ lệ thanh toán đúng hạn theo từng điều khoản giúp đánh giá hiệu quả của các điều khoản đó. Ví dụ, bạn có thể biết khách hàng có điều khoản 'Net 15' thanh toán nhanh hơn khách hàng có điều khoản 'Net 30' hay không, từ đó có thêm cơ sở cho các cuộc đàm phán hợp đồng và chính sách tín dụng sau này. Vì sao điều này quan trọng Thuộc tính này rất cần thiết để đánh giá hiệu quả của các điều kiện thanh toán khác nhau và ảnh hưởng của chúng đến việc khách hàng thanh toán đúng hạn. Lấy dữ liệu ở đâu Tương ứng với trường 'Terms' trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ Thanh toán trong 30 ngàyThanh toán trong 60 ngàyThanh toán khi nhận hóa đơn | |||
| Phòng ban Department | Phòng ban nội bộ liên quan đến hóa đơn. | ||
| Mô tả Thuộc tính này cho biết phòng ban nội bộ chịu trách nhiệm về giao dịch, chẳng hạn như Sales, Services hoặc một ngành hàng cụ thể. Đây là trường phân loại tiêu chuẩn trong NetSuite. Phân tích quy trình theo phòng ban giúp so sánh hiệu quả nội bộ và xác định phòng ban nào có quy trình lập hóa đơn hiệu quả hơn. Qua đó, bạn có thể phát hiện khác biệt về mức độ tuân thủ quy trình hoặc cách phân bổ tài nguyên, từ đó cải tiến quy trình có trọng tâm ở từng bộ phận. Vì sao điều này quan trọng Thuộc tính này giúp so sánh hiệu quả quy trình giữa các phòng ban nội bộ, làm rõ những khác biệt và cơ hội chuẩn hóa quy trình. Lấy dữ liệu ở đâu Thuộc tính này tương ứng với trường phân loại 'Department', có thể được thiết lập ở cấp tiêu đề hoặc dòng của giao dịch Invoice trong NetSuite. Ví dụ Bán hàng - doanh nghiệpDịch vụ chuyên mônPhần cứng | |||
| Số đơn hàng bán SalesOrderNumber | Mã đơn hàng bán dùng để tạo hóa đơn. | ||
| Mô tả Thuộc tính này liên kết trực tiếp hóa đơn với đơn hàng bán ban đầu, kết nối quy trình lập hóa đơn với các quy trình bán hàng và thực hiện đơn hàng trước đó. Có số đơn hàng bán giúp bạn nhìn tổng thể hơn về chu kỳ từ đơn hàng đến thu tiền. Bạn có thể lần ngược vấn đề trong khâu lập hóa đơn về nguyên nhân ở quy trình bán hàng. Ví dụ, hóa đơn thường xuyên phải điều chỉnh có thể liên quan đến lỗi nhập liệu ở một số loại đơn hàng bán. Vì sao điều này quan trọng Thuộc tính này liên kết quy trình lập hóa đơn với quy trình bán hàng, cho phép phân tích toàn trình từ đơn hàng đến thu tiền để tìm nguyên nhân gốc rễ của các vấn đề về hóa đơn. Lấy dữ liệu ở đâu Có thể tìm thấy trong trường 'Created From' hoặc ở tab phụ 'Related Records' của giao dịch Invoice trong NetSuite. Ví dụ SO-0009876SO-0009877SO-0009878 | |||
| Số ngày phải thu DaysSalesOutstanding | Số ngày từ ngày lập hóa đơn đến ngày nhận thanh toán. | ||
| Mô tả Số ngày phải thu (DSO) là chỉ số tài chính quan trọng, đo số ngày trung bình cần để thu tiền sau khi phát hành hóa đơn. Thuộc tính này được tính cho từng hóa đơn để hỗ trợ phân tích chi tiết. DSO thường được tổng hợp thành KPI cấp cao, nhưng lưu chỉ số ở cấp từng hóa đơn giúp phân tích sâu hơn. Bạn có thể dùng chỉ số này để xác định khách hàng, khu vực hoặc loại hóa đơn nào có DSO cao nhất. Dashboard 'Xu hướng DSO' dựa vào chỉ số này để thể hiện hiệu quả thu hồi công nợ theo thời gian, cung cấp thông tin quan trọng cho việc quản lý vốn lưu động. Vì sao điều này quan trọng Thuộc tính này định lượng hiệu quả thu hồi công nợ cho từng hóa đơn, giúp phân tích chi tiết nguyên nhân DSO cao và tác động đến dòng tiền. Lấy dữ liệu ở đâu Được tính bằng cách lấy dấu thời gian của hoạt động 'Đã nhận thanh toán từ khách hàng' trừ đi 'InvoiceDate'. Ví dụ 294562 | |||
| Thanh toán đúng hạn IsOnTimePayment | Cờ cho biết khách hàng đã thanh toán vào hoặc trước ngày đến hạn của hóa đơn hay chưa. | ||
| Mô tả Cờ boolean được tính toán này so sánh dấu thời gian của hoạt động 'Đã nhận thanh toán từ khách hàng' với trường 'DueDate' của hóa đơn. Cờ được đặt thành true nếu thanh toán đúng hạn hoặc sớm hơn, và false nếu thanh toán trễ. Thuộc tính này là cơ sở cho KPI 'Tỷ lệ thanh toán đúng hạn' và dashboard 'Mức độ tuân thủ điều khoản thanh toán'. Thuộc tính cung cấp thước đo rõ ràng, có hai trạng thái về hành vi thanh toán của khách hàng, giúp việc phân tích và báo cáo đơn giản hơn. Nhờ đó, bạn có thể nhanh chóng nhận ra xu hướng thanh toán đúng hạn và đánh giá hiệu quả của các chiến lược thu hồi công nợ. Vì sao điều này quan trọng Thuộc tính này cung cấp thước đo rõ ràng về hiệu quả thu hồi công nợ, trực tiếp hỗ trợ tính KPI Tỷ lệ thanh toán đúng hạn và phân tích hành vi khách hàng. Lấy dữ liệu ở đâu Đây là thuộc tính được tính toán bằng cách so sánh dấu thời gian của sự kiện thanh toán với thuộc tính 'DueDate' ở cấp case. Ví dụ truefalse | |||
| Tiền tệ Currency | Mã tiền tệ của số tiền trên hóa đơn. | ||
| Mô tả Thuộc tính này cho biết đơn vị tiền tệ của hóa đơn, chẳng hạn như USD, EUR hoặc GBP. Đây là thông tin cần thiết để hiểu đúng mọi giá trị tiền tệ. Với các tổ chức đa quốc gia, phân tích theo tiền tệ giúp đánh giá hiệu quả tài chính ở từng thị trường. Thuộc tính này đảm bảo các giá trị tiền tệ được hiểu chính xác và có thể cộng gộp, so sánh phù hợp sau khi quy đổi nếu cần. Vì sao điều này quan trọng Thuộc tính này cung cấp thông tin cần thiết về mọi giá trị tiền tệ, rất quan trọng để lập báo cáo và phân tích tài chính chính xác, nhất là khi vận hành ở nhiều quốc gia. Lấy dữ liệu ở đâu Tương ứng với trường 'Currency' trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ USDEURGBP | |||
| Trạng thái hóa đơn InvoiceStatus | Trạng thái hiện tại của hóa đơn trong vòng đời xử lý. | ||
| Mô tả Thuộc tính này thể hiện trạng thái hiện tại của hóa đơn, chẳng hạn như 'Open', 'Paid in Full' hoặc 'Voided'. Nhờ đó, bạn biết hóa đơn đang ở bước nào trong quy trình tại một thời điểm cụ thể. Bảng điều khiển 'Tổng quan trạng thái hóa đơn đang mở' được xây dựng trực tiếp dựa trên thuộc tính này. Bảng điều khiển giúp đánh giá tình hình các khoản phải thu, để nhóm tài chính theo dõi số dư chưa thanh toán, quản lý việc thu hồi công nợ và dự báo dòng tiền vào. Phân tích trạng thái cuối cùng cũng giúp hiểu rõ kết quả của quy trình. Vì sao điều này quan trọng Thuộc tính này cho biết tình hình hiện tại của các khoản phải thu, làm cơ sở xây dựng bảng điều khiển theo dõi hóa đơn đang mở và tiến độ lập hóa đơn. Lấy dữ liệu ở đâu Tương ứng với trường 'Status' trên bản ghi giao dịch Invoice trong NetSuite. Ví dụ Đang mởĐã thanh toán đủĐã hủyChờ phê duyệt | |||
Hoạt động Order to Cash - lập hóa đơn và xuất hóa đơn
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Gửi hóa đơn cho khách hàng | Cho biết hóa đơn đã được gửi cho khách hàng, thường qua email. Sự kiện này được ghi nhận bằng cách theo dõi khi người dùng chọn thao tác 'Email' trên bản ghi hóa đơn. | ||
| Vì sao điều này quan trọng Đây là thời điểm bắt đầu kỳ thu tiền từ khách hàng và là mốc chính để tính số ngày phải thu bình quân (DSO). Lấy dữ liệu ở đâu Suy ra từ trường 'Date Last Emailed' được điền trên bản ghi Invoice. Ngoài ra, có thể ghi nhận sự kiện khi tạo bản ghi email trong thẻ phụ Communication. Thu thập Suy ra từ việc điền trường 'Date Last Emailed' hoặc tạo bản ghi liên lạc. Loại sự kiện inferred | |||
| Hóa đơn được phê duyệt | Hóa đơn đã được phê duyệt chính thức và sẵn sàng gửi cho khách hàng. Sự kiện này được ghi nhận khi trạng thái phê duyệt chuyển từ 'Pending Approval' thành 'Approved', thường thông qua một thao tác trong workflow. | ||
| Vì sao điều này quan trọng Đây là cột mốc quan trọng, cho phép gửi hóa đơn cho khách hàng. Sự kiện này rất cần thiết để đo thời gian phê duyệt và tính KPI 'Tỷ lệ lập hóa đơn tự động'. Lấy dữ liệu ở đâu Suy ra từ lúc trường 'Approval Status' trên bản ghi Invoice chuyển thành 'Approved'. Dấu thời gian chính xác được ghi trong system notes của giao dịch. Thu thập Suy ra từ thay đổi của trường 'Approval Status' thành 'Approved' trong system notes. Loại sự kiện inferred | |||
| Nhận thanh toán từ khách hàng | Khách hàng đã thanh toán và khoản tiền được ghi nhận trong hệ thống. Sự kiện này được ghi lại khi tạo giao dịch 'Customer Payment' trong NetSuite. Khoản thanh toán có thể được áp dụng cho một hoặc nhiều hóa đơn. | ||
| Vì sao điều này quan trọng Đánh dấu thời điểm nhận tiền, nhưng không nhất thiết là lúc khoản tiền được áp dụng cho một hóa đơn cụ thể. Đây là bước đầu tiên trong quy trình hạch toán tiền thu và là sự kiện quan trọng để tính DSO. Lấy dữ liệu ở đâu Lấy từ ngày tạo bản ghi giao dịch 'Customer Payment'. Liên kết đến hóa đơn được thiết lập trong thẻ phụ 'Apply' của khoản thanh toán. Thu thập Tạo bản ghi giao dịch Customer Payment. Loại sự kiện explicit | |||
| Tạo hóa đơn | Đánh dấu thời điểm bản ghi giao dịch hóa đơn chính thức được tạo trong NetSuite. Đây là sự kiện bắt đầu quy trình lập hóa đơn cho từng số hóa đơn riêng biệt, được ghi nhận từ dấu thời gian tạo giao dịch. | ||
| Vì sao điều này quan trọng Đây là sự kiện bắt đầu chính của quy trình lập hóa đơn. Phân tích khoảng thời gian từ sự kiện này đến các sự kiện khác cho thấy hiệu quả tổng thể của quy trình và làm cơ sở tính KPI thời gian tạo hóa đơn. Lấy dữ liệu ở đâu Lấy từ dấu thời gian 'Date Created' trên bản ghi giao dịch Invoice. System notes của NetSuite cũng ghi rõ sự kiện tạo hóa đơn và người thực hiện. Thu thập Sự kiện được ghi lại khi tạo bản ghi giao dịch Invoice. Loại sự kiện explicit | |||
| Thanh toán đủ hóa đơn | Trạng thái hóa đơn chuyển thành 'Paid In Full', nghĩa là số dư hiện bằng không. Đây là kết quả hoàn tất của chu trình lập hóa đơn và thu tiền cho hóa đơn đó. | ||
| Vì sao điều này quan trọng Đây là sự kiện kết thúc thành công chính của quy trình. Phân tích tổng thời gian để đạt đến trạng thái này cho biết thời gian toàn trình của chu kỳ chuyển đổi tiền mặt. Lấy dữ liệu ở đâu Suy ra từ lúc trường 'Status' trên bản ghi Invoice chuyển thành 'Paid In Full'. Dấu thời gian thay đổi trạng thái có trong system notes của giao dịch. Thu thập Suy ra từ thay đổi của trường 'Status' thành 'Paid In Full' trong system notes. Loại sự kiện inferred | |||
| Áp dụng thanh toán cho hóa đơn | Khoản thanh toán đã nhận từ khách hàng được áp dụng cụ thể cho hóa đơn này, làm giảm số tiền còn phải trả. Sự kiện được ghi nhận khi lưu việc áp dụng khoản thanh toán trên bản ghi Customer Payment. | ||
| Vì sao điều này quan trọng Đây là mối liên kết quan trọng giữa lúc nhận tiền và lúc thanh toán hóa đơn. Khoảng thời gian từ 'Payment Received' đến sự kiện này được dùng để tính KPI 'Thời gian hạch toán tiền thu'. Lấy dữ liệu ở đâu Lấy từ system notes hoặc nhật ký kiểm tra của giao dịch Customer Payment, cụ thể là thời điểm lưu việc áp dụng khoản thanh toán cho dòng hóa đơn. Dấu thời gian áp dụng này rất quan trọng. Thu thập Được ghi lại khi lưu bản ghi Customer Payment sau khi áp dụng khoản thanh toán cho hóa đơn. Loại sự kiện explicit | |||
| Đến hạn thanh toán | Đây là sự kiện được tính khi ngày hiện tại trùng với ngày đến hạn của hóa đơn. Sự kiện này không tương ứng với thao tác trực tiếp của người dùng hay hệ thống, mà được suy ra từ dữ liệu hiện có trong quá trình phân tích. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng để đo lường mức độ thanh toán đúng hạn. Sự kiện này cần thiết để tính KPI 'Tỷ lệ thanh toán đúng hạn' và phân tích hành vi thanh toán của khách hàng. Lấy dữ liệu ở đâu NetSuite không ghi nhận đây là sự kiện riêng. Sự kiện được tính bằng cách so sánh dấu thời gian trong nhật ký sự kiện với trường 'Due Date' trên bản ghi giao dịch Invoice. Thu thập Được tính khi dấu thời gian sự kiện trùng với trường 'Due Date' trên hóa đơn. Loại sự kiện calculated | |||
| Đóng hóa đơn | Giao dịch hóa đơn đã được đóng, thường trong quá trình chốt sổ cuối kỳ. Thao tác này ngăn thay đổi giao dịch sau khi hóa đơn đã được thanh toán và đối soát đầy đủ. | ||
| Vì sao điều này quan trọng Việc này thường diễn ra sau trạng thái 'Paid In Full', nhưng có thể là bước hành chính cuối cùng. Phân tích độ trễ giữa lúc thanh toán và lúc đóng hóa đơn có thể giúp đánh giá ảnh hưởng đến thời gian lập báo cáo tài chính. Lấy dữ liệu ở đâu Suy ra từ lúc trường 'Status' chuyển thành 'Closed' hoặc trạng thái tương tự. Dấu thời gian thay đổi được lấy từ system notes. Thu thập Suy ra từ thay đổi của trường 'Status' trong system notes. Loại sự kiện inferred | |||
| Gửi hóa đơn để phê duyệt | Cho biết trạng thái hóa đơn chuyển thành 'Pending Approval'. Sự kiện này được ghi nhận khi người dùng gửi hóa đơn vào quy trình phê duyệt đã cấu hình, một tùy chỉnh thường gặp. | ||
| Vì sao điều này quan trọng Hoạt động này đánh dấu thời điểm có thể bắt đầu xuất hiện điểm nghẽn trong khâu phê duyệt. Thời gian chờ phê duyệt là một phần quan trọng trong tổng thời gian xử lý hóa đơn. Lấy dữ liệu ở đâu Suy ra từ lúc trường 'Approval Status' trên bản ghi Invoice chuyển thành 'Pending Approval'. Có thể tìm dấu thời gian thay đổi này trong nhật ký kiểm tra system notes của hóa đơn. Thu thập Suy ra từ thay đổi của trường 'Approval Status' được ghi trong system notes. Loại sự kiện inferred | |||
| Gửi nhắc thanh toán | Khách hàng đã nhận được thông báo về khoản thanh toán còn nợ. Sự kiện này được ghi nhận dưới dạng hoạt động hoặc email gửi từ bản ghi hóa đơn hay khách hàng, thường qua giải pháp nhắc nợ. | ||
| Vì sao điều này quan trọng Sự kiện này rất cần thiết để đánh giá hiệu quả của các chiến lược thu hồi công nợ. Phân tích ảnh hưởng của hoạt động này đến các khoản thanh toán tiếp theo giúp tối ưu tần suất và thời điểm gửi nhắc nhở. Lấy dữ liệu ở đâu Lấy từ thời điểm tạo bản ghi email trong thẻ phụ Communication > Messages của bản ghi Invoice hoặc Customer. Giải pháp nhắc nợ tự động cũng có thể ghi lại các sự kiện này dưới dạng bản ghi tùy chỉnh hoặc tác vụ. Thu thập Được ghi lại dưới dạng email hoặc hoạt động gắn với hóa đơn. Loại sự kiện explicit | |||
| Hủy hóa đơn | Hóa đơn đã bị hủy, qua đó đảo ngược mọi ảnh hưởng đến sổ cái. Thao tác này thường được thực hiện với hóa đơn tạo nhầm trước khi khách hàng thanh toán. | ||
| Vì sao điều này quan trọng Đây là ngoại lệ của quy trình và là trạng thái kết thúc. Tìm hiểu lý do hủy hóa đơn có thể giúp phát hiện lỗi nhập liệu hoặc lỗi quy trình cần khắc phục từ đầu. Lấy dữ liệu ở đâu Đây là thao tác do người dùng thực hiện. Có thể ghi nhận từ system notes của bản ghi hóa đơn, nơi lưu thời điểm giao dịch bị hủy và người thực hiện. Thu thập Thao tác 'Void' được ghi rõ trong system notes của hóa đơn. Loại sự kiện explicit | |||
| Tạo giấy báo có | Một giao dịch giấy báo có đã được tạo và áp dụng cho hóa đơn, làm giảm số dư còn nợ. Việc này thường xảy ra khi khách hàng trả hàng, khiếu nại về dịch vụ hoặc cần điều chỉnh giá. | ||
| Vì sao điều này quan trọng Sự kiện này cho thấy có thể đã phải làm lại, có vấn đề về chất lượng hoặc phát sinh tranh chấp với khách hàng. Nếu xảy ra thường xuyên, đây có thể là dấu hiệu của vấn đề tiềm ẩn và là dữ liệu quan trọng cho bảng điều khiển 'Phân tích hóa đơn phải làm lại và bị từ chối'. Lấy dữ liệu ở đâu Lấy từ thời điểm tạo giao dịch Credit Memo. Có thể tìm liên kết đến hóa đơn gốc trong trường 'Created From' hoặc thẻ phụ 'Apply' của giấy báo có. Thu thập Tạo bản ghi Credit Memo liên kết với hóa đơn gốc. Loại sự kiện explicit | |||
Hướng dẫn trích xuất dữ liệu
Các bước
- Đăng nhập NetSuite: Truy cập tài khoản NetSuite bằng vai trò có đủ quyền tạo và chạy Saved Search trên các bản ghi giao dịch.
- Mở Saved Searches: Chọn Reports > Saved Searches > All Saved Searches > New. Trong danh sách loại tìm kiếm, chọn 'Transaction'. Đây là cơ sở để tạo nhiều tìm kiếm, mỗi tìm kiếm cho một loại sự kiện.
- Tạo tìm kiếm 'Đã tạo hóa đơn': Tìm kiếm chính này ghi nhận thời điểm tạo hóa đơn.
- Trong tab 'Criteria', ở mục 'Standard', đặt bộ lọc 'Type' thành 'is Invoice'.
- Thêm bộ lọc 'Main Line' và đặt thành 'is true' để lấy một bản ghi cho mỗi hóa đơn.
- Trong tab 'Results', thêm các cột cần thiết. Dùng công thức để tạo trường chuẩn hóa như 'ActivityName'. Ví dụ: thêm trường 'Formula (Text)' với công thức
_UTF8'Invoice Created'.
- Tạo tìm kiếm cho các lần đổi trạng thái (đã duyệt, đã thanh toán, đã hủy, đã đóng): Nhiều hoạt động là các lần đổi trạng thái. Cách đáng tin cậy nhất để ghi nhận đúng dấu thời gian là dùng System Notes.
- Tạo Transaction Saved Search mới.
- Trong tab 'Criteria', đặt 'Type' thành 'is Invoice'.
- Trong tab phụ 'Standard', thêm bộ lọc 'System Notes : Field' và chọn trường trạng thái liên quan, ví dụ 'Approval Status'.
- Thêm bộ lọc 'System Notes : New Value' và đặt thành trạng thái cần tìm, ví dụ 'Approved'.
- Trong tab 'Results', ánh xạ 'System Notes : Date' vào
EventTimestampvà 'System Notes : Set by' vàoUser. - Lặp lại các bước này cho từng hoạt động dựa trên trạng thái: 'Đã gửi hóa đơn để duyệt', 'Đã duyệt hóa đơn', 'Đã thanh toán đủ hóa đơn', 'Đã hủy hóa đơn' và 'Đã đóng hóa đơn'. Điều chỉnh bộ lọc trường và giá trị cho phù hợp.
- Tạo tìm kiếm 'Đã gửi hóa đơn cho khách hàng': Sự kiện này thường được ghi nhận bằng cách theo dõi email gửi từ bản ghi hóa đơn.
- Tạo Transaction Saved Search mới với 'Type' đặt thành 'is Invoice'.
- Trong tab 'Criteria', ở mục 'Related Records', thêm bộ lọc 'Messages : Date Sent' và đặt thành 'is not empty'.
- Trong tab 'Results', ánh xạ 'Messages : Date Sent' vào
EventTimestampvà 'Messages : Author' vàoUser.
- Tạo tìm kiếm cho hoạt động thanh toán và Credit Memo: Các hoạt động này liên quan đến những loại giao dịch riêng, được liên kết với hóa đơn.
- Với 'Đã nhận thanh toán từ khách hàng', tạo tìm kiếm có 'Type' là 'Customer Payment'. Dùng ngày tạo làm dấu thời gian sự kiện.
- Với 'Đã áp dụng thanh toán cho hóa đơn', dùng cùng tìm kiếm 'Customer Payment' nhưng nối với các trường 'Applied To Transaction'. 'Date Created' của giao dịch thanh toán là dấu thời gian. Kết quả sẽ có một dòng cho mỗi lần áp dụng thanh toán vào hóa đơn.
- Với 'Đã tạo Credit Memo', tạo tìm kiếm có 'Type' là 'Credit Memo' và liên kết với trường 'Created From' để lấy số hóa đơn gốc.
- Chạy và xuất từng Saved Search: Chạy từng Saved Search bạn đã tạo. Trên trang kết quả, nhấp biểu tượng xuất (CSV, Excel hoặc PDF) và chọn CSV. Nếu số kết quả vượt giới hạn xuất của NetSuite, bạn có thể cần xuất thành nhiều đợt.
- Gộp và chuyển đổi dữ liệu: Gộp tất cả tệp CSV đã xuất thành một tệp bằng công cụ như Microsoft Excel, tập lệnh Python hoặc công cụ chuẩn bị dữ liệu.
- Tạo sự kiện 'Đến ngày thanh toán': Trong tệp dữ liệu đã gộp, tạo một dòng mới cho mỗi sự kiện 'Đã tạo hóa đơn'. Đặt
ActivityNamethành 'Đến ngày thanh toán',EventTimestampthành giá trị trong trường 'DueDate' của hóa đơn, rồi sao chép các thuộc tính hóa đơn liên quan khác. - Hoàn thiện nhật ký sự kiện: Chuẩn hóa tên tất cả các cột theo lược đồ yêu cầu, ví dụ
InvoiceNumber,ActivityName,EventTimestamp. Đảm bảo định dạng dấu thời gian nhất quán. Thêm các cộtSourceSystemvàLastDataUpdatevới giá trị cố định cho đợt trích xuất này. Lưu tệp đã gộp cuối cùng dưới dạng CSV để tải lên.
Cấu hình
- Điều kiện tiên quyết: Cần có vai trò người dùng được cấp quyền tạo, chỉnh sửa và chạy Saved Search loại 'Transaction'. Bạn cũng cần quyền xem các bản ghi Invoice, Customer Payment, Credit Memo và System Notes.
- Loại tìm kiếm: Loại tìm kiếm chính dùng cho tất cả các lần trích xuất là 'Transaction'. Loại này cho phép truy cập các bản ghi và mối liên kết cần thiết.
- Lọc theo khoảng ngày: Để kiểm soát hiệu suất và dung lượng dữ liệu, hãy áp dụng bộ lọc khoảng ngày cho từng tìm kiếm. Với lần phân tích đầu tiên, nên lọc 'Date Created' trong 3 đến 6 tháng gần nhất.
- Bộ lọc Main Line: Đặt tiêu chí 'Main Line' thành 'true' cho các sự kiện ở cấp tiêu đề chứng từ, chẳng hạn như 'Đã tạo hóa đơn'. Đặt thành 'false' khi cần phân tích chi tiết từng dòng hàng, việc này không cần thiết cho quy trình này.
- System Notes: Việc ghi nhận thay đổi trạng thái phụ thuộc nhiều vào System Notes. Hãy đảm bảo tính năng kiểm tra được bật cho các trường giao dịch quan trọng như 'Status' và 'Approval Status' trong cấu hình NetSuite (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Lưu ý về hiệu suất: Các tìm kiếm phức tạp, có nhiều phép nối và trường công thức trên khoảng ngày dài, có thể chạy chậm trong giao diện NetSuite. Bạn nên chạy và xuất dữ liệu ngoài giờ cao điểm. Nếu tìm kiếm hết thời gian chờ, hãy rút ngắn khoảng ngày và xuất dữ liệu thành các đợt nhỏ hơn.
Truy vấn mẫu 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.
*/ Các bước
- Điều kiện tiên quyết: Bật SuiteAnalytics Connect: Đảm bảo mô-đun SuiteAnalytics Connect đã được cấp phép và bật trong phiên bản NetSuite của bạn. Quản trị viên NetSuite thường thực hiện việc này tại Setup > Company > Enable Features > Analytics.
- Tải và cấu hình trình điều khiển ODBC: Mở dashboard NetSuite và tìm mục 'Settings'. Nhấp liên kết 'Set Up SuiteAnalytics Connect' để tải trình điều khiển ODBC phù hợp với hệ điều hành. Làm theo hướng dẫn cài đặt của NetSuite, cung cấp máy chủ dịch vụ, cổng, Account ID, Role ID, email và mật khẩu.
- Kết nối với cơ sở dữ liệu: Dùng công cụ SQL hỗ trợ kết nối ODBC, chẳng hạn như DBeaver, Tableau hoặc Power BI. Tạo kết nối ODBC mới bằng trình điều khiển đã cấu hình ở bước trước. Kiểm tra kết nối để đảm bảo bạn xác thực thành công và truy cập được cơ sở dữ liệu bản sao chỉ đọc của NetSuite.
- Chuẩn bị truy vấn SQL: Sao chép toàn bộ truy vấn SQL trong phần 'Query' của tài liệu này. Truy vấn được thiết kế để trích xuất tất cả hoạt động và thuộc tính cần thiết cho quy trình lập hóa đơn Order to Cash.
- Đặt tham số truy vấn: Trước khi chạy, tìm các giá trị giữ chỗ trong truy vấn. Thay
'YYYY-MM-DD'bằng ngày bắt đầu và ngày kết thúc mong muốn cho khoảng thời gian trích xuất. Đồng thời, thay[Your Subsidiary ID]bằng ID nội bộ của công ty con NetSuite bạn muốn phân tích. - Chạy truy vấn: Chạy truy vấn đã chỉnh sửa trong công cụ SQL. Thời gian chạy tùy thuộc vào khoảng ngày và số lượng giao dịch trong tài khoản NetSuite của bạn.
- Kiểm tra kết quả: Khi truy vấn chạy xong, hệ thống trả về một bảng phẳng đại diện cho nhật ký sự kiện. Mỗi dòng tương ứng với một hoạt động cụ thể trong vòng đời hóa đơn. Hãy kiểm tra dữ liệu để đảm bảo đầy đủ và chính xác.
- Xuất nhật ký sự kiện: Xuất kết quả truy vấn từ công cụ SQL sang tệp CSV. Đảm bảo tệp dùng mã hóa UTF-8 để tránh lỗi ký tự.
- Chuẩn bị tải lên: Trước khi tải dữ liệu lên công cụ process mining, hãy xác nhận tiêu đề cột khớp với tên thuộc tính yêu cầu, chẳng hạn như InvoiceNumber, ActivityName và EventTimestamp. Kiểm tra để đảm bảo định dạng ngày giờ nhất quán.
Cấu hình
- Giấy phép SuiteAnalytics Connect: Bạn cần giấy phép hợp lệ cho mô-đun SuiteAnalytics Connect để truy cập cơ sở dữ liệu bản sao chỉ đọc của NetSuite. Không có giấy phép này, bạn không thể truy cập trực tiếp bằng SQL.
- Vai trò và người dùng riêng: Bạn nên tạo một vai trò NetSuite riêng với các quyền phù hợp cho SuiteAnalytics Connect. Vai trò này chỉ nên có quyền đọc các bản ghi cần thiết, gồm Transactions, Customers và System Notes. Hãy gán một người dùng riêng cho vai trò này để trích xuất dữ liệu, đảm bảo an toàn và khả năng kiểm tra.
- Lọc theo khoảng ngày: Truy vấn được cung cấp có mệnh đề
WHERElọc theo ngày tạo hóa đơn (Transaction.TRANDATE). Với lần trích xuất đầu tiên, nên bắt đầu bằng khoảng ngày ngắn hơn, chẳng hạn 3 đến 6 tháng gần nhất, để kiểm soát hiệu suất và dung lượng dữ liệu. Ví dụ:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Lọc theo công ty con: Nếu tài khoản có nhiều công ty con, việc lọc theo công ty con cụ thể rất quan trọng để cải thiện hiệu suất và đảm bảo dữ liệu phù hợp. Truy vấn có chỗ giữ chỗ
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID]cần được cấu hình. - Độ mới của dữ liệu: Cơ sở dữ liệu SuiteAnalytics Connect là bản sao chỉ đọc. Dữ liệu thường được làm mới nhiều lần mỗi giờ nhưng không theo thời gian thực. Giao dịch có thể mất vài giờ mới xuất hiện trong cơ sở dữ liệu Connect.
Truy vấn mẫu 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'); Sẵn sàng bắt đầu?
Dùng mẫu này để khởi động sáng kiến process mining và tìm hiểu sâu hơn về hoạt động lập hóa đơn, xuất hóa đơn. Bắt đầu tối ưu hóa quy trình Order to Cash ngay hôm nay.
Tối ưu hóa quy trình lập hóa đơn và xuất hóa đơn trên NetSuite ngay để thu tiền nhanh hơn
Rút ngắn 30% thời gian chu kỳ lập hóa đơn trên NetSuite và cải thiện dòng tiền.
Không cần thẻ tín dụng. Thiết lập chỉ trong vài phút.