Paylocity to JSM Assets

Paylocity to JSM Assets

Import list of employees from Paylocity to JSM Assets.

Configure the connection to Paylocity by going to OnLink (Manage your apps) - Connections. Then click on Add System and select “Paylocity” option in the connection screen. You can follow the instructions from this page Paylocity API.

Once connection is established, please review instructions here to get started with setting up an Assets import configuration. You can then access OnLink app from the “Manage your apps” menu to further configure and set the field level mapping. Here’s an example mapping configuration to fetch employees:
API Documentation Link https://developer.paylocity.com/integrations/reference/get_corehr-v1-companies-companyid-employees

key:id=id map:info.firstName=First Name map:info.lastName=Last Name map:info.email=Email map:info.jobTitle=Job Title map:info.supervisor=Manager Name map:info.hireDate=Hire Date

Here’s a breakdown of some of the mapping configuration items:

Key or Map

Description

Key or Map

Description

key:id=id

The keyword “key” refers to using id as a unique identifier. This allows OnLink to update the record. “id” is a text attribute.

map:info.firstName=First Name

Maps firstname to First Name text attribute

map:info.supervisor=Manager Name

Maps supervisor to Manager Name text attribute

Default is Get Employees

Use this config to pull list of employees

Any fields from the API can be mapped.

{
"totalCount": 0,
"employees": [
{
"id": "string",
"companyId": "string",
"relationshipId": "string",
"lastName": "string",
"displayName": "string",
"status": "string",
"statusType": "string",
"currentStatus": {
"status": "string",
"statusCode": "string",
"statusType": "string",
"effectiveDate": "2025-12-09T00:51:22.580Z",
"changeReason": "string",
"changeReasonCode": 0,
"additionalProp": {}
},
"info": {
"firstName": "string",
"lastName": "string",
"displayName": "string",
"middleName": "string",
"preferredName": "string",
"suffix": "string",
"address": {
"address1": "string",
"address2": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"country": "string",
"county": "string",
"additionalProp": {}
},
"homePhone": "string",
"mobilePhone": "string",
"personalEmail": "string",
"ssn": "string",
"dateOfBirth": "string",
"maritalStatus": "string",
"ethnicityRace": "string",
"gender": "string",
"hireDate": "2025-12-09T00:51:22.580Z",
"adjustedSeniorityDate": "2025-12-09T00:51:22.580Z",
"eligibleforRehire": true,
"supervisorCo": "string",
"supervisor": "string",
"isSupervisor": true,
"reviewerCo": "string",
"reviewer": "string",
"jobTitle": "string",
"eeoClass": "string",
"wcc": "string",
"shift": "string",
"clockBadge": "string",
"payGroup": "string",
"otExempt": true,
"tipped": "string",
"minWageExempt": true,
"workLocation": {
"address": {
"address1": "string",
"address2": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"country": "string",
"county": "string",
"additionalProp": {}
},
"phone": "string",
"phoneExt": "string",
"mobilePhone": "string",
"email": "string",
"additionalProp": {}
},
"additionalProp": {}
},
"currentPayRate": {
"baseRate": 0,
"defaultHours": 0,
"salary": 0,
"payFrequency": "string",
"payGrade": "string",
"annualSalary": 0,
"ratePer": "string",
"effectiveDate": "2025-12-09T00:51:22.580Z",
"beginCheckDate": "string",
"isAutoPay": true,
"payType": "string",
"additionalProp": {}
},
"position": {
"effectiveDate": "2025-12-09T00:51:22.580Z",
"changeReason": "string",
"costCenter1": "string",
"costCenter2": "string",
"costCenter3": "string",
"employeeType": "string",
"positionCode": "string",
"positionDescription": "string",
"careerLevelCode": "string",
"careerLevelDescription": "string",
"positionFamilies": [
{
"code": "string",
"description": "string",
"name": "string",
"additionalProp": {}
}
],
"additionalProp": {}
},
"futurePayRates": [
{
"salary": 0,
"payFrequency": "string",
"changeReason": "string",
"annualSalary": 0,
"effectiveDate": "2025-12-09T00:51:22.580Z",
"beginCheckDate": "string",
"isAutoPay": true,
"payType": "string",
"payRateDescription": "string",
"additionalProp": {}
}
],
"additionalProp": {}
}
],
"additionalProp": {}
}

Config

config:filter=activeOnly

config:max_loops=10

config:api=costCentersAndLevels // default is employees

You can then call “Fetch Sample” to view the structure of the API response and map the relevant fields.

OnLink processes data in two steps - Get Data and Import Data. To manually test, you can click on Get Data first and then wait until you see “No more pending records. Data will be imported on next Import run.” message in Job Logs. Then, click on Import. Production runs are fully automated based on the schedule you choose.

image-20240318-045922.png