Skip to content

For marketing and revenue ops

One attribution layer between the ad platforms and your CRM, not another data project.

First-party capture, one journey per person, the source written onto every record, and a log you can point at when someone asks where a lead came from.

  • No warehouse, no dbt project
  • Every event logged and auditable
  • Consent-aware, EU hosted

Rated by the ops teams that own the reporting

  • Google
  • TrustpilotRated 4.9 out of 5 on Trustpilot4.9
  • G2Rated 5.0 out of 5 on G25.0
  • CapterraRated 5.0 out of 5 on Capterra5.0

Running their attribution layer on LeadJourney

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

One quarter of records, re-resolved

Your workspace
Lead source on the recordWhat the CRM said the source was, and what the click log says
Records with a usable source22%UTM fields and self-reported
Records with a first-party source97%click ID, stitched server-side
Records that gained a real source+75 points
Source on the recordBeforeAfter
Empty or "Direct"1,28496
"Website" or "Form"6180
Channel only, no campaign5420
Channel, campaign, ad and click ID6963,044

One quarter of records, 3,140 of them. The 96 that stay unknown are visits with no consent and no click to match.

Why attribution lands on your desk

Everybody asks you where the leads came from. Nothing you own can answer it.

The click lives in an ad account, the visit in an analytics tool, the person in the CRM and the money in the finance system, and the only thing joining them is you, on the Thursday before the review.

  • The source field is a rumour. Half the records say Direct or Website, because that is what the form could see when it fired.
  • UTMs are a governance problem you cannot win. One mistyped parameter, one redirect, one paid social link shared by hand, and the campaign is gone.
  • The same person is three records, so any join you write double counts and every stakeholder gets a different total.
  • The stitching is a pile of automations nobody documented. When one breaks it does not error, it quietly reports smaller numbers.
  • A warehouse project is the standard answer, and it costs a quarter, a data engineer and a modelling debate before the first report.
  • Every question needs an export. "Which channel produced the pipeline" is a two hour job, and it is asked every month.
  • Consent has to hold up. Whatever you build has to work with the CMP, keep the DPA story straight and survive a legal review.

So you become the join. The reporting bottleneck is a person, and the numbers are only as fresh as their last afternoon.

What LeadJourney does instead

The layer between the ad platforms and the CRM, maintained by us.

One script on your own tracking subdomain captures every click server-side and keeps the click IDs. Sessions and devices are stitched into one journey per person, joined to the CRM record, written back onto the contact and the deal, and the outcomes go on to the ad platforms. Every step is a row in a log you can open, and none of it needs a warehouse or a data engineer.

Watch it

The loop back to the ad platforms

A walkthrough of sending qualified leads and closed revenue back, so the platforms optimise on the CRM's definition of good.

4:35 minutesAll videos

Case studies

What changes once the attribution is right

One measured result per customer, with the person, the role and the company behind it.

  • Portrait of Karsten Guhr

    Tax and accounting

    54% better lead quality after using LeadJourney for marketing

    Karsten Guhr

    Managing Director

    Read the story
  • Portrait of Nikita Yatsun

    SEO agency

    95% clarity about marketing KPIs and a foundation to scale

    Nikita Yatsun

    Managing Director

    Read the story
  • Portrait of Florian Buck

    Klickkraft GmbH

    Business coaching

    €10-20k in monthly Meta spend, tied to qualified leads and revenue per ad

    Florian Buck

    Managing Director

    Read the story
  • Portrait of Marc Richard

    LinkedIn growth agency

    2x customer retention, once every LinkedIn touchpoint was tracked to revenue

    Marc Richard

    CEO

    Read the story
  • Portrait of Andreas Malkow

    Digital publishing

    Which article produced the lead and the revenue, across AI and organic search

    Andreas Malkow

    CEO & Head of PR

    Read the story
  • Portrait of Philipp Nessmann

    SEO and GEO agency

    Proven ROI on every retainer, from organic and AI search leads through to revenue

    Philipp Nessmann

    Managing Director

    Read the story
  • Getreach

    Backlinks marketplace (SaaS)

    0 to 100k in revenue from paid ads alone, inside the first month

    Getreach

    getreach.com

    Read the story

