HRIS Integration



The Betterworks HRIS integration allows you to import data from an HRIS into Betterworks on a regular schedule. You can see updates from your HRIS in Betterworks without manual intervention such as:

  • Creation of new users

  • Updates to user information (i.e. change in manager, department, etc.)

  • Deactivations of users who have left your organization

If you import data for a user whose department is not in Betterworks yet, our platform will create that department for you. For example, if you import users for the Finance department, but don’t have that department established in Betterworks, the department will be created based on the "department_name" value specified in the file. To learn more about adding departments proactively, see this article


Data sent to Betterworks via the integration is stored at rest on an encrypted volume (AES-256), meaning that the file location itself is encrypted. Data is also encrypted in transit by using SFTP. To learn more about our SFTP server, see this article.


  • Create a CSV file (standard UFT-8 encoding) or JSON file according to our templates below

  • Schedule regular file exports

Note: We have an open platform so as long as the above requirements are met, you should be able to connect. 

Common HRIS Providers

Workday: Contact your Workday Customer Support Team for additional details.

Oracle: Contact your Oracle Customer Support Team for additional details.

  • The level of assistance you'll receive for this process is dependent upon your Oracle Support product offering.

UltimateSoftware (aka Ultipro): Go to your Customer Success portal → Project Center, then open a service request for "Technical consulting in web services".

SuccessFactors: This article from the SAP Knowledge Base can help get you started, but you will also need to contact your SuccessFactors Customer Support Team for additional details. 

ADP: Contact your ADP Integrations Specialist Team for additional details.

  • Depending on your product offering, ADP generally charges $1/user per month for automated services. If this price point seems high, you can always pull a report out of ADP manually, reformat into one of CSV templates below. For more information on that process, see this article

BambooHR: This article from us can help. 

Zenefits: This article from us can help.

Note: BambooHR and Zenefits integrations are direct API integrations. As a result, they function a bit differently than our standard HRIS integration.

Basic Setup

1. Build a CSV file (standard UTF-8 encoding) or JSON file with the following column headers:

  • email
  • first_name
  • last_name
  • department_name
  • title
  • manager_email
  • deactivation_date

 2. Schedule the file to be sent to our SFTP server regularly.

Note: You can set the interval at which the file is sent to whatever frequency you like, but we recommend once a day. Once your file arrives, our platform will collect the information and use it to create or update user data within your organization's Betterworks instance.

Advanced Setup

In certain cases, Betterworks administrators prefer to include additional headers in their file to keep account management tidy or create more powerful reports in the Admin module. 

If unique identification numbers are assigned to each person in your organization, you may want to consider adding them to the file to ensure that Betterworks accounts stay intact even if someone changes their name, email or other attributes. We strongly recommend providing both the employee ID and the manager ID with each file.

Note: The CEO or leader of your organization should have a blank manager ID since they will be at the top of the org chart.


The following fields will only appear in the Admin module for reporting purposes: 

  • location

  • on_leave

  • matrix_manager

  • custom_01

  • custom_02

  • custom_03

  • custom_04

  • custom_05

If you need to add more custom fields (up to 50), see this article

Note: These fields are not visible on a user's profile, the objective list or in the org chart.

CSV Templates


  • By default, the "email" field will be used as the primary identifier for an account. However, "employee_id" and "manager_id" fields can be included in order to use "employee_id" as the primary identifier instead. This will allow you to update a user's email address.

  • Each file should be uniquely identifiable. We recommend naming each file sent with the current date.

HRIS Integration Errors

See this article.


If a user is omitted from an upload file, what will happen?

If a user is omitted from a file, this will not cause any change or removal of that user’s account in Betterworks.

If I leave a field blank for a user in the file to be uploaded and the content in the corresponding field in Betterworks has data, what will happen? 

It depends. The "email" field is required, so an entry without that field will not be processed. However, in a field such as "custom_01" this will result in an update, meaning that the data associated with that field in Betterworks will be removed.

Can I include column headers that are not listed in the templates? 

Including column headers such as "employee id" instead of "employee_id" or a header that you create, will cause the field not to be processed. 

If my custom header is being used for a date (i.e. hire date), will the system recognize this as a date instead of text?

Yes, it will be recognized as a date. 

If I am using the HRIS integration, can I still do a manual CSV upload or individual update through the Admin module? 

Yes, you can still do a manual CSV upload or an individual update while the HRIS integration is enabled. However, any HRIS files received that include contradictory data for the same user will override these changes. For example, if Jane Doe's manager is changed via manual CSV upload or individual update, then an HRIS file is received that includes an entry for Jane with her previous manager listed, the manual change will be overridden.

What if I accidentally send an empty file or a file in the wrong format? Will that delete my data?

An empty file or a file with just the headers and no data in the columns will not be processed and therefore, won't have an impact on the data already uploaded into the platform.

Are there character limits for any of the text fields?


  • email: 254 characters
  • first_name: 254 characters
  • last_name: 150 characters