Skip to main content
Intempt
Coming soon

Campaign performance leaderboard

Reports on email and SMS campaign performance over the last 90 days, ranking campaigns by attributed revenue alongside sends, clicks, and conversions.

Authored by Intempt Technologies

Recipe curators

Agentic workflow

Coming soon

1 step Blu runs end to end. It drafts a plan and nothing runs until you approve it.

  1. 1

    Rank campaigns by revenue

    Coming soon

    Blu builds a step

About this recipe

When to use it

Open rate feels good and means nothing if it doesn't convert. This ranks every campaign by the metric that matters - revenue per send - right alongside the vanity metrics, so you can see which is which.

What it delivers

Builds a per-campaign leaderboard across email and SMS: sent, opened, clicked, converted, revenue, and revenue-per-send, sorted so the highest-revenue campaigns surface first.

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

“Reports on email and SMS campaign performance over the last 90 days, ranking campaigns by attributed revenue alongside sends, clicks, and conversions.”

recipe.md preview

Built from the published catalog. Blu Agent's full step prompts load in your workspace when you run it.

Sign up to read the full recipe.md and run it with Blu Agent.

Sign up to see the full recipe

Inputs & outputs

What the recipe needs before it runs, and what it leaves in your workspace.

Inputs

  1. 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.

    1. 01Rank campaigns by revenueCreate an Insights report called "Campaign Performance Leaderboard". Series A: Event "Email sent", aggregation: Count grouped by campaign_id, label: "Sends" Series B: Event "Email opened", aggregation: Count Unique users grouped by campaign_id (joined via the email's campaign_id), label: "Opens" Series C: Event "Email clicked", aggregation: Count Unique users grouped by campaign_id, label: "Clicks" Series D: Event "Placed order" where the user previously emitted Email clicked or Email opened with that campaign_id within the attribution window, aggregation: Count Unique users grouped by campaign_id, label: "Conversions" Series E: Sum of Placed order.total_price for those attributed orders, grouped by campaign_id, unit: $, label: "Attributed Revenue" Series F: Computed: Series B / Series A × 100, unit: %, label: "Open Rate" Series G: Computed: Series C / Series A × 100, unit: %, label: "Click Rate" Series H: Computed: Series C / Series B × 100, unit: %, label: "Click-to-Open Rate (CTOR)" Series I: Computed: Series D / Series A × 100, unit: %, label: "Conversion Rate" Series J: Computed: Series E / Series A, unit: $, label: "Revenue per Send (RPS)" Attribution window: 7 days (configurable; standard email attribution is 7-day click, 1-day view-through) Time range: Last 90 days of campaigns Breakdown: By campaign_id (each row = one campaign) Sort: By Series E (Revenue) descending by default Chart type: Sortable table (the leaderboard: top 30 campaigns), with secondary scatter plot: x-axis = Click Rate, y-axis = Conversion Rate, bubble size = Revenue per Send. Top-right quadrant = highest-performing campaigns on both engagement and conversion. Sort modes (toggle): - By Attributed Revenue (descending) to "Highest Earners" - By Revenue per Send (descending) to "Most Efficient" - By Open Rate (descending) to "Best Subject Lines" - By Click-to-Open Rate (descending) to "Best Email Content" - By Conversion Rate (descending) to "Best Landing Page Match" Annotations: - Add benchmarks: typical DTC ecommerce email open rates 20-30%, click rates 2-5%, conversion rates 0.5-2%, revenue per send $0.10-$0.50 (varies by AOV). - Flag campaigns with high open rate but low CTOR (>40% open, <10% CTOR): subject line worked but email content disappointed. - Flag campaigns with high CTOR but low conversion (>20% CTOR, <0.5% conversion): landing page or offer mismatch. - Highlight the top 3 by Revenue per Send: these are the templates worth replicating. - Flag campaigns with negative trend: open rate or CTOR declining vs. trailing 4-campaign average for that audience (subscriber fatigue or list quality erosion). - Surface the cumulative revenue from email vs. total store revenue in the period: context for whether the email channel is over- or under-invested. Use case: the canonical Klaviyo/Customer.io campaign performance view. Replaces the per-tool campaign reports most ecommerce teams maintain manually, and ties every campaign directly to attributed revenue (the metric that matters). Taxonomy notes: - Email sent has campaign_id, email, sent_at, subject: the campaign_id is the canonical campaign identifier. - Email opened and Email clicked do NOT carry campaign_id directly; attribution requires joining via email or masterID against the Email sent that matches the open/click. Lovable's translation layer must implement this join. - Placed order attribution to a campaign requires a sequence: the user emitted Email clicked (with the matching campaign_id from join) within the attribution window, then Placed order. Alternative: UTM campaign on Placed order joined to the email's campaign_id (if emails inject UTM campaign into all links). - This recipe depends on the workspace's email integration (Klaviyo, Customer.io, Mailchimp, custom) populating campaign_id reliably on Email sent. If campaign_id is sparse, the report degrades to aggregate email performance without per-campaign breakdown. - For SMS-side analysis, substitute messaged_sms (which has template_id and journey_id) instead of email events.

    Install Intempt and run it

    1. 1

      Sign up

      Create a free Intempt workspace.

    2. 2

      Connect your data

      Add the sources this recipe reads from.

    3. 3

      Ask Blu

      Type /campaign-performance-leaderboard in Blu once this recipe is live there.

    4. 4

      Review and approve

      Blu builds each step and waits for your OK before anything goes live.

    More recipes by Intempt Technologies

    Got a play worth sharing?

    Publish it to the Intempt Collective Marketplace and earn when other teams run it.

    Submit a recipe