Integrations

Everything already in your stack, and a webhook for the rest.

Native connections for the ad platforms, the channels and the six CRMs most teams run, plus Zapier, Make, n8n and a documented API for anything with a webhook. Open any tile for what exactly moves between LeadJourney and that tool.

Ad platforms

Spend, campaign structure and click IDs come in. Closed deals go back out as offline conversions.

All traffic channels

Organic channels

Unpaid clicks from search and social, attributed per post, per video and per keyword.

All traffic channels

AI search engines

The traffic your analytics still files under direct. No setup, the tracking script separates it.

All traffic channels

CRM and sales

Lead stage and deal value flow in. Every campaign sees the revenue it actually produced.

All CRM and sales tools

What you get

Everything the layer has to do, and nothing you have to maintain.

One capture layer, on your own domain

A single script, in your site or your tag manager, on your own tracking subdomain. Every visit is recorded server-side with its channel, campaign, ad, keyword and click ID, so nothing depends on a third-party script surviving the browser. See server-side tracking.

Click IDs, so a broken UTM stops costing you the source

gclid, fbclid, li_fat_id and msclkid identify the click even when the UTM is missing, mistyped or stripped by a redirect. Naming stays useful for reporting rather than load-bearing for attribution. See UTM and click ID tracking.

Attribution written onto the records you already have

First touch, last touch, campaign, ad, keyword, click ID and touch count land on the contact, and the attributed source and amount on the deal, in HubSpot, Pipedrive, Close and Attio natively, Salesforce and 100+ others by webhook. Your fields, your objects, no new system for the team to learn. See CRM integration.

A log for every event, so a number can be defended

Each click, form, stage change and outbound conversion is a row with a timestamp and the rule that produced it. "Why does this record say LinkedIn?" is answered by opening the record, not by rebuilding the query. See transparent logs.

An API, webhooks and the automation tools you already run

Push leads and conversions in, pull attributed journeys and revenue out, or wire it through Zapier, Make or n8n without writing anything. The endpoints are documented and the payloads are stable. See the API docs.

  • Make
  • n8n

Consent-aware, EU hosted, DPA on every plan

It works with your consent management platform, is first-party and stores nothing for a visitor who declines. Hosting is in Frankfurt and the data processing agreement is part of every plan, which is usually the first question legal asks. See GDPR.

The build versus buy conversation

A warehouse answers this question too. It just takes a quarter and a data engineer.

The pipeline is always the same: capture the click, keep the identifiers, stitch the identities, join the CRM, model the credit, push the conversions back, and keep it running while five platforms change their APIs. It is a perfectly good project, with a data engineer attached forever and the first report a quarter away. This is the same layer, live in minutes.

The layer, in detail

What actually happens between the click and the CRM.

Your workspace
Written back to the CRMThe last hour, as your team would see it
Live
  • First touch written onto contactMira Schulz · 6 fieldsLinkedIn Ads, ABM Q3Written
  • Attributed source written onto dealFintory · €42,000Position-basedWritten
  • Two sessions stitched to one personPhone then laptop · matched at the formOne journeyStitched
  • Consent declined, nothing storedVisitor · no cookie, no identifiersNot trackedSkipped

Every row is also a line in the log, with the rule that produced it and a timestamp.

Writeback

What lands on your records, as it happens.

The attribution is only useful where your team already works, so it is written onto the objects they already open. Sessions and devices are stitched into one journey per person on our side; nothing is merged or deleted inside your CRM, and every write is a row you can read back.

  • Contact level: first touch, campaign, ad, keyword, click ID, touch count
  • Deal level: the attributed source and amount under your chosen model
  • One journey per person, stitched across sessions and devices
  • Nothing stored at all when consent is declined
