Paychex to JSM Assets
Paychex to JSM Assets: Technical Integration Guide
This guide provides step-by-step instructions for configuring OnLink to retrieve People data from the Paychex API and synchronize it with JSM Assets. It covers prerequisites, OAuth token, API request configuration, pagination, response validation, field mapping, import verification, and optional filtering.
Overview
OnLink retrieves Paychex API responses and maps each record to an object type in JSM Assets. The configuration uses key: to identify records and map: statements to populate Assets attributes. This guide uses the Paychex People API as an example; the same process applies to other resources when you select the appropriate endpoint and update the field mappings.
Follow these steps:
Create or confirm the target JSM Assets schema and object type.
Prepare a Paychex OAuth application and credentials
Configure an OnLink Assets Data Source and authenticate it with Paychex.
Configure the API method, endpoint, response path, and pagination.
Fetch sample data and map Paychex fields to Assets attributes.
Preview the result, correct any issues, and run the import.
Prerequisites
A JSM Assets schema and object type for the data you want to import.
OnLink installed and available from Manage your apps.
A Paychex OAuth application with a Client ID, Client Secret, Refresh Token, and access to the required API endpoints.
Permission in JSM Assets to configure data sources, mappings, and imports.
The Paychex API endpoint URL for the object type you plan to import.
Supported Paychex object types
This guide uses the Paychex People API as the example resource. To import another resource, such as time off, select its API endpoint, configure any required parameters, and map the returned JSON fields to the corresponding Assets attributes. Refer to the Paychex Documentation for resource-specific details.
1. Prepare Paychex credentials
Before configuring OnLink, create or obtain a Paychex OAuth client credentials with permission to access the endpoint and data you plan to import. Confirm the required scopes and authentication requirements in the Paychex Authentication
Work with your Paychex administrator to get OAuth Client ID and Client Secret.
2. Configure the OnLink data source
In OnLink, add an Assets Data Source.
For the source documentation, enter the https://developer.paychex.com/documentation#tag/Company/operation/getCompanyWorkers
Select Add, then select Parse to load the API definition.
Open the authentication settings and configure the OAuth values described below.
On the authentication page, select the OAuth configuration and enter the credentials from your Paychex OAuth application. Use the following values:
Enter the Token URL, for example,
https://api.paychex.com/auth/oauth/v2/token.Enter the Client ID.
Enter the Client Secret.
Save the authentication settings.
3. Configure the API request
Configure a GET request to retrieve records from the selected Paychex endpoint. The example below uses the People API. For another resource, replace the endpoint and update the response data path if the response structure differs. Documentation Link.
Set Method to
GETto retrieve People records.Set URL to
https://api.paychex.com/companies/{companyId}/worker, replacing{companyId}with your Paychex company ID.Set Response data path to
context.Leave other settings at their defaults unless the endpoint requires query parameters.
GET https://api.paychex.com/companies/{companyId}/worker
4. Retrieve and inspect sample data
Save the data source configuration and select Get Data to retrieve sample records from Paychex. Use the response to verify the endpoint, response data path, pagination structure, and exact field paths before creating the import mappings.
Sample response structure
{
"metadata": {
"contentItemCount": 1
},
"content": [
{
"workerId": "00H2A1IUKDU2H84400C9",
"employeeId": "105",
"workerType": "EMPLOYEE",
"employmentType": "FULL_TIME",
"exemptionType": "NON_EXEMPT",
"workState": "IL",
"birthDate": "1990-08-03T00:00:00Z",
"sex": "NOT_SPECIFIED",
"ethnicityCode": "WHITE_NOT_OF_HISPANIC_ORIGIN",
"hireDate": "2019-09-03T00:00:00Z",
"name": {
"familyName": "Walker",
"middleName": "L",
"givenName": "Paul",
"preferredName": "paul",
"preferredLastName": "wilkins",
"pronoun": "He/him/his"
},
"seniorityDate": "2020-05-20T00:00:00Z",
"profileImageURL": "https://cdn.url/demophotoid.jpg",
"legalId": {
"legalIdType": "SSN",
"legalIdValue": "888889999"
},
"laborAssignmentId": "970003437117733",
"locationId": "970003436212414",
"jobId": "970003585037029",
"job": {
"jobTitleId": "970003436212358",
"title": "Developer"
},
"organization": {
"organizationId": "970003163104801",
"name": "1 Branch 1 - north",
"number": "1",
"links": []
},
"supervisor": {
"workerId": "00H2A1IUK6G2MM6ET8JT",
"name": {
"familyName": "H",
"givenName": "Harshita",
"qualificationAffixCode": "Sr",
"titleAffixCode": "Rev"
}
},
"currentStatus": {
"workerStatusId": "00DWS906IMW2JSH8AQJ9",
"statusType": "ACTIVE",
"statusReason": "HIRED",
"effectiveDate": "2019-09-03T00:00:00Z"
},
"links": [
{
"rel": "self",
"href": "https://api.paychex.com/workers/00H2A1IUKDU2H84400C9"
},
{
"rel": "communications",
"href": "https://api.paychex.com/workers/00H2A1IUKDU2H84400C9/communications"
},
{
"rel": "supervisor",
"href": "https://api.paychex.com/workers/00H2A1IUK6G2MM6ET8JT"
}
]
}
]
}Configure pagination
Paychex API responses can be paginated using offset and limit features. You can adjust the default numbers that suits your environment.
5. Create the Assets import and configure field mappings
After the connection is established, create the Assets import by following the JSM Assets Data Synchronization guide.
Use the fetched sample response to identify the exact Paychex JSON field paths, then map those fields to the corresponding JSM Assets attributes. Define a stable, unique value with the key: mapping so OnLink can match existing objects and update them instead of creating duplicates.
Mapping | Purpose |
|---|---|
| Uses the Paychex worker |
| Maps the Paychex worker |
| Maps the Paychex worker |
| Maps the Paychex worker |
| Maps the Paychex worker |
| Maps the Paychex worker |
| Maps the Paychex worker |
Mapping guidance
Define one stable, unique
key:mapping, such askey:employee_number=Employee Number, so OnLink can match records during subsequent synchronizations.Add a
map:statement for each TriNet field that you want to store in the target Assets object type.Compare the Paychex sample JSON with the Assets object type attributes before running an import.
If a value is nested in the JSON response, inspect the sample output carefully and use the field path supported by the OnLink mapping configuration.
6. Validate and run the import
Select Get Data to preview the records returned by Paychex.
Confirm that the response contains the expected records and fields.
Verify that each mapping points to the correct JSON field and Assets attribute.
Confirm that the key field is present and unique in every record so existing objects can be updated reliably.
Run the import only after the preview and mappings are correct.
Optional filtering
Use query parameters to limit the records returned by the selected Paychex endpoint. Confirm that the endpoint supports the parameter before adding it to the OnLink request.
For example, to retrieve only active workers, add status=ACTIVE as a query parameter. Select Get Data again and confirm that every returned record meets the intended filter.
Before saving the data source, review the endpoint, OAuth configuration, response data path, pagination settings, field mappings, and query parameters. Save the configuration only after the preview returns the expected records and the key and mapped attributes are correct.