Blog

2025


NetSuite AI: Best Practices for Performing Financial Analysis
Best practices for using Claude and the NetSuite AI Connector in financial analysis, emphasizing accuracy, governance, and disciplined processes. By blending AI’s speed with validation, security, and professional oversight, organizations can generate trusted insights and advance responsibly along the AI adoption maturity curve.


NetSuite AI: Generate Flux Analysis Reports
Shows how a traditionally time-consuming Flux Analysis Report can now be generated automatically using Claude, the NetSuite AI Connector, and a well structured AI prompt. It explains what flux analysis is, why it’s critical for boards and audit committees, and demonstrates how AI produces a polished, branded, board-ready deliverable in minutes instead of days.


NetSuite AI: Opportunities for Developers, Consultants, and Partners
AI spending is exploding, and NetSuite customers are eager—but often unsure—about how to get started. This post outlines key opportunities for developers, consultants, and partners to guide that journey, from strategy and training to tools, agents, and packaged services.


Book Review: NetSuite for Consultants (Third Edition) by Peter Ries
A review of NetSuite for Consultants, Third Edition, a book by Peter Ries.


NetSuite AI: Generate a Trend & Growth Analysis Report
Learn how I used Claude and the NetSuite AI Connector to generate a professional Trend & Growth Analysis Report, complete with ratios, risks, opportunities, and actionable recommendations. By feeding Claude real NetSuite reports — formatted with clear branding guidelines — the result was a polished, board-ready deliverable that executives can trust.


Extending NetSuite AI: Providing User Details to Claude
Introduces the Current User Tool, a simple SuiteScript 2.1 Custom Tool for the NetSuite AI Connector that provides Claude with details about the logged-in user (like ID, name, email, department, and subsidiary). It's designed to make other custom tools easier to use by supplying user context automatically, and is available as a free download for developers familiar with SDF.


Generating Analyses with Claude, the NetSuite AI Connector, and SuiteReports
Discover how NetSuite AI, powered by SuiteReports and Claude, can deliver instant financial insights and actionable recommendations.


The NetSuite AI Connector, Claude, Compliance and the Future of SuiteAnalyzer
Information about the NetSuite AI Connector, Claude, and compliance - and why I'm shifting my focus from SuiteAnalyzer to something new - SuiteReports.


Extending the NetSuite AI Connector with Custom Tools
Information about how NetSuite's new SuiteScript 2.1 "Custom Tool" script type empowers developers to enhance the AI Connector's capabilities. Includes a free File Cabinet Tool that enables AI clients like Claude to automate tasks such as locating, analyzing, and saving files.


The NetSuite AI Connector: Instant Insights with SuiteQL
NetSuite AI Connector's ability to run adhoc SuiteQL queries unlocks powerful, instant insights when paired with Claude. Learn how you can write AI‑optimized queries that can turn raw NetSuite data into actionable intelligence.


Bringing AI to NetSuite: New Directions After the AI Connector Launch
Updates on SuiteAnalyzer and Suite.js, and information on an upcoming service that will make NetSuite Reports data available via the NetSuite AI Connector.


GPT-4.1 vs GPT-5 in SuiteAnalyzer: Speed, Quality, and Choosing the Right Model
Results, observations, and thoughts on SuiteAnalyzer tests using GPT4.1 and GPT-5.


NetSuite: Tackling AI Challenges with SuiteAnalyzer and Suite.js
New tools that I'm developing — including SuiteAnalyzer's ContextEngine and Suite.js — to help developers overcome the real-world challenges of integrating AI with NetSuite.


NetSuite: The Hidden Challenges of Bringing AI to NetSuite
An overview of the challenges that developers are facing as they attempt to bring the power of AI to the NetSuite platform.


NetSuite: Employee Center Custom Portlets
Step-by-step instructions on how you can make custom portlets available to users of the Employee Center.


NetSuite: Redirect Users to Alternative Dashboards
A technique for redirecting users to alternative dashboards. Includes a link to sample SuiteScript files.


NetSuite / SuiteScript / SuiteQL: Working With User Notes
Learn how you can use SuiteScript to programmatically attach a user note to a transaction, and SuiteQL to get a list of notes that are attached to a transaction.


NetSuite / SuiteScript: Cancel A Transaction
A SuiteScript snippet that shows how to cancel a transaction.


NetSuite: SuiteAPI v2025.2 Released
Adds support for generative AI-related procedures, giving developers the ability to easily integrate NetSuite's large language model support into external applications.


NetSuite: Use SuiteQL to Identify Items Frequently Returned
Includes SuiteQL queries that list the most frequently returned items in the past 90 days, and the manufacturers of items that were returned the most often.


NetSuite: Use SuiteQL to Identify Items Frequently Sold Together
Includes a SuiteQL query that can be used to return a list of items that are frequently sold along with a specified item. This can be used to implement the "cross-selling" sales technique.


NetSuite: Use SuiteQL to Get An Item's Price Information
A query that returns price information, including price levels, for a given item.


NetSuite: Suite.js Interactive Inventory Inquiry Example
An example of a Suite.js app that can be used to perform NetSuite inventory inquiries.


NetSuite: SuiteAPI v2025.1 Released
A new version of SuiteAPI, an open source, alternative Web API for the NetSuite platform, has been released.


2024


