Build it with AI

Connect funnel, pipeline, activity, and attribution in one RevOps operating view.

Build a revenue operations dashboard across acquisition, pipeline, conversion, velocity, and attribution.

Introduction

What a RevOps dashboard has to hold.

Most teams end up with a RevOps dashboard the same way: marketing reporting from one tool, sales reporting from another, and a quarterly argument about which is right. Two teams reporting separately is fine while the handoff is one person walking across the office. It fails at the point where a board deck needs one funnel and the two halves cannot be joined without an analyst making a judgement call that nobody sees.

Marketing and sales count a lead differently, so every joint review spends its first half reconciling definitions rather than deciding anything. There is no shared definition of a stage that spans both halves, no identity that survives the handoff from lead to opportunity, and no record of the judgement calls the joining analyst made last quarter.

What follows covers building a RevOps dashboard: the records it holds (acquisition source, lead volume, pipeline created, conversion by stage, velocity, and attributed revenue), the systems it reads (HubSpot and Salesforce), and what it does not fix.

The problem

Marketing and sales are both right and the numbers still disagree.

Marketing automation counts contacts and CRMs count accounts, and the funnel breaks precisely where one becomes the other. Every BI tool will happily chart both without warning you that the join beneath them is a guess.

The records are acquisition source, lead volume, pipeline created, conversion by stage, velocity, and attributed revenue, and the authoritative copy of most of them already lives in HubSpot or Salesforce. Marketing reports 400 MQLs, sales reports 180 accepted, and the 220 difference is a number nobody owns — half rejection, half identity mismatch, and no way to tell which half is which.

The cost is not the inconvenience: budget moves between channels on numbers each team privately disputes.

You're likely here because

  • The gap between marketing-qualified and sales-accepted has no owner
  • Marketing and sales count a lead differently, so every joint review spends its first half reconciling definitions rather than deciding anything.
  • When it is wrong, budget moves between channels on numbers each team privately disputes

What gets built

Launch builds it, Grow operates it.

Built in Launch

  • Funnel dashboard
  • Velocity reporting
  • Source analysis

Operated through Grow

  • Pipeline execution
  • Attribution
  • Follow-up

Systems it reads

  • HubSpot
  • Salesforce
  • GA4

The record model

What the joined funnel has to carry.

Join key and its normalisation
Usually email, and it needs explicit normalisation rules. How many records collide or fail to join under those rules is the honest bound on every figure downstream.
Unmatched count
Shown, never absorbed. Dropping unjoinable records silently inflates every conversion rate on the page and the error is invisible to everyone reading it.
Handoff timestamp
When marketing passed it and when sales touched it, as two fields. The gap between them is frequently the largest recoverable loss in the funnel and it appears in no conversion rate.
Rejection reason
Because the MQL-to-SQL gap is three different things — rejected, expired, unmatched — and only one of them is a lead quality problem.
Attribution model and window
Recorded with the figure. First-touch and last-touch produce different winners, and the difference is usually who gets budget next quarter.
Stage definitions, versioned
So a comparison across a definition change is either valid or visibly invalid, rather than quietly wrong.
Source system per field
Marketing automation, CRM, or analytics. When two disagree the resolution starts with knowing which one you are looking at.

How it runs

From two funnels to one traced path.

01Describe what a RevOps dashboard has todo02Connect the systems of record03Build the operating surface04Start narrow05Route the exceptions06Measure pipeline created per source, onthe agreed definition

Step 01

Describe what a RevOps dashboard has to do

Define the handoff stage precisely — what marketing must deliver, what sales must do within what window, and what rejection means. RevOps dashboards fail at this definition rather than at the charting.

Step 02

Connect the systems of record

Marketing automation, the CRM, and web analytics each hold one segment of the path. Reading all three is the only way the join can be inspected rather than assumed.

Step 03

Build the operating surface

A funnel that spans acquisition through closed revenue with conversion and velocity at each step, plus explicit visibility of the records that failed to join.

Step 04

Start narrow

The handoff step alone: MQLs created, accepted, rejected, and unjoinable, with the last category shown rather than silently dropped. The unjoinable count is usually the most valuable number on the first version.

Step 05

Route the exceptions

Records that cannot be matched across the boundary go to a named owner as a queue rather than being absorbed into a rounding difference.

Step 06

Measure pipeline created per source, on the agreed definition

Track conversion and elapsed time at each stage boundary, and report the unmatched rate alongside every conversion figure. A conversion rate quoted without its match rate is not a measurement.

Implementation path

