
Tax and accounting
54% better lead quality after using LeadJourney for marketing
Karsten Guhr
Managing Director
Read the storyCRM integration
Native for HubSpot, Pipedrive, Close and Attio, a webhook for Salesforce and 100+ more, with deal stages and amounts read back automatically.
Rated by teams whose CRM used to say Direct
CRM attribution for marketing and sales teams at
The deal your rep opens
HubSpot's own source field said Direct. The fields LeadJourney wrote say which ad, which campaign and which click.
The definition
In short
CRM attribution joins the marketing touchpoints that produced a lead to the record the CRM keeps for it. The first and last click source, campaign, ad and click ID are written onto the contact and the deal, the deal's stage and amount are read back, so revenue reports per ad and closed deals go back to the ad platform as conversions.
Store the gclid, fbclid, li_fat_id, msclkid and UTMs on the first visit, first-party, and keep them for months, so the lead who comes back through a bookmark still carries the ad. See UTM and click ID tracking.
First and last click source, campaign, ad, click ID and landing page on the record, in fields you map. See the HubSpot integration for one CRM in detail.
Pull deal stages, amounts and close dates out of the CRM as they change, so every campaign reports the pipeline and the closed revenue it produced, not the form fills.
Return qualified leads and closed deals, with the amount, to Meta, Google, LinkedIn and Microsoft Ads through their conversion APIs, so bidding optimises on buyers. See offline conversion tracking.
Why the CRM says Direct
Every CRM has a source field, every ad platform has a conversion count, and the two never describe the same lead.
So the number that should decide the budget, revenue per ad, exists in neither system. It has to be built at click time and written in both directions.
Case studies
One measured result per customer, with the person, the role and the company behind it.

