Skip to main content
Square Appointments → TikTokIntegration guide

Connecting Square Appointments to TikTok Events API

Square Appointments settles into the same Square ledger as the card taken at the counter, so the appointment and the payment are already joined — provided you filter for the right channel. TikTok's audience skews to exactly the browsers and app contexts where browser-side tracking performs worst. The join between them succeeds or fails on one thing: whether the ttclid reaches the Square Appointments booking before the conversion happens, because TikTok can only match a conversion it can tie back to a click it recognizes.

Free30 minutesNo obligation

Specific to this pair

Square Appointments to TikTok: booking event with ttclid saved first

Capture the ttclid on your own landing page and persist it server-side before Square's booking site. Send the booking immediately as a lead-type event, then CompletePayment when the Square payment completes, excluding tip, using the booking ID and payment ID as event_ids, with hashed email and phone. TikTok's short windows favor optimizing toward the booking event.

TikTok works for appointment businesses with visual results, such as nails, hair, brows and tattoos, and the booking often happens in TikTok's in-app browser minutes after a video. Capture the ttclid on your own landing page and persist it server-side before the visitor reaches Square's booking site. If the TikTok ad links straight to the Square booking page, there is nowhere to capture it at all.

Send the booking to TikTok immediately as a lead-type event (check TikTok's current standard events for the closest fit to a scheduled appointment), and CompletePayment when the Square payment completes, excluding the tip. Use the Square booking ID and payment ID as the respective event_id values. Hashed email and phone from the Square customer carry the match when the ttclid is gone, which on this path is often.

The delay between booking and payment cuts harder on TikTok than on search, because TikTok's click attribution windows are short and slots with popular stylists can be weeks out. If payment lands outside the window, only the booking event is credited. Optimize toward the booking event and judge revenue in Square, filtered to online bookings with walk-ins excluded.

Square Appointments → TikTok · what breaks

Why this join usually fails — Square Appointments → TikTok

  1. 01

    The ttclid never reaches Square Appointments

    The booking site is Square-hosted, and the payment may be taken in person days later.

  2. 02

    Counter sales counted as booked appointments

    The shared ledger is convenient and it is the trap. If the booking channel is not filtered, walk-in revenue flows straight into your reported campaign performance.

  3. 03

    The ttclid is lost in the in-app browser

    TikTok traffic arrives through an in-app webview whose storage behavior is inconsistent. An identifier captured but not immediately persisted server-side often is not there by the time the conversion happens.

  4. 04

    Nothing reconciles afterwards

    TikTok Events Manager shows received events and their match status. As with Meta, arriving is not the test — deduplicated and matched is. Reconcile TikTok's reported conversions against the source system for the same window.

Square Appointments → TikTok · the fix

What working looks like — Square Appointments → TikTok

  • The ttclid on every appointment

  • Conversions arriving in TikTok

    Events appear in TikTok Events Manager, deduplicated against the pixel, and become usable for optimization.

  • Reconciled against the source

Square Appointments → TikTok · architecture

How Square Appointments and TikTok actually connect

  1. 1

    Square Appointments holds the truth

    Walk-ins and rebookings made at the counter land in the same ledger. Without the filter, every in-person sale becomes an advertising conversion.

  2. 2

    TikTok Events API needs a click to match

    TikTok matches server events using ttclid where available, falling back to hashed contact information. Both should be sent — the fallback is what carries the events where the click ID did not survive.

  3. 3

    The identifier is the bridge

    The ttclid, captured at the visit and carried into the Square Appointments booking.

  4. 4

    The event source decides reliability

    Send completed appointment transactions net of tips.

  5. 5

    Deduplication at the destination

    TikTok deduplicates on event_id, the same pattern as Meta: the pixel and the Events API must send the same event_id for the same conversion. Mismatched IDs mean double counting.

Square Appointments → TikTok · normal or broken

Working vs. broken, side by side — Square Appointments → TikTok

Normal, not a fault

  • The ttclid present on the appointment

  • Sent from the Square transaction record

  • Deduplicated correctly

    TikTok deduplicates on event_id, the same pattern as Meta: the pixel and the Events API must send the same event_id for the same conversion. Mismatched IDs mean double counting.

  • Reconciles with the source

Actually broken

  • The ttclid missing on most records

    The booking site is Square-hosted, and the payment may be taken in person days later.

  • Sent from the browser

    The shared ledger is convenient and it is the trap. If the booking channel is not filtered, walk-in revenue flows straight into your reported campaign performance.

  • Counted twice, or not at all

    TikTok traffic arrives through an in-app webview whose storage behavior is inconsistent. An identifier captured but not immediately persisted server-side often is not there by the time the conversion happens.

  • Nobody has reconciled it

Square Appointments → TikTok · diagnose

Diagnostic order — Square Appointments → TikTok

  1. 01

    Count appointments carrying the ttclid

  2. 02

    Follow one real conversion end to end

  3. 03

    Filter by booking channel and re-check the total

    Compare against the online booking count. A mismatch means the filter is wrong before the tracking is.

  4. 04

    Measure ttclid capture rate on TikTok traffic specifically

    Not on all traffic. TikTok's in-app browser is the failure case, so a healthy overall capture rate can hide a poor one on exactly the traffic that matters.

  5. 05

    Read the match rate, not the success message

    TikTok Events Manager shows received events and their match status. As with Meta, arriving is not the test — deduplicated and matched is. Reconcile TikTok's reported conversions against the source system for the same window.

Square Appointments → TikTok · prove

How it gets proven — Square Appointments → TikTok

Source of truth

Square transactions tied to an appointment, filtered to those booked online.

  • The ttclid confirmed present on a live appointment.
  • Deduplication confirmed in Events Manager, and ttclid capture rate measured on TikTok traffic specifically.
  • Online-booked completed appointments reconciled against imported conversions.

Square Appointments → TikTok · free audit

What we check in the free audit

  • Count appointments carrying the ttclid
  • Follow one real conversion end to end
  • Filter by booking channel and re-check the total
  • Measure ttclid capture rate on TikTok traffic specifically
  • Read the match rate, not the success message

Checked against

Square transactions tied to an appointment, filtered to those booked online.

Get my free conversion tracking audit

Free30 minutesNo obligation

Square Appointments → TikTok · when not to buy

When you don't need this — Square Appointments → TikTok

  • Measure identifier coverage yourself first — pull your last hundred appointments and count how many carry the ttclid.
  • If almost all your business is walk-in, measure it on appointment volume and do not build a revenue import.
  • If TikTok is a small share of spend, the effort is hard to justify. It pays when TikTok is a channel you are actively scaling.

Square Appointments → TikTok · what we deliver

What gets built — Square Appointments → TikTok

  • Identifier capture into Square Appointments

    Capture on your own domain, persist against the customer, and let the completed transaction rather than the booking be the reported event.

  • Event source: the Square transaction record

    Send completed appointment transactions net of tips.

  • Dispatch to TikTok

    Server events to the TikTok Events API with the ttclid, hashed contact information and a matching event_id.

  • Reversals where they exist

    Refunds and no-shows reverse.

Written guarantee

95%+ tracking accuracy

Measured against Square transactions tied to an appointment, filtered to those booked online.. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Square Appointments → TikTok questions, answered

You can, but you lose the chance to capture the ttclid on your own domain. Send the click to a page you control first, store the ttclid, then hand off to Square.

Free · 30 min

Get Square Appointments and TikTok joined properly

Free30 minutesNo obligation