# Other HRMS (SFTP)

## Introduction &#x20;

This document describes the process for integrating your native HRMS (that do not provide REST APIs) with Empuls for automating user data management.

## Data Fields Required from HRMS &#x20;

The following data fields need to be shared for all employees in a CSV format. The nomenclature for the file shared should be 'CompanyName\_DD\_MM\_YYYY'. &#x20;

Data Fields are provided below:

<table data-header-hidden><thead><tr><th width="105">Column </th><th>Data Fields </th><th>Required / Conditional </th><th>Data Type </th><th>Utility</th></tr></thead><tbody><tr><td><strong>Column</strong> </td><td><strong>Data Fields</strong> </td><td><strong>Required / Conditional</strong> </td><td><strong>Data Type</strong> </td><td><strong>Utility</strong></td></tr><tr><td><strong>A</strong> </td><td>Employee ID </td><td>Required</td><td>Varchar </td><td>Identity of the user</td></tr><tr><td><strong>B</strong> </td><td>Email </td><td>Required </td><td>Varchar </td><td>Identity of the user</td></tr><tr><td><strong>C</strong> </td><td>First Name </td><td>Required </td><td>Varchar </td><td>Identity of the user</td></tr><tr><td><strong>D</strong> </td><td>Last Name </td><td>Conditional </td><td>Varchar </td><td>Identity of the user</td></tr><tr><td><strong>E</strong></td><td>Department </td><td>Conditional </td><td>Varchar </td><td>Set up rewarding/gifting rules</td></tr><tr><td><strong>F</strong></td><td>Department Head Email </td><td>Conditional </td><td>Varchar </td><td>Set up rewarding/gifting rules</td></tr><tr><td><strong>G</strong></td><td>Designation </td><td>Conditional </td><td>Varchar </td><td>Profile information visible to other users of the platform</td></tr><tr><td><strong>H</strong></td><td>Grade Name </td><td>Conditional </td><td>Varchar </td><td>Set up rewarding/gifting rules</td></tr><tr><td><strong>I</strong></td><td>HR Email </td><td>Conditional </td><td>Varchar </td><td>Individual Mapping for setting up rewarding rules</td></tr><tr><td><strong>J</strong></td><td>Manager Email </td><td>Conditional </td><td>Varchar </td><td>Individual Mapping for setting up rewarding rules, Org chart display and reports access to managers</td></tr><tr><td><strong>K</strong></td><td>Cost Centre </td><td>Conditional </td><td>Varchar </td><td>Set up rewarding/gifting rules</td></tr><tr><td><strong>L</strong></td><td>Cost Centre Head Email</td><td>Conditional </td><td>Varchar </td><td>Individual Mapping for setting up rewarding rules</td></tr><tr><td><strong>M</strong></td><td>Business Unit </td><td>Conditional </td><td>Varchar </td><td>Set up rewarding/gifting rules</td></tr><tr><td><strong>N</strong></td><td>Site / Location</td><td>Conditional </td><td>Varchar </td><td>Set up rewarding/gifting rules</td></tr><tr><td><strong>O</strong></td><td>Joining Date </td><td>Conditional </td><td>Date </td><td>Work Anniversary gifting &#x26; Public wishes on the milestone events.</td></tr><tr><td><strong>P</strong></td><td>Date Of Birth </td><td>Conditional  </td><td>Date </td><td>Birthday gifting and public wishes on the occasion</td></tr><tr><td><strong>Q</strong></td><td>Contact No.</td><td>Conditional </td><td>Varchar </td><td>Profile Information visible to other employees.</td></tr><tr><td><strong>R</strong></td><td>Employee Status*</td><td>Required</td><td>Varchar </td><td>Empuls access blocked to disabled accounts.</td></tr></tbody></table>

{% hint style="info" %}
**\***&#x45;mployee Status can be Active/Inactive.
{% endhint %}

The fields marked as conditional depend upon the modules available, the Rewards matrix, etc.&#x20;

## SFTP Integration Approach &#x20;

Empuls uses the SFTP approach of data transfer, which follows the structure provided in the image below. &#x20;

![](https://1067480511-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MOm3lvi2GZUOthqehhF%2Fuploads%2FpkzZTLhkBdQZjTfgZ8M5%2FScreenshot%202022-07-20%20at%2012.52.44%20PM.png?alt=media\&token=74c3a064-e135-4d25-83fa-5a9e58e34d2c)

### Integration Process &#x20;

1\. Empuls team will provide the SFTP folder setup details i.e the Folder link,  Username & Password. Please drop your request at <support@empuls.io> or your account manager.

2\. The customer HRMS function is expected to push the CSV file to the SFTP folder. The data should be of the sequence as provided in the *Data Requirements* section above.  The first row should contain column headers. It's recommended you schedule the .CSV file push to the SFPT folder at 11 PM IST.

3\. The .CSV file shared will be processed by the Empuls application at 1 AM IST through a pre-scheduled data sync job.

4\. The system will log the data sync status and notify the Super Admin of the status of the data update via email.&#x20;

## Data Validation and Processing &#x20;

Here are the sequence of steps followed for updating employee data on Empuls

* Empuls scans the folder for .csv files, other format files are ignored.
* The .csv file is validated against the format as provided in the [data requirements](https://xoxoday.gitbook.io/empuls/getting-started-for-admins/integrations/hr-management-systems/broken-reference) section
* Empuls will validate the data to ensure
  * Mandatory fields are not empty.
  * The data shared matches the standard template wrt to columns.
  * The email id field has a valid email id.
  * The primary email id field has a valid domain (among the whitelisted domain names).
* The data processing will follow the sequence below:
  * The CSV data is read in rows wherein the email id in the first row is compared with the whole inactive list on Empuls.
    * If the employee account exists in the inactive state on Empuls, Ignore it and proceed to the next row on the csv file
    * If the user does not exist, then the user account is created and flagged as 'Active'. All data fields for the user are updated as per the data in csv file
    * If the user account already exists, the changes in data are scanned and updated on Empuls
  * The process continues until the last row of the csv file is read.&#x20;
  * The csv file is deleted from the sftp folder and email notification is sent to the super admin.

#### Xoxoday SFTP Server

To test connectivity pls use the command "telnet [sftp1.xoxoday.com](http://sftp1.xoxoday.com/) 22"

If no connection is established, please check/confirm your public IP.

&#x20;Visit the page - <https://whatismyipaddress.com/> to get your current active public IP and confirm if this is the same as what has been whitelisted. If IP is correct, please check with your networking/infosec team if port 22 is allowed for outbound communication.

#### Client's SFTP Server

If the client is providing their SFTP server for the integration process.&#x20;

* The client should whitelist Xoxoday NAT IPs. Our NAT IPs are
  * 50.112.248.135
  * 44.224.115.77
  * 52.74.39.101
  * 52.76.120.90
* The client should provide the SFTP Server IP and login credentials. We support both \*.pem file-based and password-based access.
* Please ensure that the SFTP server can be accessed via CLI - We use UNIX SSH/SFTP utilities to connect to SFTP Servers.
