Skip to content

Power BI integration

Power BI marketing attribution, modelled like every other cost

LeadJourney streams clicks, conversions and leads into your BigQuery, and Power BI's own connector reads them, so marketing joins the model next to revenue, pipeline and headcount.

  • Live in 21 minutes
  • 95%+ accuracy, first-party
  • Import or DirectQuery

How the data moves

Traffic channelsWhere every journey starts
  • Meta
  • Google Ads
  • LinkedIn Ads
  • Microsoft Ads
  • Organic search
  • Organic social
  • AI search
Spend, campaigns, every visit
Offline conversions, revenue

AI Attribution Engine

LeadJourneyServer-side tracking, every channel in one journey
  • Server-side tracking of every visit
  • Multi-touch attribution per lead
  • Streamed into your BigQuery dataset
Through the BigQuery connector
Power BIWhere the business is modelled
  • Semantic model
  • Reports
  • Refresh

Power BI ships a Google BigQuery connector, so the dataset LeadJourney fills is a source your team adds the way it adds any other. Nothing to install from AppSource, nothing custom to certify.

Trusted by 100+ lead generation businesses, agencies and freelancers

  • Trading.de logo
  • Swedish Cold logo
  • Trustfactory logo
  • MLK Digital logo
  • CPC AG logo
  • DaxoMedia logo
  • Contentbär logo
  • Hivebuy logo
  • OBVIOUS logo

The gap

Every cost in the model resolves to a driver. Marketing resolves to a channel name.

Power BI will join revenue to pipeline to headcount to cost centre and hold the whole thing together. The one input it has never had a clean source for is which advertising produced which customer.

The marketing table in a model built by hand

The only fact table nobody trusts

  • Spend arrives per platform, each with its own currency, timezone and definition of a day, so a monthly total needs a reconciliation step.
  • Conversions arrive from the same platforms, self-reported, and the same lead is counted by two of them.
  • The analytics export supplies sessions, collected in the browser, so ITP, ad blockers and declined banners take their share before the row exists.
  • The CRM has the deal and the value, and no column on it names the campaign that started the journey.
  • Joining those is identity resolution, which is a model somebody writes, tests against edge cases and owns forever.
  • So the marketing measure ends up being a manual monthly upload, and it is the one the finance review picks apart.
  • A platform changes a schema, the refresh fails, and the dashboard shows last week until somebody notices.

The marketing table LeadJourney supplies

A fact table with a real grain, refreshing on its own

  • Every visit is captured server-side and first-party on your own domain, at 95%+ accuracy, before any consent tool or ad blocker gets a vote.
  • Clicks, conversions and leads stream into your dataset already joined per lead, so the grain is a journey rather than a platform's daily summary.
  • The CRM stage and the deal value are on the lead, read from HubSpot, Salesforce, Pipedrive or a webhook before the row was written.
  • Spend is pulled from every connected ad account, so cost per qualified lead and ROAS are measures over one consistent source.
  • First click, last click, linear, position based and time decay are decided in LeadJourney, so the model does not carry five competing definitions of credit.
  • Nothing for your team to maintain. The export is a connection, so a schema change at Meta is our problem, not a failed refresh on Monday.
  • And the same records go back to Meta, Google, LinkedIn and Microsoft Ads as conversions, which is a thing a semantic model cannot do at all.

How it works

Power BI marketing attribution, through the connector you already have

There is nothing to install and nothing to certify. LeadJourney fills a dataset in your own Google Cloud project, and Power BI reads it like any other BigQuery source.

  1. 1

    The attributed dataset arrives in your project

    Streaming, at the grain your model wants.

    MetaGoogle AdsLinkedIn AdsYour website

    Ad clicks, spend, sessions and click IDs are tracked server-side across paid, organic and AI search.

    The CRM stage and the deal value join the journey, and the revenue is attributed with the model you chose.

    Google BigQuery

    Clicks, conversions and leads stream into a dataset in your own Google Cloud project as they happen.

    Your project, your region, your access rules. LeadJourney writes rows and reads nothing back.

  2. 2

    Power BI reads it, and marketing joins the model

    Import for the usual case, DirectQuery when the report has to be live.

    Power BI

    Add the dataset with Power BI's built-in Google BigQuery connector, on a service account your team controls.

    Model it next to revenue, pipeline, cost centres and headcount. The grain is one journey per lead, which joins to the CRM cleanly.

    Your refresh schedule, your row-level security, your workspace governance. Nothing about the export asks for an exception.

    Cost per qualified lead and return on ad spend become measures the finance review can trace to a record.

