- Destinations
- Lead Conversions
TikTok CRM Integrations
Overview
Section titled “Overview”Signals sends updated lead information back to TikTok, so campaigns running against TikTok native lead forms can optimize towards leads that turned into something rather than towards raw form fills.
Use it when a lead is captured in a TikTok lead form and its outcome is recorded somewhere else: a CRM, a file drop, a database or a warehouse. Signals reads the lead status from that system and reports it to TikTok.
Choose TikTok Offline Events API instead when the conversion is a purchase or a booking rather than a change in lead status.
Supported sources
Section titled “Supported sources”Sources supported by TikTok CRM Integrations
| Category | Supported |
|---|---|
| API | |
| CRM | |
| Database | |
| File & storage | |
| Warehouse |
Prerequisites
Section titled “Prerequisites”Before connecting TikTok CRM Integrations, make sure you have:
- A TikTok Ads account.
- Access to TikTok Business Center and the Events Manager section.
- Leads whose TikTok lead ID is stored in your CRM or other source system. Without it an update cannot be tied back to the original form submission.
- Server-side API permission on the account you intend to send to.
- A Datahash Studio account with the target project selected.
- A source connected in the same project holding the lead status data.
Authentication
Section titled “Authentication”Two ways to connect. In Studio, open Destinations, find TikTok, click the CRM Integrations tile, then choose one.
Single sign-on
Section titled “Single sign-on”- Click Continue with TikTok. A new window opens.
- Sign in to your TikTok for Business account.
- Review the requested permissions and click Confirm. You are returned to Studio.
Manual setup
Section titled “Manual setup”- Enter your Pixel ID and Access Token.
- Click Finish. The credentials are authenticated before the setup completes.
| Field | What it is | Where to find it |
|---|---|---|
| Pixel ID | The identifier of the pixel TikTok uses to track conversions for the campaigns you are optimizing. | ads.tiktok.com, then Tools, then Events. Open the events section you are integrating and the ID appears under the pixel name. |
| Access Token | A credential authorizing Datahash to send events on your behalf. | Same screen. Open the pixel, go to Settings, scroll to the Events API section and click Generate Access Token. |
TikTok uses two names for the asset you are connecting to. The single sign-on flow presents it as an Event Set ID; the manual flow asks for a Pixel ID. Enter whichever the screen in front of you asks for.
Configuration
Section titled “Configuration”Account and asset selection
Section titled “Account and asset selection”This step appears on the single sign-on path only. The manual path identifies the asset by the ID you typed.
- Choose the TikTok Advertiser ID you want to send to.
- Select the associated Event Set ID.
- Click Finish.
Manage instance
Section titled “Manage instance”To change the instance, open it from Manage Instances, use the menu in the top right and choose Edit, update the fields and click Finish. Cancel keeps the previous configuration running, so updates apply only after you finish.
Data & identifiers
Section titled “Data & identifiers”Signals sends the fields your source maps. Send identifiers already hashed where you can. Plain text also works: they are normalized and SHA-256 hashed before they reach TikTok.
Required
Section titled “Required”| Field | When it is required |
|---|---|
| TikTok lead ID | Always. The ID TikTok generated when the lead form was submitted. It is what ties an update to the original lead. |
| Event time | Always. |
| Event name | Always. The lead status, for example Qualified. |
| Last modified date | Always. The time the lead status changed. It is what separates one status change from the next on the same record. |
| Lead event source | Always. |
Optional
Section titled “Optional”Contact identifiers are hashed. The rest are not.
| Field | Format |
|---|---|
| Email address | One address. Hashed. |
| Phone number | One number. Hashed. |
| External ID | A unique ID of your own, such as a CRM record ID. Hashed. |
| Currency and value | Send both together where the lead has a value attached. |
| Transaction ID | A stable reference for the conversion. |
| Product name, category, ID and type | Product detail, where a lead relates to a specific product. |
| Brand name | Not hashed. |
| Shop ID | Not hashed. |
| Number of items | Not hashed. |
TikTok CRM Events accepts one email address and one phone number rather than several, and it does not use name or address fields at all. Matching therefore rests on the lead ID, which is why it is required.
Best practices
Section titled “Best practices”- Make sure the TikTok lead ID is populated on every record before you go live. It is the one field that cannot be substituted.
- Check that the last modified date actually updates when a record changes, since it is what distinguishes one status change from the next.
- Send only the lead stages worth optimizing towards. Reporting every status change dilutes the signal TikTok learns from.
- Keep re-syncs and backfills deliberate. A replayed batch reports the same status changes a second time.
- Rotate the access token before it expires if you connected manually, and reconnect afterwards.
Troubleshooting & FAQ
Section titled “Troubleshooting & FAQ”Credentials are rejected. Confirm the token was generated for the same pixel as the ID you entered, and that the account has server-side API permission.
The setup asks for an Event Set ID but I only have a Pixel ID. You are on the single sign-on path, which reads the asset from your account rather than accepting a typed ID. Pick it from the list, or switch to manual setup.
Leads rejected or unmatched. The TikTok lead ID is missing or does not match a lead TikTok generated. Without it the update cannot be tied to the original form submission.
No events appearing. Confirm a source is connected in the same project and sending.
Duplicate conversions. Usually a replayed batch, or a lead returning to a status it already reported.
Delivery stopped. The access token may have expired or been revoked. Generate a new one in Events Manager and reconnect.

