1. Before Belinda asked me about making phone calls from Tableau dashboard, she had some issues in creating an email template in Tableau. Many people might have known how to do the basics. Here I would share some tips on composing an email template with some formatting, and on making it easier to edit the template.

    Email Template

    The email template is expected to be as follows, in which there are a few fields from the data table. Belinda will use the template to communicate with her business partners regularly.

    URL Syntax 

    We need to compose a URL based on the above email template, which is to be included in a URL action.
    The syntax of the URL is as follows:

    Mailto:<Recipient Email>?Subject=<Parameters.Subject> <Invoice ID>&Body=<Parameters.Text1>
    $<SUM(Amount)> due on <Due Date>. <Parameters.Text2>&Bcc=<Parameters.Sender Email>

    The orange fields are inserted from the data table. The purple fields are parameters. Note that all the orange fields need to be placed in the view of the worksheet, namely in Rows, Columns or in Mark's card.

    The static texts are saved in a number of parameters. Note that %0A%0D is the code for the line break. (%0A, %0D, %0A%0D seem all working as line break in both Mac and Windows. Not sure what the difference is.)

    <Parameters.Subject>: Please send us invoice
    <Parameters.Text1>: Hi Team,%0A%0DIn our record, there is
    <Parameters.Text2>: Please let us know if you can send us the invoice in a timely manner. %0A%0D %0A%0DThanks.%0A%0DBelinda
    <Parameters.Sender Email>: belinda@somecompany.com

    By placing the static texts in parameters, it's easy to edit them. Otherwise, editing them in the action setup, can be tedious. 

    We could have used calculated fields for the static texts instead of parameters. It is more expensive that way because it adds more columns to the data set.

    Action Setup

    The action setup is like this. We choose to run action on Menu.
    Caveats
    1. If one of the fields is within Measure Values, do not insert it into the URL directly. Instead, place the field in question into Detail first. Then you can insert it into the URL.

    2. Do not check the Allow Multiple Values box.
    3. If one of the fields has a Null value, it will break the mailto URL. The remedy is wrapping the field with IFNULL(Field, Replacement_Value). Do this for every field that may have a Null value. (Credit: Ethan Hahn)

    4.For the native function UNSERNAME(), we can't use it directly in the URL. Instead we need to use its LOD form: {MAX(UNSERNAME())} (Source by Kevin Flerlage)

    Set up Tooltips

    To view the menu action link quickly in tooltips on data marks, we need to set up tooltips with the option of "On Hover - Show tooltips on hover". Otherwise, we may not see the action link for email.
    The demo workbook can be downloaded here. The email link can be seen by hovering mouse on the amount.
    Try to send me an email if you wish.

    Resulting Email

    An example of the resulting email is like:
    I would like to thank Tableau Zen Master Jeffrey Schaffer for the line break code! Feel free to leave comments or contact me at twitter@aleksoft.

    0

    Add a comment

  2. Belinda needs to call business partners in foreign countries regularly. She has a dashboard showing various deadlines that she has to monitor. If a deadline is overdue, she may need to talk to the partner in question. She has already integrated email in the dashboard via URL action. She came to me because she wanted to initiate phone calls right from the Tableau dashboard. BTW, the calls have to be made through Cisco Jabber, a network based phone software.

    After a number of tests, I found a working solution for her. Here it is. We use Mac. For Windows users, you may find hints here.

    1. Set the preferences in Jabber to make it the default. Otherwise, Mac will open FaceTime to call.

    2. Create a URL action in Tableau. Make sure you have a phone number column in the data set. The numbers start with 9011 instead of +. Insert the column in the URL action settings. Note that the URL syntax is like 
    • Tel:9011<Country Code><Phone Number>

    Voila. 

    Feel free to leave comments or contact me at twitter@aleksoft.

    0

    Add a comment

  3. This post is about labeling a trellis chart that's already in dual axis.

    In earlier posts on labeling trellis chart, we use one axis for the labeling function. Many times, the chart is already in dual axis (both axis are taken). What should we do then?

    Here we are going to show two approaches about labeling a dual-axis trellis chart: 

    1. Labeling with Stacked Axis
    2. Labeling with Shared Axis

    Labeling with Stacked Axis

    This is a simple approach. Please refer to this post on composing a label and on the formula for Label Height. Let's place the Label Height pill on the Rows to the left of the dual-axis measure pills. Then each trellis cell is split in halves. The labels will be placed in the top half. The chart is in the lower half. We can see that two axis are stacked up.
    In the formatting panel, we can remove the line between two halves by lowering the Row Divider Level.
    The only drawback of this approach is that the dynamic range of the chart is reduced by half. To some, this may be good enough.

    Labeling with Shared Axis

    In this one, we will use the Measure Names/Measure Values approach where two or more measures can share the same axis. First we create a shared axis between Label Height First/Last and the key measure (Unemployment Rate), before dual-axis-ing with another measure. This approach, the dynamic range of the chart is not affected, given the same canvas space.
    The Label Height Scaled field is created as follows:
    The first window function is to compute the max value of Unemployment Rate across the entire Date and Country Name. Then it is scaled by a parameter that is >=1. This formula will guarantee that the data marks for labels will be no lower than any data mark in a chart. This fact will be used in label settings where we only show those labels at the max Measure Values.

    The field Label Height First/Last is as follows, which keeps only the necessary data points.
    We can use the Scale parameter to fine tune the dynamic range of the chart.
    Note that in the Label setting, we need to select Measure Values and set the labels to be at the max. Allow labels to overlap other marks.
    We showed that even for a dual-axis-ed trellis chart, we can still label them.

    The demo workbook can be downloaded here

    Feel free to leave comments or contact me at twitter@aleksoft.
    0

    Add a comment

  4. In online Tableau literature, I noticed that most people referred to Zen Master Chris Love's formula in a 2014 post about the size of a trellis chart.

    For the Column (X axis) and Row (Y axis), the formula are
    • X axis = (Index()-1)%Int(Sqrt(Size()))
    • Y axisInt((Index()-1)/Int(Sqrt(Size())))
    Size() is related to the number of trellis cells. The formula are based on Sqrt(Size()) and will result in asymptomatically the same numbers of columns and rows, or a square-like trellis chart. This is not the only option though. 

    We can have quite different numbers of columns and rows, thus various sizes of trellis chart. 

    In theory, we can pick an arbitrary integer as the # of columns <= Size(). Then we use the following formula for X axis and Y axis:
    • X axis = (Index()-1)%[# of columns]
    • Y axis = Int((Index()-1)/[# of columns])
    In the following example, we got a dimension Country Name having 36 countries. Assume we pick the # of columns to be 2, 3, 4, 5, 6. The corresponding # of rows will be 18, 12, 9, 8, 6. We thus got 5 options of trellis chart for the same data set.
    You can download the demo workbook here and test various size options for a trellis chart. The trellis chart is inspired by Ashwin Shankar's design.
    Feel free to leave comments below or contact me at twitter @aleksoft.
    0

    Add a comment

Blog Archive
Loading
Dynamic Views theme. Powered by Blogger. Report Abuse.