1 2 Previous Next 20 Replies Latest reply on May 10, 2019 2:36 AM by Zach Leber

    Scheduling emails


      We want the right information to hit the right people in an automated and schedule-able way



      Our users would like to be able to schedule the following to occur:

      - Filter a view based on a user-set criteria (some filter measure in the view)

      - Export the view to pdf or Excel

      - Email the exported report to them


      It would be nice if this could also be done via Tabcmd


      Hacky solution

      We are in the process of building this ourselves.

      This functionality is built into a number of other BI offerings, so it would be nice to see it built into Tableau as well.

        • 1. Re: Scheduling emails
          . Mcnike

          As far as our company is concerned, this is the ONLY thing that Cognos can do, that Tableau cannot!


          It is currently possible to do the things you are asking for - the Tableau guided explanation was given at the 2010 Customer Conference in a session called Extending Your Tableau Server with Third Party Software.  This hyperlink is to a zip file that contains the presentation and all supporting documentation.


          This presentation is meant for seasoned web developers.  I would like for these functionality to be available to everyone.


          The perfect solution as I see it:

          1.  Joe Smith logs into the server

          2.  Opens a view

          3.  Sees some measure that he is interested in

          4.  Selects the measure and enters a threshold (i.e. IF Profit<82)

          5.  Tells the server what kind of notification to send (Email me a notification, with an embedded png)


          Think of it as Parameters that trigger emails!  And these emails can have options (schedules, attachment options, etc.)


          In other words, give me the information I want, when I want it, when I need it and in the way I want it... is that too much to ask!?  =P

          1 of 1 people found this helpful
          • 2. Re: Scheduling emails

            Thanks for posting that McNike... very interesting. I've forwarded the package to our engineers for a more in depth look.


            Now if we could just get the email scheduling built in by default (a la Cognos or PivotLink)

            • 3. Re: Scheduling emails
              Zach Leber

              Our users used to get e-mailed COGNOS reports which were typically huge spreadsheets of raw data in XLS or HTML format.  Now we use tabcmd, febootimail, and Windows Task Scheduler to regularly e-mail PNG or PDF snapshots of views and dashboards while encouraging users to login to Tableau Server if they want to download a crosstab into Excel.  The key statements inside our Windows batch file script are:


              set URL=%TableauServer%/views/%Workbook%/%View%

              set Filename=%DownloadsFolder%\%Workbook%-%View%-%Today%.%Type%


              tabcmd get %URL%.%Type% -f %Filename%


              febootimail.exe -SMTP smtp.mycompany.com -TOEACH -TO -USEFILE %ReportFile% -FROM "tableau-no-reply@mycompany.com" -FROMNAME "Tableau Reports" -SUBJECT "%View% %Today%" -ATTACH  %Filename% -BODY "Please see attached report.  To explore or download the latest data visit %URL%" -ENTER


              For more on tabcmd and febootimail, see http://www.tableausoftware.com/support/knowledge-base/using-tabcmd.

              1 of 1 people found this helpful
              • 4. Re: Scheduling emails
                Jason Scarlett

                I use BLAT ... a free version similar to febootimail ... and it doesn't need installing, just put the blat.exe,dll,lib files into a folder and it will run.






                • 5. Re: Scheduling emails
                  guest contributor

                  What is missing from the tabcmd functionality is the ability to add a filter condition to the GET command.


                  Taking the example above one should be able to have something like

                  tabcmd get %URL%.%Type%?%Filter% -f %Filename%


                  ?%Filter% containing the same format as applied to a url directly in server.


                  Then a script could connect to a security database table and build a %Filter% condition that applies to a individual TO febootimail recipient.

                  • 6. Re: Scheduling emails
                    James Baker

                    Hi Karel, what's preventing you from adding HTTP GET parameters on the end of your URL passed to tabcmd's get?  Are you saying it would be better if it were broken apart and passed as a separate argument?

                    • 7. Re: Scheduling emails
                      guest contributor

                      Hi Karel,


                      Is it possible to pass parameters to a report using a query string as you suggest? If so what would the parameters look like? For instance, if I had a report with a date range filter how could I pass the date range via the query string?





                      • 8. Re: Scheduling emails
                        guest contributor

                        My apologies...the question in my previous comment was for James not Karel.

                        • 9. Re: Scheduling emails
                          Zach Leber

                          We've been using the method excerpted in my February post for the last year and it has performed flawlessly.  I've attached a script and a README rolled into a Zip file for your consideration. 

                          • 10. Re: Scheduling emails
                            David. Lewis

                            We've been testing out the method posted by Zach, and it works very smoothly.  We modified, however, the approach outlined in the Readme, in that we replaced the flat file/file folder approach for storing reports and recipients, and instead moved that to a database.  We also use a different command line emailer, but as others have noted there are many options for that.  We chose to use database tables so that we could build a simple front end for users to subscribe or unsubscribe to reports as they wanted.  What is missing at the moment is a simple way of querying Tableau Server to get a list of the condensed names that appear in the web browser address bar URL. 


                            Tableau team:  is there a way to accomplish this? 


                            Thanks Zach for putting this all together!  david

                            • 11. Re: Scheduling emails
                              David. Lewis

                              Tableau Team:  As a follow-up to my request above, the reason I ask if there is a simpler way to get a list of the condensed url's is that whenever a report is re-published to tableau server, a new url is generated (at least that is how I understand Zach's explanation), and therefore the .rpt file in his method needs to be renamed.  In our approach, the report name in the database table would need to be renamed.  An automated approach to that is preferable, obviously...  thx.  david

                              • 12. Re: Scheduling emails
                                Zach Leber

                                Even though special characters like spaces and parentheses do get cut for condensed URLs, the URLs stay constant when a workbook is republished as long as the view names don't change.  We use dynamic titles on the sheets to date them but the view names themselves don't change.  We try not to change our view names so no one has to change subscriptions or favorites or bookmarks.  And another nice thing about Server is that you can move workbooks between projects and the URLs still don't change.

                                • 13. Re: Scheduling emails
                                  David. Lewis

                                  Ah, I see.  That simplifies things.  thx.

                                  • 14. Re: Scheduling emails

                                    I think Zach's code is great. A big improvement over my existing code.


                                    Has anyone been able to include parameters into the code. It seems like it will get messy once you include a long list of parameters into the file names. Thoughts on the best way to do this?



                                    1 2 Previous Next