Skip to end of banner
Go to start of banner

KeyPay - Employee Sync

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

Version 1 Current »

SUMMARY

When a Contact Record in Salesforce meets the requirement of having the Start Date At My Supports field with a value, on Save of the Contact Record a trigger will attempt to sync the record to Employment Hero.

You can see in Beyonnce’s Record below that Start Date At My Supports has been populated, this has triggered the sync to Employment Hero and has returned the Payroll ID value to Salesforce.

Other fields to note:

  • Employment Type - mandatory for Employment Hero or the sync process will fail.

  • Tax File Number - mandatory for Employment Hero or the sync process will fail.

  • EH Sync Status - status message returned from Employment Hero.

  • EH Last Sync Status - the last date that the record was synced to Employment Hero.

  • EH Sync Details - the full sync response from Employment Hero, this will contain errors if the sync failed.

Although this has synced successfully you can also note that the response from Employment Hero is that the 'Basic Details are incomplete'. Employment Hero requires Email and Mobile to be added on the Salesforce side and PayRun Defaults to be configured on the Employment Hero side.

If the Contact Record fails to sync, you'll see the error message in the EH Sync Details field. In the example below the record has failed to sync because no Tax File Number has been provided.

When an Employment End Date is entered in Salesforce, this updates the corresponding End Date field in Employment Hero.


TECHNICAL SPECIFICATION

A data service to activate new support workers in Employment Hero when they’re activated in Salesforce.

  • WHEN Start_Date_at_My_Supports__c is created/updated with a value in Salesforce

    • THEN create the Contact Record in Employment Hero.

  • WHEN any of the support values are updated on the Salesforce side.

    • THEN update the corresponding value in Employment Hero.

  • WHEN End_Date__c is entered on a Contact Record.

    • THEN update the termination_date on the corresponding record in Employment Hero.

https://api.keypay.com.au/australia/reference/employee/employee-activate--post-activate

https://api.keypay.com.au/australia/reference/employee/au-employee--post-employee

Employee Object in Employment Hero

