NetSuite comes with powerful standard features, but sometimes you need to add custom logic when users create, edit, or delete records. That’s where User Event scripts come in.
In this blog, we’ll walk through what User Event scripts are, when to use them, and how to write your very first example in SuiteScript 2.1.
📝 What is a User Event Script?
A User Event script runs on the server whenever a record is created, updated, deleted, or viewed.
👉 Think of it as a trigger that responds to record changes.
For example:
- Validate a field before saving a Sales Order.
- Auto-populate a field when a Customer is created.
- Prevent users from deleting important records.
⚡ When Do User Event Scripts Run?
User Event scripts can run at three different stages:
- beforeLoad – Runs when a record form is loaded (e.g., set default values or hide fields).
- beforeSubmit – Runs just before a record is saved (e.g., validate data, modify values).
- afterSubmit – Runs right after a record is saved (e.g., create related records, send notifications).
🛠️ Example: Auto-Set a Default Field on Customer Creation
Here’s a simple SuiteScript 2.1 User Event script that sets a default credit limit when a new customer is created:
/**
* @NApiVersion 2.1
* @NScriptType UserEventScript
*/
define(['N/record', 'N/log'], (record, log) => {
const beforeSubmit = (context) => {
try {
if (context.type === context.UserEventType.CREATE) {
let newRecord = context.newRecord;
// Set default credit limit if not provided
if (!newRecord.getValue('creditlimit')) {
newRecord.setValue({
fieldId: 'creditlimit',
value: 5000
});
log.debug('Credit Limit Set', 'Default credit limit of 5000 applied');
}
}
} catch (e) {
log.error('Error in beforeSubmit', e.message);
}
};
return { beforeSubmit };
});
📊 What This Script Does
- Runs on the Customer record.
- Triggers during the beforeSubmit stage.
- Checks if a credit limit is empty.
- Sets a default value of 5000.
✅ Best Practices for User Event Scripts
- Use beforeSubmit for validations and default values.
- Use afterSubmit for creating related records or sending notifications.
- Keep scripts lightweight to avoid performance issues.
- Always test in a sandbox before deploying to production.
- Add error handling and logging for debugging.
✅ Final Thoughts
User Event scripts are a great way to add custom business logic to NetSuite. By starting with small scripts like default field values or validations, you can quickly learn how to extend NetSuite’s functionality.
As you grow more confident, you can build more advanced scripts that automate tasks, enforce policies, and integrate with other systems.
Leave a comment