How to track booked call to closed won for TikTok Ads
The revenue arrives weeks or months after the call, in a CRM, with no browser anywhere near it. Everything depends on the click identifier having been written onto the opportunity — and in most CRMs it silently isn't, because custom fields aren't carried through lead conversion unless somebody configured the mapping. 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 opportunity record in your CRM — no cookie survives the gap between ad click and revenue sent back.
Free30 minutesNo obligation
Specific to TikTok × Booked call → closed won
TikTok closed-won: CompletePayment from the CRM, sized honestly
Send closed deals to TikTok as CompletePayment through the Events API from the CRM at the moment of close, with the deal value, currency, the ttclid copied onto the opportunity and hashed email and phone. It is worth doing for short-cycle consumer offers; B2B deals closing months later will rarely be credited. Confirm TikTok's current event and window rules.
TikTok and sales-led revenue meet in a few places: high-ticket coaching and courses sold on a call, solar and home-improvement consultations, consumer offers closed by phone. In those, the sale often happens on the call itself or within days, which keeps it near TikTok's attribution window. For enterprise B2B, TikTok is the wrong source of booked calls in the first place.
Send CompletePayment with the amount actually closed, not the list price of the offer. Coaching and course sales are often split into payment plans; decide whether the value is the first installment or the total contract and stay consistent, since TikTok's value optimization will chase whichever number you choose.
The ttclid is the weak link through the CRM. Many TikTok-sourced deals pass through a setter and a closer, and the opportunity is created by hand after a call instead of being converted from the lead. If the closer's workflow does not copy the identifier across, the closed deal has nothing to match on except contact details, so count how many closed-won records carry a ttclid before blaming the API.
TikTok · Booked call → closed won · what breaks
Where this funnel usually breaks — TikTok · Booked call → closed won
- 01
Lead conversion drops the identifier
The value sits on the Lead, the Opportunity has nothing, and no system reports a problem. This is the single most common cause we find.
- 02
The cycle outruns the import window
A deal closing five months after the click can't be imported. That's a real constraint, not something to engineer around.
- 03
Amount changes after close
Upsells and adjustments move the number. Decide which amount is the conversion value and document it.
TikTok · Booked call → closed won · the fix
What working looks like — TikTok · Booked call → closed won
Revenue sent back attributed to the click
Weeks later if necessary, because the identifier lives on the opportunity record in your CRM rather than in a cookie.
TikTok bidding fed the real outcome
Via the Events API, so it optimizes toward revenue rather than toward booked calls.
A reconciliation that closes
Your crm's closed-won records matched per record against what TikTok Ads reports, over a fully closed window.
TikTok · Booked call → closed won · architecture
The exact event sequence — TikTok · Booked call → closed won
Stage three is where this fails, and it fails without raising an error anywhere.
- 1
Ad click
Identifier captured on landing and written to the lead record immediately.
- 2
Call booked and attended
The mid-funnel signal. Usually where bidding has to live, because it's inside the window.
- 3
Lead converted to opportunity
The step that loses the identifier in most CRMs. Field mapping has to be configured explicitly.
- 4
Opportunity closed won
With the real amount, which is what makes value-based bidding possible at all.
- 5
Revenue sent back
Uploaded against the original click, if the cycle fits inside the import window.
TikTok · Booked call → closed won · 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 · Booked call → closed won · prove
How to prove the chain works — TikTok · Booked call → closed won
Source of truth
your CRM's closed-won records
- The same identifier confirmed on the opportunity record in your CRM after a full real journey through every step.
- Revenue sent back confirmed arriving at TikTok Ads, verified by TikTok's own event diagnostics, plus a reconciliation against your records.
- Your crm's closed-won records reconciled against TikTok Ads per record over a fully closed window.
TikTok · Booked call → closed won · 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 closed-won records
Free30 minutesNo obligation
TikTok · Booked call → closed won · when not to buy
When this doesn't apply to you — TikTok · Booked call → closed won
- If your median time from click to close comfortably exceeds the import window, the closed-won event simply cannot drive bidding. Build the reporting, optimize on an earlier stage, and don't let anyone tell you otherwise.
- 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 revenue sent back regularly exceeds the import window, the final event can't drive bidding whatever you build. Optimize toward attended call or qualified opportunity instead and use the later data for budget decisions rather than for bidding.
- If almost none of your opportunities carry a click identifier today, that's the whole project.
TikTok · Booked call → closed won · 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 opportunity record in your CRM
Create the identifier fields on Lead, Contact and Opportunity, then configure the lead-conversion mapping between them — the mapping is the part that's almost never done.
Send revenue sent back from the record
The upload fires on stage change, automatically, referencing the identifier stored on the opportunity. 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. A closed-won that later gets reversed or refunded should be adjusted, which almost no implementation does.
FAQ
TikTok · Booked call → closed won questions, answered
CompletePayment, with the closed amount as value. Keep the booked call as a separate event so TikTok can still learn from the earlier stage.
For offers that close on the call or within days, such as coaching or in-home consumer sales, yes. For long B2B cycles the deal usually closes outside TikTok's attribution window.
Because the call-to-close rate differs by channel, sometimes dramatically. Optimizing on booked calls buys the channels that produce the most calls, which is rarely the same as the channels that produce revenue.
It doesn't, as a cookie — the gap is too long. It has to be written onto the opportunity record 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 CRM lead conversion, where unmapped custom fields vanish, which fails silently at every stage.
More on TikTok · Booked call → closed won
- Google Ads · Booked call → closed wonHow to track booked call to closed won for Google Ads
- Meta · Booked call → closed wonHow to track booked call to closed won for Meta Ads
- Microsoft · Booked call → closed wonHow to track booked call to closed won for Microsoft Ads
RELATED GUIDES
Funnels next to booked call to closed won, and the checks that close it
- TikTok · Directory listing → enquiryHow to track directory listing to enquiry for TikTok Ads
- TikTok · Referral → closed saleHow to track referral to closed sale for TikTok Ads
- TikTok × CRM DealsHow to reconcile TikTok Ads against your CRM's closed-won deals
- TikTok · Criminal defenseTikTok Ads conversion tracking for criminal defense attorneys
- TikTok · StaffingTikTok Ads conversion tracking for staffing agencies
- YouCanBook.me → TikTokConnecting YouCanBook.me to TikTok Events API
- Outreach → TikTokConnecting Outreach to TikTok Events API
- TikTok · Chat → qualified leadHow to track chat conversation to qualified lead for TikTok Ads
Free · 30 min
Get booked call to closed won tracked properly on TikTok Ads
Free30 minutesNo obligation
