https://github.com/dobsontom/tugbot-automation
TUGbot automates the detection and posting of relevant Tableau User Group (TUG) events to The Information Lab's internal Convo network, streamlining the delivery of event notifications to employees.
https://github.com/dobsontom/tugbot-automation
automation python snowflake sql tableau zapier
Last synced: 3 months ago
JSON representation
TUGbot automates the detection and posting of relevant Tableau User Group (TUG) events to The Information Lab's internal Convo network, streamlining the delivery of event notifications to employees.
- Host: GitHub
- URL: https://github.com/dobsontom/tugbot-automation
- Owner: dobsontom
- Created: 2023-09-29T11:24:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-09T12:19:28.000Z (9 months ago)
- Last Synced: 2025-01-17T15:21:34.430Z (5 months ago)
- Topics: automation, python, snowflake, sql, tableau, zapier
- Language: Python
- Homepage:
- Size: 270 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Automating TUG Event Posting with TUGbot
## Project Description
The TUGbot project automates the detection and posting of relevant Tableau User Group (TUG) events to The Information Lab (TIL)'s internal [Convo](https://www.convo.com/ "Convo Platform Website") network, streamlining the delivery of event notifications to employees.## Workflow
1. **Data Collection and Processing**
* The Python script downloads TUG events from a [JSON feed](https://usergroups.tableau.com/api/event/?fields=id,title,description_short,picture,chapter,city,start_date,url,relative_url,video_url,event_type_title,event_type_logo,tags,allows_cohosting&status=Published "TUG Events JSON Feed") on the [Tableau User Groups website](https://usergroups.tableau.com/ "Tableau User Groups Website"). It then parses the JSON data and writes the events to a CSV.2. **Ingestion into Snowflake and Transformation**
* The [Snowflake Connector for Python](https://docs.snowflake.com/en/developer-guide/python-connector/python-connector "Snowflake Connector Documentation") is used to stage the CSV on the TIL Snowflake server and copy the data to the table `td_all_events`.
* Next, the script creates the new table `td_accessible_events` that contains upcoming events that are accessible. Two types of events are classified as accessible:
* in-person events held in a country where a TIL office is based.
* virtual events held during the waking hours of TIL staff.
* The script then creates two tables with distinct subsets of accessible events:
* `td_upcoming_accessible_events`: accessible events within the next two weeks.
* `td_distant_accessible_events`: accessible events more than two weeks in the future.
3. **Automation Schedule**
* A GitHub action runs the Python script every three hours at 20 minutes past that hour, between 08:00 and 22:59, Monday through Friday, ensuring that TUG alerts occur during TIL's working hours.4. **Integration with Convo**
* [Zapier](https://zapier.com/ "Zapier Website"), an external web app, generates a Convo post with event details for each new row that is detected:
* A new row in `td_upcoming_accessible_events` triggers a TUG reminder.
* A new row in `td_distant_accessible_events` triggers a new TUG alert.
## Acknowledgements
* Thanks to [The Information Lab](https://www.theinformationlab.co.uk/ "The Information Lab Website") for supporting the TUGbot project.