NetSuite: Use SuiteQL to Get Transactions Posted to a General Ledger Account
A query that returns all of the transactions that were posted to a specified general ledger account in a specified date range.


NetSuite: Use SuiteQL to Get Customer Deposits
A SuiteQL query that returns all deposits received from a specific customer.


NetSuite: Use SuiteQL to Get Company Contacts
Use this SuiteQL query to return all of the contacts associated with a specified company, including contact names and roles.


NetSuite: Use SuiteQL to Get Customer Invoices by Date Range
Learn how to use SuiteQL to retrieve all customer invoices issued in a specified date range, with results that include the customer's name and PO number, sales order number, sales rep, status, balance due, and more.


NetSuite: Use SuiteQL to Get Customer Payment Application Details
Use this SuiteQL query to return the invoices that a customer payment was applied to.


NetSuite: Use SuiteQL to Get Item Types and Counts
Use SuiteQL to get a list of the types of items that are setup in a NetSuite instance, and the count for each item type.


SAC-API: A NetSuite Web API Powered by SuiteAnalytics Connect
Information about SAC-API, an alternative Web API for NetSuite that's powered by SuiteAnalytics Connect.


Suite.js: Development Update
An update on Suite.js, a JavaScript runtime that provides strong NetSuite integration support.


NetSuite: SuiteQL and the Transaction Table
An overview of the Transaction table, including a query to list the transaction types in a NetSuite instance, and information on the permissions needed to query the table.


NetSuite: SuiteBrowser Questions and Answers
Questions and answers regarding SuiteBrowser.


NetSuite: SuiteBrowser Preview and Update (20240415)
A preview of and update on SuiteBrowser, a browser designed specifically for use with NetSuite.


NetSuite: Get The SuiteQL Query Behind A SuiteAnalytics Dataset
Learn how to export the SuiteQL query that defines a SuiteAnalytics dataset.


NetSuite: Use SuiteQL's BUILTIN.MNFILTER to Query Multiple Select Fields
A summary of how SuiteQL supports multiple select fields via join tables and the BUILTIN.MNFILTER built-in function.


Xojo 2024r1: A Quick Review
A review of Xojo 2024 Release 1.


NetSuite: SuiteQL And Item Groups
A collection of SuiteQL queries that can be helpful when working with Item Groups.


NetSuite: SuiteQL and Sales Tax
Learn how to use SuiteQL to get a sales order's sales tax.


NetSuite: SuiteQL and Avalara AvaTax
An overview of the Avalara AvaTax-related tables that are available for querying via SuiteQL.


NetSuite: Use SuiteQL to Query Phone Calls
Information about the NetSuite PhoneCall table, and how you can query it with SuiteQL to get calls related to a specific company, contact, etc. Also includes information on a few undocumented related tables.


NetSuite: Use SuiteQL to Identify Items Whose Quantity Available Has Changed
Learn more about the AggregateItemLocation table and how you can use it to easily identify whose quantity available has changed since a specified date. Includes a list of all columns that are available in the table, and the NetSuite features that need to be enabled in order for some of them to be exposed.


NetSuite: Use SuiteQL to Query Based On How Words Sound
Learn how to use the Oracle SOUNDEX function in SuiteQL queries to apply filters based on how words sound.


NetSuite: SuiteQL and Accounting Lists
Learn how you can query NetSuite to get access to Accounting Lists, including payment methods, customer categories, price levels, pricing groups, terms, incoterms, and more.


NetSuite: Use SuiteQL to Get A Purchase Order's Related Transactions
A SuiteQL query that utilizes the NextTransactionLink table to provide a list of a purchase order's related transactions, including prepayments, item receipts, vendor bills, and more.


NetSuite: SuiteQL and Inbound Shipments
Learn about the tables that are needed to query Inbound Shipments using SuiteQL.


NetSuite: Use SuiteQL to Get Aggregate Item Information by Location
Learn about the AggregateItemLocation table, and how you can query it to get valuable location-specific inventory information.


NetSuite: Use SuiteQL to Access Customer Upsell Items
Learn how you can use SuiteQL to get potential upsell items and item categories for a specific customer.


NetSuite: Analyze Returned Items Using SuiteQL
A SuiteQL query that can be used to get a list of the items that were returned the most frequently during a specific time period.


NetSuite: Use SuiteQL to Get Item Vendors
A SuiteQL query that can be used to get the vendors that an item can be purchased from, including information about the vendors, such as the open balances, credit limits, terms, and more.


NetSuite: Use SuiteQL to Generate Customer Transaction Ledgers
Information about a SuiteQL query that I'm using in a custom mobile app to generate a customer transaction ledger.


NetSuite: Use The SuiteQL BUILTIN.DF Function to Get Related Company Contacts
Learn how to quickly and easily get lists of companies (customers, vendors, etc), along with their related contacts by using the SuiteQL BUILTIN.DF function.


NetSuite: Use SuiteQL to Get Customer Balances for Sales Reps and Managers
SuiteQL queries that can be used to get customer balance information, including the balance due, overdue balance, deposit balance, and more. Get balances for customers assigned to a specific sales rep, or that have been assigned to reps that are managed by a specified sales manager.


NetSuite: Use SuiteQL and REGEXP_LIKE for Case-Insensitive Keyword Searches
Learn how you can use Oracle's REGEXP_LIKE condition in SuiteQL queries to perform case-insensitive keyword queries.


