When a new campaign launches everything is lined up perfectly; it has sharp creative, the perfect targeting and pacing of the budget is great.
Campaign Manager’s numbers are very positive. People are clicking the links but more importantly they are filling out the Lead Gen Forms.
When you go into your CRM though, you will see a completely empty pipeline.
You are missing leads. Revenue teams face this scenario on an almost daily basis.
One of the most frustrating technical bottlenecks for B2B marketing is a broken integration between LinkedIn and HubSpot.
Typically, the first instinct in this situation is to blame a system outage or software bug.
However, after analyzing the numerous ambiguous failure modes for integrations, it becomes clear that the platforms are rarely broken.
Almost all of the time, the failures occur because of structural issues.
Predictably, these hidden structural failures are caused by stale application permissions, improper user seat assignments, incompatible field mappings, and also have the potential to be the result of CRM filters that actively suppress any visibility of the synchronisation data.
To effectively identify the exact point of failure requires looking beyond generic error messages and understanding the back-end architecture of the data transfer.
In summary, there is a simple answer to the sync failures
To truly understand sync failures and their causes, it is beneficial to understand the fundamental truths surrounding this integration before entering into the complex diagnostic workflows.

Most sync failure is not a sign of an inherent defect in the platforms; these are usually the result of configuration errors.
For this type of native integration to work properly, a truly "clean" integration is required between the individual (or team) who is authorizing the application, their level of access to (and permissions on) the LinkedIn Business Page, access to the specific ad account that(s) they’re managing, and their administrative privileges within the HubSpot environment.
Changing any part of this chain will terminate the synchronization process.
For example, if an employee who used to work at the company leaves, if a user has changed their password, or if a user has lost access to a particular permission level; these changes will halt the synchronization process without further warning.
In some situations, the synchronization will perform as expected but will be blocked from being seen on the HubSpot reporting dashboard due to lead filtering.
If there are leads within an infinite loop, the triage procedure for determining where to start looking for such a lead will always be a sequentially ordered process.
You will need to verify what type of admin access you had before starting to reconnect the application to refresh your API tokens.
You will next need to audit the custom fields on your form.
Finally, to validate that the leads were created, you will need to temporarily remove all of the report filter settings from your HubSpot CRM.
Guessing how to fix it is the least valuable use of your time and can cause you to introduce new variables into the existing configuration.
Get to the bottom of why your LinkedIn ads form isn't syncing with HubSpot CRM
The reason your LinkedIn ads form is not syncing with HubSpot CRM begins with mapping the lead's actual journey.
When a user submits a Lead Gen Form through LinkedIn, a webhook is triggered. This webhook is a payload that must be sent through LinkedIn's API, go through the LinkedIn API's authentication system to confirm that the user's LinkedIn login is associated with the HubSpot account that the user is trying to connect to, map those data fields to HubSpot fields, and then perform the final action of either creating the user as a contact or updating the user as a contact in HubSpot.
This is a very fragile chain because if any one of these links in this chain breaks, the data will be sent to HubSpot but the synchronization will fail without any error messages being displayed.
Failure mode 1: The personal login liability
One of the most common causes of a breakdown in the synchronization process is how the integration authorization is handled.

