How to track demo request to opportunity for TikTok 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 TikTok Ads the specifics that matter are the click identifier (ttclid), the import mechanism (the Events API), and deduplication uses a shared event ID between the pixel and the Events API, the same principle as Meta. 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 TikTok × Demo request → opportunity
TikTok demo-to-opportunity: a narrow fit, judged on pipeline
On TikTok, fire SubmitForm for the demo request from the pixel and the Events API with a shared event ID, store the ttclid on the CRM lead, and send the qualified opportunity as a separate server event for reporting. Few B2B accounts produce enough qualified volume on TikTok to optimize on it.
TikTok is a weak demo channel for most B2B software. The exceptions are tools sold to people who are on TikTok for work: creators, online sellers, small retail and restaurant owners, agencies. For those, a demo request can come from a TikTok video, but the form volume says very little about pipeline, and the gap between requests and qualified opportunities tends to be wider than on search.
Use SubmitForm for the demo request and send the qualified stage as its own event from the CRM, with the opportunity's expected value. Keep SubmitForm as the optimization event unless qualified opportunities from TikTok reach a volume TikTok can learn from, which most B2B advertisers won't. Check the attribution window in your account against how long your sales team takes to qualify.
If you run TikTok's lead generation instant forms, the request never touches your website, so there is no ttclid to capture on landing. The lead arrives through TikTok's CRM sync or a download, and the qualified stage can only match back on what the form collected. Make sure that sync writes the email exactly as submitted to the CRM, and that the form asks for company name, or sales will spend the first call finding out who they are talking to.
TikTok · Demo request → opportunity · what breaks
Where this funnel usually breaks — TikTok · Demo request → opportunity
- 01
Qualification never defined
So quality disputes between marketing and sales are two opinions with no referee, and nothing can be sent back.
- 02
Requested and attended treated as one
A demo nobody showed up to isn't a signal worth paying for.
- 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.
TikTok · Demo request → opportunity · the fix
What working looks like — TikTok · 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.
TikTok bidding fed the real outcome
Via the Events API, 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 TikTok Ads reports, over a fully closed window.
TikTok · Demo request → opportunity · architecture
The exact event sequence — TikTok · 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
Ad click
Identifier captured on landing and written to the lead on submission.
- 2
Demo requested
The form event. High volume, low meaning, useful only as learning volume.
- 3
Demo attended
A real filter. A meaningful share of requested demos never happen.
- 4
Qualified as an opportunity
Your sales team's own definition, agreed in writing before anything is measured against it.
- 5
Qualification sent back
Uploaded as the conversion, so bidding chases pipeline rather than form fills.
TikTok · Demo request → opportunity · diagnose
What's specific to TikTok Ads
- 01
Click identifier: ttclid
TikTok's click identifier, appended to the landing URL. Capture it on landing and persist it exactly as you would gclid or fbclid — it's the strongest matching signal available and the most commonly missing one, because TikTok is often added to a stack that was built around Google and Meta.
- 02
Import mechanism: the Events API
Structurally similar to the other server-side conversion APIs: event name, timestamp, event ID, hashed user identifiers, event properties. TikTok's exact field names change more often than the other major platforms', so build against their current documentation rather than a blog post — including this one.
- 03
Deduplication
Send the same event ID from the browser pixel and the server event. The mechanics mirror Meta's closely enough that a team who has done one can do the other, but verify TikTok's current requirements rather than assuming parity — the deduplication window in particular isn't a figure we'll guess at.
- 04
Window and timing
Verify the current attribution and import windows in TikTok's documentation. They differ from Google's and Meta's, and quoting a number here that goes stale would be worse than sending you to the source.
- 05
The TikTok gotcha
TikTok is usually the third platform added to a stack, and it typically inherits whatever assumptions were made for Google and Meta. The most common result is that ttclid is never captured at all, because the capture code was written naming gclid and fbclid and nobody revisited it.
TikTok · Demo request → opportunity · prove
How to prove the chain works — TikTok · 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 TikTok Ads, verified by TikTok's own event diagnostics, plus a reconciliation against your records.
- Your crm's qualified opportunity records reconciled against TikTok Ads per record over a fully closed window.
TikTok · Demo request → opportunity · free audit
What we check in the free audit
- Click identifier: ttclid
- Import mechanism: the Events API
- Deduplication
- Window and timing
- The TikTok gotcha
Checked against
your CRM's qualified opportunity records
Free30 minutesNo obligation
TikTok · Demo request → opportunity · when not to buy
When this doesn't apply to you — TikTok · 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 TikTok is a small share of your spend, the effort is better spent making Google and Meta correct first — the same infrastructure then extends to TikTok as one additional tag rather than a separate project.
- 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.
TikTok · Demo request → opportunity · what we deliver
The implementation, on TikTok Ads
Capture ttclid on landing
ttclid is appended on ad clicks. Add it explicitly to your capture list — the single most common TikTok tracking fault is capture code that predates TikTok being in the account.
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 TikTok Ads through the Events API.
Deduplicate and reverse
Deduplication uses a shared event id between the pixel and the events api, the same principle as meta. An opportunity disqualified after the fact should be adjusted, particularly where you're uploading at the qualification stage.
FAQ
TikTok · Demo request → opportunity questions, answered
For tools sold to creators, online sellers or small business owners, sometimes; for enterprise software, rarely. Measure it on qualified opportunities per dollar, because form volume from TikTok says little.
SubmitForm, from both the pixel and the Events API with a shared event ID. Send the qualified stage as a separate event for reporting, not as the optimization target, until volume supports it.
Because the request-to-qualified rate is where channels differ most in B2B. Optimizing on requests buys the cheapest forms, and the cheapest forms are usually the least qualified.
It doesn't, as a cookie — the gap is too long. It has to be written onto the lead and opportunity records in your CRM at the point of ad click, where it lives as a field rather than as browser storage.
A standard event name, an event timestamp, a shared event ID, hashed and normalized user identifiers, and ttclid where available. Confirm the current required fields in TikTok's documentation before building.
Two to four days for the implementation, plus a closed reconciliation window before we'd call it verified. Capture and persistence are the fiddly parts; the import itself is usually an afternoon.
Yes, and the reference pages on this site cover the mechanics. The part that's genuinely tedious rather than clever is keeping ttclid alive through multi-step forms and multi-step demo forms and CRM lead conversion, which fails silently at every stage.
More on TikTok · Demo request → opportunity
- Google Ads · Demo request → opportunityHow to track demo request to opportunity for Google Ads
- Meta · Demo request → opportunityHow to track demo request to opportunity for Meta Ads
- Microsoft · Demo request → opportunityHow to track demo request to opportunity for Microsoft Ads
RELATED GUIDES
Funnels next to demo request to opportunity, and the checks that close it
- TikTok · Franchise enquiry → agreementHow to track franchise enquiry to signed agreement for TikTok Ads
- TikTok · RFP → awardHow to track RFP submission to contract award for TikTok Ads
- TikTok × CRM DealsHow to reconcile TikTok Ads against your CRM's closed-won deals
- TikTok · Freight and logisticsTikTok Ads conversion tracking for freight and logistics companies
- TikTok · Medical devicesTikTok Ads conversion tracking for medical device companies
- monday → TikTokConnecting monday CRM to TikTok Events API
- Freshsales → TikTokConnecting Freshsales to TikTok Events API
- TikTok · Trade show lead → dealHow to track trade show lead to closed deal for TikTok Ads
Free · 30 min
Get demo request to opportunity tracked properly on TikTok Ads
Free30 minutesNo obligation