{
    "anniversaryDate": "date-time",
    "australianResident": "boolean",
    "automaticallyPayEmployee": "string",
    "bankAccount1_AccountName": "string",
    "bankAccount1_AccountNumber": "string",
    "bankAccount1_AllocatedPercentage": "double",
    "bankAccount1_BSB": "string",
    "bankAccount1_FixedAmount": "double",
    "bankAccount2_AccountName": "string",
    "bankAccount2_AccountNumber": "string",
    "bankAccount2_AllocatedPercentage": "double",
    "bankAccount2_BSB": "string",
    "bankAccount2_FixedAmount": "double",
    "bankAccount3_AccountName": "string",
    "bankAccount3_AccountNumber": "string",
    "bankAccount3_AllocatedPercentage": "double",
    "bankAccount3_BSB": "string",
    "bankAccount3_FixedAmount": "double",
    "businessAwardPackage": "string",
    "claimMedicareLevyReduction": "boolean",
    "claimTaxFreeThreshold": "boolean",
    "closelyHeldEmployee": "boolean",
    "closelyHeldReporting": "string",
    "contractorABN": "string",
    "dateCreated": "date-time",
    "dateOfBirth": "date-time",
    "dateTaxFileDeclarationReported": "date-time",
    "dateTaxFileDeclarationSigned": "date-time",
    "emailAddress": "string",
    "emergencyContact1_Address": "string",
    "emergencyContact1_AlternateContactNumber": "string",
    "emergencyContact1_ContactNumber": "string",
    "emergencyContact1_Name": "string",
    "emergencyContact1_Relationship": "string",
    "emergencyContact2_Address": "string",
    "emergencyContact2_AlternateContactNumber": "string",
    "emergencyContact2_ContactNumber": "string",
    "emergencyContact2_Name": "string",
    "emergencyContact2_Relationship": "string",
    "employingEntityABN": "string",
    "employingEntityId": "string",
    "employmentAgreement": "string",
    "employmentType": "string",
    "endDate": "date-time",
    "externalId": "string",
    "firstName": "string",
    "gender": "string",
    "hasApprovedWorkingHolidayVisa": "boolean",
    "hasWithholdingVariation": "boolean",
    "homePhone": "string",
    "hoursPerDay": "double",
    "hoursPerWeek": "double",
    "id": "int32",
    "isEnabledForTimesheets": "string",
    "isExemptFromFloodLevy": "boolean",
    "isExemptFromPayrollTax": "boolean",
    "isSeasonalWorker": "boolean",
    "jobTitle": "string",
    "leaveAccrualStartDateType": "string",
    "leaveTemplate": "string",
    "leaveYearStart": "date-time",
    "locations": "string",
    "maximumQuarterlySuperContributionsBase": "double",
    "medicareLevyExemption": "string",
    "medicareLevyReductionDependentCount": "int32",
    "medicareLevyReductionSpouse": "boolean",
    "medicareLevySurchargeWithholdingTier": "string",
    "middleName": "string",
    "mobilePhone": "string",
    "otherTaxOffset": "boolean",
    "overrideTemplateRate": "string",
    "payConditionRuleSet": "string",
    "payRateTemplate": "string",
    "paySchedule": "string",
    "paySlipNotificationType": "string",
    "postalAddressIsOverseas": "boolean",
    "postalAddressLine2": "string",
    "postalCountry": "string",
    "postalPostCode": "string",
    "postalState": "string",
    "postalStreetAddress": "string",
    "postalSuburb": "string",
    "preferredName": "string",
    "previousSurname": "string",
    "primaryLocation": "string",
    "primaryPayCategory": "string",
    "rate": "double",
    "rateUnit": "string",
    "reportingDimensionValues": "string",
    "residentialAddressIsOverseas": "boolean",
    "residentialAddressLine2": "string",
    "residentialCountry": "string",
    "residentialPostCode": "string",
    "residentialState": "string",
    "residentialStreetAddress": "string",
    "residentialSuburb": "string",
    "rosteringNotificationChoices": "string",
    "seniorsTaxOffset": "boolean",
    "singleTouchPayroll": "string",
    "startDate": "date-time",
    "status": "string",
    "stslDebt": "boolean",
    "superFund1_AllocatedPercentage": "double",
    "superFund1_EmployerNominatedFund": "boolean",
    "superFund1_FixedAmount": "double",
    "superFund1_FundName": "string",
    "superFund1_MemberNumber": "string",
    "superFund1_ProductCode": "string",
    "superFund2_AllocatedPercentage": "double",
    "superFund2_EmployerNominatedFund": "boolean",
    "superFund2_FixedAmount": "double",
    "superFund2_FundName": "string",
    "superFund2_MemberNumber": "string",
    "superFund2_ProductCode": "string",
    "superFund3_AllocatedPercentage": "double",
    "superFund3_EmployerNominatedFund": "boolean",
    "superFund3_FixedAmount": "double",
    "superFund3_FundName": "string",
    "superFund3_MemberNumber": "string",
    "superFund3_ProductCode": "string",
    "superThresholdAmount": "double",
    "surname": "string",
    "tags": "string",
    "taxCategory": "string",
    "taxFileNumber": "string",
    "taxVariation": "double",
    "terminationReason": "string",
    "title": "string",
    "workPhone": "string",
    "workTypes": "string",
    "workingHolidayVisaCountry": "string",
    "workingHolidayVisaStartDate": "date-time"
}
MAPPING

EH FIELD

SF FIELD

NOTES

id

Employment_Hero_ID__c

account_email

Email

title

Salutation

role

Role__c

firstName

FirstName

lastName

LastName

middleName

MiddleName

address

MailingStreet + MailingCity + MailingState + MailingCountry + MailingPostalCode

known_as

Preferred_Name__c

jobTitle

Title

gender

Gender__c

country

nationality

maica__Country_of_Birth__c

dateOfBirth

Birthdate

emailAddress

Secondary_Email_Address__c

mobilePhone

Private_Mobile_Number__c

homePhone

HomePhone

employingEntityId

code

location

company_email

Email

company_mobile

MobilePhone

company_landline

Phone

start_date

Start_Date_At_My_Supports__c

termination_date

End_Date__c

primary_cost_centre

secondary_cost_centres

  • No labels