This guide provides a technical walkthrough on synchronizing employee data from NetSuite to Assets.
When a new employee is added to NetSuite, their data (Department, Manager, Location) automatically syncs to Assets. Automation rules can then trigger:
Hardware Provisioning: Laptops assigned based on "Job Title."
Access Rights: Software licenses granted based on "Department."
Offboarding: Immediate asset reclamation tickets generated when an employee is marked "Inactive" in NetSuite.
People changes happen all the time - role changes, name updates, promotions, joiners and leavers. When an agent opens a ticket, having the right information enables faster resolution and an improved employee experience.
We will use OnLink to import NetSuite data to Assets. Here is the steps to enable the integration:
Navigate to OnLink in your Jira instance (found under "Manage your apps" or the Apps menu).
Go to the Connections tab.
Select Create New Connection.
Choose the "Other HR" option and select Netsuite from the dropdown.
Enter your NetSuite credentials and API details to authorize the connection.
Once connected, you must define the target destination for the data.
Go to the OnLink app main menu.
Select the Import Configuration tab.
Choose your NetSuite Connection as the source.
Select your target Object Schema in JSM Assets (e.g., "IT Employee Assets").
Select the specific Object Type you are populating (e.g., "Employees").
This is the critical configuration step. You will map NetSuite JSON fields to your JSM Assets Attributes using specific syntax.
The Syntax:
key: (Mandatory) Used for the unique identifier (Primary Key). OnLink uses this to match existing records and update them rather than creating duplicates.
map: Used for standard text or value attributes.
config: Used for special configurations, like expanding related objects.
Example Configuration: Copy and paste the following into the mapping configuration text area, adjusting the right-side values to match your specific Asset Attribute names:
key:id=Employee ID
map:firstName=First Name
map:lastName=Last Name
map:email=Email
map:phone=Phone Number
map:title=Job Title
map:hireDate=Start Date
config:expand=job,location
Pro Tip: The
config:expand=job,locationline is essential if you want to pull in related data like the employee's Job Role or Office Location objects, rather than just their top-level profile data.
Scenario:
Sarah moves from the Marketing department to Engineering.
Without Integration:
Sarah requests a high-performance laptop. IT denies it because their records still show her in Marketing. Sarah emails HR. HR emails IT. IT updates the record manually. 3 days lost.
With OnLink NetSuite Integration:
NetSuite Update: HR updates Sarah’s department to "Engineering" in NetSuite.
OnLink Sync: The integration detects the change. It uses the key:id to find Sarah’s object in JSM Assets and updates the Department attribute to "Engineering."
JSM Automation: A JSM Automation rule detects Object Updated: Department = Engineering.
Result: The system automatically approves her request for a developer laptop because her user object now matches the eligibility criteria.
Detailed Mapping for this Use Case:
| NetSuite Field | Mapping Type | JSM Asset Attribute | Description |
id |
key: |
NetSuite ID |
Unique Key to identify Sarah. |
email |
map: |
Email |
Used to match her Jira User. |
department |
map: |
Department |
The critical field. Updates automatically when HR changes it. |
location |
map: |
Office Location |
Ensures shipping to the right desk. |
Once OnLink is syncing NetSuite data, you can set up a automation rule in Jira Service Management.
1. Trigger: Object Updated
Schema: IT Employee Assets (Your Schema Name)
Object Type: Employees
AQL condition: Status WAS "Active" AND Status CHANGED TO "Inactive"
Note: This ensures the rule only runs when the status actually flips, preventing duplicate tickets.
2. Condition: Object Match
You can add a condition to check if they have assigned assets.
AQL: outboundReferences HAVING objectType = "Laptops"
3. Action: Create Issue
Project: IT Service Desk
Issue Type: Service Request
Summary: OFFBOARDING: {{object.Name}} - ({{object.Department}})
Description:
The following employee has been marked Inactive in NetSuite.
Employee: {{object.Name}}
ID: {{object.Employee ID}}
Manager: {{object.Manager.Name}}
Current Assigned Assets:
{{#object.outboundReferences}}
* {{Name}} ({{Status}})
{{/}}
Please initiate equipment reclamation immediately.
Q: How often does OnLink sync data from NetSuite to Assets? A: OnLink allows you to configure scheduled imports. Common setups run daily or hourly depending on how frequently your HR data changes.
Q: Does this integration support custom fields from NetSuite? A: Yes. As long as the custom field is exposed via the NetSuite REST API, you can map it using the map:yourCustomField=AssetAttribute syntax in OnLink.
Q: What happens to the Asset object when an employee leaves the company? A: If the employee status changes to "Inactive" or "Terminated" in NetSuite, OnLink will update the mapped Status attribute in Assets. You can then use Automation to trigger offboarding tickets or archive the asset object.
Q: Can I import related objects like Locations or Departments? A: Yes. Use the config:expand command in your mapping (e.g., config:expand=location) to fetch related object details. You may need to set up separate object types for Locations and Departments in JSM Assets first for the cleanest data structure.
Q: Where can I find the list of available NetSuite fields? A: You can view the JSON definition of the Employee record in the NetSuite REST API Browser.
Prabhu Palanisamy _Onward_
President
Onward
Ashburn, VA
3 accepted answers
0 comments