Here’s a detailed breakdown of our implementation:
Auto-Generated Dashboard Architecture:
When a campaign launches in Salesforce, a Process Builder flow triggers an Apex class that calls the Tableau CRM REST API. The API clones a master template dashboard and performs these customizations:
- Sets campaign ID filter to the new campaign
- Updates dashboard title with campaign name
- Configures date ranges based on campaign start/end dates
- Applies appropriate attribution window (30/60/90 days based on campaign type)
- Shares dashboard with campaign owner and marketing team role
The entire process takes 2-3 seconds and the dashboard is immediately available.
Multi-Source Data Integration:
We built a hub-and-spoke data architecture:
Hub Dataset: Central touchpoint repository with normalized schema containing:
- Touchpoint ID, timestamp, channel, campaign, contact, interaction type, cost data
Spoke Connectors:
- Salesforce Campaigns (native connector, real-time)
- Google Ads API (hourly sync via custom connector)
- LinkedIn Campaign Manager API (hourly sync)
- Marketing Cloud (event-driven webhooks)
- Google Analytics (GA4 connector, hourly)
Staging dataflow runs hourly to:
- Merge new touchpoints from all sources
- Deduplicate based on touchpoint ID and timestamp
- Enrich with campaign metadata from Salesforce
- Calculate cost data and normalize currency
Real-Time Attribution Models:
Attribution dataflow processes the merged touchpoints:
Pseudocode for multi-touch attribution calculation:
// Attribution calculation steps:
1. Group touchpoints by contact/lead within attribution window
2. For each conversion event:
a. Identify all preceding touchpoints within window
b. Apply selected attribution model (linear/decay/position)
c. Distribute conversion value across touchpoints
d. Aggregate attributed value by campaign and channel
3. Calculate derived metrics: ROI, cost per lead, conversion rate
4. Output to attribution_results dataset for dashboard consumption
Time-decay model uses exponential decay with configurable half-life (default 7 days). Position-based model gives 40% credit to first touch, 40% to last touch, 20% distributed among middle touches.
Dashboard Features:
Each auto-generated dashboard includes:
- Campaign performance scorecard (spend, leads, pipeline, ROI)
- Attribution model comparison view (toggle between models)
- Channel contribution breakdown
- Touchpoint sequence analysis (customer journey visualization)
- Time-series trends for key metrics
- Drill-down to individual touchpoint detail
Business Impact:
Before implementation:
- 10+ hours per week manual reporting
- 2-3 day lag in campaign insights
- Limited attribution visibility
After implementation:
- Zero manual dashboard creation
- Real-time campaign insights (1-hour refresh)
- Comprehensive multi-touch attribution
- 40% improvement in campaign optimization speed
- 25% better budget allocation efficiency
Marketing team can now launch campaigns and immediately see performance dashboards. Real-time attribution enables rapid optimization decisions. When a channel underperforms, they can shift budget within hours instead of waiting for weekly reports.
The system scaled to support 200+ active campaigns without additional analyst overhead. Dashboard auto-generation and hourly data refresh made this level of scale possible with our existing team size.