Tutorial 2: Building a Multi-Source Sales Analytics Pipeline
Create a comprehensive sales analytics platform by integrating Salesforce CRM, Outreach sales engagement, and Google Calendar data into a unified data warehouse.
Level: Intermediate Time: 2-3 hours Cost: Free (using trial accounts)
What You'll Build
A production-grade sales analytics pipeline that combines:
- Salesforce: Opportunities, accounts, contacts, activities
- Outreach: Email sequences, touches, cadences
- Google Calendar: Meeting data for sales reps
End Result: Unified sales performance dashboard with:
- Pipeline health metrics
- Rep activity tracking across all tools
- Sales cycle velocity analysis
- Meeting-to-close conversion rates
- Attribution across touchpoints
Learning Objectives
- Design multi-source data architectures
- Handle schema drift across connectors
- Implement incremental loading for large datasets
- Build complex joins across different source systems
- Optimize for cost (MAR management)
- Create production-quality dbt models
- Implement data quality tests
- Build sales-specific analytics models
Prerequisites
Required - From Tutorial 1
- ✅ Completed Tutorial 1: Your First Fivetran Pipeline
- ✅ Snowflake account with Fivetran destination configured
- ✅ dbt installed and working
- ✅ Understanding of ELT basics
Required - New Accounts
- Salesforce: Free Developer Edition
- Outreach: Free trial or use Salesforce Activities only
- Google Calendar: Gmail account (free)
Required Skills
- Intermediate SQL (joins, window functions, CTEs)
- Basic understanding of sales processes
- Familiarity with dbt (from Tutorial 1)
Architecture Overview
Part 1: Set Up Salesforce Connector (30 minutes)
Step 1: Prepare Salesforce Developer Org
- Sign up for Salesforce Developer Edition
- Verify email and log in
- Complete Salesforce setup wizard
Step 2: Generate Sample Data (Optional but Recommended)
Salesforce Developer orgs come with some sample data, but let's add more:
Option A: Use Data Import Wizard (Manual)
- Setup → Data Import Wizard
- Import Accounts, Contacts, Opportunities
Option B: Use Salesforce CLI (Faster)
Option C: Create Manually
- Go to Accounts tab → New
- Create 5-10 sample accounts
- For each account, create 2-3 contacts
- For each account, create 1-3 opportunities
- Log some activities (tasks, events, calls)
Step 3: Create Salesforce Connected App for Fivetran
Fivetran uses OAuth to connect to Salesforce:
- In Salesforce: Setup → App Manager
- Click New Connected App
- Fill in:
- Save and note the Consumer Key (you won't need it, Fivetran handles this)
Step 4: Add Salesforce Connector in Fivetran
- In Fivetran: Connectors → + Add connector
- Search for "Salesforce"
- Select Salesforce
- Click Authorize
- Log in to Salesforce when prompted
- Grant Fivetran access
- Configure connector:
Step 5: Select Salesforce Objects
Essential Objects (check these):
Objects to Exclude (uncheck to save MAR):
Step 6: Configure Column Exclusions
Exclude unused columns to reduce MAR:
- Save & Test → Start Initial Sync
Step 7: Monitor Salesforce Sync
Initial sync takes 10-30 minutes depending on data volume.
Part 2: Set Up Outreach Connector (20 minutes)
Note: If you don't have Outreach access, skip this section and use Salesforce Activities (Task/Event) instead.
Step 1: Set Up Outreach Trial
- Sign up at outreach.io/trial
- Complete onboarding
- Create a few sequences and prospect touches (or use existing data)
Step 2: Add Outreach Connector
- In Fivetran: Connectors → + Add connector
- Search for "Outreach"
- Click Authorize
- Log in to Outreach
- Grant permissions
- Configure:
Step 3: Select Outreach Objects
- Save & Start Sync
Part 3: Set Up Google Calendar Connector (15 minutes)
Step 1: Add Google Calendar Connector
- In Fivetran: Connectors → + Add connector
- Search for "Google Calendar"
- Click Authorize
- Log in with Google account
- Grant calendar read permissions
Step 2: Configure Calendar Sync
Step 3: Verify Sync
Part 4: Build Multi-Source dbt Models (60 minutes)
Step 1: Update dbt Sources Configuration
Edit models/sources.yml:
Step 2: Create Staging Models for Salesforce
Create models/staging/salesforce/stg_salesforce__accounts.sql:
Create models/staging/salesforce/stg_salesforce__opportunities.sql:
Create models/staging/salesforce/stg_salesforce__users.sql:
Create models/staging/salesforce/stg_salesforce__activities.sql:
Step 3: Create Intermediate Models
Create models/intermediate/int_opportunity_metrics.sql:
Create models/intermediate/int_sales_rep_activity.sql:
Step 4: Create Mart Models
Create models/marts/sales_pipeline.sql:
Create models/marts/sales_rep_performance.sql:
Create models/marts/pipeline_velocity.sql:
Step 5: Add Data Quality Tests
Create models/marts/schema.yml:
Step 6: Run dbt Pipeline
Part 5: Optimize for Production (20 minutes)
Step 1: Optimize MAR Usage
Optimization Actions:
- Exclude unused Salesforce objects
- Exclude unnecessary columns
- Use incremental dbt models (we already did this!)
- Reduce sync frequency for less critical data
Step 2: Set Up Monitoring Dashboard
Step 3: Schedule dbt Runs
Option A: Fivetran Transformations (Easiest)
- In Fivetran: Transformations → Create Transformation
- Connect your dbt Git repo
- Set to run after Salesforce connector syncs
- Fivetran will auto-run dbt after each sync
Option B: GitHub Actions (More control)
Part 6: Query Your Multi-Source Pipeline (10 minutes)
Example Queries
Sales Pipeline Overview:
Top Performing Reps:
Pipeline Health:
Congratulations! 🎉
You've built a production-grade multi-source sales analytics pipeline!
What You Accomplished
✅ Integrated 3 data sources (Salesforce, Outreach/Calendar) ✅ Built incremental loading for performance ✅ Created complex multi-table joins ✅ Implemented data quality tests ✅ Built sales-specific analytics models ✅ Optimized for cost (MAR management) ✅ Set up monitoring and freshness checks ✅ Created production-ready transformations
Your Architecture
Next Steps
- Connect to BI Tool: Tableau, Looker, Mode for visualizations
- Add More Sources: Marketing (Google Ads), Support (Zendesk)
- Advanced Analytics: Cohort analysis, churn prediction, forecasting
- Alerts: Set up Slack alerts for at-risk deals
- Expand: Build more marts (marketing attribution, customer 360)
Summary
Time Invested: ~3 hours Value Created: Enterprise-grade sales analytics platform Skills Gained: Multi-source architecture, advanced dbt, production optimization
Production Ready: ✅ This pipeline is ready for real business use!
Questions? Contact me for consulting on production implementations.