Joining the funnel without an attribution war.

  1. 01

    Agree the handoff definition in writing between marketing and sales before building. The dashboard makes the disagreement visible; it cannot resolve it, and shipping into an unresolved one wastes the build.

  2. 02

    Baseline the current unmatched rate at the handoff. Most teams have never measured it and are surprised by it, which is exactly why it belongs in the first version.

  3. 03

    Fix identity before attribution. If email address is the join key, normalise it and check how many records collide or fail before building anything that depends on the join being correct.

  4. 04

    Publish conversion figures with the match rate attached from the first day, so nobody builds a quarter of arguments on a number whose uncertainty was never stated.

  5. 05

    Build the narrowest useful version first: one funnel view built on definitions both teams signed off in writing before it was built.

  6. 06

    The handoff definition agreed in writing between marketing and sales is the prerequisite, and it is a management conversation rather than an engineering one. Identity normalisation and measuring the current unmatched rate is the first week of build. The handoff view alone is deliverable in two weeks and is where the value is; the full funnel can follow once the join rate is known and acceptable.

  7. 07

    Once the handoff is instrumented, add velocity per stage boundary — elapsed time rather than conversion. Most leaks that matter are delays rather than refusals, and delay does not appear in any conversion rate. Multi-touch attribution comes last, and only where a real budget decision depends on it.

Controls

Controls that matter.

01

Control 01

Every conversion rate displayed alongside the share of records that could not be matched, so the confidence in the figure travels with the figure

02

Control 02

The attribution model named on the view itself, because first-touch and last-touch produce different winners and the difference is usually who gets budget

03

Control 03

Access to person-level funnel data scoped by role, since the joined record is more identifying than either source on its own

Examples

Three disagreements that get settled.

The MQL-to-SQL gap nobody owned

Splitting the gap into rejected, expired, and unmatched turns one contested number into three, two of which have obvious owners and one of which is a data problem rather than a performance problem.

The channel that looked bad under last-touch

Showing the same funnel under two attribution models, side by side and labelled, converts a budget argument into a discussion about which model fits the buying cycle.

The velocity question

Elapsed time per stage boundary, not just conversion, exposes that the leak is a three-week wait at handoff rather than a rejection rate — a fix in operations rather than in lead quality.

How it goes wrong

Three ways a RevOps view loses credibility.

Unjoinable records are dropped and conversion rates look better than the business feels.

Publish the match rate beside every conversion figure. A conversion rate without its match rate is not a measurement, and a dashboard that hides it will eventually be caught out by someone who counts manually.

The dashboard is owned by marketing, and the definitions drift toward flattering marketing.

Give it an owner accountable across both halves. Single-sided ownership produces definitions the other side stops trusting within a quarter, and the trust does not come back.

It ships before the handoff definition is agreed, and becomes the venue for the argument rather than the resolution.

Agree the definition first, in writing, with rejection criteria and a response window. The dashboard makes the disagreement visible and precise; it has no capacity to settle it.

Limitations and considerations

What attribution cannot honestly claim.

  • Attribution is a model, not a measurement, and no dashboard makes it otherwise. Present it as a named model with its assumptions visible, and treat any single-number attribution claim as a rhetorical device.
  • Identity resolution across marketing and sales systems is imperfect wherever people use different addresses at work and at signup. The unmatched rate is the honest bound on every figure downstream of the join.
  • A joined funnel will show that one team’s reported numbers were generous. Deciding what to do about that is a management question, and the dashboard landing before that conversation has been had tends to end badly for the dashboard.
  • If marketing and sales are the same three people, the handoff is a conversation and instrumenting it adds nothing. If the two teams have not agreed what a qualified lead is, build that agreement first — a dashboard delivered into an unresolved definition dispute becomes another thing to argue about.
  • Connector coverage varies: HubSpot, Salesforce, GA4 are representative rather than guaranteed, and the fields exposed depend on your workspace permissions.

FAQ

Build a RevOps dashboard with AI: common questions.

Which attribution model should we use?

Pick one that matches the buying cycle, name it on every view, and keep a second visible for comparison. The failure mode is not choosing the wrong model — it is quoting a number without saying which model produced it, so two teams argue while describing different things.

Do we need a data warehouse first?

Not for the first version. Reading the three source systems directly is enough to expose the handoff and the unmatched rate, which is where the value is. A warehouse becomes worth it when history and reprocessing matter more than currency.

How do we handle records that will not join?

Show them. The single most common failure of a RevOps dashboard is that unmatched records are dropped silently, so every conversion rate is quietly inflated and the error is invisible to everyone reading it.

Who should own this dashboard?

Someone accountable across both halves, which usually means it does not belong to marketing or to sales. Ownership by one side produces definitions that flatter that side, and the other side stops trusting the numbers within a quarter.

What should the first version contain?

One funnel view built on definitions both teams signed off in writing before it was built. Everything else waits until that one is genuinely used.

How will we know whether it worked?

Measure pipeline created per source, on the agreed definition against the baseline taken before anything changed.

Start with ARIA

Ask ARIA to build it.

Describe the website, application, workflow, or operating surface you need. ARIA plans, connects, builds, tests, and keeps refining it — inside the permissions you set.

  • ARIA acts only through the systems and permissions you connect.
  • Connections use scoped credentials you can change or revoke.
  • Actions are recorded, and consequential ones can require approval.

Goes to UbiGrowth, with the page you asked from attached. We do not sell or share it. Prefer to talk? Call 972-823-1294.

Start here

Build a RevOps dashboard around the process you actually run.

Start at the handoff, publish the unmatched rate beside every conversion figure, and name the attribution model on the view.