Skip to main content

Signify Payroll Connector for Sage

This document describes the integration process between Signify (V10) and SAGE 300 People with a specific focus on the API integration.

General business rules:

  1. In this case, SAGE is the source of the basic employee information.
  2. The integration job will be executed on the Signify V10 system and is usually scheduled to run during the night.
  3. Signify calls the SAGE APIs to obtain a bulk dataset with multiple fields and all employee records.
  4. If the expected record count of the dataset is expected to exceed 5,000, please liaise with a technical Signify consultant.
  5. Some of the fields in the dataset may be empty due to the fields not being populated in SAGE:
    a. In such cases:
          i.These fields can be maintained on the Signify system
          ii. Left blank, as the client may not require it
    b. If preferred, the client may choose to purchase additional modules in SAGE to maintain such fields in SAGE. It is, however, not a requirement as such fields can be maintained in Signify.
    c. Example: If OFO codes are required, the Skills module in SAGE is required, alternatively, these values can be maintained on the job profile in Signify.

Process business rules:

The integration process architecture is depicted in the image below:

image.png

  1. The integration process that is executed by the Signify system calls an API on the SAGE server to retrieve a dataset with all the employee records from SAGE.
  2. This dataset includes active employee records, as well as employee records for employees who were terminated during the previous [TBD] months.
  3. Optional: An option to provide a parameter to only return records that were changed in the last [X] days will help to limit the size of data to be pulled during the API request. This option must, however, allow for all records to be pulled.
  4. This dataset is stored in a staging table in the Signify system, from which the data transformation is done:
  • Employee number is used as the unique identifier and is used in the [EmployeeCode] and [Username] fields in Signify, where [Username] must be unique.
  • If an employee number does not exist in Signify (in the [Username] field), a new record is created in Signify.
  • If an employee number exists, the existing record is updated in Signify.
  • If Job and Position codes are available from SAGE:
    • If a job code and position code do not exist in Signify, a new job profile and linked position title are created in Signify.
  • If Job and Position codes are NOT available from SAGE:
    • If a job title and position title do not exist in Signify, a new job profile and linked position title are created in Signify.
    • This may cause unused job profiles to remain in Signify and may have to be cleaned up manually.
  • If Organisation unit codes are available in SAGE:
  • If an organisation unit does not exist in Signify, a new organisation unit is created in Signify.
  • The above means that all new appointments, terminations, and movements are made.
For additional information regarding the SAGE 300 People APIs:


http://documenter.getpostman.com/view/7078460/UVRBn6LC#db6e0efe-8d5d-4e1b-b0e7-c6de98410295

Who to involve:

  1. A Signify technical consultant will ensure that the above process is implemented from a Signify point of view.
  2. A SAGE technical consultant (usually a SAGE channel partner) must configure the API on the SAGE hosting environment.
  3. SAGE clients can choose if the way to use their channel partners to configure the necessary API process.
  4. Alternatively, Signify can connect the client or their channel partner with a SAGE technical consultant that Signify has partnered with on previous projects, and who can implement the process within a time effort of between 2 and 6 hours.
  5. The consultant will deploy a custom SQL script on the SAGE database.
  6. An SSL certificate must be purchased by the client and configured by the SAGE consultant.
  7. The SQL script is executed when the Generic SAGE API is called.
  8. The API is: http://{{HostName}}:{{APIPort}}/api/apibase/GenericGet/{{GenGetCodeAsSetupInPeople}}
  9. Below is the list of fields that are required and recommended. Fields with no comments are optional. To ensure complete information, even fields with no comment should be added if available in SAGE:

Field Name
Signify
Mandatory
EmployeeNumberUsernameY
IdNumberIdNumberAs per setup in Signify
GroupJoinDateStartDateY
TerminationDateEndDateAs per setup in Signify
TerminationReasonReasonForTerminationIf Terminated
PassportNumberPassportNumberAs per setup in Signify
EmployeeIdExternalIdAs per setup in Signify
CellNumberMobileNumberAs per setup in Signify
EmailEmailAddressAs per setup in Signify
FirstNameNameY
LastNameSurnameY
EmployeePositionIdJobExternalIdY
OrganizationPositionJobCodeY
OrganizationPositionJobTitleY
EmployeePositionIdPositionExternalIdY
OrganizationPositionPosCodeY
OrganizationPositionPosTitleY
DirectlyReportsEmployeeNumberLineManagerUsernameN
DirectlyReportsEmployeeNumberPerformanceManagerUsernameN
PositionTypeAppointmentTypeN
UploadCode (OrganizationUnit)Org Code Level 1-9Y
Description (OrganizationUnit)Org Name Level 1-9Y
OrganizationUnitId (OrganizationUnit)
Org Id Level 1-9Y
PassportNumber
PassportNumber
N
EmployeeId
PayrollId
Y
MiddleName
MiddleName
N
Initials
Initials
N
Title
Title
N
PreferredName
KnownAs
N
Language
HomeLanguage
N
Gender
Gender
N
Race
Race
N
Citizenship
Citizenship
N
MaritalStatus
MaritalStatus
N
WorkNumber
WorkNumber
N
HomeNumber
HomeNumber
N
Birthday
BirthDay
N
UnitNumber
ResidentialUnitNumber
N
Complex
ResidentialComplexName
N
StreetNumber
ResidentialStreetNumber
N
AddressLine1
ResidentialStreetName
N
AddressLine2
ResidentialSuburbDistrict
N
AddressLine3
ResidentialCityTown
N
AddressCountry
ResidentialCountry
N
Province
ResidentialProvince
N
AddressCode
ResidentialPostalCode
N
SameAsPhysical
UseResidentialAsPostal
N
UnitNumber
PostalUnitNumber
N
ComplexPostalComplexNameN
StreetNumber
PostalStreetNumber
N
AddressLine1
PostalStreetName
N
AddressLine2
PostalSuburbDistrict
N
AddressLine3
PostalCityTown
N
AddressCountry
PostalCountry
N
Province
PostalProvince
N
AddressCode
PostalCode
N
DisabledType
Disability
N
GroupJoinDate
StartDateInGroup
N