Tax and accounting
54% better lead quality after using LeadJourney for marketing
Karsten Guhr
Managing Director
Read the story
SEO agency
€500k MRR reached profitably, scaling an SEO agency on performance marketing
Nikita Yatsun
Managing Director
Read the story
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
LinkedIn growth agency
2x customer retention, once every LinkedIn touchpoint was tracked to revenue
Marc Richard
CEO
Read the story
![]()
Digital publishing
Which article produced the lead and the revenue, across AI and organic search
Andreas Malkow
CEO & Head of PR
Read the story
SEO and GEO agency
Proven ROI on every retainer, from organic and AI search leads through to revenue
Philipp Nessmann
Managing Director
Read the storyGetreach
Backlinks marketplace (SaaS)
How the data moves
The click is recorded on your own domain before the CRM knows the person exists. From form submit on, the CRM's stages and amounts flow back into the same journey and out to the ad platforms, matched on the click ID.
Ad platforms and your website
LeadJourney
In from the ads, out to the CRM
What is written onto the record
Written to and read from
The CRMs
HubSpot, Pipedrive, Close and Attio connect with one click, Salesforce and every CRM that speaks webhook through Zapier, Make or n8n. The fields written are the same either way.
Spend, campaign structure and click IDs come in. Closed deals go back out as offline conversions.
The traffic your analytics still files under direct. No setup, the tracking script separates it.
Lead stage and deal value flow in. Every campaign sees the revenue it actually produced.
What the software does
Source, campaign, ad, click ID and landing page land on the contact and the deal at form submit, into fields you map. Your existing source fields stay untouched.
gclid, fbclid, li_fat_id and msclkid are recorded first-party on the first visit and kept for months, so a lead who converts weeks later still carries the click.
Deal stage, amount and close date come back as they change, so the report shows closed revenue per campaign and cost per customer, not cost per form fill.
The stages you choose go back as conversions with the deal amount: Meta Conversions API, Google Enhanced Conversions, LinkedIn Conversions API, Microsoft Ads offline conversions.
Because the stages come back, every campaign shows what share of its leads qualified or closed. See CRM field segmentation.
HubSpot, Pipedrive, Close and Attio connect with one-click OAuth. Salesforce, GoHighLevel, ActiveCampaign, Odoo and 100+ more connect by webhook, Zapier, Make or n8n. Every CRM in the catalogue is on CRM and sales integrations.
Why both directions
Writing the ad onto the record tells sales where the revenue came from. Sending the deal back tells the bidding what a customer looks like: told about form fills, the platforms find form fillers; told about closed deals with the amount attached, they find buyers. Most CRM integrations do the first half.
The record
HubSpot's original source on the same contact reads "Direct traffic". It is left as it was.
Fields written
The same five fields land on the contact and on the deal, so a rep reads the source on the record they open. You choose the fields before anything is written.
Every event carries the click ID and the hashed first-party fields, so the platform can match it to the click.
Stages sent back
A live log of every stage change the CRM reported: the deal, the stage, the platform it went to and the amount. A stage you did not map stays home.
37 deals the CRM marked won, each carrying the click that started it.
Revenue per source
Spend comes from every ad account, revenue from the deals the CRM marked won, so the platform's own count never enters the report. Cost per customer and closed revenue per campaign and ad.
Live in 21 minutes
No hidden form fields, no CSV uploads, no engineering ticket.
Add one script to your site on your own tracking subdomain. From that moment every click is recorded first-party with its click ID and UTMs, before any form is filled in.
Sign in over OAuth for HubSpot, Pipedrive, Close or Attio, or paste the webhook for Salesforce and the rest, then choose which fields LeadJourney may write. Connect the ad accounts for spend and the conversion APIs.
Choose which deal stages count as a qualified lead and which count as revenue, and where each one goes. From the next lead onwards every record carries its source and every closed deal reaches the platform that produced it.
How it compares
| What you need | UTM hidden fields via forms | LeadJourney | |
|---|---|---|---|
| Records the first click, not the last session | No: Last session before the form | Partly: Only if the UTM survived the visit | Yes: First and last click, recorded before the record exists |
| Survives a return visit, iOS and ad blockers | No: Cookie based, one session | No: Parameters gone on the return | Yes: First-party, server-side, click ID kept for months |
| Puts the click ID on the record | No: Not a standard field | Partly: One hidden field per platform, by hand | Yes: gclid, fbclid, li_fat_id and msclkid, automatically |
| Gives marketing deal stages and amounts | Partly: Inside the CRM's own reports only | No: Nothing comes back | Yes: Stages and amounts by webhook, revenue per ad |
| Sends closed deals to the ad platforms | Partly: Manual uploads or a fixed value per stage | No: Not possible | Yes: Conversion APIs, with the deal amount attached |
| Setup | Yes: Built in | Partly: Every form, every field, maintained by hand | Yes: OAuth or a webhook, 21 minutes |
What changes
Every new record carries the source, campaign and ad that produced it, so the lead source report stops being a question mark. See fixing Direct lead sources.
The closed-won amount sits in the same row as the campaign that produced it, so the budget follows the deals instead of the cheapest form fills.
When the platforms optimise on qualified leads and closed deals with the amount attached, the cost of an actual customer falls. See optimise on revenue.
Closed deals with a click ID and hashed first-party fields match at a high rate, so the algorithm gets more signal per euro spent.
The rep opens a record that already says which ad, which promise and which page brought the lead in, so the first call opens on the reason the lead is here.
The ads manager, the CRM and the revenue report finally name the same campaign for the same deal. No reconciliation meeting.
Original reviews
4.9 out of 5 across 11 public reviews. Quoted as they were left, shortened only by dropping whole sentences.
“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.”
“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.”
“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“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“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“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 GmbHRead the reviews where they were left
Common questions
What marketing and sales teams want to know before they let a tool write into the CRM.
The CRM's source field records what the CRM could see, which is the last browser session before the form was submitted. CRM attribution records the journey before the record exists, from the first ad click, and writes the first and last click source, campaign, ad and click ID onto the contact and the deal. It also works in the other direction: deal stages and amounts are read back so revenue reports per ad, and closed deals go to the ad platforms as conversions.
HubSpot, Pipedrive, Close and Attio connect natively with one-click OAuth. Salesforce, GoHighLevel, ActiveCampaign, Odoo and 100+ other CRMs connect through a webhook, Zapier, Make or n8n. An industry specific or self built CRM connects the same way: if it can send or receive a webhook, it works, and most custom setups are one endpoint and a field mapping.
First and last click channel, source and campaign, the ad, every UTM parameter, the click ID from each platform (gclid, fbclid, li_fat_id, msclkid), the landing page and referrer, and a link to the full journey in LeadJourney. On the deal, the attributed channel and campaign travel with it. You choose which of those are in scope before anything is written.
No. Nothing is written to a field you have not mapped. Most teams write the attribution into dedicated LeadJourney fields and leave their existing source fields untouched, so historic reporting stays comparable and no workflow breaks.
Deal stage, amount, currency and close date, plus the lead or lifecycle status where the CRM has one, delivered by webhook as they change. That is what turns a campaign report from form fills into pipeline and closed-won revenue, and what makes lead quality per source visible: the share of each channel's leads that qualified, reached proposal or closed.
The stages you choose, with the deal amount attached: a qualified lead, a booked call, a closed deal, or all three. They go to Meta through the Conversions API, to Google Ads as Enhanced Conversions and offline conversion imports, to LinkedIn through its Conversions API and to Microsoft Ads as offline conversions, each matched on the click ID captured at the first visit. See offline conversion tracking for the detail.
Tracking starts when the script goes live, so journeys are captured from that day forward and historic leads keep the source they have. That is the strongest argument for installing early: every week before the script is another week of leads filed under Direct. Setup takes about 21 minutes.
Yes. Tracking is first-party and consent-aware, data is processed and stored in the EU, and a data processing agreement is part of every plan. The fields written are attribution fields on a record the CRM already holds; the lead is only identified when they fill in your form. The GDPR and security pages list the controls.
See it on your own CRM
Book a demo and we connect your CRM live: which fields land on a real record, and which stages would go back to the ads.
The source existed at click time for every one of these. Nobody had written it down.