Welcome to our new series where we explore the integration of Ruddr with the Power Platform. The founders of Kumo Partners have over 20 years of working on past consulting engagements and it is in our bones to always look for new and innovative solutions to our client’s needs as well as our own. As we ventured into developing our consulting and delivery models, Ruddr emerged as a crucial tool, that fit our project tracking and reporting needs and aligned well to our value of continuous improvement.

As a testament to our mantra that we eat our own dog food “drink our own champagne”, we wanted to design a series that could highlight our journey and share insights with others, interested in learning how to scale and make their project management operations more efficient.

Why Integrate Ruddr with Power Platform?

We decided to integrate Ruddr into our Power Platform environment to enhance functionality and efficiency. Our existing software, FreshBooks, limited our ability to bill time/projects and made reporting on Project Key Performance Indicators (KPIs) difficult. As we scaled, we recognized the need for a better solution. Ruddr met nearly all our needs, offering advanced project time tracking, forecasting, and a continuously improving API. Convinced of its value, we made the switch and never looked back.

Get Started with Ruddr and Power Platform

To get started, you will need a Ruddr account and a Power Platform license. You can also get a free developer environment where you can do this without having a paid Power Platform license. You can setup a developer environment following these steps: Create a developer environment with the Power Apps Developer Plan – Power Platform | Microsoft Learn.

Once you have both setup, you can begin to follow the Ruddr API instructions to start understanding how to work against it – Introduction (

Part 1 - Integration Basics

In this video, we are going to start with the basics of getting the integration with Ruddr setup. The first dataset we will use for this is the Time Entry data. To do this, we will use Dataflows, which are the data processing workhorse of the platform. Dataflows are built on Power Query, which makes it easy to connect to any web service and transform the data as needed. Dataflows are meant to handle 10s / 100s of thousands of records of data. This is the best practice for moving large volumes of data efficiently. This is great for users familiar with using Power Automate to try and manage data and is the next step in that journey to becoming a more professional Power Platform user.

Power Query Code Sample from Video

The following M code is what is created in the video representing how one can query the data from the Ruddr API:

    Header = [#"Accept" = "application/json",#"Authorization" = "Bearer <API KEY TO REPLACE>"],
    Source = Web.Contents("",[Headers = Header]),
    jsonDocument = Json.Document(Source)

From there, you’ll be able to then use the Power Query editor to expand the data into the appropriate format to then import into Dataverse. This approach will also work directly in Power BI.

Common Challenges

Authentication Issues – If you are having authentication issues, make sure that you properly copied the API Key from Ruddr into the header section, and replace the <API KEY TO REPLACE> (including the carets), but make sure that the ‘bearer ‘ (including the space), are present before it.

Data Completeness – This first exercise only provides us a way to call the API once at a time. Per the Ruddr pagination details, only 100 rows of data can be pulled back at one time. In the next video(s), we will show you how to paginate the results automatically avoiding this limitation.

Dataverse Import Issues – If you are having difficulty with the import of the data into Dataverse, it may be a few things. One reason may be due to the schema of the data. Or, if you are importing into an existing table, there may be validation issues because of keys. Make sure to remove any blank rows in Power Query and also make sure that the column references are correct.

Conclusion & Next Steps

In this blog we only scratched the surface of pulling data from Ruddr. In the next video, we will expand upon this, showing how to adapt the code to paginate the results automatically. We will also look at how we can further refactor the M code so that we can re-use the same function to call all datasets.


Leave a Reply

Your email address will not be published. Required fields are marked *