The generic SFTP integration allows you to sync data using the SFTP protocol, enabling clients using Global Payroll to integrate Deel with virtually any HRIS system without the need to build a custom integration.
With the SFTP integration, you'll be able to sync:
In this article
Before you begin
To set up the SFTP integration, you'll need:
- The credentials of an SFTP server where data is exported from your HRIS system
- A Deel user with one of the following roles:
- Org admin
- Integrations admin
- Integrations admin-People
Configure export data
Set your HRIS system so that it exports data to the FTP organized in the following files, and follow a semi-colon (;) separated CSV
format.
Unless otherwise indicated, make sure that the order and name of the columns in the export files match the format outlined in the following sections. Sync will fail if the data files don't match the expected format.
We also recommend allowing connections from Deel's public IP addresses to ensure that the integration works correctly.
Pay groups file
One of the files needed to sync data properly contains pay group information. You can use the prefix entities
for the file, or a custom prefix you prefer.
For sync to complete successfully, make sure that the file has the following columns:
companyId;companyName
12345; Acme Corp Spain
Where:
Value | Description | Format | Required |
---|---|---|---|
companyId |
Unique identifier for the pay group. It can be any alphanumeric sequence. For example, UK . |
String | Yes |
companyName |
The pay group display name, used in the UI when setting up the entities. | String | Yes |
Employee data file
One of the files needed to sync data properly contains all the employee data. You can use the prefix employees
for the file, or a custom prefix you prefer.
This file must contain all the information about your employee that you want to sync, both global and country-specific. The following is an example that contains columns for the basic mapping data that Deel expects, but you can customize the exported columns to your need, because you will map it to Deel-specific fields later, when you set up the integration.
employeeNumber;addressLine1;mobilePhone;firstName;lastName;country;city;jobTitle;jobEffectiveDate;workEmail;startDate;fte;employmentType;employmentEffectiveDate;payGroupId;contractEndDate;compensationRate;zip;state;addressLine2;compensationEffectiveDate;compensationPaidPer
1;65, Rue Victor Hugo, 75001 Paris;75001;Jessica;Berry;France;Paris;Business Developer;02/01/2020;jberry@acmecorp.com;02/01/2020;1;Full Time;02/01/2020;UK;;14000;75001;Île-de-France;Building A;02/01/2020;month
Where:
Value | Description | Format | Required |
---|---|---|---|
employeeNumber |
The internal employee number in your HRIS system. It should be a unique identifier. | String | Yes |
addressLine1 |
The primary address line of the employee's residence or work location. | String | Yes |
zip |
Postal code of the employee's address | String | Yes |
firstName |
The employee's legal first name | String | Yes |
lastName |
The employee's legal last name | String | Yes |
country |
Country code in the ISO 3166-1 alpha-2 format. For example, US for the United States |
String | Yes |
city |
Employee's city of residence or work | String | Yes |
jobTitle |
The employee's job title as defined in the HRIS. | String | Yes |
jobEffectiveDate |
The date when the employee's current job title became effective. | Date (DD/MM/YYYY) | Yes |
workEmail |
The employee's work email address | String | Yes |
startDate |
The date when the employee started working at the company | Date (DD/MM/YYYY) | Yes |
fte |
Stands for full-time equivalent. A decimal value representing the employee's full-time or part-time employment arrangement. 1 represents full time and 0.5 represents a half-day part time. |
Number | Yes |
employmentType |
Defines the type of employment. Use Employee - FT for full-time employees and Employee - PT for part-time employees. |
String | Yes |
employmentEffectiveDate |
Date when the current employment type became effective | Date | Yes |
payGroupId |
The pay group the employee belongs to. Must match one of the companyId values in the pay groups file. For example, UK . |
String | Yes |
contractEndDate |
The contract's end date. If empty, indicates that the contract does not have an end date. | Date (DD/MM/YYYY) | No |
compensationRate |
The employee's salary or hourly rate | Number | No |
mobilePhone |
The employee's mobile phone number | String | No |
state |
In countries where it is applicable, the state or province of the employee's residence or work location. | String | No |
addressLine2 |
Second address line | String | No |
compensationEffectiveDate |
Compensation effective date | Date | No |
compensationPaidPer |
Compensation paid per | String | No |
(Optional) One-time payment (OTP) data
Configure the following files to sync one-time payment data.
OTP types file
The OTP types file ensures that each one-time payment is correctly categorized by its type. You can use the prefix otp_types
for the file, or a custom prefix you prefer.
For sync to complete successfully, make sure that the file has the following structure:
reportItemId;description
123456;Performance Bonus
123457;Referral Bonus
Where:
Value | Description | Format | Required |
---|---|---|---|
reportItemId |
Unique identifier for the payment type in your HRIS system. | String | Yes |
description |
The one-time payment display name, used in the UI when mapping the OTP data. | Description of the OTP type, used in the UI for mapping purposes | Yes |
OTP data file
If you want to sync one-time payment data, you'll need to export a CSV file that contains it. You can use the prefix payments
for the file, or a custom prefix you prefer.
For OTP data to sync successfully, make sure that the file has the following structure:
employeeProviderId;amount;reportItemId;occurrenceDate;reference
1;2000,00;P1280;2024-11-30;uid1
2;1000,00;P1280;2024-11-30;uid2
Where:
Value | Description | Format | Required |
---|---|---|---|
employeeProviderId |
Unique identifier of the employee in your HRIS system. It must match one of the employeeNumber values in the employee data file. |
String | Yes |
amount |
The amount of the one-time payment. | Number | Yes |
reportItemId |
Unique identifier for the payment type in your HRIS system. It must match one of the reportItemId values provided in the OTP types file. |
String | Yes |
occurrenceDate |
The date when the payment occurred. | Date (DD/MM/YYYY) | Yes |
reference |
A unique reference for the payment. | String | Yes |
(Optional) Paid-time-off (PTO) data
Configure the following files to sync paid-time-off data.
PTO types file
The PTO types file ensures that each paid-time-off is correctly categorized by its type. You can use the prefix pto_types
for the file, or a custom prefix you prefer.
For sync to complete successfully, make sure that the file has the following structure:
typeId;typeName
1524;Vacation
66;Wedding
Where:
Value | Description | Format | Required |
---|---|---|---|
typeId |
Unique identifier for the PTO type in your HRIS system. | String | Yes |
typeName |
The PTO type display name, used in the UI when mapping the PTO data. | String | Yes |
PTO data file
The PTO data file ensures that each paid-time-off is correctly categorized by its type. You can use the prefix absences
for the file, or a custom prefix you prefer.
For sync to complete successfully, make sure that the file has the following structure:
employeeProviderId;start;end;typeId;durationDays
1;29/11/2024;29/11/2024;66;1
Where:
Value | Description | Format | Required |
---|---|---|---|
employeeProviderId |
Unique identifier of the employee in your HRIS system. It must match one of the IDs provided in the employees file. | String | Yes |
start |
The start date of the PTO. | Date (DD/MM/YYYY) | Yes |
end |
The end date of the PTO. | Date (DD/MM/YYYY) | Yes |
typeId |
Unique identifier for the PTO type in your HRIS system. It must match one of the typeId values provided in the PTO types file. |
String | Yes |
durationDays |
The duration of the PTO in days. It supports decimals to indicate a fraction of the day. For example, 1 corresponds to 1 day and 0.5 to half a day. |
Number | Yes |
Connect the integration
Once the files are configured, you'll need to set up the integration in Deel.
To set up the integration:
1. Go to More > Apps, find the Global HRIS app, and open it.
2. On the Global HRIS app page, click Connect Global HRIS.
3. Fill in the form as follows, then click Connect & go to settings.
3.1. Enter the credentials of your SFTP server.
3.2. Enter a notification recipient. This recipient will receive notifications for any integration connection issues.
3.3 Customize the prefixes for the export files. If you followed the recommendations in this guide, you can leave the default options. Otherwise, change the prefixes of each file so that they match the ones that you set.
The integration is now connected, and you can start setting up the various plugins to sync data.
Set up the integration
Set up the people data sync plugin
The people data sync plugin allows you to sync employee data from your SFTP server to Deel. Setting up this plugin is also required if you want to use other optional plugins to enable OTP and PTO data sync.
To set up the plugin:
1. From the integration page, click Enable next to the People data sync plugin.
2. At the Configuration step, map the deel entity from your HRIS system to the Deel entity, then click Continue.
3. At the Sync entities step, configure the schedule for the sync, then click Continue. You can base this on how frequently you expect new data to be synced from your HRIS system to the SFTP server.
4. At the Data/item mapping step, map the fields from your HRIS system to the Deel fields, then click Continue. The generic items are fields that apply to every employee, while the country-specific items are optional and apply only to specific countries.
5. At the Notification settings step, add recipients to which to send notifications about sync issues, then click Continue.
6. At the Review & confirm step, review your settings, then click Continue.
The integration will now sync people data automatically at the time you set.
However, you can also run a manual sync by clicking the Sync Global HRIS button in the integration page. You will find the details of each sync in the Event Logs tab.
Set up paid-time-off (PTO) sync plugin
The time off plugin allows you to sync paid-time-off (PTO) data from your SFTP server to Deel. To use this plugin, you must first set up the people data sync plugin.
To enable the time off plugin:
1. In the Plugins and settings tab, locate the Global Payroll - Time Off plugin and click Enable.
2. On the Global Payroll - Time Off page, click Configure next to the entity you want to configure PTO sync for.
3. On the Match the Global HRIS to Deel time off types page, map the OTP types, then click Confirm.
4. On the Enable the sync dialog, review the entities to be synced, then click Enable sync.
5. (Optional) Repeat from step 2 for each entity that you want to enable PTO sync for.
The integration will now sync PTO data automatically at the time you set. However, you can also run a manual sync by clicking the Sync Global HRIS button in the integration page. You will find the details of each sync in the Event Logs tab.
Set up one-time payment (OTP) sync plugin
The OTP plugin allows you to sync one-time payment (OTP) data from your SFTP server to Deel. To use this plugin, you must first set up the people data sync plugin.
To enable the one-time payment plugin:
1. In the Plugins and settings tab, locate the Global Payroll - One Time Payment plugin and click Enable.
2.On the Global Payroll - One Time Payment page, click Configure next to the entity you want to configure OTP sync for.
3. On the Match the Global HRIS to Deel one time payment types page, map the OTP types, then click Confirm.
4. On the Enable the sync dialog, review the entities to be synced, then click Enable sync.
5. (Optional) Repeat from step 2 for each entity that you want to enable OTP sync for.
Reference
This section contains reference information for the Global HRIS integration. You can find information like the supported sync types and more.
Supported sync types
This section lists the types of data that can be synced using the Global HRIS integration.
Supported employee data
- Global data fields
- Country-specific data fields
Supported OTP data
- Bonus
- Commission
Supported PTO data
- Vacation
- Sick leave
- Other leave types
Deel IPs
Following is the list of public IPs from where Deel will be connecting to your SFTP server. Make sure to allow connections from these IP addresses.
54.155.86.10
54.77.193.168
34.250.87.168