Bridge & Resource Management Integration - Per User Per Project Utilization

Jake Taylor
Jake Taylor ✭✭✭
edited 09/15/23 in Add Ons and Integrations

With Bridge, we have been able to get ‘per-user utilization’ during a custom timeframe from resource management. Which provides us the User’s name and ID along with their utilization for that timeframe.

Using this metric, we are attempting to get user utilization by project. (User hours assigned to a project, during a timeframe)

I am having trouble identifying a method to find this information.

We are currently using the Resource Management integration “Get Report Rows” to get the “Utilization” view for each user.

However, is there a way that we can get users’ utilization that are assigned to each project?

I’ve tried looking to see if there is combination of views that would allow us to match user_ids to project_ids for custom timeframes but I have not been successful and I feel like I’ve overlooked a solution.

Answers

  • Ryan Kramer
    Ryan Kramer ✭✭✭✭✭

    @Jake Taylor,

    We have done some similar efforts and I still find it easiest to pull it out via Smartsheet's APIs, aggregate it locally and then push the data into your summary table.

    If you have bridge working then likely the APIs will be pretty friendly for you and it would just be a matter of hosting in the final state. There are a lot of solutions out there for that but it is a little bit extra overhead.

    Ryan

  • Jake Taylor
    Jake Taylor ✭✭✭

    Thank you for the response, @Ryan Kramer . We don't have lots of experience with the APIs. I feel like we were kind of sold on the Bridge solution because it didn't require API integration, but maybe I was mistaken. Do you have anything you could share as an example?

  • Ryan Kramer
    Ryan Kramer ✭✭✭✭✭

    Sure.

    So once you get the token, its something like this for pulling the sheet rows:

    import smartsheet
    import yaml
    
    with open("config.yml", "r") as yml_file:
        cfg = yaml.load(yml_file, Loader=yaml.FullLoader)
    
    smartsheet_client = smartsheet.Smartsheet(cfg["smartsheet"]["api_token"])
    sheet = smartsheet_client.Sheets.get_sheet(sheet_id)
    
    sheet_columns = sheet.columns
    sheet_rows = sheet.rows
    
    for row in sheet_rows:
        # Do any type of logic you want here
    

    And you could basically do this for each sheet. I script a lot of these things for my clients.

    Ryan