When HubSpot is connected to LinkedIn, it is done via the connection to a user's HubSpot account.
The HubSpot account that is connected to the LinkedIn account is user-specific and not a generic corporate entity.
The connection between the Camapaign Manager and HubSpot stops working if your employee transfers to another department, removes the connection from the app on their LinkedIn account, or quits their job. In this case you will see Lead Stop flow immediately into Hubspot.
You will notice this immediately; You will see that in the last week you received 50 leads on Campaign Manager but HubSpot shows 0 leads this week.
To fix this you need an active admin to create a new integration from scratch. There is no fix other than starting over.
Authorisation isn’t the only challenge; The user creating the link must be certain they have the appropriate amount of Permissions on each platform.
For instance they will need super admin privileges or specific permissions on the HubSpot Side to create marketplace app integrations, and they will require very specific permissions on the LinkedIn Side.
The user must be a page admin for their company page, and they will have to have access to the exact ads account running their campaign.
Additionally the user will require the "Lead Gen Forms" Manager Role.
If the company has many Ads Accounts (e.g. Regionally or split by products), it's very easy to mis-connect the wrong Accounts and break this integration because the integration on HubSpot will say “Active” but will be receiving webhooks from the Ads account running and not from the account that is actually running the active campaigns.
APIs are continually validating tokens. In some instances the permissions may be valid, but the connection has gone into a hung state.
This usually occurs after a major platform update or when a company has had to change data privacy policies that required re-authorization for the user.
The app will not show a red banner indicating that the integration interface has gone to a hung state.
Processing will cease on incoming deals
At the point of processing, there will no longer be any correlation between what you are doing with your accounts and the amount of incoming deals (or cold leads).
In this case, any amount of tweaking to your campaigns will not fix anything.
The best course of action is to terminate your link, reset your connection to start over, and require a new authentication handshake.
The field mapping conundrum
Even if permission is approved and the link is solid, incoming leads may not populate due to formatting issues.
As a tool for generating leads with minimal friction, Lead Gen Forms provide automatic population of user data from LinkedIn profile pages.
To define quality prospects, marketers frequently create additional questions to ask on Lead Gen Forms. These are the areas where integrations tend to be broken.
Data types and custom fields that can't be mapped
When data is sent via an API for a HubSpot property, HubSpot requires that the data sent through the API match the property type perfectly in order to properly accept the data sent through the API for that property.
If a LinkedIn Lead Gen Form asks a custom multiple-choice question and the corresponding property in HubSpot is a single-line text property, the API will reject the data sent through the API for that property entirely.
Dropdown selects, date pickers, and multi-select checkbox fields tend to have a much higher incidence of mapping problems.
For the values sent through the LinkedIn Lead Gen Form for dropdown fields in HubSpot to be matched perfectly, they have to match the values internally on the dropdown property.
In some cases, the contact is created in HubSpot, but the data that was mapped to the custom fields does not get populated in the custom fields for the contact.
Therefore, the contact will be created and will contain the necessary name and email, but the data that was required to assess whether the contact was worth the cost of the advertising or not is lost.
It will give the marketer a "sense of accomplishment" but degrade the quality of their database.
Chaos of duplicate management due to missing email fallbacks
A key obstacle to mapping is the management of duplicates. When identifying contacts to deduplicate their records, HubSpot uses email as the primary unique identifier.
If someone fills out a LinkedIn form using an alternate email address (for example, using their personal Gmail address instead of their business Email Address), HubSpot will create a new contact record, rather than updating the existing record for that target.
Therefore, this activity will not appear in the expected lead record. From a reporting perspective, it will appear as if there is a sync error.
When establishing field mappings, always ensure that the standard Email Property is used as the anchor to build from.
Avoid mapping custom email fields from forms to the standard email property of HubSpot, as this will cause the HubSpot deduplication engine to fail to work correctly by bypassing the standard email field validation.
The reporting filters in HubSpot that are hidden in plain sight
One of the most frustrating failures is when the integration is fully functional, yet human error in your CRM Reporting results in missing leads.