The return path

A model explains last quarter. The same records make the next one cheaper.

Reporting is where most marketing data projects stop, because a warehouse and a BI tool can only read. Telling the ad platforms which leads actually closed is the half that changes the outcome.

  • MetaConversions API

    Qualified leads, booked meetings and won deals, with the deal value

  • Google AdsOffline conversion import

    Deals matched on gclid, with the revenue for value based bidding

  • LinkedIn AdsConversions API

    Stage changes and won deals matched on li_fat_id

  • Microsoft AdsOffline conversions

    Deals matched on msclkid, with the amount

One record, two destinations

The row your model reads and the conversion Meta receives come from the same record, so the report and the ad account cannot drift apart.

You choose what counts

Map any CRM stage to any platform event. Qualified lead, meeting booked, deal won, or all three, each with its own value.

Sent server to server

No pixel to fire, nothing for an ad blocker or a declined cookie banner to remove on the way out.

Reporting

The measures the model could not carry

Each of these is also a built-in LeadJourney report, so the marketing team is not blocked while the model is built. The dataset is there for the questions only your business asks.

  • What did a closed customer cost in advertising, by segment, by entity and by quarter?

  • Which campaigns produce the deals that stay, once you join them to the retention data already in the model?

  • How does marketing-sourced pipeline compare to the rest, on the same definitions finance uses?

  • How much pipeline came from ChatGPT, Perplexity and Gemini, as sources of their own?

  • How does the same quarter look on first click and on last click, without re-running anything?

  • Which business units are buying the same lead twice, and what does that cost the group?

LeadJourney and a marketing table you build yourself

Where the connector list ends and LeadJourney starts

Power BI will connect to every marketing source you own and model them properly. What none of those sources contains is the link between the ad click and the deal, because none of them was ever watching both.

Marketing sources you connect yourself compared with LeadJourney, capability by capability
Power BI marketing attributionMarketing sources you connect yourselfA model your team writes: stitch sessions to leads, leads to deals, then divide credit. Possible, and it is a project with an owner.With LeadJourneyArrives already joined, at one journey per lead, so the fact table has a grain the CRM joins to.
Where the click data comes fromMarketing sources you connect yourselfAn analytics export collected in the browser, so ITP, ad blockers and declined banners take their share before the row exists.With LeadJourneyServer-side and first-party on your own domain, at 95%+ accuracy, with the click IDs stored at the moment of the click.
CRM revenue on the rowMarketing sources you connect yourselfA separate CRM extract, on its own schema, with no column naming the campaign.With LeadJourneyThe stage and the deal value are read from HubSpot, Salesforce, Pipedrive, Close, Attio or a webhook and travel with the lead.
Ad spendMarketing sources you connect yourselfOne connector per platform, each with its own currency, timezone and definition of a day.With LeadJourneyPulled from every connected ad account automatically and normalised, so a monthly total needs no reconciliation step.
Attribution modelsMarketing sources you connect yourselfDAX per model, and the model carries every competing definition of credit somebody has ever asked for.With LeadJourneyFirst click, last click, linear, position based and time decay, decided in the product, so the dataset carries one answer.
Refresh and maintenanceMarketing sources you connect yourselfYour team's. A platform changes a schema, the refresh fails, and the report shows last week.With LeadJourneyRows stream in on their own. Power BI refreshes on your schedule against a source that does not break.
Governance and securityMarketing sources you connect yourselfYours, and unaffected by any of this.With LeadJourneyUnchanged. The dataset sits in your Google Cloud project under your access rules, and Power BI reads it with a service account you issue.
Conversions back to the ad platformsMarketing sources you connect yourselfOut of scope. A semantic model reads; sending the closed deal back is another tool entirely.With LeadJourneyEvery stage change and won deal goes back to Meta, Google, LinkedIn and Microsoft Ads from the same rows.
The marketing team waiting on the modelMarketing sources you connect yourselfWaits, and uses the ad platforms' own numbers in the meantime.With LeadJourneyHas the reports, the dashboards and Atlas from day one, on the same data the model will read.

Keep the model. Give it a marketing table worth joining.