NetSuite: SuiteBrowser Remote App Support - Xojo-Based Example
An example of a Xojo-based remote app running within NetSuite via SuiteBrowser.


NetSuite: SuiteBrowser Remote App Support
A preview of SuiteBrowser's remote app support.


Introducing SuiteBrowser
An introduction to SuiteBrowser, a Web browser that's designed specifically for use with NetSuite.


2023


My Setup (2023)
The hardware, software, and services that I'm using today.


Going All In With Xojo
Information about the type of NetSuite work that I'm doing now, and the increasingly important role that Xojo plays in that work.


NetSuite: Use SuiteScript to Generate Highly Customized Transaction PDFs
Learn how you can use SuiteScript to programmatically generate PDFs for transactions such as purchase orders and sales orders, and how to do so when users click NetSuite's standard Print icon.


NetSuite: Use SuiteQL To Get Customers By Address and Purchase History
Learn how you can use SuiteQL to identify customers based on their address and/or purchase history.


Xojo: A Web 2.0 Project That Analyzes HTTP Requests
Information about a Xojo Web 2.0 project that can be used to analyze HTTP requests. Includes links to a public-facing instance of the app, and a link to download the Xojo project file.


Xojo 2023r2: A Review and Demo of an Android NetSuite Inventory App
A review of Xojo 2023r2, including information about its public beta of the new Android framework, and a demo of a NetSuite inventory Android app.


NetSuite: Automate the Creation of Inventory Spreadsheets with Aloe.js
Learn how you can use Aloe.js, SuiteTalk REST, SuiteQL, SheetJS, and Moment to quickly generate Excel files with the current NetSuite inventory levels and pricing.


NetSuite: SuiteQL and Bank Transfers
SuiteQL queries that can be used to retrieve bank transfers.


NetSuite: SuiteTalk REST and External IDs
SuiteTalk REST makes working with external IDs easy and convenient. This post includes examples of how you can set external IDs and use them to work with records.


NetSuite: Use SuiteQL to Get Last Purchased Date and Price for Multi-Location Inventory
Learn how to use SuiteQL to quickly and easily get purchasing information, including both the last purchased date and last purchase price, in multi-location inventory scenarios.


NetSuite: Use SuiteQL to Access Budget Information
Learn how you can use SuiteQL to access fiscal year and period-specfic budget information.


NetSuite: Use SuiteQL to Query Lot and Serial Numbered Items
Learn how you can use SuiteQL to get information on lot and serial numbered items. Two queries are provided. The first returns the lot / serial numbers of items that were used to fulfill a specified Sales Order. The second returns the transactions that reference a given lot / serial number.


NetSuite: A Retro Terminal Application
Information about a project that involved developing a "retro" NetSuite terminal application.


NetSuite: Power Search Suitelet
A free Suitelet that provides an alternative to NetSuite's standard Global Search feature.


NetSuite: Use SuiteQL to Determine Locations and Bins for Serial and Lot Numbered Items
Learn how to use SuiteQL to query NetSuite for the locations and bins in which serial and lot numbered items are stored.


Aloe.js Preview
A preview of Aloe.js, a JavaScript interpreter that's designed for running JavaScript applications outside of a Web browser.


NetSuite: Use SuiteQL to Provide Assistance During Sales Order Entry
Learn how you can use SuiteQL to provide assistance to users during the sales order entry process. Includes User Event and Client Scripts, SuiteScript examples for adding custom tabs, subtabs, and sublists, and more.


NetSuite: Use SuiteQL to Get Journal Entry Details
Learn how to use SuiteQL to query NetSuite for detailed journal entry information, including subsidiaries, departments, classes, and locations.


Tulip: Enhance Your Apps With Airtable Embedded Views
Learn how you can quickly and easily enhance Tulip apps by providing users with data stored in Airtable.


Palladium: A Hybrid Desktop App Powered by ColdFusion, Xojo, NetSuite, and SuiteAPI
Information about a proof of concept project that involves development of a Xojo-based hybrid desktop app, powered by a ColdFusion Web app that integrates with NetSuite using SuiteAPI.


Book Review: Augmented Lean: A Human-Centric Framework for Managing Frontline Operations
My thoughts on Augmented Lean, a book by Natan Linder and Trond Arne Undheim.


NetSuite: Use SuiteQL to Calculate The Average Number of Transactions Per Hour
A SuiteQL query that calculates the average number of orders created per hour over a date range, which be used to analyze the impact of outages.


NetSuite: Use SuiteQL to Identify Recently Updated Scripts
Learn how you can use SuiteQL to get information about the scripts that are installed in an account, and to identify scripts that have recently been updated.


NetSuite: SuiteTalk REST Overview, Common Issues, and Advice
An overview of NetSuite's SuiteTalk REST integration service, including a discussion of some of the common issues that my clients experience with it, tips on overcoming those issues, and more.


Tulip: Extending The Platform With Xojo-Based Web Apps and Custom Widgets
A follow-up regarding Petal (a custom Tulip Player proof of concept), and a better approach to extending Tulip through the use of Xojo Web apps and custom widgets.


NetSuite: Develop An Order Status Web App With SuiteQL, SuiteAPI, and Xojo
Learn how you can build a custom NetSuite Order Status Web app using SuiteQL, SuiteAPI, and Xojo.


2022


