Manage Employee Data
The UpsertEmployeeRequest
API allows you to manage comprehensive employee data in a single request. This includes personal details, employment details, wage information, teaching disciplines, and synchronization with Point of Sale (POS) systems. All related data is embedded within this single request, ensuring that employee records are consistent and up to date across all systems.
UpsertEmployeeRequest Object
General Employee Information
Id (ulong?): Unique identifier for the employee. Use
null
to create a new employee.PosIdentifier (string?): Unique identifier for the employee in the POS system.
PayrollIdentifier (string?): Primary payroll identifier.
PayrollSecondaryIdentifier (string?): Secondary payroll identifier.
Status (int?): Employment status (e.g., 1 for active).
FirstName (string): Employee's first name.
MiddleName (string?): Employee's middle name.
LastName (string): Employee's last name.
PreferredName (string?): Employee's preferred name.
DateOfBirth (DateTime?): Employee's date of birth in
YYYY-MM-DD
format.IsSupervisor (bool?): Indicates if the employee is a supervisor.
SupervisorEmployeeId (ulong?): ID of the supervisor.
GenderName (string?): Employee's gender.
GenderPronoun (string?): Employee's preferred pronouns.
PhoneNumber (string): Contact phone number.
Email (string): Email address.
AddressCountry (string): Country in the employee's address.
AddressState (string): State or region in the employee's address.
AddressStreetNumberAndName(string): Street address.
AddressCity (string): City in the employee's address.
AddressZip (string): ZIP or postal code.
Lift, Media, and RFID Pass Information
LiftPassId (string): ID for the employee’s lift pass.
MediaPassId (string): ID for the media pass.
RFIDPassId (string): ID for the RFID pass.
Teaching Information
TeachingDisciplineIds (List<uint>): List of discipline IDs representing subjects taught.
MaxAbilityLevelIds (List<uint>): List of maximum ability level IDs for various disciplines.
Employment Details (UpsertEmploymentRequest
)
UpsertEmploymentRequest
)JobTitleId (uint): Unique ID for the job title.
EmploymentTypeId (uint): Unique ID for the employment type.
StartDate (DateOnly?): Start date of employment (formatted as
YYYY-MM-DD
).EndDate (DateOnly?): End date of employment, or
null
if ongoing (formatted asYYYY-MM-DD
).TeachingWageHourly (double): Hourly wage for teaching roles.
NonTeachingWageHourly (double): Hourly wage for non-teaching roles.
TrainingWageHourly (double): Hourly wage for training roles.
PrivateRequestWageHourly (double): Hourly wage for private requests.
WageTeachingPositionId (string?): Position ID for teaching wage.
WageNonTeachingPositionId (string?): Position ID for non-teaching wage.
WageTrainingPositionId (string?): Position ID for training wage.
POS Person Data (UpsertPOSPersonRequest
)
UpsertPOSPersonRequest
)POSGenderCode (string?): POS-specific gender code. Overrides existing settings in flaik.
POS Employee Data (UpsertPOSEmployeeRequest
)
UpsertPOSEmployeeRequest
)PosEmployeeIdentifier (string): POS-specific employee identifier.
PosEmployeeTypeCode (string): POS-specific employee type code.
PosEmployeeDepartmentCode (string): POS-specific employee department code.
PosEmployeeResortCode (string): POS-specific employee resort code.
PosEmployeeStatusCode (string): POS-specific employee status code.
POS Instructor Data (UpsertPOSInstructorRequest
)
UpsertPOSInstructorRequest
)PosInstructorSupervisorUniqueIdentifier (string?): Unique identifier for the instructor's supervisor in POS. If not set, defaults to the supervisor ID from the top-level object.
PosProfileStatus (uint): Instructor profile status in POS. Setting this to anything other than
1
deletes the profile in RTP.PosInstructorLocationCode (string?): Location code for the instructor in POS.
PosInstructorLessonLocationCode (string?): Lesson location code for the instructor in POS.
PosInstructorPriorityRanking (string?): Priority ranking for the instructor in POS.
PosInstructorDisciplines (Dictionary<string, string>): Overrides teaching disciplines. Format is keyed by
DisciplineCode
andMaxAbilityLevelCode
.
Upsert Actions
ActionUpsertInFlaik (bool): Upserts the record in flaik if true.
ActionUpsertPOSPerson (bool): Synchronizes the person record with the POS if true.
ActionUpsertPOSEmployee (bool): Synchronizes the employee record with the POS if true.
ActionUpsertPOSInstructor (bool): Synchronizes the instructor record with the POS if true.
Webhook
WebHookUrl (string?): URL to receive the result of this request via POST.
Example Usage
bashCopy codecurl -X POST https://api.flaik.com/upsertEmployee \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"Id": null,
"PosIdentifier": "POS123",
"PayrollIdentifier": "PR456",
"PayrollSecondaryIdentifier": "PR789",
"Status": 1,
"FirstName": "John",
"MiddleName": "A",
"LastName": "Doe",
"PreferredName": "Johnny",
"DateOfBirth": "1985-05-15",
"IsSupervisor": true,
"SupervisorEmployeeId": 12345,
"GenderName": "Male",
"GenderPronoun": "He/Him",
"PhoneNumber": "123-456-7890",
"Email": "[email protected]",
"AddressCountry": "USA",
"AddressState": "CA",
"AddressStreet": "123 Main St",
"AddressCity": "Los Angeles",
"AddressZipCode": "90001",
"LiftPassId": "LP1001",
"MediaPassId": "MP1002",
"RFIDPassId": "RFID1003",
"TeachingDisciplineIds": [1, 2],
"MaxAbilityLevelIds": [3, 4, 5],
"ActionUpsertInFlaik": true,
"ActionUpsertPOSPerson": true,
"ActionUpsertPOSEmployee": true,
"ActionUpsertPOSInstructor": false,
"WebHookUrl": "https://yourserver.com/webhook",
"UpsertEmployment": {
"JobTitleId": 101,
"EmploymentTypeId": 202,
"StartDate": "2023-11-01",
"EndDate": null,
"TeachingWageHourly": 35.00,
"NonTeachingWageHourly": 25.00,
"TrainingWageHourly": 20.00,
"PrivateRequestWageHourly": 50.00,
"WageTeachingPositionId": "T01",
"WageNonTeachingPositionId": "NT01",
"WageTrainingPositionId": "TR01"
},
"UpsertPOSPerson": {
"POSGenderCode": "1"
},
"UpsertPOSEmployee": {
"PosEmployeeIdentifier": "EMP123",
"posGovernmentId": "string",
"PosEmployeeTypeCode": "10",
"PosEmployeeDepartmentCode": "12345",
"PosEmployeeResortCode": "42",
"PosEmployeeStatusCode": "1" // RTP 1 = Active , 2 = Inactive
},
"UpsertPOSInstructor": {
"PosInstructorSupervisorUniqueIdentifier": "SUP123",
"PosProfileStatus": 1,
"PosInstructorLocationCode": "LOC001",
"PosInstructorLessonLocationCode": "LES001",
"PosInstructorPriorityRanking": "High",
"PosInstructorDisciplines": {
"Ski": "Advanced",
"Snowboard": "Intermediate"
}
}
}'
This example demonstrates how to manage all aspects of an employee’s data, including personal details, employment information, wage information, and POS synchronization, in a single API call.
Example Payload to update a Person/Employee in RTP|One
This request will find the profile in your POS identified by the code "3522688".
It will update all the details for the person object including Name, DoB, Phone, Address and Email.
It will Add or Update an "Employee Profile" as well as an "Alternate Profile" with the details in UpsertPOSEmployee.
It will NOT update any details in the flaik SRS solution as "actionUpsertInFalik" is set to false.
```json
{
"posIdentifier": "3522608", // This is the POS identifier of the employee that you want to update. If excluded or null, a new employee will be created.
"firstName": "firstName",
"middleName": "middleName",
"lastName": "lastName",
"preferredName": "preferredName",
"dateOfBirth": "1994-08-19",
"email": "[email protected]",
"phoneNumber": "6041234567",
"addressCountry": "USA",
"addressState": "CA",
"addressStreetNumberAndName": "218 testing st",
"addressCity": "testtown",
"addressZip": "90210",
"actionUpsertInFlaik": false,
"actionUpsertPosPerson": true,
"actionUpsertPosEmployee": true,
"actionUpsertPosInstructor": false,
"webHookUrl": null,
"UpsertPOSPerson": {
"POSGenderCode": "1"
},
"UpsertPOSEmployee": {
"PosEmployeeId": "EMP123", // Employee ID from HRIS
"PosGovernmentId": "123EMPL", // In RTP was intended as SIN -> most resorts place the Emp ID here. Must be unique
"PosEmployeeTypeCode": "500",
"PosEmployeeDepartmentCode": "70115",
"PosEmployeeResortCode": "35",
"PosEmployeeStatusCode": "1"
}
}
```
Last updated
Was this helpful?