Power BI stays where the business is modelled and where finance reads the result. LeadJourney supplies the one fact table the connectors cannot: the click, the lead and the closed deal at one grain, and it hands that same record back to the ad platforms on the way past.

MCP server

The answer before the model is finished

A semantic model takes as long as it takes. Meanwhile the same journeys, spend and attributed revenue answer in Claude, ChatGPT or Cursor, from your own numbers.

LeadJourney MCP connected, try any tab

Which campaigns produced our closed revenue last month?

Based on your LeadJourney data, 3 campaigns produced 148,200 EUR of closed revenue last month:

Google Ads, Brand
38 leads, 9 closed deals, 61,400 EUR. Shortest path to signature.
LinkedIn, Retargeting
21 leads, 6 closed deals, 48,900 EUR. Seven touchpoints on average.
Meta, Lookalike DACH
54 leads, 5 closed deals, 37,900 EUR. Cheapest qualified lead.

Want this as a weekly summary in Slack?

Ask anything about your lead journeys

Where did our three biggest deals this quarter come from?

Your 3 largest deals this quarter all started somewhere the last click never showed you:

42,000 EUR
First touch LinkedIn Ads, closed 63 days later after a webinar signup.
28,500 EUR
First touch Google organic, paid click on day 11, demo on day 19.
21,800 EUR
First touch a Meta video view, form filled from email six weeks on.

Want the full touchpoint list for any of them?

Ask anything about your closed deals

Which landing pages turn LinkedIn traffic into qualified leads?

3 pages take your LinkedIn traffic, and the qualified rate between them runs from 4% to 18%:

/demo/attribution
18% qualified from 214 visits. Highest intent page on the site.
/guide/server-side
9% qualified from 612 visits. Most journeys stall after the download.
/pricing
4% qualified from 488 visits. Second most traffic, lowest intent.

Want the same breakdown for Google Ads traffic?

Ask anything about your landing pages

What did each channel cost per qualified lead last week?

3 channels spent budget last week. Cost per qualified lead ran from 41 EUR to 187 EUR:

LinkedIn Ads
41 EUR per qualified lead. 2,300 EUR spent, 56 qualified.
Google Ads
88 EUR per qualified lead. 4,400 EUR spent, 50 qualified.
Meta Ads
187 EUR per qualified lead. 3,740 EUR spent, 20 qualified.

Want an alert the moment a channel passes 120 EUR?

Ask anything about your cost per lead

What do the journeys that close have in common?

3 signals show up in most of your closed deals and in almost none of the lost ones:

Pricing page, 2+ visits
In 71% of closed deals. In 12% of the ones that never closed.
Demo within 14 days
In 64% of closed deals. Median 9 days from the first click.
Second contact
In 58% of closed deals. A colleague of the lead arrives on site.

Want these three scored onto every lead in your CRM?

Ask anything about your lead journeys

Setup

From the first click to a source in your workspace

No AppSource listing, no custom connector to certify and no exception to your governance policy.

  1. 1About 21 minutes

    Add a single line of code

    Paste the LeadJourney script into your site or your tag manager, and connect the ad accounts you buy on and the CRM your deals live in. This is what produces the data the model has been missing.

  2. 2About 5 minutes

    Switch the BigQuery export on

    Create a service account in your own Google Cloud project with write access to the dataset you want filled, and paste its key into the BigQuery app. Available on the Scale and Enterprise plans.

  3. 3Same day

    Add it as a source in Power BI

    Use the built-in Google BigQuery connector, Import or DirectQuery, and model it next to revenue and pipeline. Your refresh schedule and your row-level security apply as they always did.

Original reviews

What our customers wrote, word for word

