I bet that most of you already saw our new Forum feature that is placed on the right side of the main Forum page. For those of you who are still confused let me pop it here.
From now on we will present recent stats of our most active users from the previous day. There are two main reasons why we’ve created it. First, we would like to highlight those of you who are participating the most on the Forum. There is a dedicated table with all stats which was already available here, but we wanted to make it a little bit more visible. Second reason is that I would like to show you another possibility of how UiPath tools can be used. Yes, this feature would not be available without our dear robots
That being said, let me give you a quick overview of how we made it work.
Calculating the scores
Our Forum has a database. No surprise here. From here, we can use some secret PostgreSQL formula which gives us a nice list of most active users. Please forgive us for not showing you everything, but we don’t want to give away the exact formula. In general, it takes into account most common Forum activity.
It looks somehow like this:
So we have some data right? But how is it possible to embed a table on the Forum? - you may ask. Well, Discourse allows us to go crazy and customize a bunch of things:
And here is where our robot helps us. Without it, we would need to update our customization code every day. Instead, we’ve built an automation that does it for us. Through some trial and error, we have figured out a way to update our customization code via PUT API request. What is even better, we don’t have to update everything but just the bit that contains new ranking for every day.
The project is quite straight forward:
- Fetch the required credentials
- Build an empty data table that will be filled with the rankings data
- Fetch new rankings via Forum API call to our custom query
- Loop through the output and fill the data table with new rankings
- Prepare the HTML code that will be updated
- Update the customization code with one final API call
And now the process runs on our Orchestrator and updates our Most Active Users table once a day
Please let us know what do you think? We are very curious about your feedback. Should we add something more or maybe we should change something? Go ahead and use the button to let us know.