A comprehensive web application suite for managing Tableau Pulse with six powerful utilities, built with Python Flask and featuring a modern, responsive UI.
Transfer Tableau Pulse definitions between different sites
- Copy individual definitions by ID or all definitions from a datasource
- Cross-site copying with full authentication support
- Preserves all definition metadata and configurations
Add or remove followers from Pulse metrics using email addresses
- Bulk operations on multiple metrics simultaneously
- Email-based user identification (converts emails to user IDs automatically)
- Support for both adding and removing followers
Copy definitions with new datasources and migrate all metrics + followers
- Creates new definitions with different datasources
- Migrates all associated metrics and their followers
- Optional cleanup of old metric followers
Update Tableau Pulse user preferences for single or multiple users
- Configure cadence settings (daily, weekly, monthly)
- Manage email and Slack channel preferences
- Set metric grouping and sorting options
- Bulk update preferences for multiple users
View all certified metrics and optionally remove certifications from unauthorized users
- List all metric definitions with certification status
- Filter by group name (automatic group ID lookup)
- Automatically remove certifications from non-group members
- Comprehensive reporting with certification details
Create multiple scoped metrics from a source metric with CSV upload support for advanced features
- π CSV Upload Mode: Upload a CSV file with dimension name, filter values, and follower emails
- Column 1: Dimension name (e.g., "Region")
- Column 2: Comma-separated filter values (e.g., "East, West" creates a metric with BOTH values)
- Column 3: Comma-separated follower emails (optional)
- βοΈ Manual Entry Mode: Simple text input for single filter value per metric
- π₯ Auto-assign Followers: Automatically add followers by email when creating metrics
- π Multiple Filters: Create metrics with multiple dimension values in a single filter
- Each new metric includes all filters from the source plus the new dimension filter(s)
- π Multiple Authentication: Supports both username/password and Personal Access Token (PAT) authentication
- π Modern UI: Beautiful, gradient interface with glass morphism effects and animations
- π Real-time Progress: Live updates during operations
- π± Responsive Design: Works seamlessly on desktop and mobile devices
- β¨ Error Handling: Comprehensive error reporting and validation
- π Utility Selector: Easy-to-use front page for choosing which tool to use
hello-world-app/
βββ app.py # Flask application with Pulse API integration
βββ requirements.txt # Python dependencies (Flask, requests)
βββ README.md # This file
βββ templates/
βββ index.html # Web UI with form and progress tracking
- Python 3.7+ installed on your system
- pip (Python package installer)
-
Navigate to the project directory:
cd hello-world-app -
Create a virtual environment (recommended):
python -m venv venv
-
Activate the virtual environment:
- On macOS/Linux:
source venv/bin/activate - On Windows:
venv\Scripts\activate
- On macOS/Linux:
-
Install dependencies:
pip install -r requirements.txt
-
Start the Flask server:
python app.py
-
Open your web browser and visit:
http://localhost:3000 -
You'll see the Pulse Definition Copier interface with:
- Welcome tab with overview and features
- Copy Definitions tab with the main form
- Real-time progress tracking during operations
- Start the application and visit
http://localhost:3000 - Choose one of the three available utilities from the home page
- Fill in the required connection and configuration details
- Monitor real-time progress and results
-
Source Site Configuration:
- Enter source Tableau Server URL
- Provide site content URL and authentication credentials
- Specify the source datasource name
-
Destination Site Configuration:
- Enter destination Tableau Server URL
- Provide destination site details and credentials
- Specify the destination datasource name
-
Definition Selection:
- Enter specific definition IDs (comma-separated) or "all" for all definitions
-
Execute: Click "π Start Copying" and monitor progress
-
Site Connection:
- Enter Tableau Server URL and site content URL
- Choose authentication method and provide credentials
-
Action Configuration:
- Select action: "Add Followers" or "Remove Followers"
- Enter metric IDs (comma-separated)
- Enter user email addresses (comma-separated or one per line)
-
Execute: Click "π₯ Manage Followers" and monitor progress
-
Site Connection:
- Enter Tableau Server URL and site content URL
- Provide authentication credentials
-
Copy Configuration:
- Enter the Pulse Definition ID to copy
- Enter the new Datasource LUID to use
-
Cleanup Options:
- Optionally remove followers from old metrics after copying
-
Execute: Click "π Swap Datasources" and monitor progress
-
Server Connection:
- Enter Tableau Server URL and API version
- Provide site content URL and authentication credentials
-
Users Configuration:
- Enter user email addresses (comma-separated or one per line)
-
Pulse Preferences:
- Set cadence (daily, weekly, monthly)
- Configure email and Slack channel delivery
- Set metric grouping and sort order preferences
-
Execute: Click "βοΈ Update User Preferences" and monitor progress
-
Server Connection:
- Enter Tableau Server URL and API version
- Provide site content URL and authentication credentials
-
Group Configuration (Optional):
- Enter a Group Name to filter certifications by group membership
- The tool will automatically look up the group ID from the name
- Leave empty to view all certified metrics without filtering
-
Certification Removal (Optional):
- Check the box to automatically remove certifications from metrics certified by non-group members
- Requires a Group Name to be specified
-
Execute: Click "β Check Certified Metrics" and view the results
The tool will:
- List all metric definitions with certification status
- Show which metrics were certified by group members vs. non-members (if group specified)
- Display certifier information and certification dates
- Optionally remove certifications from unauthorized users
-
Server Connection:
- Enter Tableau Server URL and API version
- Provide site content URL and authentication credentials
-
Source Metric Configuration:
- Enter the Source Metric ID (the existing scoped metric to use as a template)
-
Input Mode Selection:
- CSV Upload (Recommended):
- Upload a CSV file with 3 columns:
- Column 1: Dimension name (e.g., "Region")
- Column 2: Comma-separated filter values (e.g., "East, West")
- Column 3: Comma-separated follower emails (optional)
- Example CSV:
Region,East,user1@example.com Region,"East, West",user2@example.com Department,Sales,"user3@example.com, user4@example.com"
- Upload a CSV file with 3 columns:
- Manual Entry:
- Enter Dimension Name (e.g., "Region", "Category")
- Enter dimension values (comma-separated)
- Creates one metric per value (no follower assignment)
- CSV Upload (Recommended):
-
Execute: Click "π Create Scoped Metrics" and monitor progress
The tool will:
- Retrieve the source metric and its specification
- Create a new scoped metric for each CSV row (or dimension value in manual mode)
- Each new metric will have all filters from the source metric plus new filter(s) for the dimension value(s)
- Automatically add followers by email (CSV mode only)
- Display success/failure for each created metric and follower addition
Example: If you start with metric X that shows "Total Sales", choose dimension "Region", and provide values "East, West, North, South", the tool will create 4 new scoped metrics:
- Total Sales (Region=East)
- Total Sales (Region=West)
- Total Sales (Region=North)
- Total Sales (Region=South)
GET /- Main utilities selection interfaceGET /api/hello- Test API connection endpointPOST /copy-definitions- Copy pulse definitions between sitesPOST /manage-followers- Bulk add/remove followers from metricsPOST /swap-datasources- Copy definitions with new datasourcesPOST /update-preferences- Update user preferences for PulsePOST /check-certified-metrics- Check certified metrics and remove unauthorized certificationsPOST /bulk-create-scoped-metrics- Create multiple scoped metrics from a source metric
- Modify the UI: Edit
templates/index.htmlto change the interface or styling - Update CSS: Modify the styles in the
<style>section for custom themes - Add new API endpoints: Extend
app.pywith additional@app.route()functions - Change server configuration: Modify the
port=3000parameter inapp.run()inapp.py - Adjust API version: Update the
API_VERSIONconstant inapp.pyif needed
- The app runs in debug mode by default, so changes to Python files will automatically reload the server
- For production deployment, set
debug=Falseinapp.run() - All sensitive credentials are handled securely and not stored permanently
- Press
Ctrl+Cin the terminal where the server is running - To deactivate the virtual environment:
deactivate
- Port already in use: Change the port in
app.pyor kill the process using port 3000 - Module not found: Make sure you've activated the virtual environment and installed requirements
- Permission errors: Ensure you have proper permissions in the project directory
- Authentication failed: Verify your credentials and ensure the server URLs are correct
- Datasource not found: Check that the datasource name exists on the specified site
- Definition copy failed: Ensure you have appropriate permissions on both source and destination sites
- Network timeout: Check network connectivity to the Tableau servers
- Never commit credentials to version control
- Use environment variables for production deployments
- Ensure HTTPS is used for production Tableau Server connections
- Personal Access Tokens are recommended over username/password authentication
This application suite includes six powerful utilities for managing Tableau Pulse:
- Pulse Definition Copier - Copy definitions between sites
- Bulk Manage Followers - Add/remove followers from metrics
- Swap Datasources - Copy definitions with new datasources
- Update User Preferences - Update Pulse user preferences
- Check Certified Metrics - View and manage metric certifications
- Bulk Create Scoped Metrics - Create multiple scoped metrics with dimension filters
- π No CLI Required: Everything runs through the web browser
- ποΈ Better UX: Visual progress tracking and comprehensive error reporting
- β Validation: Form validation ensures all required fields are completed
- π Security: Credentials are handled securely without persistent storage
- π Enhanced Functionality: Same power as the original CLI scripts with improved usability
- π± Accessibility: Works on any device with a web browser
- π Unified Interface: All six utilities in one convenient location
- Modern Flask web framework
- RESTful API design
- Real-time progress updates via JSON responses
- Comprehensive error handling and logging
- Beautiful, responsive UI with animations
- Support for both JSON and XML API authentication methods
Transform your Tableau Pulse management workflow with this powerful web application suite! πππ₯πβοΈβ π