Your workspace
Record historyFintory, five of the fourteen events on this deal
EventWhenDetail
Click recorded14 Aug, 09:12li_fat_id · ABM Q3
Form submitted14 Aug, 09:19Matched on email
Contact created14 Aug, 09:19Source written, 6 fields
Stage changed to SQL22 Aug, 16:04Sent to LinkedIn CAPI
Deal closed won31 Oct, 11:38€42,000 · position-based

"Why does this record say LinkedIn?" is a row with a timestamp, not a theory. Every event is kept.

The audit trail

One record, every event, in order.

This is the screen that ends the disagreement in the reporting meeting. Open a lead and read what happened: the click, the form, the writes to the CRM, the stage changes and the conversions sent back. No sampling, no query to rerun.

  • Every click, form, stage change and outbound conversion
  • The rule and the model that produced each credit
  • Retries and failures visible, not swallowed
  • Exportable, so a number in a deck can be sourced
Your workspace

How many leads last month had no attributable source, and why?

You

Unattributed leads, last month

No consent given
19 leads
Direct, no earlier visit
9 leads
Referral without parameters
4 leads
Total
32 of 1,046

That is 3% of last month's leads. Each one is listed with its session, so you can decide whether the gap is worth chasing.

  • List the 19 no-consent leads
  • How did that compare with July?

Ask Atlas

Answer the reporting requests without becoming the report.

Atlas is the AI analyst on your journeys and your CRM, and it is the part that gets your Thursdays back. Anyone can ask in plain language and the answer comes with the records listed. The gaps are shown as gaps.

  • Self-serve answers, so requests stop queueing on one person
  • In Slack, in the app, and through the MCP server in the assistant you already use
  • Every answer lists the records behind it
  • Unattributed leads shown as unattributed, with the reason

What changes

The questions you stop answering by hand

Every one of these is a report in LeadJourney, and anyone who is allowed to see it can ask. No export, no SQL, no Thursday afternoon.

  • Which channel produced last quarter's pipeline, without me exporting anything?

  • Why does this record say Direct when the person came from a LinkedIn ad?

  • How many of last month's leads have a real source, and what is missing on the rest?

  • Did the conversion we sent to Google actually arrive, and did it match?

  • Which automations are feeding leads in, and did any of them stop?

  • What exactly do we store for a visitor who declines consent?

  • Can sales see the first touch on the contact without asking me?

Live in 21 minutes

The layer in place in three steps

One script, two OAuth connections and a mapping screen. No migration, no warehouse, no change to your forms.

  1. 1About 5 minutes

    Install on your own subdomain

    Add one script to your site or your tag manager and point a tracking subdomain at us. From that moment every visit is recorded first-party with its channel, campaign and click ID, whatever the browser does with third-party cookies.

  2. 2About 15 minutes

    Connect the CRM and the ad accounts

    One-click OAuth for HubSpot, Pipedrive, Close and Attio, a signed webhook for Salesforce and everything custom, and the four ad platforms for spend and their conversion APIs. Zapier, Make and n8n cover whatever else feeds you leads.

  3. 3Same day

    Map the fields and the stages

    Choose which fields the attribution is written to, which CRM stages count as qualified, opportunity and won, which of them go back to the ad platforms, and the default model. Change any of it later without losing history.

How it compares

A warehouse build, the CRM's own attribution report, and a layer that is already running.

What you needA warehouse and dbt buildHubSpotThe CRM's attribution reportLeadJourney
Time to the first trustworthy reportNo: A quarter, plus a data engineerPartly: Today, if the source fields are cleanYes: About 21 minutes
Who keeps it running when an API changesNo: You do, indefinitelyPartly: The vendor, for its own fieldsYes: We do, on every platform we connect
Where the click identifiers come fromPartly: You build and host the captureNo: Whatever the form could readYes: Server-side, on your own subdomain
Outcomes sent back to the ad platformsPartly: A second project, per platformPartly: Manual uploads or a higher tierYes: Four conversion APIs, on stage change
Audit trail per recordPartly: If you built the logging tooNo: The current field value, no historyYes: Every event, with the rule and a timestamp
Consent, hosting and the paperworkPartly: Yours to design and defendPartly: Depends on the vendor's termsYes: Consent-aware, Frankfurt, DPA on every plan

