Proposal summary
This proposal summarizes the functionality for integrating Drawinbox with NetSuite.
Requirement
To integrate the employee data from Darwinbox with NetSuite. Periodically retrieve employee data from Darwinbox and create an internal ID in NetSuite using the employee data. After being created, the internal ID will update in the corresponding Darwinbox employee records.
Our Solution
- We will connect Darwinbox and NetSuite with the aid of a NetSuite schedule-based suite script. This will be done by utilising the provided API by the Darwinbox technical support team.
- In NetSuite, we’ll write a map-reduce script. In a day, this script will run twice.
- Every time it is run, the script will retrieve all employee record from Darwinbox. The Fetch Employee Data (Full Load) API endpoint will be used to retrieve the employee record.
- The script will go through each employee record one at a time after receiving the employee payload from Darwinbox.
- The script will check each employee’s company email address before generating an internal ID in Netsuite. This will be used as a unique reference to determine whether this employee record is present or not.

- If any employee uses the same email address, we will locate the NetSuite internal ID and update the Darwinbox employee record with this internal id.
- If there isn’t an employee with Drawinbox email address, the payload details will be used to create new employee record in Netsuite. The internal ID will be generated in Netsuite after an employee is created, and it will be stored in Darwinbox.
- We’ll use the Update Employment Details endpoint to update the employee record.
- Once Darwinbox has successfully synced. In order to acknowledge that the employee sync was successful, we will flag the Netsuite employee record.
- In Netsuite, we will create a checkbox field for flagging the employee record. This checkbox will become true following a successful update.
Assumptions
- We will integrate active and inactive employees with Netsuite. If employee is inactive we will make inactive field in employee record is true.
- After the initial script execution, we will use Fetch Employee Data (Date of Activation) endpoint for fetching the employee data from Darwinbox.
- By using the Fetch Employee Data (Date of Activation) endpoint we assume the API response will display limited employees created after a certain time. We will set the time period to 4 days before the script execution. This will help us to reduce data for processing and better script performance.
Questions
Questions to exceedance NetSuite team
- We have added Drawinbox employee payload details below, How can we create an employee by using this employee ail. Could you please guide the field mapping across the NetSuite and Darwinbox.
Sample employe object from the result:
{
“employee_id”: “”,
“full_name”: “”,
“company_email_id”: ,
“direct_manager_name”: “”,
“direct_manager_employee_id”: “”,
“job_level”: “”,
“date_of_joining”: “”,
“date_of_exit”: “”,
“group_company”: “”,
“work_area_code”: “”,
“departments_hierarchy”: “”
}
- Could you please suggest, when creating a new employee in NetSuite, where we can store these values in etSuite?
Example mapping:
– Darwinbox “full_name” is the “Name” field value in NetSuite.
– Darwinbox “company_email_id” is the “Email” field value in NetSuite.
- Could you please provide the mapping for the Darwinboxld with Netsuite field accordingly?
| Darwinbox | NetSuite |
| full_name | Name |
| company_email_id | |
| employee_id | – |
| direct_manager_name | – |
| direct_manager_employee_id | – |
| job_level | – |
| date_of_joining | – |
| date_of_exit | – |
| group_company | – |
| work_area_code | – |
| departments_hierarchy | – |
Questions to Darwinbox technical team
- In which field in Darwinbox, we can add the Netsuite created Internal ID?
- We used the Update Employee Record endpoint for updating the employee record.
API call sample:
- The API call returns the success response, but changes not reflect in the Fetch Employee Data (Full Load) API result. Kindly share your thought?

- We assume that the payload returned by the Fetch Employee Data (Date of Activation) endpoint contains the most recent updated information about activated employees. This will be used as a date filter, and Darwinbox will return the employee result based on this date. Is that accurate?