Skip to main content
Microsoft · Demo request → opportunityUse-case guide

How to track demo request to opportunity for Microsoft Ads

A demo request is a form fill, and a large share of them are students, competitors and people who will never buy. What separates a good channel from a cheap one is the rate at which requests become qualified opportunities — and that's invisible to bidding unless the qualification outcome is sent back. On Microsoft Ads the specifics that matter are the click identifier (msclkid), the import mechanism (Microsoft's offline conversion import), and conversion goals deduplicate on their own counting settings, as in Google Ads, rather than through a shared event ID. The chain only works end to end if the identifier is captured on landing and stored on the lead and opportunity records in your CRM — no cookie survives the gap between ad click and qualification sent back.

Free30 minutesNo obligation

Specific to Microsoft × Demo request → opportunity

Microsoft Ads demo-to-opportunity: Bing on corporate machines

On Microsoft Ads, upload the qualified opportunity as an offline conversion against the msclkid stored on the CRM lead when the stage changes, valued by expected deal size, using a dedicated offline goal counted once per click. Keep the demo form goal for reporting so bidding follows qualified pipeline rather than form fills.

Microsoft is often underrated for B2B demos. Many corporate-managed machines default to Edge and Bing, so a meaningful share of work-hours searches for business software happen there, and LinkedIn profile targeting lets you narrow by company, industry or job function on top of keywords. The result is a smaller channel whose requests can qualify at a better rate than Google's; sending opportunities back is how you find out.

Create an offline conversion goal for the qualified opportunity with counting set to one per click, since a second form fill from the same buyer is still one opportunity. Most accounts were imported from Google and carry a demo-form goal pointing at a thank-you page that the current AJAX form never loads. Check every imported goal against the live site before trusting any baseline.

The CRM side needs its own field. If the capture code was written for gclid, msclkid lands in the URL and nowhere else, and the upload has nothing to match. Add msclkid to the capture list and a separate CRM field mapped through lead conversion onto the opportunity, so one CRM workflow can send the same qualified stage to Google and Microsoft with each platform's own identifier.

Microsoft · Demo request → opportunity · what breaks

Where this funnel usually breaks — Microsoft · Demo request → opportunity

  1. 01

    Qualification never defined

    So quality disputes between marketing and sales are two opinions with no referee, and nothing can be sent back.

  2. 02

    Requested and attended treated as one

    A demo nobody showed up to isn't a signal worth paying for.

  3. 03

    The identifier lost at lead conversion

    Same failure as every CRM funnel: the field is on Lead, the Opportunity has nothing, and nothing errors.

Microsoft · Demo request → opportunity · the fix

What working looks like — Microsoft · Demo request → opportunity

  • Qualification sent back attributed to the click

    Weeks later if necessary, because the identifier lives on the lead and opportunity records in your CRM rather than in a cookie.

  • Microsoft bidding fed the real outcome

    Via offline conversion import, so it optimizes toward qualified pipeline rather than toward demo form fills.

  • A reconciliation that closes

    Your crm's qualified opportunity records matched per record against what Microsoft Ads reports, over a fully closed window.

Microsoft · Demo request → opportunity · architecture

The exact event sequence — Microsoft · Demo request → opportunity

The interesting drop-off is between stages two and four, and its size differs enough by channel to reorder your entire budget.

  1. 1

    Ad click

    Identifier captured on landing and written to the lead on submission.

  2. 2

    Demo requested

    The form event. High volume, low meaning, useful only as learning volume.

  3. 3

    Demo attended

    A real filter. A meaningful share of requested demos never happen.

  4. 4

    Qualified as an opportunity

    Your sales team's own definition, agreed in writing before anything is measured against it.

  5. 5

    Qualification sent back

    Uploaded as the conversion, so bidding chases pipeline rather than form fills.

Microsoft · Demo request → opportunity · diagnose

