The Snowflake Automated PDF Report Generator is a proof-of-concept project designed to showcase the functionality and power of Snowflake Notebooks. This project demonstrates how to create a fully automated reporting pipeline for a fictional company, WidgetCo, using only Snowflake Notebook features.
The result? A dynamic, daily PDF report of sales performance for three product lines (A, B, and C), personalized for three different managers. These reports are sent automatically via email with failure altering and archived for future reference.
report-demo-short.mp4
- Dynamic PDF Report Generation:
- Generate PDF reports for product lines A, B, and C.
- Custom data tailored for each manager.
-
Email Failure Alerts:
-
Customizable Dynamic Emails:
- Each manager receives a personalized email with their respective report.
-
Visualize Reports During Development:
- View the report directly within the notebook environment without needing to save it to a stage.
-
Archive Management:
- All PDF reports are securely archived to an internal stage for easy future reference.
-
Simplified Workflow Management:
- A single orchestration notebook handles the entire process, supporting both ad-hoc runs and scheduled automation.
- A Snowflake account with access to Snowflake Notebooks.
- Copy all the notebooks provided into your Snowflake environment.
- Run the
_00_REPORT_GEN__ENG
notebook to prepare the data for the project.- This notebook generates a sales fact table with randomized sales data for three fictional widgets.
- It also creates a stage to store the generated PDF reports.
- Run the
01_REPORT_GEN__REPORT
notebook to view and test the demo report.- Add the logo file to the notebook from
\resources]\logo.pgn
or create your own logo - Customize the report as needed.
- Preview the report as a JPG directly within the notebook.
- Add the logo file to the notebook from
- Run the
_02_REPORT_GEN__EMAIL_CONFIG
notebook to configure email integration.- Update the notebook with your email addresses.
- Run the
_03_REPORT_GEN__SEND_EMAIL
notebook to preview email content.- Note: Email formatting preview may have limitations due to Streamlit.
- Run the
_04_REPORT_GEN__PIPELINE
notebook to generate and send the reports.- Schedule this notebook for daily execution to automate the reporting process.