Tulip: Custom Player Proof Of Concept
A sneak peek at Petal, a proof of concept custom Tulip player developed using Xojo.


Xojo: Web 2.0 Code Injection Technique
A technique (and Xojo module) for injecting HTML, CSS, and JavaScript into Xojo Web 2.0 pages. This can be used to enhance the Web 2.0 framework, including adding custom controls without the need for the Web SDK.


NetSuite: SuiteConsole Preview and SuiteQL Schema Tool Update
Information and a preview of SuiteConsole (a tool that NetSuite developers can use to quickly and easily run SuiteScript) and an update on the SuiteQL Schema Tool.


NetSuite: SuiteQL Query Tool Pagination Options
Learn how to use the SuiteQL Query Tool's pagination options to get more than 5,000 rows in a query response. Also learn important differences between the N/query module's query.runSuiteQL and query.runSuiteQLPaged methods.


NetSuite: Working With Cookies in Suitelets
Learn how to get and set cookies in NetSuite Suitelets.


Xojo: Use JavaScript Libraries to Generate Excel Files and More
Learn how to use popular JavaScript libraries (Moment, Lodash, SheetJS, etc) in Xojo desktop projects. Includes information on JSEngine (a class for loading and using JavaScript libraries) and ExcelEngine (a class for generating Excel files using SheetJS).


NetSuite Integration with SuiteAPI and Xojo
Information about SuiteAPI, and an example of a Web app developed with Xojo that uses SuiteAPI to integrate with NetSuite.


Xojo: Develop A Desktop App to Monitor An Environment's Temperature, Humidity, and More
Learn how you can use Xojo, Phidgets, and the MBS Plugins to develop a desktop application that uses sensors to measure aspects of an environment including temperature, humidity, and light/illuminance. Also learn how to automatically upload those values to an Amazon S3 bucket.


Xojo: Develop A Web App to Resolve Mixed Content Issues With Zebra Printers
Learn how you can use Xojo to develop a Web app that helps resolve HTTP/HTTPS Mixed Content issues, especially with regards to Tulip integrating with Zebra printers.


NetSuite: Use SuiteQL to Get Current Accounting Periods
Learn how to use SuiteQL to identify all applicable Accounting Periods based on the current date, including the current fiscal year, quarter, and month.


NetSuite: Use SuiteQL to Calculate Transaction Line Usage
Learn how to use SuiteQL to calculate Transaction Line Usage, an important metric used to determine a NetSuite account's service tier.


NetSuite: External ID Search Utility (Enhanced)
A NetSuite Suitelet that can be used to locate transactions, entities, and items based on an external ID. This is an enhanced version of the Suitelet shared on August 22, 2022.


NetSuite: External ID Search Utility
A NetSuite Suitelet that can be used to locate transactions and entities based on an external ID.


NetSuite: Use SuiteQL To Get A Vendor Bill's Related Purchase Order
A follow-up post that shows how to join from a Vendor Bill to its related Purchase Order, using the PreviousTransactionLineLink table.


NetSuite: Use SuiteQL to Analyze General Ledger Impact by Transaction Type
Learn how you can use SuiteQL queries to determine how various transaction types are posting to the general ledger, what accounts they are posting to, and more.


NetSuite: Use SuiteQL to Get Transaction Relationships
Learn about NetSuite's Multi-Partner Management feature, and how you can use SuiteQL to get the partners associated with a transaction.


NetSuite: Xojo Low-Code Webinar Follow-Up
A follow-up to a recent webinar involving NetSuite and Xojo, a low-code development tool.


NetSuite and Low-Code App Development
Learn about low-code software development tools, why they're needed in the NetSuite space, and why I selected Xojo as my low-code tool.


NetSuite And Raspberry Pi
Information about accessing NetSuite using a Raspberry Pi.


NetSuite: Transaction Monitoring Portlet
A free NetSuite custom Portlet that displays a list of transactions that meet certain criteria. Discusses the NetSuite TransactionAccountingLine table, the SQL "UNION ALL" set operator, the use of BUILTIN.RELATIVE_RANGES for dynamic date ranges, how to use Oracle's TO_CHAR function to format numbers as currency, and how to use the SuiteScript N/cache module to cache SuiteQL query results.


Tulip: Developers Meeting 002
Notes and links based on my presentation at today's Tulip Developers Meeting.


Tulip and Xojo: Job Status Android App
An Android version of the Web app that I shared recently, which integrates with Tulip to provide job information. This mobile app was developed using a pre-release version of Xojo.


Tulip and Xojo: Job Status Web App
An example of a Xojo-based Web application that integrates with Tulip.


Tulip and Xojo: No-Code Meets Low-Code
Learn how you can use Xojo, a low-code software development platform, to build apps that integrate with Tulip. Includes the Xojo project file for the Tulip API Explorer, a desktop application that can be used to explore the Tulip API.


NetSuite: SuiteQL and Custom Segments
Learn about NetSuite's support for custom segments, and how you can use them in SuiteQL queries.


Tulip: Handlebars Custom Widget
Use semantic templates to dynamically generate and display content in your Tulip apps.


NetSuite: Use SuiteQL to Get Shipment Information, Tracking Numbers, and More
Learn how to use SuiteQL to get shipment information, including tracking numbers, weight, shipping and handling charges, and more.


NetSuite: Use SuiteQL to Get Features That are Available / Enabled
Learn how you can use SuiteQL to get information about the features that are available and/or enabled in a NetSuite account.


