Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
10 years ago
Solved

Integration with BambooHR

Does anyone have any experience in using BambooHR as a data source for Power BI? There's no built-in connector for it obviously, but we're not sure the best way to get data exported from BambooHR and into a data source we can use from Power BI.

17 Replies

    • mattlancs's avatar
      mattlancs
      Advocate II

      Hi there,

       

      I've just managed to get it working, hopefully this will help you too.

      You need two bits of information to make it work, your subdomain and an API key. The subdomain is whatever your company's address starts with, e.g. if the users log on to https://contoso.bamboohr.com, then it's contoso. This article says how to generate an API key.

      Once you've got that:

      • Get data > Web.
      • URL: use the following, changing the subdomain bit: https://api.bamboohr.com/api/gateway.php/subdomain/v1/employees/directory
      • For the credentials, you don't want the Web API option, but just select Basic. Put your API key in the Username field, leave the password blank. Obviously!

      That will get you towards a table showing what everyone's ID is in the system and some basic user info. To get other details you have to change that /employees/directory part of the URL; you could replace it with /time_off/whos_out to find out who's on holiday today. This page looks to be the best source of what those different address endings could be. Good luck!

       

      Cheers,

      Matt

      • deldersveld's avatar
        deldersveld
        Resident Rockstar

        Matt, thanks for following up with all of this detail.

    • nicolaskatz's avatar
      nicolaskatz
      Advocate I

      Hi Deldersveld,

      I would be very interested in the solution if you found any to easily integrate power BI to BambooHR

       

      thanks,

  • Hi,
    i've generated an API key and tried connecting but Power BI keeps giving this error:

    What am I doing wrong?

    • mattlancs's avatar
      mattlancs
      Advocate II

      Hi,

      It's hard to know without seeing the steps leading up to that error message - when you got to the bit asking how you want to connect to the web address, did you perhaps choose the Web API option for credentials? I only got it working using Basic credentials, as above. It's counterintuitive.

       

      Cheers,

      Matt

      • IntaBruce's avatar
        IntaBruce
        Resolver I

        Thanks Matt, I should have read your instructions a little more carefully.  I've managed to connect now.  I just need to work out how to unpack the tables.

  • Well I got so far but am now stuck again.  I have managed to connect and authenicate using an API key and can extract the employee directory.  What I want now is the time tracking data but can't see a way to get this.

    The API described on the Bamboohr website requires you to enter the employee id but I want to extract all employees' tracking data so I can report on it in Power BI.

    Any advice?

    Thanks

    • mattlancs's avatar
      mattlancs
      Advocate II

      Hiya, I've not tried using the time tracking in Bamboo, so don't have any direct experience unfortunately. It sounds like you might need to investigate creating a custom function, which is a little advanced - not impossible but it'll take a bit of understanding. Basically, it's like if you wanted to scrape data off a series of nearly identical webpages, or from an Excel workbook with a series of nearly identical tabs: you want to take data from a series of nearly identical API requests, with one parameter changing each time (the employee id). A custom function lets you do the same thing again and again with just the employee id changing, and outputs all the results into a single table. 

      It's not something I've done a lot so I can't help with the specifics, but this page might be a good starting point. Alternatively a similar issue is pagination with APIs - when an API gives the results in pages of 100 records or something like that, so you have to do a series of nearly identical queries to get all the pages of results. This page has quite a few useful links for tackling that, which might be a transferrable solution.

      Good luck!