FlowRunner
PricingContact
Theme
Start Free

TikTok Conversions

Advertising

Send server-side conversion events to TikTok from AI agents. Agents report purchases with order value and line items, track backend-only events like registrations and subscriptions, and deduplicate against browser Pixel events with a shared event ID. Customer identifiers are SHA-256 hashed automatically.

2 actions API key available
A paid order confirms in the commerce backend, a Shopify order webhook or a Stripe checkout completing
Agent assembles the conversion payload: order value, currency, line items, and the customer email that will be SHA-256 hashed before it leaves the server
Agent verifies a stable event ID exists for this order so the browser Pixel's CompletePayment event deduplicates instead of double counting
Agent confirms ttclid, ttp, IP, and user agent are attached where available, the signals that decide whether TikTok can match the conversion to a click
For a first run or a replayed batch, the marketing ops owner reviews a sample routed through TikTok's Test Events tool before anything counts toward reporting
Track Purchase sends the confirmed sale to the Events API as a CompletePayment event
A daily digest posts sent-event counts and API rejections to the channel where the paid media team works

What This Integration Enables

TikTok's bidding algorithm is only as good as the conversion data it eats, and browser-side tracking keeps losing ground to blockers, consent walls, and closed tabs. This connector moves conversion reporting to where the truth lives: your backend. FlowRunner agents report server-confirmed purchases with order value and line items, send backend-only events like registrations and subscriptions that no Pixel will ever see, and deduplicate against browser events with a shared event ID. Customer identifiers are lowercased, trimmed, and SHA-256 hashed automatically before they leave your infrastructure. The point is not just completeness. Conversion events are the steering input for real ad spend, which is why FlowRunner treats first runs and replays as [human-in-the-loop](/concepts/human-in-the-loop) moments rather than fire-and-forget calls. - Report CompletePayment events with value, currency, and product contents for ROAS that reflects reality - Track backend-only conversions: CompleteRegistration, Subscribe, PlaceAnOrder, or any custom event name - Deduplicate web and server reporting for the same action via a stable shared event ID - Maximize match quality with hashed identifiers plus ttclid, ttp, IP, and user agent - Validate safely by routing events to TikTok's Test Events tool with a test event code

Without FlowRunner

ROAS built on browser luck Blocked pixels and abandoned tabs mean TikTok never sees a share of real purchases, and the algorithm optimizes on partial data
Backend conversions invisible Registrations, subscriptions, and phone orders happen off the browser and never reach the ad platform at all
Double counting or drift Where both Pixel and server report, mismatched events inflate conversions and quietly corrupt the numbers bids are based on

With FlowRunner

Server-confirmed truth Every purchase the backend confirms reaches TikTok, whether or not the browser cooperated
Full-funnel attribution CompleteRegistration, Subscribe, and custom events flow from the systems where they actually happen
One event, counted once A shared event ID between Pixel and server means TikTok deduplicates instead of double counting

Use Case Scenarios

Every confirmed order reaches the algorithm

A [Shopify](/integrations/shopify) order webhook fires. The agent pulls the order value, currency, line items, and customer email, attaches the ttclid captured at checkout, and calls Track Purchase with the order number as the event ID. The browser Pixel fired its own CompletePayment with the same ID, so TikTok keeps one copy. When the Pixel was blocked, the server event stands alone and the conversion is counted anyway. The paid media team stops explaining why platform-reported revenue disagrees with the storefront.

The signup TikTok would never have seen

A lead completes a [Typeform](/integrations/typeform) signup, or a trial converts to a paid plan inside the product with a [Stripe](/integrations/stripe) subscription. Neither moment happens on a page carrying a TikTok Pixel. The agent calls Track Event with CompleteRegistration or Subscribe, the respondent's email hashed on the way out, and the click ID stored from their first visit. Campaigns optimizing for registrations finally get taught by real registrations, not by proxy pageviews.

The backfill that goes through a test gate first

The team discovers three weeks of subscription conversions were never reported. An agent queries the billing system, builds the replay batch, and checks each event against the Events API's 10 day window. Instead of firing the batch at the live pixel, it routes ten sample events through the Test Events tool with a test event code and posts the batch summary to [Slack](/integrations/slack): event counts, date range, total value. The marketing ops owner inspects the samples in Events Manager, confirms the mapping, and approves. Only then does the agent replay the batch for real.

Human-in-Loop Highlight

Track Purchase does not just log a number, it feeds the signal TikTok's bidding uses to spend the next dollar, and a sent event cannot be unsent. Report a batch with the value field in cents instead of dollars and the algorithm will chase hundredfold phantom revenue with a real budget. So agents in FlowRunner treat new event mappings and replays as gated operations: the first events go out with a test event code, land in the Test Events tool where they count for nothing, and a person confirms the value, currency, and dedup ID look right in Events Manager before the agent is allowed to hit the live pixel. Machine speed for assembling and hashing payloads, human judgment before the data starts steering spend.

Agent processes routinely
Detects the live pixel
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

2 actions

Conversion Events

2
  • Track Event Sends a single server-side conversion event to TikTok via the Events API 2.0. Use it for any TikTok standard event, ViewContent, AddToCart, InitiateCheckout, CompletePayment, CompleteRegistration, Search, Subscribe, Contact, or a custom event name. Email, phone, and external ID are lowercased, trimmed, and SHA-256 hashed automatically, with already-hashed 64-character hex values passed through unchanged. Provide ttclid and ttp plus IP and user agent to maximize match quality, a stable event ID to deduplicate against browser Pixel events, and a test event code to route the event to TikTok's Test Events tool for validation.
  • Track Purchase Convenience wrapper that reports a completed purchase as a CompletePayment standard event. Provide the order value and currency plus customer identifiers and product line items; PII hashing, dedup event IDs, and test event codes work exactly as they do for Track Event. Use Track Event instead when the conversion is anything other than a purchase.

Frequently Asked Questions

What can FlowRunner do with TikTok Conversions?

FlowRunner agents can run Track Event and Track Purchase in TikTok Conversions.

Does connecting TikTok Conversions to FlowRunner require OAuth?

No. TikTok Conversions connects to FlowRunner with an API key, no OAuth flow required.

Can TikTok Conversions trigger a FlowRunner workflow automatically?

TikTok Conversions doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with TikTok Conversions

$100 in credits. No card required. Connect in minutes.