Connect NetSuite
The NetSuite admin's 20 minutes: features, the role, the integration record and the certificate.
Who does this: your NetSuite administrator. It takes about 20 minutes for each account. Do it in your sandbox first, then in production.
When it is done, Oh! Thyme imports your employees, projects and project tasks every night at 2:00 AM in your company's time zone, and sends approved hours back as time entries, one per person, day, project and task.
1. Enable the features#
In NetSuite, go to Setup > Company > Enable Features > SuiteCloud. Check REST Web Services and OAuth 2.0, then save.
2. Create the role#
Go to Setup > Users/Roles > Manage Roles > New and name it Oh! Thyme Integration. Give it these permissions and nothing else:
| Tab | Permission | Level |
|---|---|---|
| Transactions | Track Time | Full |
| Lists | Employees | View |
| Lists | Projects | View |
| Lists | Project Tasks | View |
| Lists | Customers | View |
| Setup | REST Web Services | Full |
| Setup | Log in using OAuth 2.0 Access Tokens | Full |
Save it, then assign the role to an integration employee. In a sandbox an existing admin user is fine.
3. Create the integration record#
Go to Setup > Integration > Manage Integrations > New. Name it Oh! Thyme. Under OAuth 2.0, check Client Credentials (Machine to Machine) Grant and the scope REST Web Services. Uncheck Token-Based Authentication and Authorization Code Grant.
Save, then copy the Client ID. NetSuite shows it only once.
4. Make and upload the certificate#
In Oh! Thyme, open Connectors > NetSuite, choose Make a certificate, then Download certificate. Oh! Thyme makes the key pair itself and keeps the private half sealed. Only the certificate, valid for two years, leaves it.
In NetSuite, go to Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup > Create New. Pick the employee from step 2, the role Oh! Thyme Integration and the application Oh! Thyme, and upload the certificate. Save, then copy the Certificate ID.
5. Add the Paycom employee code field, if you need it#
If the Paycom employee code is not already a field on the NetSuite employee, add a custom entity field: Customization > Lists, Records & Fields > Entity Fields > New, applied to Employee. Note its full ID, such as custentity_paycom_ee.
6. Save and test in Oh! Thyme#
Back in Connectors > NetSuite, enter the account ID (from Setup > Company > Company Information; a sandbox looks like 1234567_SB1), the client ID, the certificate ID and the custom field ID, then choose Save and test. The test reads one record with the integration role and says in plain words what to fix if NetSuite refuses: the wrong account, a certificate not uploaded, or a permission missing from the role.
After a sandbox refresh#
A sandbox refresh erases the integration record and the certificate mapping in the sandbox. Repeat steps 3 and 4 after each refresh. Production needs its own steps 3 and 4.
What happens next#
- The first import brings in employees with their department, first day and Paycom code, projects nested as they are in NetSuite, and project tasks. Tasks named for time off, such as "PTO: Sick", "Time off: Vacation" or "Vacation", become kinds of time off.
- New hires arrive with the nightly import.
- Approved time posts to NetSuite as time entries. Approved time off posts on its time off task once its day has come.
- Approvals in NetSuite are read back. A rejection there sends the day back to the person with a note.
Read more: NetSuite time entries, explained.