The final week of training has finally arrived, and with that comes the infamous Dashboard Week. The rules of dashboard week are simple:
- Each day you will be given a new data set to create a dashboard from.
- You must work individually on the data prep and dashboard. Alteryx or Prep must be used for the data prep and Tableau for the visualisations.
- Each afternoon, you will present your work. 10 minutes max per person.
- Each day you must write a short blog post about the project.
- Dashboards MUST be uploaded to and presented from Tableau Public.
- Workflows, dashboards and blog posts MUST all be complete by 3pm Mon-Thurs and by 1pm Friday.
Today's challenge was all about APIs and apps. Using a UK Street Crimes data set, we had to upload the API into Alteryx and configure an app that allows the user to pick a date range and category. We then needed to make the data Tableau friendly before uploading it into a KPI dashboard that would automatically update.
Step 1 - Alteryx
As the Crime API required a location to return the data, the first step was to incorporate a postcode API to allow the user to specify an area of interest.
This brought in the data for a user selected postcode, generating a longitude and latitude that can be later put into the Crime API.
The next challenge was to transform this into an app where the user could specify the postcode of interest and the workflow would update. This was done by using a text interface tool to replace the value in the input tool.
Next I needed to bring in our crime data. The API will only bring in one month's of data at a time and so I used a text input tool and appended that to my postcode data so that a URL would be generated for each month. Once I had my URLs, I used the same process to get my data.
In order to allow the use to select which months' data was shown, I connected two filter tools to specify a minimum and maximum date. Connecting these to interface tools allows the user to select a minimum and maximum date from a list of manually inputted dates.
Finally, I needed the user to be able to specify a category. This was a similar process: connecting a filter tool to an interface tool to allow the user to select from a drop down. I separated the categories from the rest of the data and transformed them to column headers before connecting back up to the interface tool so that the list of categories would update depending on the data going into them.
I had a slight challenge here as Alteryx automatically replaces spaces with an underscore. I used a dynamic rename to correct the header names going into the output tool and a standard formula before the filter. This meant that the strings going into both were both formatted with a space and would match.
Finally I needed to output my results. As one of the requirements was that the data would update as the app was run, I needed a live connection. For this I used an output to Tableau Server tool, overwriting the data source in my own project each time the app was run.
Step 2 - Upload to Gallery
This allows the user to run the workflow without opening Alteryx. This is definitely a more user-friendly interface and eliminates the chances of a user accidentally making a change and breaking the workflow. Each run will overwrite the data source stored on Tableau Server.
Step 3 - Using my data in Tableau
It is not possible to upload a live connection to Tableau Public As all dashboards require an extract upon publishing. And so I uploaded my dashboard twice: to Tableau Server and Tableau Public. The dashboard on Server would continue to refresh and update as the app ran whereas the dashboard on Tableau Public would remain static.
As there was limited data once all the filters had been applied, I created a dashboard that would provide a brief overview of what the data shows.