Hi Jose. Does your VizAlert run on a schedule, ever? I'm curious to know more about a use case in which you always run it manually, because it was designed with the general intent of automation. Why is it that you run it manually?
With regards to the 406 message, I'm not sure offhand why you'd get that message. One thing that might be occurring is that during an ownership change of a workbook, the embedded connection gets reset. You'd need to update the password as well when making ownership changes.
I do plan to remove the requirement that the subscriber / comment-triggerer for a VizAlert must also be the owner, in the next release. There's too much churn when people are out of the office, and the like. We may be able to find a way to workaround that for you in the meantime, but tell me more about your use case first and we'll go from there.
Thanks for responding.
I found that I needed to make our service account a site administrator in order to have access to the data sources that the trigger viz is being built on. I have tested it on my side and my colleagues can now run the alert manually(our data model sometimes is refreshed late and misses the schedule).
Good morning Matt
I am new to Vizlaerts and quite impressed in the functionality and ease of use pf the tool. One of the points Jose mentioned "our data model sometimes is refreshed late and misses the schedule" , does there any option or tweak to check this? We have similar process and if we miss our 7 AM schedule we would have to run manually. Is there any way we can tap into PostgreSQL and check Extract Start Date, Completed Date etc and to enhance even further if Vizalerts already ran and someone tries to run manually (by error) we have a "counter" (0 for not run, 1 if it already ran) saying Vizalerts already ran and Vizlaerts checks the counter and does not send emails again. Sorry for taging on an existing post. Much appreciate your thoughts and great work you (Jonathan Drummey and Toby Erkson )are doing for community.
Hi Abi. Yes, you can do what you are seeking in a few different ways:
1. Schedule the VizAlert for later, when you are certain that the data will be present.
2. Run the VizAlert frequently, and build a relative date criteria into [Email Action] so that it only runs when the data was made available in the previous time window (e.g. if run hourly, only run when the data was made available in the previous hour)
3. Base your VizAlert workbook on an extract containing the data you want to alert on. Have your ETL process Subscribe on the "On Extract Refresh Success" schedule. It will then run only when the extract was successfully refreshed. If you need the extract refreshed only when some upstream ETL has happened, then have your ETL process run tabcmd refreshextract / runschedule , or make a REST API call for Run Extract Refresh Task. The alert being on that schedule, will automatically run once the refresh is complete.
I would still like to know more about how your data is coming in, how your alert is set up and why you need to run it manually. Without that information, it's not likely that we'll be able to find a suitable solution that will be stable for you...
Thank you Matt for your insights. I will create a new topic and I will share more details. We are already doing Option 3.
We are doing the step 3 from your response and ETL is kicking off the Tableau extracts as expected. We have particular use case (not kick off the extract if there is an data issue and send emails again) where we want to see if we can alter the config. If it is alright we would like to have a quick call to see if this is feasible. Please let me know.
Hi Abishek. Forum support is free because it's community-supported, but for direct support requests, please work with your sales rep, as it may result in the need for Professional Services.
Makes sense and appreciate your insights. I wasn't sure how effectively i will be able to convey our situation. I will try my best -
Our current implementation is set up in the below fashion, and the particular solve we are looking for is a process that generates ~450 unique alerts to folks based on their area of responsibility daily:
- ETL Processes run
- SSIS Agent calls tableau to refresh extract via rest API
- Tableau Refreshes
- There are many schedules, but for example sake: VizAlerts is set up on a disabled 7am MST schedule and alerts are subscribed to
- Note, in vizalert workbook(s) we have Boolean values to check published data source to identify if prior day’s data is available
When we ‘miss’ or have to introduce manual intervention it is because the ETL runs longer than expected and refresh of data arrives to tableau after scheduled vizalert time. The schedule runs, executes the appropriate schedule but ultimately returns a NULL csv file if the refresh hasn’t succeeded by set 7am schedule.
What we are looking to do or hope to do, is automate this so that there is no manual intervention needed regardless of what time extract completion occurs, and ONLY the first time the extract is run in a given date (some extracts run multiple times per day). Essentially we are thinking about it logically of a counter – if refresh success = first time in day than send else null.
Thoughts on other ways to think through this?
Are any real, tractionable, Tableau visualizations (e.g. a dashboard) sent to the people who are alerted? Or are you just in need of a tool that informs people about an event? It sounds like the latter to me and thus you're using Tableau for something it's not really meant for but is [possibly] the best tool you presently have in order to do it.
Given the exceptions required you'd likely need access to Tableau's internal db. If you're an admin then access is not an issue but if you're not an admin then you'll need to work with your Tableau Server admin about your requirements and what they can provide from the internal db. Remember, Tableau is about visualizations, not a Google analytics device that captures everything -- although, Tableau actually does collect a goodly amount of info so they certainly aren't lacking! -- so keep expectations/requirements reasonable and simple.
Based on your requirements it's also reasonable to think that some scripting will be needed for some processes. Thus a single-solution is not possible unless the process will be ungodly complicated and, of course, a nightmare to maintain...especially for the next person that has responsibility for it!
Toby is right. If the goal is to only send your VizAlert emails when an extract has successfully completed, you have a few different options:
1. Use the built-in "On Extract Refresh Success" schedule feature in VizAlerts. This requires that your extract is local to the workbook that the VizAlert is built on. When the workbook extract refreshes successfully, your alert will be executed. It will not work if you are connecting to a published data source, and wanting the refresh of that extract to trigger your alert. The other disadvantage here is that it would trigger twice if the extracts were refreshed again in the same day--contrary to what you said you want.
2. Work with your admin to set up the TS Background Tasks data source against the PostgreSQL repository database. This provides data on the status and completion times of all extract refreshes on Tableau Server. You'd then blend it with your alert data in such a way that Email Action returned 1 in the time windows that the extract refreshed successfully, triggering the emails. You'd have to schedule this to run fairly frequently--say, hourly, or half-hourly, because it would not otherwise know to check for the Email Action field.
Disadvantages to this approach is that (a) it might be a little complicated, as you'd need to use data blending to pull TS Background Tasks data in, and (b) it might be a little more expensive resource-wise, since your schedule would have to run your alert fairly often.
3. Engage Professional Services to help you edit the VizAlertsConfig workbook in a similar way to how the "On Extract Refresh _____" schedules work, but for your own specific alert and your own specific extract refresh task. This might be tricky to do, and you'd have to perpetuation that change every time you upgraded VizAlerts.