Is there a way we can put the schedule time as one of the parameter in the excel sheet "Tests" ? Any suggestions will be appreciated.
Please review the VizAlerts installation & user documentation, this is covered in there.
As a VizAlerts admin per the installation documentation you'll do the following:
- Configure Task Scheduler to run every minute (or as often as you want) to run vizalerts.exe to look for work to do.
- On Tableau Server configure one or more special subscription schedules for VizAlerts.
As a VizAlerts user who is setting up alerts you'll subscribe each trigger view viz to one of the configured schedules.
I have read the document. My concern is not explained over there. How we are going to make use of the vizalerts in our environment is we will hardcode the user and content information in the sheet called as "tests.xlsx" which reside in vizalerts/demo directory. So, whenever I execute the vizalerts.exe, it sends alert to the users without any issues but how I can give the exact start time?
If I schedule the vizalerts.exe via task scheduler, how it determine when the given alert has to be triggered. Since the datasource here is excel sheet.
Im aware this since I have read the document already. My concern is different here. Please see my above comment.
Thank for your reply.
Santhosh, can you explain more about your use case? Is this a single report you're trying to burst out to multiple people at a certain time each day? If they all share the same time, then simply subscribe it to the VizAlerts subscription schedule that you already set up. All of them will go out at that time. If you're trying to build in custom times for each recipient, you will need to subscribe to the viz on every possible time (hourly?) that any of the reports will go out, and build your notification logic into the Email Action field based on the recipient and the hour of the day.
For each given subscription in the sheet "tests" as datasource, I would like to start each at different give time in the sheet..
See below screenshot from the workbook vizalertsdemo,
Screenshot from the "tests" sheet which act as datasource,
Use case here is, Whenever a user want a dashboard notification to be sent to bunch ppl, then Ill be updating the above sheet with required information. Only problem here, where Ill give the start time of the alert.
Hope you understood my use case. Please let me know if any queries?
Ah, okay. So you want a single VizAlert that is built to allow people to self-serve to build their own email bursting tool from Tableau Server, that's what I understand your desire is.
So, yes, this is possible to do. But first, let me ask why you wish to do it this way? VizAlerts isn't really built with this centrally-managed bursting tool use case in mind. So I'd like to better understand why you'd prefer to centrally manage all the alerts, rather than simply allowing your users to build their own to their own liking. Is it so that you can have a basic bulk-emailer that's easy for everyone to use that doesn't require that they learn how to use VizAlerts? Is it about control, because you're worried that people will email the wrong information to the wrong folks if left to their own devices? Is it about controlling Server load and resources?
You can achieve what you're after in any number of ways. What I recommend is setting your subscription to run every hour. Then, the Email Action field will test the current date and time against a value you have tracked in your spreadsheet. Maybe you have a Start Date and Stop Date. Probably you'll want an additional column for Hour of Day that the email should go out. The Email Action field would look something like this:
IF TODAY() >= [Start Date] AND TODAY() <= [Start Date]
AND DATEPART('hour', NOW()) = [Hour of Day]
THEN 1 // it's time! send the email.
ELSE 0 // it's not time, don't send the email.
This would enable your users to do a one-off (start date = end date) as well as a range of dates their emails would go out (1-1-2018, 2-1-2018).
There are a couple of warnings / considerations with this "one stop shop" centralized approach:
- Anyone writing to your spreadsheet will be making the requests under your own (admin) credentials. So any viz that you have access to (e.g., all of them) could simply be referenced in the email body, and they could direct that email to themselves if they so wished.
- Because this is all taking place under the context of a single alert, you can only have one regex rule apply to the outgoing email addresses from your VizAlertsConfig workbook. If these are supposed to be externally facing reports that get emailed to various customers whose addresses you couldn't predict, for example, you'd effectively be granting anyone who wrote to the spreadsheet access to email their content to anyone in the world. Might not be the best idea, unless you trust them to be really good about getting things right.
- Accessing any of the content references (VIZ_IMAGE, VIZ_CSV, etc) are single-threaded within a single alert, which is what you'd be doing. So at 100+ lines, if they contained different content references and were suppose to run at the same time, you'd be stuck waiting for 100+ separate vizzes to render, one at a time, which could make some of the emails go out late.
- Persuant to the point above, if any of those references fails to process, the whole alert will currently fail--so consider the impact to other users' reports in that event.
From the interchange with Matt I can see what you're trying to do... I *strongly* recommend against trying to set up alerts in such a centralized way, the main reason why relates to Matt's last point that if any individual item in an alert fails then all remaining items will fail.
Here's why: The way VizAlerts is presently constructed we are essentially writing free text into the to, subject, body, and attachments fields. And it's all too easy to mistype, or miss a typo in the domain of an email address, have an invalid set of parameters for a content reference that would make it fail, etc. In my organization I administer VizAlerts and we've got three other users setting new alerts up and whenever they are adding new alerts I'm pretty much guaranteed to get at least one failure notification (and usually more, the average is around 3 or so) before they get it right. I wouldn't want my production alerts to be affected by someone else's typographical error while they are configuring an alert.
An additional reason to avoid setting up advanced alerts like this is a little more complicated: Very often the list of users who are to receive the alerts is coming from source A and the data for the alert is coming from source B and, most importantly, there are trigger criteria for who in A gets what alert that depend on calculations on the data in source B, for example only sending an alert when a value crosses a threshold. Setting up these views in Tableau requires either a join or a data blend. In the "all alerts in one file" use case then the alert data source would have to join or blend on N other sources where N is the number of different data sources used for trigger criteria and that could quickly get too slow and/or too complicated to maintain. Having separate trigger views for different alerts is much simpler, IMO.
I agree with Matt and Jonathan, this is not a sound idea and don't recommend it.
Given how new you are to VizAlerts I would recommend using it as intended, not how you want to use it as described -- which is not how the tool is intended to be used in the first place, thus out-of-scope of its usage. After you are more familiar with VA and can trouble-shoot on your own then you can try to implement this or something similar. However, given the reasons above by Matt and Jonathan, it's likely going to be a house of cards that will take more time than save it.
Thank you Matt for the brief explanation.
Yes. Here the reason we are going for vizalert is about controlling Server load and resources.
Present, we do have a subscription which send alert to 150 users and it really takes huge time to reach out to the recipients based on the available backgrounders. To avoid this, we came to vizalerts, so that I can send the notification to users via distribution list.
BTW, We are not going to allow the users to have access to the sheet , only admins have access to enter the subscription details. So while working on this, I got this question and posted over here for suggestions to use this sheet to send alerts to users based on the run time given here.
Jonathan Drummey - Hope I answered your question too
Thanks for clarifying. So the security bit should be okay, but the warning about the failures from multiple vizzes being rendered still applies. One way to mitigate that is to simply have separate sheets for each set of emails that go out, and schedule them as separate alerts. They can even still point to the same set of data, just filter it differently. It'd be more to manage, but it'd also be less fragile.
Got it Matt and yeah it would be tough to maintain multiple sheets. As of now, the idea is to keep one sheet with 3 subscriptions not more than that. But in future if it get increase, Ill follow the same what you suggested.
BTW, I have modified the dashboard as you requested and it shows like below. But now how I can trigger this alert without giving "test_alert" in the comment? Because if I go and run the vizalerts.exe now it is not triggering any alert.