It can take you many hours to troubleshoot an API connection, reset permissions and audit field mappings, only to discover that the leads have always been in HubSpot - they were simply filtered out of your view.
The "first form submission" trap
This is the most classic of reporting traps.
Marketers often create Active Lists and Lead Reports to monitor performance on their LinkedIn Campaigns using a "First Form Submission" filter. This seems logical - you want to measure who submitted the Form.
If a potential customer previously received an eBook and downloaded it almost six months ago from your website in an organic manner, their first form submission is already recorded in the system indefinitely.
Thus, when they see your ad on LinkedIn and fill out a Lead Gen Form, their action is registered as a second conversion.
You only want to see net-new contacts that have either clicked this ad for the first time, therefore this previous contact has been filtered out.
Their lead successfully auto-synced but the report is set up incorrectly.
Differences between attribution visibility and view state
Lead capture, creating contacts and reporting attribution are three separate items. There is not a one-to-one ratio between them.
Sometimes leads are created, however, the source attribution properties are not populated to the exact way expected.
For example, the original source for the lead may have placed the lead in a bucket for generic offline sources or direct traffic rather than being classified as "Paid Social".
If the custom views are filtered heavily according to the original source, then the leads synced will disappear from your reporting dashboard.
To verify leads are syncing properly, you need to temporarily stop using your custom reporting views.
Instead, go to your global Contacts view, strip out all filters, search for the email of the test lead you know is in there, and if you find this contact and you see that form submission event in the timeline, then the sync is working perfectly; your reporting logic needs fixing.
If you disconnect your application right away without isolating the stage where the failure occurred, you may inadvertently create serious new errors in your marketing processes.
To isolate the failure, you should follow a detailed list of processes to identify and resolve the bottleneck.
First confirm your account and admin role
You should never assume that various permissions are accurate. Instead, manually verify them.
Log Into LinkedIn and ensure the Integration is connected through a user account with Page Admin, Ads Account access, and Lead Gen Forms Manager. Check each of the boxes.
Once this is confirmed, you will also want to ensure the HubSpot side of your connection is verified; this user should have either Super Admin access or App Marketplace Permissions to connect to LinkedIn Ads.
If either of these is incorrect, the easiest fix is to have the person most senior technically authorized —usually that will be the person who requires broad permanent access—for them to re-authorize the entire connection.
Second reconnect to the application from the clean side
It is very common for tokens to stagnate. Another common occurrence is for API connections to fail without any warning.
Navigate to the connected apps section in your HubSpot account and find the LinkedIn Ads integration and choose to disconnect from the app.
You should never just “pause” the application; you should remove the entire connection.
The next step should be to completely clean your browser, log into both platforms and re-establish the connection from scratch.
This will force a new authentication handshaking process and eliminate persisting errors from your authorizations that you cannot see.
Test the form mapping with a test lead
When you have re-established your LinkedIn account connection, you must proactively test your Lead Gen Form before you get an actual lead.
- Use a unique email address to submit a test lead (e.g., [email protected]).
- Wait for approximately five minutes. Then, browse to HubSpot and view the global list of contacts. Carefully examine the field mappings of your new test lead record to confirm whether the correct CRM property values were entered into the appropriate field mapping areas.
If the basic contact is successfully syncing, but custom fields are missing, you're able to determine that the integration is functioning correctly.
However, it appears there is an issue with the mapping of your custom fields; update your property mapping settings as needed.
3. Evaluate activity and event timeline logs
Syncing contacts is of no value unless interactions have been properly logged.

