Microsoft Ads Form Conversions

Hi HubSpot Developer Support Team,

We’ve successfully integrated HubSpot and Google Ads to track form submissions with detailed conversion data. Each form submission creates a unique conversion event in both HubSpot and Google Ads, allowing us to track source, campaign, keyword, and personal information (where applicable). This setup works seamlessly, and our client loves the functionality.

Now, we’d like to replicate this integration for Microsoft Ads, but it appears there isn’t an existing direct integration.

Requirements:

  1. Automatically fire a unique conversion event in Microsoft Ads when a HubSpot form is submitted.
  2. Ensure the following data is captured for each submission and available in Microsoft Ads and HubSpot:
    • Source (e.g., Microsoft Ads, campaign name, or ad group).
    • Campaign and Keyword associated with the ad click.
    • Personal Information submitted in the form (e.g., name, email, phone).

Specific Questions:

  1. Does HubSpot provide any functionality or APIs that allow us to push form submission data to Microsoft Ads as conversion events?
  2. Can we use HubSpot Webhooks or the Microsoft Ads API to manually set up this integration? If so, do you have documentation or recommended best practices for implementing this?
  3. Is it possible to configure Microsoft Ads tracking templates or UTM parameters to pass data back to HubSpot and associate it with specific form submissions?
  4. If a direct integration isn’t currently possible, are there third-party tools or middleware solutions (e.g., Zapier, Make) that could facilitate this type of integration while maintaining accurate data flow?

We’d greatly appreciate detailed guidance or references to documentation that could help us set this up.

Thank you so much for your time and expertise!

Hi, @iiThompson :waving_hand: Thanks for your detailed post. In this case, there isn’t a definitive yes/no answer to give. Due to the complexity of this potential project, I’d recommend working with a Solutions Partner or looking for a developer who has this type of custom app or middleware experience. Our community is based on peer-to-peer support and best suited for helping with a specific technical question or issues you have during implementation.

Resources:

I’ll leave this post open in case other community members have any feedback for you.

Best,

Jaycee

The short answer is:

HubSpot does not offer a native, direct integration with Microsoft Ads (formerly Bing Ads) for server-to-server conversion tracking that mirrors the functionality of the Google Ads integration.

While you could attempt a workaround using HubSpot webhooks with a middleware tool like Zapier or Make, the best and most robust solution for achieving accurate, privacy-compliant, closed-loop conversion tracking is a custom, server-side integration that leverages the HubSpot API and the Microsoft Ads API (specifically the Offline Conversion API service).

This approach allows you to reliably match and push all required conversion details, including the click ID and personal information for Enhanced Conversions, directly from your server to Microsoft Ads :white_check_mark:

The long answer is:

Your desire to replicate the success you’ve had with Google Ads for Microsoft Ads is a smart strategic move, as server-to-server tracking significantly reduces data loss compared to browser-side methods.

Since HubSpot lacks a native integration for Microsoft Ads, your initial thought of using webhooks and the Microsoft Ads API is the correct path for a custom build.

The recommended best practice is to move away from client-side tracking (which is what a standard HubSpot form submission event often relies on) and implement a server-side solution.

You would first need to ensure that the Microsoft Ads tracking template, which includes a unique identifier called the `msclkid` (similar to Google’s gclid), is properly configured to pass this value to your landing page.

You should then use Google Tag Manager to capture the `msclkid` and store it in a cookie or hidden field on your HubSpot form.

When the HubSpot form is submitted, the contact record will capture the `msclkid`, the form data (name, email, phone), and the UTM parameters.

From here, you use the HubSpot API to trigger an action.

The most effective method is to set up a server-side environment like Stape or Google Cloud Platform to host a service that listens for a trigger from HubSpot (a webhook is a good option here).

Once triggered, this service pulls the complete submission data (including the `msclkid` and personal information) from the HubSpot contact record using the HubSpot API.

The service then takes this clean, complete conversion data and sends it directly to the Microsoft Ads API’s Offline Conversion service.

This method is superior because it ensures that the conversion event is recorded in Microsoft Ads even if the user’s browser blocks the client-side Microsoft Ads tracking tag, and it allows you to utilize Microsoft Ads’ Enhanced Conversions feature by securely hashing and passing personal information like email and phone number, which dramatically improves the accuracy of conversion matching back to the original ad click.

This custom API pipeline is the only way to fully replicate the detailed, closed-loop reporting you currently enjoy with Google Ads :white_check_mark:

This comment was generated with the assistance of an AI tool, incorporating my expertise in conversion tracking :slightly_smiling_face:

There’s no native HubSpot-to-Microsoft-Ads integration, so nothing in Hubspot can do this for you. You can technically build it with HubSpot webhooks posting to the Microsoft Ads Conversions API, but it’s a real dev project, not a quick config. You’d need to capture MSCLKID from the URL on the landing page and store it against the submission, format the payload correctly for offline conversion import, and somehow keep the auth tokens refreshed over time (which would your biggest hurdle because Webhooks essentially just fire to a URL. There’s no way to manage the authentication you need to actually send conversions to the Microsoft API).

Zapier and Make do have Microsoft Ads connections, but they won’t solve this cleanly either. They just move data from HubSpot’s servers to Microsoft’s, and they can’t capture the browser side identifiers Microsoft needs for a good match rate. The click ID (MSCLKID), user agent, IP address and so on all live in the visitor’s browser, so you’d still need custom code on the site to grab the data, store it in a cookie and then send it in to Hubspot with each form submission before anything can get sent to Microsoft Ads.

This is pretty much the exact problem Converly.io was built for (I’m the founder). It’s basically Zapier but for conversion tracking. You set the trigger as “HubSpot form submitted,” connect your Microsoft Ads account, and it handles the click ID capture and sends the conversion through their API for you (handling all the auth and token refresh headaches as well). . Same setup works for Google Ads and Meta, so replicating what you’ve already got with Google Ads for Microsoft is basically a five minute job instead of a new build. There’s also a log per conversion showing whether Microsoft accepted it or not, which saves a lot of guessing since their API errors aren’t always descriptive.

Disclosure: I used an AI voice to text tool to help draft this response, but I dictated the response and I’ve reviewed and edited it before posting.