# Analytics Extensions Explained with Aidan Moore | Data Science in Tableau & more

> This is content from just-tim, the data-and-analytics channel by Tim Ngwena (formerly 'Tableau Tim'). Tim has 12+ years of hands-on BI experience and covers Tableau most of all, plus Power BI, Looker, Hex, SQL and data modelling, the analytics industry, and the craft of doing the job — always tool-agnostic and honest about the trade-offs.

- **Author:** Tim Ngwena (just-tim, https://just-tim.com/about)
- **Published:** 2022-11-16
- **Format:** Video · 2030 min watch · transcript available
- **Topics:** Data visualisation, AI & ML, Analytics
- **Tools:** Python (api calls, automation); Snowflake; SQL; Tableau (analytics extensions, embedding, table calculations)
- **Canonical:** https://just-tim.com/posts/analytics-extensions-explained-with-aidan-moore-data-science-in-tableau-more
- **Watch:** https://www.youtube.com/watch?v=U0Wj6eyq8Qs

I sit down with Aidan Moore, head of analytics at Informer, to explore Tableau analytics extensions beyond the usual data science use cases. Aidan walks through his thinking process, from sentiment analysis with TabPy to writing back to databases, sending emails, triggering UiPath automation, and engineering near real-time Salesforce pricing approvals.

## Key takeaways

- Analytics extensions connect via Help > Settings and Performance > Manage Analytics Extension, pointing at a TabPy instance (here on localhost port 9004).
- Because a SCRIPT_REAL calculation can simply return zero and do effectively nothing in Python, you can insert almost any Python code in the middle to do anything you like.
- Beyond data science, you can use PyODBC to write back to SQL databases, SMTPlib to send emails, and the requests library to authenticate against and call APIs, all triggered from a Tableau dashboard button.
- Aidan staged near real-time Salesforce data by having Python delete and re-insert opportunity records into a SQL table on demand, sidestepping the 15-minute extract replication delay.
- Embedding automation into a click action avoids needing a separate write-to-database extension or extra interface element, keeping users inside the Tableau and Salesforce ecosystem.
- The Anaconda TabPy distribution ships with libraries like NLTK pre-installed, whereas a native GitHub install may require manually pulling in dependencies.

## Chapters

- 0:30 Meeting Aidan and Salesforce data
- 1:55 Table extensions use cases
- 3:24 Connecting to the analytics extension
- 4:36 Sentiment analysis demo
- 10:20 Doing nothing means doing anything
- 11:48 Writing back to SQL with PyODBC
- 14:18 Sending emails and triggering UiPath
- 18:28 Salesforce pricing approval workflow
- 23:55 Near real-time Salesforce data
- 29:02 Scaling and where to run the work

Watch the full video, read the transcript and use chapter deep-links on the page: https://just-tim.com/posts/analytics-extensions-explained-with-aidan-moore-data-science-in-tableau-more

---
just-tim — Data and analytics, with a point of view. · https://www.youtube.com/channel/UC7HYxRWmaNlJux-X7rNLZyw · https://twitter.com/TableauTim · https://www.linkedin.com/in/timngwena
