Bamboohr and its API help- I
While I love my role as a People partner, there are some boring tradeoffs that go hand in hand. Every HR partner can emphathize with the bulk updates that needs to be done once or twice a year with multiple important data like salary changes, organizational changes, title changes, saving files inside a specific folder in people systems etc. that happens in appraisals or promotions of our employees.
However, working at HackerRank has its own perk which makes this redundant job more exciting and equally rewarding at the cost of its new learning. I am referring to the basic APIs that often go unnoticed and unused.
Hari, helped us understand this and we took a leap towards automating the monotonous labor.
We use Bamboohr as our people system and hence there is a help on how we can automate most of the stuff using its API.
The motto of this post is to create awareness on the APIs and how to read them. While this is just the basics to get started, it would be helpful if you have your IT team around so that you do not make hefty mistakes that cannot be undone.
One key thing is we need some access level permissions/admin permissions to be able to automate either access specific changes / everything that we would like to.
Step 1: Generate the Bamboohr API key.This will be different for every individual. Also this is the most important key so keep it private and do not share the key with ANYONE.
Click on “API Keys” followed by “Add new Key”. Add a API key name and generate the key. Keep it safe and locked.
Step 2: Test it out! Here is the link to the BambooHr API documentation link – https://documentation.bamboohr.com/reference#get-employee
Add the company domain name. Write x in the username and the api key in the password and click on Try it next to it.
Couple of things we need to understand well before we move forward are that the company string will remain the same but id will change with every new employee.
Bamboohr has a lot of fields and we can generate all the items of the fields. That way its convenient on what must be updated/added. On your right you will be able to see the entire list of all items and fields. Save them in a google sheet.
Step 3: Create a new tab in the google sheet with the headers that we want to update. Add one extra column called as command or Code.
The tab has “cURL, Node, Ruby, Javascript and Python”. I found “cURL” quite helpful but I am sure the others will also be helpful.
Understanding the strings:
curl –request POST \ This refers to the command to change using the language.
–url https://api.bamboohr.com/api/gateway.php/companyDomain/v1/employees/0/files/fileId \ This refers to the url requested to change. Company domain is your secondary gateway after Bamboohr’s gateway followed by the special employee id and again followed by the file/item that will be changed and updated.
Step 4: Once the command is generated copy it in the excel manually. Remember to list down all the employees that needs to be changed. The employee id will differ for all the employees. If the same category/ file has to be updated then the file id remains constant.
Step 5: We need to save the curl command file first and then run that. Hence first open the terminal and copy the single line command generated in the excel file and run (click enter). Your bamboohr is now automatically changed.
Take your IT team’s help to actually create a command which can fetch the data directly from Bamboohr and you don’t need to manually change the employee ids.
I will try sharing a self help post soon that will enable you to make the necessary changes automatically and post which you are on your own.