Skip to main content
Go to Integrations ↗ · Opens the webapp — please log in first Employees can be imported via a CSV file that gets uploaded via SFTP to the Honestly server. Based on the CSV file, new employees will be added, not existing employees will be removed and the information of already existing employees will be updated. This option is available to Enterprise or Global Player Customers. To automatically synchronize your shared data with Honestly, you must first activate the SFTP integration. You can find it in the side navigation on the left under Settings → Integrations. Only admins can see and manage the Integrations page. Side navigation with Settings expanded and the Integrations entry The page is split into the sections Employee notifications, Survey import and Employee import. Under Employee import, click Connect on the CSV Employee Import card. The Integrations page with the CSV Employee Import card in the Employee import section After you have clicked on “Connect”, another window opens which shows the most important information. Here you will find the SFTP username and the SFTP hostname, which are required on your side to establish the connection. Both fields have a copy button next to them. You also choose a default Language for newly imported employees here, paste your public key into Public SSH Key and then click Connect. Once the connection has been established, the data can be transferred and stored in the upload folder. Directory: ~/upload/ Data is automatically imported at 03:15 and 15:15 (CET/CEST). The mechanism can also be triggered manually by clicking Import.
Depending on the size of the file, this process may take a few hours.
If the transfer was successful, you will also receive information on when this import was successfully completed. CSV Employee Import card showing Successful import If the import completed with errors, the card shows Completed with Errors. Click Errors to find out what they were: CSV Employee Import card showing Completed with Errors Caution: If the import was not successful, all admins will receive an email with the employees or errors contained in the file.

Honestly Server

Hostname: “import.honestly.com” Directory: ”~/upload/“

Authentication

Authentication works via passwordless authentication (ssh key authentication). You add the public key yourself in the CSV Employee Import window, so it never has to be sent to Honestly over an unsecured channel like email. Only the public key is entered; the private key stays with you. The public key needs to be in OpenSSH format. Accepted key types are ssh-rsa, ssh-ed25519, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521 and ssh-dss. Example public key file Empty Public SSH Key field in the CSV Employee Import window In SAP SuccessFactors the integration module can be used to send the file. Follow this guide to generate the authentication key. Paste the public key into the Public SSH Key field of the CSV Employee Import window and click Connect. The connection is set up straight away. The SFTP username is shown in the same window and follows the pattern import-employees-<account-id>, where <account-id> is the ID of your Honestly account. Use it together with the private key belonging to the public key you entered to push the CSV file to the Honestly server.

CSV file

The file name needs to be “employees.csv ”. The file needs to be encoded with UTF-8 character set without any BOM. The data in the file itself needs to be separated by the comma character and surrounded by double-quotes. The column names need to be included in the CSV file in the first line. The order of the column names is irrelevant. Column headers are case-sensitive.

Required columns

The following columns need to be present in the CSV file and also all dataset must contain values for them.

The ImportId of an employee cannot be adjusted over the Upload file.

Optional language

It’s recommended to also provide the language of the employee. If the language can not be provided, we can configure a default language.

Optional additional employee attributes

Based on the configuration of employee attributes in the web application, additional employee data can be included to receive more detailed insights. Therefore, the CSV file needs to be extended with these additional columns in String data format. On the web application, the user can select which employee data should actually show up as a filter on the dashboard.

Employees have access to results based on their “reports to” relationship in addition to the permission on specific attribute values. ReportsToId or PermissionGroup and PermissionGroupValue can be blank.

Possible roles

Example file with the attributes Department and Location

File name: employees.csv Content:
This file serves as the template that you fill with your own employee data. Download it ready-formatted: Download the example file employees.csv Alternatively, copy the content of the code block above using the copy button in its top-right corner and save it as employees.csv. Age Category and Seniority each hold a four-digit year — the year of birth and the year of joining. Honestly derives the age and tenure groups from them. The spelling under Role must match exactly: Admin, Manager, Analyst, Report viewer and Respondee — an empty field is treated as Respondee.

Import mechanism

This file is imported twice a day, at 03:15 and 15:15 (CET/CEST). After a run that found a file, the import file is removed from the upload folder and moved into a processed/ subfolder carrying the timestamp of that run. The same file is therefore never imported twice — one upload gives you exactly one import. Warning: If you choose the automatic upload, any changes made manually will be overwritten every 12 hours. If there is no file, no changes will be made.
  • Employees which are already in the system will be updated.
    • Employees cannot be created more than once in an account and will only be updated if they appear several times in a file.
  • Employees which are not in the system will be created
  • Employees which are not in the file and have an ImportId set by a previous upload will be deleted.
What the timestamp on the integration card means After an import, the integration card shows Successful import followed by a relative time such as “3 days ago”. That time refers to the last run that actually found a file in the upload folder — not to the last time Honestly checked. If a run finds no employees.csv, it is skipped silently: the timestamp stays where it is, and no message appears. So an older date there means no new employees.csv has been uploaded since. It is not a fault of the integration. The same applies to the Import button: it triggers exactly the same process as the automatic run. With no file in the upload folder nothing happens, you get no feedback, and the timestamp stays unchanged as well. General Import Errors
  • Import cancelled because of errors while loading employees data from integration
  • Employee with email EMAIL already exists with import id IMPORT_ID, and cannot be imported with id NEW_IMPORT_ID.
  • Cannot create employee: EMAIL
    This covers errors while creating an employee that are not covered by the “Employee with email … already exists” error
  • Cannot update employee: EMAIL
    This covers system errors while trying to update an employee
  • Import: skip employee because email already exists EMAIL
  • Import cancelled:
    There are ‘COUNT_CURRENT_EMPLOYEES’ employees in your account, and the update was going to delete ‘COUNT_DELETE_EMPLOYEES’ employees.
    To prevent accidental deletion of too much data import is cancelled if it would delete more than MAX_ALLOWED_DELETED_PERCENTAGE 20% of employees.
    In your account this means ‘MAX_ALLOWED_DELETED_ABSOLUTE_COUNT’ employees.
CSV Errors
  • Row number ROW_NUMBER in csv file is missing ImportId. Import is cancelled to prevent data corruption.
  • Cannot read employee from csv file row number ROW_NUMBER. Ignoring bad employee record ImportId: IMPORT_ID
  • Import file has bad/empty header
  • Bad CSV
  • No entries in file
  • CSV header is missing mandatory field: MANDATORY_FIELD

Integration Info:

Once the integration has been set up, employee data will be automatically imported every day at 03:15 and 15:15 (CET/CEST).