4.9 out of 5 across 11 public reviews. Quoted as they were left, shortened only by dropping whole sentences.

  • 5 out of 5 starsGoogle

    Before LeadJourney, we had no reliable tracking concept for our five-figure ad spend. We were manually building spreadsheet and CRM reports, inaccurate and time-consuming. Within two days, everything was set up. For the first time, I know exactly what I pay per lead and which campaigns actually bring in the best-qualified prospects.

    Florian BuckCEO, Klickkraft GmbH
  • With LeadJourney we are able to track all our leads and connect them with sales and attribution data to make better decisions. In the first month of using it we scaled from 0 to 100k revenue from paid ads only.

    GetreachBacklinks Marketplace (SaaS)
  • 5 out of 5 starsG2

    LeadJourney finally fixed my Marketing Analytics. It goes way beyond basic Ad Tracking Software. The Customer Journey Report saves hours of digging, and capturing everything from Offline Conversions to AI Search Tracking makes it the Best B2B Attribution Platform available.

    Sascha LenzMarketing Manager
  • 5 out of 5 starsTrustpilot

    Connected LeadJourney for 2 clients, setup took literally 20 minutes each. The data became more accurate, the reports actually make sense. Now clients look at the dashboard and the 'why don't the numbers match?' questions are gone.

    Alexander SamarPerformance Marketing Agency
  • 5 out of 5 starsGoogle

    With LeadJourney, we have finally found a tool that provides us with the data we need to scale our performance marketing campaigns. The most important KPI is no longer lead price but cost per qualified lead.

    Steffen SiesingCEO, Bilanzmanufaktur GmbH
  • 5 out of 5 starsG2

    The ability to track both online and offline conversions in one unified dashboard has given us insights we never had before. Our ROI has improved dramatically since we started integrating LeadJourney with our CRM. We're finally able to see the full customer journey, and it's been a game changer for our strategy.

    Andre WitzelFounder, Trading.de
  • 5 out of 5 starsTrustpilot

    The ability to seamlessly integrate data from multiple channels and see real-time insights has significantly improved our campaign results. We now focus on metrics that truly matter, like ROI and qualified leads.

    Nikita YatsunCEO, RLV Media GmbH

FAQ

What BI teams ask before adding the source

If yours is not here, our team answers in the chat within a few minutes.

Is there a LeadJourney connector for Power BI?

No, and the setup is simpler without one. LeadJourney streams the attributed dataset into a BigQuery dataset in your own Google Cloud project, and Power BI's built-in Google BigQuery connector reads it. Nothing to install from AppSource, nothing custom for your team to certify.

Import or DirectQuery?

Both work, because both are properties of Power BI's BigQuery connector rather than of the export. Most teams import on their normal refresh schedule, because a marketing report rarely needs to be live to the minute and an import is cheaper to query. DirectQuery is there for the report that does.

What is the grain of the data?

One journey per lead, with the click, the campaign, the CRM stage and the deal value on it, plus the click and conversion streams behind it. That grain is the point: it joins to your CRM dimension cleanly, which a platform's daily campaign summary never does.

Whose Google Cloud project is the data in?

Yours. You create the dataset, you set the region and the access rules, and you pay Google for storage and queries as you already do. LeadJourney writes rows with a service account key you issue and can revoke at any time, and Power BI reads with a service account your team controls.

Does this affect our row-level security or workspace governance?

No. It is another BigQuery source in your tenancy, so your existing rules apply to it unchanged. Nothing about the export asks for an exception, an outbound firewall rule or a gateway you do not already run.

We are on the Microsoft stack. Why is the destination Google BigQuery?

Because it is the warehouse the export ships to today, and Power BI reads it natively, so the mismatch costs nothing in practice. Snowflake is on the roadmap and marked that way on the pricing page. If a Microsoft-native destination is a requirement for your review, say so on the first call: which one we build next is decided by who asks.

Can we do this without a warehouse at all?

Power BI can read a Google Sheet that the Zapier app or the API fills, which is on every plan, and small teams do exactly that. For an organisation already running Power BI properly it is the wrong shape, which is why it is a footnote here rather than the recommendation.

Several business units, several workspaces. How does that land?

Each LeadJourney workspace exports to its own dataset, which is how a group keeps each entity's data in the entity's own project and still models the whole thing together in Power BI. Bring the shape you need to the call before the rollout.

Which plans include the export?

The Scale and Enterprise plans, alongside API access. On every plan the same data is reachable through the API, the Zapier app, webhooks and the MCP connection.

Is exporting to our own warehouse GDPR compliant?

It is the arrangement most data protection officers prefer, because the data lands in infrastructure you control under your own agreement with Google. On our side, LeadJourney processes and stores data in the EU, signs an Art. 28 data processing agreement, and tracks first-party and server-side so consent decisions are respected rather than worked around.

Your data, in your tenancy

Give the Power BI model a marketing table it can trust

Connect your ad accounts and your CRM, switch the BigQuery export on, and marketing joins the model at a grain that survives the finance review.

LeadJourney dashboard showing lead sources, campaign performance and attributed revenue side by side