You'll want to access the test contact record you added to HubSpot. From there, take notice of the center time line view.
Under the filter activity section, be sure to select the check boxes next to Form Submissions and Ad Interactions.
Occasionally, the data is tied to the contact, but the user has toggled a specific event type off in their timeline view settings.
If the event is shown, it indicates the integration continues to operate smoothly.
4. Review reporting considerations
With the sync of your test lead complete, you can confidently proceed to confirm whether reporting is setup correctly.
Look through the filters and determine if you've got criteria set up for any lists, workflows, or custom reports that would reflect your Instagram marketing campaign.
If you haven't set up criteria, it may be necessary to change your filters from "First Form Submission" to "All Form Submissions," or filter directly by the name of the LinkedIn form you used to submit your lead.
If your reporting is functioning properly, it means that your team's views aren't limited by rules or settings associated with contact ownership, thus preventing assigned users from seeing unassigned leads.
Native LinkedIn integration vs. third party connectors
HubSpot's native LinkedIn integration allows for seamless transfer of information, but it isn't the only method for sending information from one platform to another.
Depending on how technically mature your organisation is and which HubSpot subscription level you are at, an evaluation of whether the native sync is beneficial for your organization or not could be useful.
Third-party commercial connectors take advantage of the limitations of the native integration and market themselves as the cure-all for these limitations.
Vendors often use the limitations of manual workarounds and plans to convince you to abandon the native app.
Know when to move up from your integration solution
The native integration produces leads and syncs audiences successfully under simple conditions, but works straight through the limitations associated with the HubSpot plan.
If you have an operational need for routing rules, doing multiple steps of data enrichment before your contact arrives in the CRM database, and/or if you've multiple disparate ad accounts that your native app cannot keep straight, then you probably need to investigate using a middleware solution, such as Make, Zapier, or a high-level connector that is specialized in revenue.
That way, you can capture the webhook from LinkedIn, process the email address through an enrichment API, format the custom fields so they comply with HubSpot's stringent formatting rules, and then insert the cleaned-up data into the CRM.
Middleware comes with trade-offs
Incorporating middleware creates another layer of potential failure.
Middleware should be used only for complex data use cases and should never be thought of as a workaround for poorly configured native applications.
Additionally, middleware must be monitored 24/7.
When a zap is broken or an API is changed to no longer match a module, this would cause the same type of break in data flow as a failed native sync.
Total Cost of Ownership: If a team's only issue with an integration is that someone used the wrong logins, using the native integration will be cheaper than upgrading. However, if an entire architecture of lead routing requires a programmatic transformation of data before it can be stored in a database, then an upgrade would be warranted.
Final conclusion: Fixing the LinkedIn to HubSpot pipeline
It's very rare that a broken connection between LinkedIn Ads Form submissions and HubSpot can't be fixed.
Almost every time there is a disconnect; it does not mean that it is impossible to reconnect.
Fixing a broken connection is as simple as following the flow of data back to the source of the problem.
By isolating the interrupted flow of data, you will be able to reconnect very quickly by verifying the user authorization, auditing the precise field mapping, and auditing your CRM report.
There is no benefit to panicking over a connection issue. It will not hasten the repair process.
The only effective means of finding the cause of a broken connection is to methodically troubleshoot the problem using a predetermined method.
Stop treating this as if it is some sort of magical formula to be uncovered.
The process of creating a lead from LinkedIn Ads Form submissions is a predictable sequence of API calls. If you lose a lead, you simply go back to the beginning of that sequence.
Start at the HubSpot report, go to the contact record, check property mapping, and end with the LinkedIn Permissions screen. You will find the cause of the bottleneck.
Questions and answers
Do I have to have Sales Navigator to send LinkedIn Ads Form submissions to HubSpot?
No, Lead Gen Forms that come from LinkedIn Ads will sync to HubSpot through the standard integration.
Sales Navigator is a completely different product with its own capabilities of syncing with CRMs.
In addition, Sales Navigator is focused on outbound sales activities, InMail tracking, and managing account based relationships.
Confusing this with inbound ad conversions is a typical cause of confusion when setting up platform permissions.
Why do my LinkedIn leads show up in Campaign Manager, but not in HubSpot?
This indicates that there is a problem with the data mapping or the CRM report settings. The lead was successfully acquired by LinkedIn.
However, the webhook could have been rejected by HubSpot for various reasons.
Also, even if the lead was successfully created in HubSpot, it could be hidden from your view due to filters that are currently applied to your list.
Before claiming that the API connection is broken, you should always check to see if the lead is there in the unfiltered contacts database.
How soon will a LinkedIn Lead show up in the CRM?
If the integration is working as intended, then the leads should be available in HubSpot within a couple of minutes after submission of the form.
If the leads show up days or hours later, it usually means that the leads were blocked due to API rate limiting; there is a disconnect between the application; or a third party tool is being used for batch synchronisation as opposed to Webhooks that provide real-time interaction.
