As the RiskIQ PassiveTotal platform has grown and evolved over the years, we have endeavored to provide our analyst community with access to a wide array of data so they can investigate threats within their organization. As more data has been added to the platform, so have additional API calls to access that data. To improve our user experience and performance, the RiskIQ PassiveTotal engineering team has focused our development efforts on implementing changes to our heatmap and search result page to optimize how we request and render data in the platform.
On November 6, 2017, we released a new feature to all RiskIQ users to improve the user experience on the search results page. Based on user feedback and our own experience, we saw an opportunity to optimize the performance of the page which fires multiple API calls to fetch data from different sources, some of which are integrations with outside partners. We updated our logic to display data as soon as the APIs responded, one API at a time, where previously, we had displayed a loading state on the page until all of the APIs had responded. Additionally, in the event of error from one of the APIs, our changes allow the data that is available to be displayed and will enable the user to interact with whatever data we have versus the previous implementation which simply rendered an error on the page and prevented the user from accessing much of the data.
The problems we were trying to solve are as follows:
- Users experienced the page as broken due to the long wait for any data to be displayed.
- The page failed to render any data and displayed an error message if any one of the API calls failed.
Improved User Experience
The first issue we wanted to address was the loading state on the page. Often when running a query that contained a significant amount of results, the user would have to wait an extended period before data would load.
With the introduction of asynchronous API calls and placeholders for our heatmap and data tabs, we can now load data into the platform as it returns from our APIs
Our change resulted in a slight reduction in the time it took for content to be visible on the page, but the big win is creating an experience for the user which results in decreased frustration and a better experience as they wait for content to be ready. Having the placeholders for the heatmap and tabs gives the user a sense of what is loading on the page as it renders and makes the wait more bearable.
Reduction in Errors
The second issue we wanted to address was that the page failed to display any data if there was an error in one of the API responses:
With the changes we’ve implemented, if one of the APIs has an error, the page will still display all of the content it has from the APIs that responded with content.
In this screenshot, the heatmap data was not fetched, but the other APIs for the tabs on the page responded with data, so the user can still interact with them.
This is a vast improvement for the user from the previous implementation of the page. Having the page fail more gracefully allows us to continue to provide some value to the user even when there are issues with some of the data on the page.
We are continually looking for opportunities to optimize and improve the user experience on our site, and this is just one of them. Hopefully, our users have noticed and are enjoying the functional improvement. We’d love to hear your input. Contact us at email@example.com with your suggestions and feedback.