Reading the Attribution Dashboard
The attribution dashboard connects your marketing spend to closed revenue. It lives at Analytics, then Attribution in your CustomerFlows dashboard.
The Revenue by Source Table
This is the primary view. Each row represents a marketing channel or campaign:
| Column | What It Means | How to Use It |
|---|---|---|
| Source / Campaign | The channel or specific campaign name | Identify which campaigns exist in your data |
| Leads | Number of leads attributed to this source | Measures top-of-funnel volume |
| Deals Created | Leads that became pipeline deals | Measures qualification rate by source |
| Deals Closed | Deals that reached Won | Measures close rate by source |
| Revenue | Total dollar value of closed deals | The number that matters most |
| Ad Spend | What you spent on this channel (if tracking is connected) | Your investment |
| ROAS | Return on Ad Spend (Revenue / Spend) | The efficiency metric |
| Cost Per Lead | Spend / Leads | Acquisition efficiency |
| Cost Per Acquisition | Spend / Deals Closed | True customer acquisition cost |
How to Read ROAS
ROAS (Return on Ad Spend) = Revenue / Ad Spend
| ROAS | Meaning | Action |
|---|---|---|
| Above 10x | Exceptional -- this campaign is highly profitable | Scale this campaign's budget |
| 5x - 10x | Strong -- solid return | Maintain or cautiously increase budget |
| 3x - 5x | Healthy -- generating profit | Maintain budget, optimize for improvement |
| 1x - 3x | Marginal -- covering costs but slim profit | Optimize targeting, landing page, or qualification |
| Below 1x | Losing money -- spending more than you earn | Pause or significantly restructure this campaign |
Important context: These thresholds assume you're measuring closed revenue, not estimated pipeline value. A campaign with 15 leads and 0 closed deals has 0x ROAS regardless of how promising those leads look.
Example: Making Budget Decisions
| Campaign | Leads | Closed | Revenue | Spend | ROAS |
|---|---|---|---|---|---|
| Google Ads - Emergency AC | 23 | 8 | $68,000 | $3,200 | 21.3x |
| Google Ads - Seasonal Tune-Up | 15 | 4 | $3,200 | $1,800 | 1.8x |
| Meta Ads - Roof Inspection | 12 | 3 | $25,500 | $2,100 | 12.1x |
| Organic Search | 18 | 5 | $22,000 | $0 | -- |
| WhatsApp Direct | 8 | 3 | $14,200 | $0 | -- |
What this table tells you:
- Emergency AC is your best campaign. 21.3x ROAS. Increase this budget -- you're leaving money on the table by not spending more here.
- Seasonal Tune-Up is barely breaking even. 1.8x ROAS. The leads convert but at low deal values. Consider raising the minimum job value in your chatbot qualification, or pause this campaign and redirect budget to Emergency AC.
- Roof Inspection is a strong performer. 12.1x ROAS. Maintain or increase.
- Organic Search produces free revenue. $22K with $0 spend. This is the compound return on your content marketing investment.
- WhatsApp Direct is pure inbound. People messaging you directly without an ad -- likely referrals or repeat customers.
Filtering the Dashboard
By date range: Select a custom date range to compare periods (e.g., this month vs. last month, or this quarter vs. last quarter).
By source type: Filter to see only Google Ads, only Meta Ads, only organic, or all sources.
By pipeline: If you have multiple pipelines, filter by pipeline to see which channels produce the most leads for each workflow.
By deal status: Filter by Won, Lost, or Active to see different perspectives. Filtering by Lost shows which channels produce leads that don't convert -- useful for ad targeting refinement.
When Data Becomes Meaningful
| Data Volume | What You Can Conclude |
|---|---|
| Under 10 leads from a source | Too early -- directional only, don't make budget changes |
| 10-30 leads | Patterns emerging -- you can identify which channels produce the most pipeline value |
| 30-50 leads | Statistically useful -- ROAS calculations are reliable enough for budget reallocation |
| 50+ leads | Confident decisions -- compare channels, reallocate budget, double down on winners |
Rule of thumb: Wait at least 30 days before making significant budget changes based on attribution data. Early data is noisy.
Common Patterns and What They Mean
High leads, low closes from one campaign: The campaign is generating interest but not qualified buyers. Review your chatbot's qualifying questions for leads from this source, or refine the campaign's targeting.
Low leads, high close rate from another campaign: This campaign attracts serious buyers. The volume is low but the quality is high. Increase budget to capture more of this audience.
Organic search growing month over month: Your content marketing is compounding. This is free traffic that increases over time without additional spend.
"Direct" source growing: More people are navigating directly to your website or WhatsApp. This often signals increasing brand awareness, word-of-mouth referrals, or returning customers.
FAQ
Why doesn't my ad spend show up automatically? Currently, ad spend is entered manually in the attribution dashboard or pulled from your Google Ads / Meta Ads account if connected. Automatic spend import is on our roadmap.
Why do the numbers in CustomerFlows differ from Google Ads reporting? Google Ads counts clicks and conversions at the click level. CustomerFlows counts leads and revenue at the deal level. A click that doesn't result in a lead (visitor bounces, never messages) won't appear in CustomerFlows. This difference is normal and expected -- CustomerFlows shows you what actually matters: revenue.
Can I export attribution data? Yes. Click Export on the attribution dashboard to download a CSV with all source, lead, deal, and revenue data. This is useful for presenting to business partners or for offline analysis.
Related
- Attribution Overview -- How attribution works
- Google Ads Attribution (GCLID) -- Google Ads setup
- Meta Ads Attribution (FBCLID) -- Meta Ads setup
- Marketing Attribution Guide -- Full strategy guide
Need help? Email [email protected] or ask in r/CustomerFlows.