Tulip: jsExecute Custom Widget
A Tulip custom widget that can be used to execute ad hoc Javascript code.


Tulip: DataTable Custom Widget
A Tulip custom widget that can be used to generate HTML tables with advanced interaction controls, including pagination, keyword searching, sorting, and more.


SuiteFrame: Questions & Answers
Questions and answers about SuiteFrame, the open source NetSuite development framework that I released yesterday.


SuiteFrame: A Framework for Developing NetSuite-Native Applications
Introducing SuiteFrame, an open source framework for developing NetSuite-native applications.


NetSuite: SuiteQL and Assembly Items
Learn how to use SuiteQL to get information on assembly items and their component items. Includes a brief discussion on phantom assemblies.


NetSuite: SuiteTransmit Released
SuiteTransmit is an open-source application that monitors files that a NetSuite developer is working on, and when a file is changed, it is automatically uploaded to the File Cabinet.


NetSuite: Use SuiteQL to Get Transaction Email Messages
Discover NetSuite's Message table, and learn how you can query it to get email messages related to a transaction.


NetSuite: Display SuiteQL Query Results On Custom Tabs
Learn how you can use SuiteScript to display the results of SuiteQL queries on native NetSuite forms.


Tulip-Based NetSuite SuiteQL Query Tool
Information about a version of the NetSuite SuiteQL Query Tool developed using Tulip, a cloud-based, no-code platform for developing custom manufacturing apps.


Use SuiteQL To Find Customers With Overdue Balances Or Low Available Credit
Learn how to use SuiteQL to query NetSuite for customers with overdue balances and low available credit.


NetSuite: SuiteQL Tables & Permissions Reference
A list of nearly 800 NetSuite tables that are available for use with SuiteQL, and the permissions that are needed to query them.


NetSuite: Use SuiteQL to Identify Inventory Impacting Transactions
Learn how to use SuiteQL to identify transactions that have an impact on inventory levels, and a technique for searching for transactions based on the time of day that they were created.


NetSuite: SuiteQL and Custom Lists
Learn how you can use SuiteQL queries to get information about the Custom Lists in a NetSuite account.


NetSuite: SuiteQL Queries for Work Orders
Learn how you can use SuiteQL to get information on Work Orders, do basic production planning, and more.


NetSuite: Use SuiteQL to Get General Ledger Accounts by Subsidiary
SuiteQL queries that you can use in NetSuite OneWorld to get general ledger accounts by subsidiary.


NetSuite: SuiteQL Schema Tool (Preview)
Announcing a new tool that's designed to help NetSuite developers, administrators, and users locate and research tables and fields as they develop SuiteQL queries.


NetSuite / Wrike Integration
Learn how to integrate NetSuite with Wrike, a popular integrated, online project management system.


NetSuite: Use SuiteQL To Query Access Tokens
Learn how you can use SuiteQL to analyze and audit your NetSuite access tokens, and determine the specific permissions that are available to them.


NetSuite: Add Links to SuiteQL Query Results
A simple technique that you can use to add edit, view, and print links to query results when using the SuiteQL Query Tool.


NetSuite: Use SuiteQL to Get A Transaction's GL Impact
Learn how you can use SuiteQL to get a transaction's GL Impact.


Book Review: NetSuite for Consultants by Peter Ries
A review of NetSuite for Consultants, a new book by Peter Ries.


NGINX As A Reverse Proxy for NetSuite
Learn how you can use NGINX as a reverse proxy for a NetSuite Suitelet, and the benefits of doing so. Includes an example NGINX configuration file and sample Suitelet for exploring the technique.


2021


NetSuite: An Alternative SuiteQL Pagination Technique
A technique for returning paginated results from SuiteQL queries that includes the total number of rows found, and an update on SuiteQL's support for TOP, FETCH, and OFFSET clauses.


NetSuite: SuiteQL-Based Sales Reports, Transaction Statuses, and The WITH Clause
Use SuiteQL queries to generate sales pipeline reports, and see how I'm using one in a custom management Web portal. Learn how you can use BUILTIN functions to filter on transaction statuses, the WITH clause to simplify complex queries, and a SQL technique for simulating data pivots.


NetSuite: Saved Search API
A free RESTlet that can be used to provide Saved Search results to external systems. (The Saved Search equivalent to the SuiteQL Query API that I shared earlier in the week.)


NetSuite: Introducing the SuiteQL Query API
A free RESTlet that can be used to leverage SuiteQL in your NetSuite integrations.


NetSuite: SuiteQL and Related Transactions (Revisited)
Learn how you can use SuiteQL to get related transactions, and see how I'm using this technique in a client's custom portal.


NetSuite: Use SuiteQL to Analyze Customer Deposits
I share SuiteQL queries that can be used to analyze customer deposits, deposit applications, and more - and provide a preview of a macOS / Windows native desktop version of the SuiteQL Query Tool.


Xojo: Looking Back, and Looking Forward
My latest thoughts on the Xojo development platform, and why I've started using it again.


NetSuite: Query Timesheets With SuiteQL
Learn how you can use SuiteQL to access the data that NetSuite maintains as part of its timesheet management and time tracking functions, and see how I'm using SuiteQL to make timesheets available in a custom employee Web portal.


