Alerts Are Dead: Long Live Data-Driven Actions
Written by Miroslav Koldus |
Turning data alerts into a modern interface for collaboration, business automation, and data-driven actions.
We introduced a new generation of our product just last year — GoodData Cloud (GD Cloud) — and are currently in the process of enhancing our platform. We aim to incorporate certain standard features that are commonly expected within the industry. One such gap is the ability to establish data alerts.
Most solutions boil down to simply sending an email when a set data limit is reached. But what if you actually want to take some action?
Responding To a Data Alert, the Traditional Way
Now, let's imagine a scenario for a moment. In my role, I’m responsible for monitoring GD Cloud trials. Suppose we only initiate active outreach to our trial prospects when the "Weekly Active Users" (WAU) metric crosses a threshold of 20%. To ensure I know when this happens, I go to our BI tool to set up an alert notification. And the moment a prospect's activity finally reaches our threshold, I get an email.
When I read the email:
- I inform SalesOps on Slack.
- SalesOps then updates the Marketing Qualified Lead score in Hubspot to activate targeted email campaigns.
- Lastly, I schedule a meeting with the prospects via Google Calendar.
The whole process depends on you sharing that information manually. If you are busy, on vacation, or simply miss an email (which happens to the best of us), your business process never gets started.
All that is fairly standard and for some use cases, even useful, but as Joey in one of my favorite episodes of FRIENDS said: "There's gotta be a better way!"
Alert as a Trigger for Automated Data-Driven Workflow
Now let's look at how we decided to approach the problem and see how it could work for you.
The story starts the same, you find a useful metric and want to set up an alert. We will give you a choice to set up a value that you want to monitor. In our example, you will want to set up the value to be "above 20%". Here is what that interface looks like:
Where we want to differentiate ourselves is to give users more control over what happens when the alert is hit. If we want to think about the ideal scenario that occurs when the alert threshold is hit and not limit ourselves to what is possible in typical BI tools, we might want to replace the email with an event that triggers an automated process.
We believe that you do not want to build such process automation inside a BI tool and rather use tooling that was designed for this purpose and that you are likely already using.
GoodData’s developer-friendly nature means you can easily program such integration following the steps outlined in this article. However, we wanted to make this available to a wider audience, not just developers. So, we are extending our solution with the most popular Business Process Automation (BPA) tools, to eliminate the need for custom development.
We started with Zapier. We like Zapier because it is one of the leaders among the no-code BPA tools and more importantly, they do not lock you into any specific ecosystem - a philosophy that resonates with us. In fact, with Zapier, you get 5000+ applications that you can choose from to build your workflow to define what happens when a data alert from GoodData is triggered. And you don't have to be a developer to set it all up!
Let's return to our example. We will switch to Zapier to set up our first Zap. A Zap is a name for an automated workflow. It is always initiated by a trigger (which will be the GoodData data alert) and at least one action (which we will use to build the rest of the process).
Clicking on a trigger allows you to choose from the marketplace of available triggers. By searching for "GoodData", you can find the integration we have provided (currently it's invitation only). I need to set up the organization name I want to integrate with and the API token I want to use.
If everything works correctly, I can run a test and Zapier shows me a breakdown of values I will receive when a real data alert arrives. These values are the input I can work with inside my automated process.
I will use these fields to update the information in Hubspot and also post them in Slack. I don't have any information about the prospect, but I can download it from Hubspot to enrich the fields further in the process. When completed, the entire Zap can look something like this:
And that is it! We could easily extend the flow to also receive an email, just like we are used to, but thanks to integration with a BPA (in this case Zapier) tool, we can now achieve so much more.
Future Expansions
While I believe that even this functionality is more powerful than what most BI products allow you to do, I think the potential is much bigger. We already talked about the different automation tools mentioned above, and that’s one area where we aim to expand upon. We should at least consider Tray.io, UiPath or Microsoft's Power Automate, but there are always new tools and custom solutions, so the programmatic option will always be available.
Another idea would be to apply the same logic to a scheduled email - so, instead of just working with data points inside Zapier, you can also put the exported reports or csv files into the systems where you actually need them, rather than your email inbox.
Yet another set of use cases can emerge when we think about GoodData not as a trigger but as an action. For example, adding a customer to your CRM can trigger an action in Zapier that creates a new dashboard in GoodData. In our example, I could use more detail for each customer. However, I really only need detailed data for those who hit the WAU benchmark. And Zap can create a complementary dashboard. Taking the idea further, we might even create a completely new child workspace, which could quickly prepare the entire analytical space for your new client.
But we also need to talk about the definition of an alert. In our example, we defined the data alert as a static value (>20%), so it will look something like this, where the green points exceed the threshold:
But what if we went yet another step further to integrate the alert functionality with an anomaly detection model we talked about in an earlier article? All of a sudden, the behavior of the triggers from the data alert will be more like this:
For our example case, this may not be needed because our process clearly defines a fixed number of active users we need to initiate the contact. But in reality, many data alerts won’t be this clearly defined. In some cases, an alert that takes into consideration immediate trends in data and responds only to anomalies can help you trigger the process in a more meaningful way - this can reduce false positives or trigger an alert much sooner than when a static value is reached.
And that's not all! To apply this to a different user population - your Analytical Engineers - a different set of use cases might be relevant. Take our data profiling functionality, for example. One of its features is to check for empty values. Would you have a use case for BI platform to automatically alert you after a new data load (or cache invalidation) in case there are issues with your data?
Which use case is the most important for you? Can you think about an integration I missed? Let me know!
Conclusion
In summary, when we stop thinking about alerts merely as emails, but rather as valuable data points, we discover much more value by allowing our users to build custom actions on how to respond to them.
Your application may not use Zapier, but this principle can be easily replicated in whatever business automation tool you are using.
Interested in modernizing your data products even further? Check out the article from Patrik Braborec, discussing How to Build Data Analytics Using LLMs. You can also dive into another great post from Štěpán Machovský on our approach to Machine Learning in Dashboards.
Would you like to try the new and improved data alert? The feature described in this article is currently being tested in a private beta, but if you want to learn more about this or other Feature Labs topics, please contact us. You can also check out our free trial, or ask us any question in our community Slack!
Written by Miroslav Koldus |