The tools in a B2B marketing tech stack are easy to buy: a CRM, an analytics platform, a tag manager, a consent banner and a few ad platforms. The harder part is connecting them to the website. When those connections are missing or half-built, leads arrive in the CRM with no record of where they came from, ad platforms optimize for page views instead of real inquiries, and nobody is quite sure whether the cookie banner is actually blocking anything.
This guide maps the connections a B2B website needs, the order in which to build them, and the places where they usually break.
The four flows every B2B website needs
Much of your marketing data starts on your website. It has to send that data to four places:
Flow | From the website to | What it answers | What breaks without it |
|---|---|---|---|
Leads | Your CRM, such as HubSpot or Salesforce | Who got in touch, and what they asked for | Sales can't follow up; marketing can't prove pipeline |
Behavior | Your analytics, such as GA4 | Which pages and campaigns lead to inquiries | You optimize for traffic instead of leads |
Conversions | Ad platforms, such as Google Ads and LinkedIn | Which ads and audiences produce results | Bidding optimizes for the wrong goal and wastes budget |
Consent | All of the above | What you are allowed to collect and send | Legal risk, and data you can't trust |
Two more flows are common but optional: meeting bookings (from a booking tool into the CRM) and enrichment (adding company data to a new lead).
If you use Salesforce, keep in mind that Salesforce's CRM and Marketing Cloud Account Engagement (formerly Pardot) are separate products with different ways of receiving website forms. Check which one your sales team actually works in before you choose an integration.
What the website has to provide
Each flow depends on the website doing its part well. Before connecting anything, check that the site has:
Forms with stable field names. If a field is renamed in the website's code but not in the CRM, leads can silently lose data.
Hidden fields for source data, such as the UTM parameters, landing page and referrer, so each lead carries its origin into the CRM.
A data layer, which is a consistent, named set of events that the website announces, such as "form submitted" or "meeting booked", so that tags don't have to guess from page elements.
One place for marketing scripts, usually a tag manager, so you know what runs on the site.
A cookie banner connected to that tag manager, so tags respect each visitor's choice.
Which connections to build first
Build them in this order:
Forms to CRM, with source data. This is the connection sales actually feels. A lead without a source is still a lead; a lead that never arrives is lost. For HubSpot, see HubSpot forms and lead routing on any website.
Consent for every tag. Connect the cookie banner to the tag manager before any analytics or marketing tag goes live. Then check that declining cookies really stops marketing tags, and that accepting them lets the right ones through.
Key events in analytics. Decide which actions count, such as a submitted form or a booked meeting, and send them consistently. Our tracking plan for B2B websites gives you a template.
Conversions to ad platforms. Only once the first three work, send the same key events to your ad platforms so they optimize for real inquiries. For Google Ads and Meta, see how to set up their tags in Google Tag Manager. Later, you can send pipeline stages from the CRM back to them as well.
When we pick up a messy setup in our growth engineering work, we usually trace one real lead from the form to the CRM before touching anything else. Following a single submission end to end quickly shows where the gaps are.
Integration options compared
There are several ways to make each connection. None is right for everything.
Option | Good for | Watch out for |
|---|---|---|
Native embeds, such as an embedded HubSpot form | Quick setup, marketing can edit without developers | Vendor scripts on your page, limited design control |
Direct API integration | Full control over design, speed and data | Needs developers, and someone has to maintain it |
Tag manager | Analytics and ad platform tags | Can turn into a dumping ground without clear ownership |
Automation tools, such as Zapier, Make or n8n | Moving data between tools that have no direct integration | Silent failures, and logic hidden away from the website's code |
Server-side tagging | Feeding several analytics and ad platforms from one stream of events | Running cost and setup effort |
A useful rule: the more important the data, the more reliable and better tested its connection should be. Leads deserve a native embed you test regularly or a direct integration, not a fragile automation. A secondary analytics tool can live in the tag manager.
Where it usually breaks
Typical failure points:
A form field was renamed on the website or in the CRM, and the value now goes nowhere.
Source data is lost because UTM parameters disappear after the visitor's first page.
Events fire twice, for example once from an embedded form and once from a tag manager trigger, so every lead is counted double.
Consent blocks everything or nothing, because the banner was installed but never connected to the tags.
Test submissions pollute the CRM and inflate reports.
Spam fills the CRM because the form has no protection.
Nobody owns the connections, so problems are found months later in a quarterly report.
If you can't follow one real lead from the ad click to the CRM record, fix that before buying another tool.
What good looks like
For Perk, a B2B travel and spend platform, the website's tracking had grown across several brands and tools. As part of consolidating its digital presence, the tracking was rebuilt as one event structure. Every page now sends the same form events (started, filled, completed and errored) with the same parameters, through one Segment and Google Tag Manager setup. Email addresses are hashed rather than sent in readable form, and lead identifiers come from Salesforce. The point isn't the specific tools. It is that every connection follows the same names and rules, so the data can be trusted.