Paychex to JSM Assets

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:

  1. Create or confirm the target JSM Assets schema and object type.

  2. Prepare a Paychex OAuth application and credentials

  3. Configure an OnLink Assets Data Source and authenticate it with Paychex.

  4. Configure the API method, endpoint, response path, and pagination.

  5. Fetch sample data and map Paychex fields to Assets attributes.

  6. 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

  1. In OnLink, add an Assets Data Source.

  2. For the source documentation, enter the https://developer.paychex.com/documentation#tag/Company/operation/getCompanyWorkers

  3. Select Add, then select Parse to load the API definition.

  4. 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:

  1. Enter the Token URL, for example, https://api.paychex.com/auth/oauth/v2/token.

  2. Enter the Client ID.

  3. Enter the Client Secret.

  4. 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.

  1. Set Method to GET to retrieve People records.

  2. Set URL to https://api.paychex.com/companies/{companyId}/worker, replacing {companyId} with your Paychex company ID.

  3. Set Response data path to context.

  4. 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

Mapping

Purpose

key:workerId=Worker ID

Uses the Paychex worker workerId as the stable, unique key for matching and updating JSM Assets objects. See the Paychex Get Company Workers documentation.

map:employeeId=Employee Number

Maps the Paychex worker employeeId field to Employee Number, preserving the worker's employee number.

map:employementType=Type

Maps the Paychex worker employmentType field to Type, identifying whether the worker is full-time, part-time, or another employment type.

map:job.title=Job Title

Maps the Paychex worker job.title field to Job Title, containing the worker's job title.

map:name.preferredName=Name

Maps the Paychex worker name.preferredName field to Name, containing the worker's preferred name.

map:supervisor.workerId=Manager

Maps the Paychex worker supervisor.workerId field to Manager, identifying the worker's manager by their Paychex worker ID.

map:currentStatus.statusType=Status

Maps the Paychex worker currentStatus.statusType field to Status, indicating the worker's current employment status.

Mapping guidance

  • Define one stable, unique key: mapping, such as key: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

  1. Select Get Data to preview the records returned by Paychex.

  2. Confirm that the response contains the expected records and fields.

  3. Verify that each mapping points to the correct JSON field and Assets attribute.

  4. Confirm that the key field is present and unique in every record so existing objects can be updated reliably.

  5. 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.