The Issue
Currently, there is no support to send visualizations (tables, charts, etc) to different destinations like Google Sheets, Slack, Mail, etc. from Redash itself.
I am aware that we can use IMPORTDATA() in Google Sheets and use the respective query’s API Key to import the data there, but this approach has the following downsides:
- IMPORTDATA() function is not reliable
-
As awesome as this feature may be in Google sheets but this is dependent on Google and there have been multiple instances of this function getting down from Google’s side for multiple days : http://discuss.redash.io/t/google-sheet-error-importdata-error-could-not-fetch-url/7671
-
There are limits on how much data can be imported via this function and the number of times we can call this function. These limits are at both - the user level as well as the organization level.
Also, we have tried to increase these limits and have found that they can not be increased. This makes the reports very unreliable and unscalable.
- Query Level API Keys are not secure
-
Being able to access data via APIs itself is a major security concern as someone who may have left the organization can still access the data via those API keys.
We can consider removing the user after he/she has left the organization so that their personal API keys get removed, but we can not change the API keys at the query level every time a user leaves the organization. -
People tend to use these API keys in their production systems(using Redash as a database) as well, due to which we have encountered incidents of heavy load on Redash and eventually Redash getting down due to that.
- Limited destinations
-
As the only method to export data is via APIs, it makes the destinations limited as we need to make the API to fetch the data.
-
Due to the large variety of options it provides Redash easily becomes one of the prominent tools for BI Reporting at any organization and people generally tend to share the visualizations’ screenshots manually in different destinations like Slack and Email.
It will be great if they are able to control this process from Redash itself and sync the visualizations to destinations of their choice with every query refresh.
What we propose
-
Have support to add various destinations(Google Sheets, Slack, Email, etc) at the visualization level so that one can leverage the power of Redash better in the organization and also is able to centrally control what all data is being exported where and at what frequency.
-
Deprecate Query Level API Keys and allow users to fetch data via User Level API Keys only.
-
User shall be allowed to manually sync the visualization to any destination and sync to be called every time the query executes successfully on its schedule.