π‘ Reflect can integrate data from any payroll or HRIS software, even if it does not have an API. In this guide, we explain how to collaboratively build a standardized, reliable, and automatable export format.
Objective and General Principle
The purpose of data integration is to allow Reflect to automatically receive HR data from your software on a daily or monthly basis, in order to update HR dashboards without manual intervention.
Our team of Data Engineers adapts the integration to your environment :
If your software has a REST API or native connection, Reflect connects to it directly.
If not, we work with you to define a standardized export to be generated from your software.
In both cases, the objective is to automate data transmission without manual intervention.
β οΈ The files produced must not be opened or modified. This ensures the absence of data entry errors and the reliability of HR indicators.
Expected transmission mode
You (or your integrator) generate the files in a standardized format defined with Reflect.
You upload the files to an SFTP server.
Reflect connects to this SFTP to retrieve files according to the agreed frequency.
β οΈ Reflect does not create/manage SFTP. We connect to the existing SFTP on the client or editor side.
The standard Reflect model
To facilitate the structuring of standardized exports from the new software, we provide you with an Excel template file called :
βReflect Custom Data - Template V3.xlsxβ containing seven tabs, each representing a type of HR data:
Employee : Employee demographic data.
Contract : Contractual data (job title, contract dates, etc.).
Career : Organizational data (division, department, etc.).
Management : Hierarchical data to identify managers.
Salary : Theoretical/contractual salary data.
Absence: Absence data.
Payroll : data corresponding to the pay slip.
This basic template is here to help you! It may not necessarily represent the exact standard expected for your new software.
We prefer to keep the original column names from the new source software. Furthermore, as some of the columns mentioned are not mandatory, the columns may change (some may be removed and others added) depending on the data that can be exported from the new source software.
π‘ Please note that this template can also be used directly as a CUSTOM Spreadsheet data source in Reflect, as long as it strictly respects the defined templates. You can find more details on this topic in this article.
Details of tabs and columns in the standard format
Each column in the template corresponds to a piece of expected data. It is essential to uniquely identify an employee using one of the following options :
An Employee ID, or personnel number
A professional email address
A combination of Last Name / First Name / Date of Birth, which may not be unique in certain rare cases
The following is a description of the fields in each tab:
Employee
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Unique HR identifier or Staff number | β |
| Professional email | β |
| Another local staff number | β |
| Last Name | β |
| First Name | β |
| Gender
| β |
| Nationality | β |
| Date of birth | β |
| Phone number | β |
Contract
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Legal entity / Parent company | β |
| Professional email | β |
| Effective date of the contract information change | β |
| Unique contract identifier (especially in case of multiple contracts) | β |
| Contractual FTE (Full-Time Equivalent). Figure between 0 and 1. For example, for a part-time employee: 0.5 | β |
| Job title | β |
| Contract type: Permanent, Fixed-term, Internship, etc. | β |
| Socio-professional category | β |
| Initial date of entry into the organization (if left then returned or if mobility) | β |
| Latest date of entry into the company or legal entity | β |
| Start date of the current contract | β |
| End date of the current contract (Blank in the case of an ongoing Permanent contract) | β |
| Hiring reason | β |
| Departure reason | β |
| Normalized departure type:
| β |
| End date of the first trial period | β |
| End date of the second trial period (if renewal) | β |
| Remote work status:
| β |
| Employee status (optional)
| β |
Career
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Unique HR identifier or Staff number | β |
| Professional email | β |
| Effective date of the career information change | β |
| The employee's department (or the closest equivalent). This field can be renamed in Reflect. | β |
| Free fields for anything related to the employee's organizational place. These fields can be renamed in Reflect. | β |
| The employee's workplace (or the closest equivalent). This field can be renamed in Reflect. | β |
| Free fields for anything related to the employee's location. These fields can be renamed in Reflect. | β |
| Career level / seniority / grade | β |
| Sub-level (if relevant) | β |
Management
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Unique HR identifier or Staff number | β |
| Professional email | β |
| Effective date of the management information change | β |
| Unique HR identifier or Staff number of the manager | β |
| Professional email of the manager | β |
| Last name of the manager | β |
| First name of the manager | β |
Salary
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Unique HR identifier or Staff number | β |
| Professional email | β |
| Effective date of the salary information change | β |
| Amount of the theoretical annual or monthly fixed salary - Base salary | β |
| Associated payment period: Year: annual salary Month: monthly salary | β |
| Amount of the theoretical annual or monthly Variable salary type | β |
| Associated payment period: Year: annual salary Month: monthly salary | β |
| Amount of the theoretical annual or monthly Bonus salary type | β |
| Associated payment period: Year: annual salary Month: monthly salary | β |
| Currency Code: EUR / USD / GBP... | β
|
Absence
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Unique HR identifier or Staff number | β |
| Professional email | β |
| Start date of the absence | β |
| End date of the absence | β |
| Number of days of absence. For a half-day absence: indicate 0.5 | β |
| Normalized absence type:
| β |
| Reason for absence in full: Paid leave, Sickness, etc. | β |
Payroll
Column | Description | Mandatory |
| Legal entity / Parent company | β |
| Unique HR identifier or Staff number | β |
| Professional email | β |
| β οΈ Date of the month concerning the payroll. In case of delayed payroll, you can choose to enter the previous month. | β |
| Amount of a payroll line item | β |
| Normalized pay type:
| β |
| Detail of the payroll line items | β |
| Detail of the payroll line items (if more precise) | β |
| Currency Code: EUR / USD / GBP... | β |
Customer Use Case Examples
Here are concrete cases where we have applied this method:
Internal HR Hub: Some of our clients use an internal HR hub which is not a standard tool. The data was integrated as a custom source, following our model.
Talentia: Working with the source software's internal teams, we adapted the exports to the Reflect model while keeping the original column names from the source software.
Cegedim: The software's native exports were combined with customized, tailor-made queries to adhere to our structure.
Download the Reflect template
Click here to download the βReflect Custom Data - Template V3.xlsxβ template.
Best practices
Never open or manually modify generated files.
Always include all defined columns in order, even if some values are empty.
Follow date formats (ISO: YYYY-MM-DD), currency codes, etc.
Use stable unique identifiers (not just names or emails).
If in doubt: contact the Reflect team to validate the format before sending.
