Customer loyalty programs are not just about rewards. They directly impact repeat purchases, customer lifetime value, and retention. If you are using NetSuite, you can design a flexible loyalty points system without relying on disconnected tools.
This guide walks you through how to build a loyalty points system inside NetSuite step by step, using native features and light customization.
Why Build a Loyalty Program in NetSuite?
Managing loyalty outside your ERP creates data silos. Orders, customers, and rewards live in different systems, making it harder to track performance.
With NetSuite, you can:
- Track points directly against customer records
- Automate reward calculations based on transactions
- Use real-time data for personalized offers
- Maintain a single source of truth
Requirements to Design Loyalty Points in NetSuite
Before creating a loyalty points system in NetSuite, you must know the requirements below:
Creating Two Accounts:
- Loyalty Points Account
- Other Payable Account
Creating Discount Item(s):
- Lists –> Accounting –>Items –> new –> Discount
- Choose an item name of your choice.
- Create a script parameter for the loyalty percentage. This is the percentage at which you will be giving loyalty points
- Create a script parameter for the validity (in months). This is the expiration time of the loyalty points
Important Workflows in Creating a Loyalty Point System in NetSuite
The loyalty points system basically has three major flows:
- Credits/Loyalty Points Earned: This calculation will be done in your User-Event Script.
- Get the total of your transaction
- If you want to exclude tax, then use the value of the field ‘subtotal’, otherwise, use ‘total’ field’s value
- Subtract the discount from the total to get the actual amount
- Calculate loyalty points by multiplying the actual amount with the loyalty percentage you had set
- Save the credits earned info in a custom record
- Pass the credits earned journal entry as
- Debit the points in the Loyalty account
- Credit the points in the Other Payable account
- Put the credits earned journal entry in your transaction body field.
- Get the total of your transaction
- Credits/Loyalty Points Redemption:
- Check if the customer has loyalty points available for redemption
- Check in the custom record
- If loyalty points are available
- Assign the discount item you created in the ‘discountitem’ field of your transaction
- Set the loyalty points available for redemption in the ‘discount rate’ field of your transaction
- Mark the used loyalty points/credits
- Pass the reverse journal entry
- Credit the points redeemed in the Loyalty account
- Debit the points redeemed in the Other payable account
- Put the credits earned journal entry on your transaction body field.
- Check if the customer has loyalty points available for redemption
- Write a schedule script that runs daily to mark the loyalty points/credits that have expired
Stuck on a Point?
If you’re facing issues while setting up your loyalty points system in NetSuite, you’re not alone. From configuring custom fields to automating point calculations and redemption logic, even small gaps in setup can impact accuracy and performance.
Sometimes, it comes down to missing a field, incorrect script logic, or a workflow that isn’t triggering as expected. Identifying and fixing these issues early helps you avoid larger problems down the line.
If something isn’t working as expected, it’s always a good idea to review your setup step by step or get expert guidance to ensure everything runs smoothly.
NetSuite Alliance Partner
Working with a NetSuite Alliance Partner can simplify the process of designing and implementing a loyalty points system tailored to your business.
An experienced partner can help you:
- Design a scalable loyalty program aligned with your business model
- Implement custom workflows, scripts, and automation without errors
- Integrate third-party loyalty platforms if needed
- Optimize performance and ensure data accuracy
With the right support, you can move beyond basic setups and build a loyalty system that drives real customer engagement and repeat revenue.