What's specific to Microsoft Ads

  1. 01

    Click identifier: msclkid

    Microsoft's click identifier, appended when auto-tagging is enabled. It depends on the UET tag being present on the site — without UET, msclkid arrives in the URL and there's nothing consuming it, which is a common half-configured state on accounts imported from Google.

  2. 02

    Import mechanism: offline conversion import

    Uploaded against msclkid, closely mirroring Google's approach. Because so many Microsoft accounts are imported wholesale from Google Ads, people assume full parity — verify the current column format and requirements in Microsoft's documentation rather than reusing your Google template unchanged.

  3. 03

    Deduplication

    The same counting question applies: one conversion per click for lead-type goals, every conversion for ecommerce. Accounts imported from Google frequently carry over the goal structure and not the counting review, so it's worth reading every goal rather than assuming the import got it right.

  4. 04

    Window and timing

    Check Microsoft's current offline import window and attribution settings directly. They resemble Google's closely enough to be assumed and differ enough to matter.

  5. 05

    The Microsoft gotcha

    Almost every Microsoft account we open was imported from Google Ads, and the import copies campaign structure without copying the tracking. The result is a live account spending money with UET missing, msclkid unconsumed, or conversion goals pointing at pages that don't exist on the site any more.

Microsoft · Demo request → opportunity · prove

How to prove the chain works — Microsoft · Demo request → opportunity

Source of truth

your CRM's qualified opportunity records

  • The same identifier confirmed on the lead and opportunity records in your CRM after a full real journey through every step.
  • Qualification sent back confirmed arriving at Microsoft Ads, verified by the upload's match rate and Microsoft's conversion goal diagnostics.
  • Your crm's qualified opportunity records reconciled against Microsoft Ads per record over a fully closed window.

Microsoft · Demo request → opportunity · free audit

What we check in the free audit

  • Click identifier: msclkid
  • Import mechanism: offline conversion import
  • Deduplication
  • Window and timing
  • The Microsoft gotcha

Checked against

your CRM's qualified opportunity records

Get my free conversion tracking audit

Free30 minutesNo obligation

Microsoft · Demo request → opportunity · when not to buy

When this doesn't apply to you — Microsoft · Demo request → opportunity

  • If your demos are booked and run entirely by a sales team from outbound lists, this funnel isn't measuring your ad spend and there's nothing here worth building.
  • If your Microsoft account is a straight import you've never separately configured, fix the account structure and UET installation first — offline import on top of an unconfigured account produces data nobody will trust.
  • If your cycle from click to qualification sent back regularly exceeds the import window, the final event can't drive bidding whatever you build. Optimize toward demo attended instead and use the later data for budget decisions rather than for bidding.
  • If almost none of your CRM records carry a click identifier today, that's the whole project.

Microsoft · Demo request → opportunity · what we deliver

The implementation, on Microsoft Ads

  • Capture msclkid on landing

    Auto-tagging appends msclkid, and the UET tag has to be present to make use of it. Add msclkid explicitly to your capture list alongside the Google parameters — code written for gclid alone won't pick it up.

  • Persist it to the lead and opportunity records in your CRM

    Capture on landing, carry through every step of the form, write to the Lead, and map through lead conversion onto the Opportunity.

  • Send qualification sent back from the record

    The upload fires when the CRM stage changes to qualified, referencing the identifier stored on the record. Dispatched to Microsoft Ads through Microsoft's offline conversion import.

  • Deduplicate and reverse

    Conversion goals deduplicate on their own counting settings, as in google ads, rather than through a shared event id. An opportunity disqualified after the fact should be adjusted, particularly where you're uploading at the qualification stage.

FAQ

Microsoft · Demo request → opportunity questions, answered

Often, because many corporate machines default to Edge and Bing and LinkedIn profile targeting narrows by company and role. Upload qualified opportunities to see whether it beats Google on pipeline rather than on cost per form.

Free · 30 min

Get demo request to opportunity tracked properly on Microsoft Ads

Free30 minutesNo obligation