What changes

What changes once the layer is somebody else's maintenance.

Done:

The source field stops being a rumour

First touch, campaign, ad and click ID land on the record itself, so every team reads the same source without asking where it came from.

Down:

Reporting requests in your queue

Anyone allowed to see the data can ask Atlas in plain language and get an answer with the records attached, so the monthly export stops being a person's job.

Done:

Numbers you can defend line by line

Every credit has a log entry behind it, so a disputed figure is a record you open together rather than a query you rebuild.

Done:

No warehouse on the roadmap for this

The join, the identity stitching and the conversion feeds are maintained for you. If a warehouse arrives later for other reasons, the journeys go out through the API.

Done:

One place where automations are visible

Inbound webhooks, Zapier, Make and n8n runs and outbound conversions are rows with retries and failures shown, so a broken feed announces itself.

Lasting:

The consent story holds up

First-party by default, nothing stored when consent is declined, EU hosting and a signed DPA, which is the paperwork half of every attribution project.

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

Common questions

Ops questions, answered plainly

What the person who owns the stack asks before anything gets installed.

Do we need a data warehouse for this?

No. The capture, the identity stitching, the CRM join, the models and the outbound conversions all run in LeadJourney, and the reports read from it directly. Teams that already have a warehouse keep using it: the journeys, attributed sources and revenue go out through the API and the webhooks, so this becomes a source rather than a competitor.

What exactly gets written into our CRM, and can we control it?

First touch and last touch channel, campaign, ad, keyword, click ID and the touch count on the contact, and the attributed source and amount on the deal, mapped onto the property names you choose. You decide which fields are written and which stay read-only. Nothing is merged or deleted: the identity stitching that joins sessions and devices happens on our side, so your records keep their own shape.

Do we have to change our forms, our tag manager or our landing pages?

No. One script goes in the site or the tag manager and the tracking runs from your own subdomain. Existing forms keep posting where they already post, existing pixels stay for retargeting, and hidden UTM fields you already have keep working. Nothing about the front end has to be rebuilt.

How does it handle one person arriving on three devices?

Sessions are stitched into one journey when an identifier ties them together, usually the email on a form, a booking or a call. Before that they are separate anonymous journeys, which is the honest state, and the report says so rather than guessing. See cross-device journeys.

What happens when a visitor declines consent?

Nothing is stored for that visitor: no cookie, no identifiers, no journey. They appear in the reports as unattributed traffic, counted but not identified, which is what keeps the totals honest. Tracking is first-party and works with your consent management platform. See first-party tracking.

Our CRM is custom. Can it still connect?

Yes, through a signed webhook in both directions or the documented API: push leads and stage changes in, pull attributed journeys, sources and revenue out. Zapier, Make and n8n cover the same ground without code. The six native CRMs get one-click OAuth instead. See the API docs.

Who can see what, and how do we control access?

Workspaces with per-user access, so an agency, a client or a team can be given their own view, and two-factor authentication on the account. Plans are priced on tracked events rather than seats, so adding the people who should stop asking you for exports does not cost more. See security.

See it on your own stack

See the layer running on your own CRM.

Book a demo and we connect a sandbox to your stack on the call: capture, stitching, the fields on the record and the log behind them. Or start the free trial and read your first audit trail today.

Your workspace
On every record, from now onThe attribution fields, written onto your own objects
FieldObjectValue
First touch channelContactLinkedIn Ads
First touch campaignContactABM Q3 · finance ops
Click IDContactli_fat_id · stored
Touch countContact7 across 3 channels
Attributed sourceDealPosition-based
Consent stateContactGranted · 14 Aug

Your property names, your objects. The field list is an example; you choose what is written.