Revenue by marketing channel
Answers where revenue comes from across paid, organic, email and search. ROAS and CAC need an ad-spend integration and are not included.
Authored by Sid Chaudhary
Founder & CEO at Intempt
Agentic workflow
Coming soon1 step Blu runs end to end. It drafts a plan and nothing runs until you approve it.
- 1
Build the attribution board
Coming soonBlu builds a step
About this recipe
When to use it
Revenue by channel, email-driven revenue, and search-driven revenue usually come from three different reports that don't reconcile cleanly. This puts them in one marketing-lead view. Note: ROAS/CAC require ad-spend integration, not included in this dashboard's native taxonomy.
What it delivers
Tracks revenue by channel, email-driven revenue, search-driven revenue, and category-level marketing performance for the Marketing Lead view.
How you prompt this
Describe the outcome in your own words and Blu Agent maps it to this recipe, or run it by name. It drafts a plan first and nothing runs until you approve it.
Tell Blu Agent what you want
“Answers where revenue comes from across paid, organic, email and search. ROAS and CAC need an ad-spend integration and are not included.”
recipe.md preview
Built from the published catalog. Blu Agent's full step prompts load in your workspace when you run it.
Inputs & outputs
What the recipe needs before it runs, and what it leaves in your workspace.
Inputs
- Nothing declared beyond an Intempt workspace. Blu asks for anything else it needs as it goes.
Outputs
How the recipe runs
Blu follows the steps in order and shows you each one before anything goes live.
- 01Build the attribution boardCreate a Dash board (12-column composition canvas) titled "Marketing Attribution". Persona: Marketing Lead, Performance Marketer, Lifecycle Marketer. Question answered: "Where is my revenue coming from across paid, organic, email, and search?" IMPORTANT scoping note: the canonical Intempt V2.1 taxonomy does NOT include ad-spend events or ad-spend integration. Therefore this dashboard cannot natively compute ROAS or CAC. It tracks revenue and conversion attributed to channels using UTM source on the Users object, but spend-side metrics require a separate ad-spend integration beyond the scope of this dashboard. Board-level configuration: - defaultDateRange: last_30_days - exclusionPeriod: incomplete_periods - visibility: project - boardFilters: none by default - boardBreakdowns: UTM source: pushed down to all cards (the canonical channel attribution dimension) Layout: 4 rows. Row 1: Attribution KPIs (heightPx: 200, four metric cards at widthUnits: 3): - Card 1: Insights metric to source recipe: revenue-by-channel, vizType: metric, titleOverride: "Revenue from Top Channel" - Card 2: Insights metric to source recipe: revenue-by-channel, vizType: metric, titleOverride: "Revenue from Email", filter: UTM source = email - Card 3: Insights metric to source recipe: revenue-by-channel, vizType: metric, titleOverride: "Revenue from Paid", filter: UTM source IN (paid_search, paid_social, paid_other) - Card 4: Insights metric to source recipe: revenue-by-channel, vizType: metric, titleOverride: "Revenue from Organic", filter: UTM source IN (organic, direct, organic_social) Row 2: Channel revenue breakdown (heightPx: 400, two cards at widthUnits: 6): - Card 1: Insights to source recipe: revenue-by-channel, displayMode: chart, vizType: bar (full breakdown with YoY comparison) - Card 2: Insights to source recipe: first-purchase-cohort-ltv-curve, displayMode: chart, vizType: line (LTV by acquisition channel: answers "which channels acquire customers worth keeping") Row 3: Channel-specific conversion funnels (heightPx: 440, two cards at widthUnits: 6): - Card 1: Funnel to source recipe: email-purchase, displayMode: chart, vizType: funnel_steps - Card 2: Funnel to source recipe: search-conversion, displayMode: chart, vizType: funnel_steps Row 4: Cross-cutting attribution insight (heightPx: 400, full-width single card at widthUnits: 12): - Card 1: Funnel to source recipe: funnel-dropoff-attribution-by-source, displayMode: chart (small-multiples per source: the canonical "which channel actually converts" view) Annotations: - Row 1's four channel KPIs are filtered views of the same revenue-by-channel recipe: Lovable's translation layer applies the UTM source filter and renders the metric vizType. Adjust the UTM source filters per Card 2/3/4 to match the workspace's actual UTM taxonomy. - Row 2 Card 2 (LTV by channel) is the highest-leverage card on this dashboard. Channels can have similar revenue but very different LTV. The right channels to scale are those where LTV at month-6 exceeds CAC by a healthy multiple (LTV/CAC ≥ 3.0). Without ad-spend integration, this dashboard surfaces LTV; users must compute CAC externally and combine. - Row 4's funnel-by-source small-multiples reveals which channels have leaks at which stage: different from "which channel produces revenue" (Row 2). Taxonomy notes: - Users.UTM source is the canonical channel attribution attribute (first-touch). - All revenue computations use Placed order.total_price (Shopify-sourced) summed by channel. - This dashboard does NOT include CAC or ROAS metrics because ad-spend events are not in canonical taxonomy V2.1.
Install Intempt and run it
- 1
Sign up
Create a free Intempt workspace.
- 2
Connect your data
Add the sources this recipe reads from.
- 3
Ask Blu
Type /marketing-attribution-dashboard in Blu once this recipe is live there.
- 4
Review and approve
Blu builds each step and waits for your OK before anything goes live.