NetSuite: Use SuiteQL to Analyze License Usage by Subsidiary
Learn how you can use SuiteQL in a NetSuite OneWorld account to calculate the total number of employees, by subsidiary, that have been given access to NetSuite.


NetSuite: Use SuiteQL To Determine Roles That Are Not Being Used
Learn how you can use SuiteQL and the LoginAudit table to determine what roles have not been used recently.


NetSuite: SuiteQL Query Tool v2021.2 (Production Release)
Announcing the production release of the 2021.2 version of the NetSuite SuiteQL Query Tool. Includes an improved user interface, pagination options, new result formatting options, a SuiteQL Tables Reference, support for remote and local query libraries, and more.


NetSuite: SuiteScript Sync Utility (Second Preview)
A second preview of a macOS / Windows desktop utility that makes it easy for NetSuite developers to use alternative IDEs and text editors to work with SuiteScript files.


NetSuite: SuiteScript Sync Utility (Preview)
A preview of a macOS / Windows desktop utility that makes it easy for NetSuite developers to use alternative IDEs and text editors to work with SuiteScript files.


NetSuite: Use SuiteQL in Map/Reduce Scripts
Learn how you can use SuiteQL in map/reduce scripts to easily process large volumes of NetSuite data.


NetSuite: Use ROLLUP to Include Summary Rows In SuiteQL Query Results
Learn how you can use the ROLLUP extension to easily add summary rows to your SuiteQL query results.


NetSuite: SEC EDGAR Integration Portlet
A SuiteScript Portlet that can be used to display recent filings made to the U.S. Securities and Exchange Commission (SEC).


NetSuite: Use SuiteQL to Query for Custom Record Types and Custom Fields
Use SuiteQL to get information about the custom record types and custom fields that have been setup in a NetSuite instance.


NetSuite: Use SuiteQL and SuiteScript With Multiple Subsidiaries and Locations
Learn how you can use SuiteScript to assign an item to multiple subsidiaries, and SuiteQL to get an item's subsidiary and location assignments.


NetSuite: Generate Maps With The SuiteQL Query Tool
A technique for dynamically generating charts based on query results in the NetSuite SuiteQL Query Tool.


NetSuite: Using Dynamic Calendar Date Ranges in SuiteQL Queries
Learn how you can use the BUILTIN.RELATIVE_RANGES function in SuiteQL queries to dynamically reference calendar date ranges.


NetSuite: Bitcoin Price Index Portlet
A SuiteScript Portlet that can be used to display the current Bitcoin price pulled from CoinDesk's Bitcoin Price Index (XBP) API.


NetSuite: Generate Charts With The SuiteQL Query Tool
A technique for dynamically generating charts based on query results in the NetSuite SuiteQL Query Tool.


NetSuite: Query for Deleted Records Using SuiteQL
A SuiteQL query that you can use to get information about records that have been deleted.


NetSuite: SuiteQL Query Tool v2021.2 (Beta 2)
Announcing the second public beta of the NetSuite SuiteQL Query Tool v2021.2. Adds support for importing queries from SuiteAnalytics Workbooks, generating PDF and HTML documents, and more.


NetSuite: SuiteQL Query Tool v2021.2 (Beta 1)
Announcing the first public beta of the NetSuite SuiteQL Query Tool v2021.2.


NetSuite: Use SuiteQL to Identify Items In Alternate Warehouse Bins
Use SuiteQL to identify any items that were in stock and stored in bins that were not the item's primary bin.


NetSuite: Use SuiteQL to Get Lists of States and Countries
Learn how you can use SuiteQL to query NetSuite for state and country information.


NetSuite: FileMaker Go-Based Mobile Delivery App with Signature Capture and File Cabinet Storage
A case study involving development of a custom mobile delivery app using FileMaker Go.


NetSuite: SuiteQL, Currencies, and Exchange Rates
Information about the currency-related tables that are available via SuiteQL, and a built-in function that can be used to perform currency conversions.


NetSuite: Using SuiteQL to Query Support Cases
Learn how you can use SuiteQL to get information on customer service support cases.


NetSuite: Using SuiteQL to Get Order Status Summaries
Learn how you can use SuiteQL to get summaries of sales and purchase orders based on their status.


NetSuite: Use SuiteQL With Serialized, Lot Numbered, and Expiring Items
Learn how you can use SuiteQL to query serialized and lot numbered items, as well as items that have expiration dates.


NetSuite: FileMaker Go-Based Mobile Sales App, SuiteQL, and More
A case study involving development of a custom mobile sales app using FileMaker Go.


NetSuite: Use SuiteQL to Get Customer Balances
Learn how you can use SuiteQL to easily get customer accounts receivable and open order balances.


NetSuite: Use SuiteQL to Get Related Transactions
Use SuiteQL, and the NextTransactionLineLink and PreviousTransactionLineLink tables, to get related transactions.


NetSuite: Using SuiteQL to Access Payroll Data
Learn how you can use SuiteQL to access payroll data in NetSuite accounts that are utilizing SuitePeople Payroll.


NetSuite: Accessing Employee Emergency Contacts With SuiteQL
Use SuiteQL to access employee emergency contact information.


NetSuite: Use SuiteQL to Identify Employees That Have Not Logged In Recently
Learn how to use SuiteQL and the LoginAudit table to identify active employees that have not logged into NetSuite recently.


