How it works
High-level functional specification
This integration runs daily and processes all new BambooHR employees. The integration also runs continuously and processes any updated employee records from BambooHR. This integration uses Xledger's GraphQL API, for more details on this API, have a look at the documentation.
For Xledger to correctly maintain a new employee, the following data entities need to be created:
-
User
-
Allows a person to log in and use Xledger.
-
-
User-Access Item
-
Assigns a role to this user, for now, this is an employee by default.
-
-
Contact
-
Assigns a contact to the user
-
-
Supplier
-
Assigns a supplier to the user
-
-
Employee
-
Creates an employee and links the contact, user, and supplier together to ensure expenses and other tasks can be carried out in Xledger.
-
This integration ensures all these are created every time a new employee is added.
Prerequisites
Before you decide to go ahead with your BambooHR and Xledger integration, there are a couple of prerequisites required. Please see below:
- If you haven't already, please contact BambooHR support to enable the functionality of webhooks in your environment. This is required for the integration to run.
- Please make a note of the email address and phone number fields from BambooHR you would like to use in the integration.
Current limitations
- If an employee in BambooHR has their email address amended, the relevant user account in Xledger must have their email address updated manually. The reason for this is to find the user account in Xledger when updating the employee's accounts, we have to filter by email address. So, if the email address is changed, we can't match the two records in both systems.
-
For now, by default, all users will be created in the same country and language, there is scope to change this if needed.
Mapping
Process Flow
Integration variables
Cyclr allows for variables to be maintained against an integration. These can be set for each instance of an integration and allow for easy customer-specific configuration. The following are available for the BambooHR to Xledger integration:
-
languageDbId
Xledger database ID for the default language to use when creating users.
-
cultureInfoDbId
Xledger database ID for the default locale to use when creating users.
-
roledbId
Xledger database ID for the default role to use when creating users.
Field mappings
New User
| addUser (Xledger) | New Employees (BambooHR) | Value/notes |
|---|---|---|
| description | full name 1 | |
| code | employeeID | |
| from_date | start date | |
| languageDbId | Integration Variable: languageDbId | |
| cultureInfoBdId | Integration Variable: cultureInfoDdId | |
| mobile | Personal Phone |
New User Access Item
| addUser (Xledger) | New Employees (BambooHR) | Value/notes |
|---|---|---|
| addUserAccessItem (Xledger) | addUser | Value/notes |
| userId | userDbID | from previous step |
| roleDbId | Integration Variable: roleDbId |
Update User
| updateUser (Xledger) | updated Employees (BambooHR) | Value/notes |
|---|---|---|
| description | full name 1 | |
| code | employeeID | |
| from_date | start date | |
| languageDbId | Integration Variable: languageDbId | |
| cultureInfoBdId | Integration Variable: cultureInfoDdId | |
| mobile | mobile phone | |
| from Date | start date | |
| to date | leaving date |
New Contact
| addContact (Xledger) | New Employees (BambooHR) | Value/notes |
|---|---|---|
| code | employeeID | |
| description | full name 1 | |
| name | full name 1 | |
| first_name | first_name | |
| last_name | last_name | |
| languageDbId | Integration Variable: languageDbId | |
| street_address | address lines 1 address lines 2 |
address1+" "+address2 |
| zip_code | postcode | |
| place | city | |
| country | country | |
| from_date | start date | |
| best email | ||
| phone | mobile phone |
Update Contact
| updateContact (Xledger) | Updated Employees (BambooHR) | Value/notes |
|---|---|---|
| code | employeeID | |
| description | full name 1 | |
| name | full name 1 | |
| first_name | first_name | |
| last_name | last_name | |
| languageDbId | Integration Variable: languageDbId | |
| street_address | address lines 1 address lines 2 |
address1+" "+address2 |
| zip_code | postcode | |
| place | city | |
| country | country | |
| from_date | start date | |
| to_date | leaving date | |
| best email | ||
| phone | mobile phone |
New Supplier
| addSupplier (Xledger) | New Employees (BambooHR) | Value/notes |
|---|---|---|
| code | employeeID | |
| description | full name 1 | |
| name | full name 1 | |
| best email | ||
| street_address | address lines 1 address lines 2 |
address1+" "+address2 |
| zip_code | postcode | |
| place | city | |
| country | country | |
| phone | mobile phone | |
| from_date | start date |
update Supplier
| updateSupplier (Xledger) | updated Employees (BambooHR) | Value/notes |
|---|---|---|
| code | employeeID | |
| description | full name 1 | |
| name | full name 1 | |
| best email | ||
| street_address | address lines 1 address lines 2 |
address1+" "+address2 |
| zip_code | postcode | |
| place | city | |
| country | country | |
| phone | mobile phone | |
| start_date | start date | |
| to_date | leaving date |
New Employee
| addEmployee (Xledger) | New Employees (BambooHR) | Value/notes |
|---|---|---|
| code | employeeID | |
| description | full name 1 | |
| userId | userDbId | from the add user step |
| subledgerDbId | supplierDbId | from the add supplier step |
| date_from | start date | |
| employment_from | start date | |
| first_name | first_name | |
| last_name | last_name | |
| contactDbId | contactDbId | from the add contact step |
update Employee
| updateEmployee (Xledger) | Updated Employees (BambooHR) | Value/notes |
|---|---|---|
| code | employeeID | |
| description | full name 1 | |
| userId | userDbId | from the add user step |
| subledgerDbId | supplierDbId | from the add supplier step |
| employment_from | start date | |
| employment_to | leaving date | |
| from_date | start date | |
| date_to | leaving date | |
| first_name | first_name | |
| last_name | last_name | |
| contactDbId | contactDbId | from the add contact step |