NetSuite: Use SuiteQL to Access Accounting Periods
Here's a simple SuiteQL query that you can use to provide users with a list of accounting periods.


NetSuite: SuiteQL Query Tool Update (March 2021)
An update to the SuiteQL Query tool, a utility used to run SQL queries in NetSuite. This update adds support for displaying table information, including columns and joins, sourced from the Records Catalog API.


NetSuite: Use SuiteQL to Query for Leads
Learn how to use SuiteQL to query NetSuite for leads.


NetSuite: Use SuiteQL to Get Kit/Package Item Components
Learn how you can use SuiteQL to get a kit/package item's components.


NetSuite: SuiteQL Query Results Portlet
A portlet script that can be used to publish the results of SuiteQL queries on NetSuite dashboards.


NetSuite: Paginating SuiteQL Query Results
Learn how you can use Oracle's ROWNUM pseudocolumn to paginate the results of SuiteQL queries.


NetSuite: Use SuiteQL to Access Item Images in SuiteCommerce Advanced Accounts
Learn to use SuiteQL to query for item images in NetSuite accounts that are running SuiteCommerce Advanced.


NetSuite: Use the Records Catalog API to Get Database Information
Learn how you can use the API that powers the Records Catalog to extract information about a NetSuite account's database.


NetSuite: Use SuiteQL to Monitor Email
Learn how you can use SuiteQL queries to monitor outbound email messages, including undelivered messages.


2020


NetSuite: Using SuiteQL to Identify Empty Warehouse Bins
A SuiteQL query that can be used to identify empty warehouse bins.


NetSuite: Querying Transactions With SuiteQL
A deep dive into querying NetSuite transactions with SuiteQL. Learn how to join transactions to related tables (including transaction lines, entities, employees, etc), make use of functions, replicate the mainline search filter, and more.


NetSuite: Working With Dates and Times in SuiteQL Queries
An overview of the date and time related functions that are available for use in SuiteQL.


NetSuite: SuiteQL Queries for Analyzing Return Authorizations
Three SuiteQL queries that you can use to easily get the data needed to analyze return authorizations.


NetSuite: Use SuiteQL to Audit Outbound HTTP Requests
Learn how you can use SuiteQL to track all outbound HTTP requests being made from a NetSuite account.


NetSuite: Use SuiteQL to Analyze Inventory and Make Better Purchasing Decisions
Learn how you can use SuiteQL to get detailed inventory information, which can be used to make more informed purchasing decisions.


NetSuite: SuiteQL and Purchase Order Item Receipts
Learn to use SuiteQL to get purchase order item receipt data.


NetSuite: Use SuiteQL to Query Item Fulfillments and Pacejet Package Info
Learn how you can use SuiteQL to query Item Fulfillments and package information generated by Pacejet.


NetSuite: Analyze Logins with SuiteSQL
Learn how you can use SuiteQL to analyze login attempts, evaluate role usage, and more.


NetSuite: Use SuiteQL to Query for Matrix Items
Learn how you can use SuiteQL to query for matrix items, including parent and child items.


NetSuite: SuiteQL and Accounts Payable Aging
Learn how to use SuiteQL to get summarized and detailed accounts payable data.


NetSuite: SuiteQL and Accounts Receivable Aging
Learn how to use SuiteQL to get summarized and detailed accounts receivable data.


NetSuite: Inventory Balance History Suitelet
A free Suitelet that you can use to lookup an item's inventory balance history.


NetSuite: SuiteQL Queries for Sales Pipelines, Commissions, and Top Orders
Sales-related SuiteQL queries that you can be used to retrieve the data needed for reporting on sales pipelines, commissions, and top orders.


NetSuite: Use SuiteQL to Access Journal Entries and Determine GL Impact
Learn how you can use SuiteQL to get journal entries, and to determine a transaction's impact on the general ledger.


NetSuite: Access Employees, Supervisors, Roles, and Permissions Using SuiteQL
Learn how to use SuiteQL to get employees, supervisors, roles and permissions.


NetSuite: Administrator Password Policy Management Options
A quick overview of NetSuite's password policy management options.


NetSuite: Using SuiteQL to Retrieve Vendor and Accounts Payable Data
Learn how you can use SuiteQL to get vendor accounts payable balances, remittance addresses, vendor bills and credits, and more.


NetSuite: SuiteQL Query Tool (Updated)
An updated Suitelet that you can use to quickly run a SQL query in NetSuite. Adds support for saving and loading queries, exporting results, and more.


NetSuite: Using SuiteQL to Access Warehouse Bin Information
A review of SuiteQL queries that can be used to access warehouse bin information.


NetSuite: Using SuiteQL to Sync With A Product Information Manager (PIM)
A review of SuiteQL queries that you can use to provide product and vendor information to external systems.


NetSuite: Using SuiteQL to Provide Customer and Accounts Receivable Data
Learn how to use SuiteQL to get customer balances, sales reps, and shipping and billing addresses.


Thoughts on Xojo, FileMaker, and More
My thoughts on Xojo and FileMaker, possible alternatives, and the type of work that I'm doing today.


NetSuite: Use SuiteScript and SuiteQL to Work With the File Cabinet
Learn how you can use SuiteScript and SuiteQL to work with the File Cabinet, including querying it to get lists of folders and files, creating and deleting folders, uploading files, getting file contents, and more.


NetSuite: An Alternative to SuiteTalk REST's SuiteQL Support
Use a SuiteScript RESTlet to go beyond SuiteTalk REST's SuiteQL limit of 1,000 results per page.


NetSuite: Using SuiteQL and System Notes for Auditing and More
Learn how you can use SuiteQL to query a NetSuite instance's System Notes table to perform auditing, analysis of transactions, and more.


NetSuite: Retrieving Item Transactions With SuiteQL
An example of how you can use SuiteQL to get item transactions, including a running inventory balance.


NetSuite: SuiteQL Query Tool (Suitelet)
A Suitelet that you can use to quickly run a SQL query in NetSuite.


NetSuite: SuiteQL Built-In Functions Revisited
More information on SuiteQL "Built-In" functions, including the DF function.


NetSuite: SuiteQL and the File Cabinet
Learn how to use SuiteQL to query an instance's File Cabinet.


NetSuite: New Features Coming in 2020 Release 2
A summary of new features coming in NetSuite 2020 Release 2.


NetSuite: SuiteQL, the Transaction Table, Statuses, and Built-In Functions
A follow-up to yesterday's post on Implementing PromoStandards Using SuiteQL, and a deep dive into the NetSuite Transaction table, Statuses, and SuiteQL "Built-In" functions.


NetSuite: Implementing PromoStandards Using SuiteQL
An example of how you can use NetSuite's SuiteTalk REST Web Services "SuiteQL" support to implement PromoStandards-based Web services.


FM Publisher Preview
A preview of FM Publisher, a RapidWeaver stack that can be used to Web publish data stored in FileMaker databases.


NetSuite: Custom Financial Portal, Reports, and Charts
An overview of a NetSuite integration project that involves developing a custom financial portal with reports, charts, and more.


NetSuite: Airtable Embedded View Portlet
Learn how you can easily embed an Airtable view in NetSuite using a portlet.


NetSuite: SuiteQL Query Tool
Information about a browser-based tool that I've developed to make creating SuiteQL queries a little easier.


NetSuite / SuiteTalk REST Web Services: Putting SuiteQL to Work
An example of how you can put NetSuite's SuiteTalk REST Web Services "SuiteQL" support to work.


ServiceNow Asset Lookup App: A Case Study
Information about a custom ServiceNow integration solution that enables users to easily lookup asset information.


RapidWeaver / Airtable Embedded Forms
A technique for embedding Airtable forms in RapidWeaver-based sites.


FileMaker / ColdFusion Integration
Information about a FileMaker / ColdFusion integration project that I recently worked on, including ColdFusion custom functions that can be used to login, retrieve records, and logout via the FileMaker Data API.


ServiceNow / ColdFusion Integration
Information about a ServiceNow / ColdFusion integration project that I am working on, including a ColdFusion custom function that can be used to retrieve records via the ServiceNow Table API.


NetSuite / ColdFusion Integration
Information about a NetSuite / ColdFusion integration project that I recently worked on, with a custom function that can be used to call RESTlets.


ServiceNow Table API: Working With Comments and Work Notes
Learn how you can use the ServiceNow Table API to both retrieve and add comments and work notes to incidents and other records.


2019


Aloe XWS Released
Announcing the release of Aloe XWS, an open source Xojo module that has been specifically designed for developing Web services, APIs, microservices, and middleware.


Xojo in 2019: An Update
An update on Xojo, a cross-platform, rapid application development tool.


My Setup
The hardware, software, and services that I use for my development work.


Xojo Web Chat Released
Announcing the release of an open source Xojo-based Web Chat application.


NetSuite / SuiteScript: Get Configuration Information via a RESTlet (Follow-Up)
A RESTlet that you can use to provide configuration info.


NetSuite / SuiteScript: Get Configuration Information via a RESTlet
A RESTlet that you can use to provide configuration info.


NetSuite / SuiteScript: Client Side Form Validation & More
A simple SuiteScript that demonstrates how you can use a Client Script to handle form validation.


NetSuite Development Tip: XML Representation of Entity and Transaction Records
A helpful development tip to help identify fields, record types, and more.


NetSuite: Understanding Assembly Items, Kits, and Item Groups
A quick overview of Netsuite's support for assembly items, kits, and item groups.


NetSuite: Drop Shipments
A quick overview of how to handle drop shipments in NetSuite.


NetSuite / SuiteScript: Getting A Remote IP Address
Info on how to get the remote IP address of a user or client in a Suitescript.


NetSuite: Enabling SuiteScript
Instructions on enabling SuiteScript within a new NetSuite instance.


NetSuite: Writing Off Returned / Damaged Items
For NetSuite users, here are instructions on how you can write off returned items that are damaged.


Aloe for PHP
Announcing Aloe for PHP, a PHP microframework based on Aloe Express.


Xojo in 2019: What I'm Looking Forward To
There are a lot of great things coming to Xojo this year. Here's what I'm looking forward to.

About Me

Hello, I'm Tim Dietrich. I develop custom software for businesses that are running on NetSuite, including mobile apps, Web portals, Web APIs, and more.

I'm the developer of several popular NetSuite open source solutions, including the SuiteQL Query Tool, SuiteAPI, and more.

I founded SuiteStep, a NetSuite development studio, to provide custom software and AI solutions - and continue pushing the boundaries of what's possible on the NetSuite platform.

Copyright © 2025 Tim Dietrich.