Blog
July 30, 2026

Try-On Data Into Klaviyo and Postscript

Push try-on identity, the SKU previewed, and purchase state into Klaviyo, Postscript, ads, and custom events. A destination map, not a Klaviyo flow recipe.

Aaron
Aaron
11 mins read

The weekly retention report says 1,240 shoppers completed a virtual try-on. Klaviyo knows about 310 of them. Postscript knows about 86. The ad account has a general product-view audience, and the analytics report has one event called try_on_clicked. Everyone has data. Nobody has the same shopper, product, or outcome.

That is how a useful intent signal becomes another dashboard ornament.

A Shopify marketing engine needs the try-on payload in the tools the store already runs. Send identity, the product tried, and purchase state to Klaviyo for email, Postscript for opted-in SMS, ads for anonymous recovery, and custom events for analytics. This is a destination map, not a Klaviyo flow recipe.

The operator’s job is to define one clean record, route only the fields each destination needs, and make sure a purchase closes the loop. Subject lines can wait.

Shopify operator mapping a virtual try-on event from a fashion product page into email, SMS, ads, and analytics

One try-on payload should reach four destinations without turning into four versions of the truth. Editorial image in Classic Antla disposable-camera style.

The event needs a destination before it needs a campaign

A try-on event trapped inside the try-on app can describe interest, but it cannot do any work. The email platform cannot identify the shopper. The SMS platform cannot check consent. The ad platform cannot distinguish a coat try-on from a four-second visit. Analytics cannot connect the preview to the order.

The commercial value is in that connection. Across more than 500,000 Antla try-ons, shoppers who completed a preview converted at 3.8%. That is the conversion rate among try-on users, not the store-wide rate. It is also why the remaining non-buyers deserve more precise handling than the usual “visited site” bucket.

The Shopify virtual try-on conversion analysis explains the benchmark. From an operator’s seat, the next question is simpler: which system should receive the signal, and what should that system be allowed to do with it?

Start with ownership:

  • Klaviyo owns identified email follow-up.
  • Postscript owns SMS follow-up for people who explicitly opted in to text messages.
  • Ad platforms own privacy-compliant recovery when the browser or platform can recognize an otherwise anonymous visitor.
  • Custom events own measurement across the funnel.

These destinations can overlap, but their permissions do not. Having an email address does not imply SMS consent. Having a browser identifier does not justify uploading a shopper’s generated image into an ad. A data pipe is not a consent form.

Build one small payload that survives every handoff

The payload should answer four questions: who acted, what they tried, when they acted, and whether they later purchased. Everything else is optional until a merchant can name the decision it supports.

Field groupRecommended fieldsOperator purpose
Eventevent_name, event_id, occurred_atName, deduplicate, and sequence the action
Identitycustomer_id, email, phone, anonymous_idMatch the event to a known profile or browser
Productshopify_product_id, variant_id, sku, product_title, product_urlReturn the shopper to the exact item and colorway
Try-on contextgeneration_count, session_id, device_typeSeparate a casual attempt from repeated consideration
Purchase statepurchase_status, order_id, purchased_atStop recovery and attribute revenue
Permissionemail_consent, sms_consent, consent_source, consent_atKeep channel eligibility attached to the record

Use Shopify’s stable product and variant identifiers as the join keys. Product titles change, handles get edited, and “Black Maxi Dress” is not the unique identifier a catalog manager hopes it is. Keep the readable title for reporting, but join on the IDs.

Purchase state deserves particular care. At the moment of a try-on, purchased: false really means “no purchase observed yet.” It should not become a permanent declaration that the shopper did not buy. A later order event must update the state to purchased, attach the order, and suppress recovery destinations.

The event_id prevents the same browser retry or integration replay from creating three apparent try-ons. Timestamps should use one standard, preferably UTC, while preserving the store timezone for reporting. Those two details are unglamorous. So is reconciling duplicate campaign revenue on Friday afternoon.

Identity can arrive after the first event. Antla’s email capture feature lets merchants collect an address in the try-on experience, while a separate guide covers capturing email with the product and purchase flag. When identity appears, stitch it to the prior anonymous event rather than creating a second shopper history.

Do not send the generated customer image by default. Most destination decisions need the SKU, event, and a secure return path, not a portable copy of personal media. If a store has a legitimate customer-facing use for the image, review consent, access controls, expiration, and deletion separately.

Give Klaviyo, Postscript, ads, and analytics different jobs

Four destinations do not need four versions of the truth. They need four views of the same event.

Klaviyo: identified email

Send the email address, try-on event, Shopify product and variant IDs, SKU, product URL, event time, and current purchase state. Klaviyo’s email marketing platform is built around customer profiles, behavioral data, segmentation, and personalized email. The useful input is therefore a profile-linked action with product context, not a generic tag saying “likes fashion.”

Keep durable profile facts separate from event facts. Consent status and perhaps a last-tried category can live on the profile. Each individual try-on belongs as an event with its own timestamp and product properties. Otherwise a second try-on overwrites the first, and the customer appears to have considered only whichever SKU arrived last.

This article stops at the data boundary. Campaign construction belongs in the Klaviyo virtual try-on email flows guide. That separation matters because a clean payload can support several legitimate programs without hard-coding one branching scheme into the integration.

Postscript: opted-in SMS

Send phone identity only when SMS permission is present and attributable. Then pass a compact event payload: event name, product or variant ID, product title, product URL, timestamp, and purchase state. Postscript positions its product around SMS for Shopify brands and treats compliance as part of the channel, not an optional dashboard setting.

SMS is interruptive and space-constrained. It does not need every try-on property. It needs enough context to identify the item, avoid messaging a buyer, and send an eligible subscriber back to the right PDP.

An email subscriber who never opted into SMS stays in Klaviyo’s email lane. Copying the address into a phone-first workflow does not create a phone number or permission, although some integration diagrams seem optimistic on both points.

Ads: anonymous product recovery

For an anonymous shopper, pass a consented browser or platform event with the catalog product ID, variant where supported, event time, and purchase outcome. The purpose is to build a higher-intent audience than all product viewers and show the relevant item through the platform’s catalog tools.

Exclude purchasers as the order signal arrives. Cap retention according to the product cycle and local privacy requirements. A swimsuit preview from last summer is not evergreen intent.

Keep the shopper’s generated try-on image out of ad creative. The ad platform needs the event and catalog reference, not her photo. The operating model for non-buyers is covered in Shopify try-on remarketing.

Custom events: analytics

Send try_on_started, try_on_completed, identity_captured, and purchase_completed as custom events to the analytics stack the merchant already uses. Include the same event ID, anonymous or customer ID, product IDs, timestamp, and session ID so analysts can reconstruct the sequence.

This is measurement plumbing, not another customer messaging channel. No particular analytics vendor is required. The goal is to answer how many shoppers started, completed, identified themselves, bought in-session, or bought after recovery.

Litmus email benchmark guidance recommends connecting email reporting to conversion and revenue rather than relying on open rates alone. The same discipline applies here. A delivered message is not the outcome. An attributable order, unsubscribe, suppression, or expired non-buyer is.

Route by permission and state, then audit the joins

The cleanest routing rule is a short decision table. It is easier to operate than a wall of arrows and easier to explain to legal or support.

Shopper stateEmailSMSAdsCustom events
Anonymous, ad consent presentNoNoEligibleYes
Email identified, email consent presentEligibleNoEligible if consent permitsYes
Phone identified, SMS consent presentIf separately eligibleEligibleEligible if consent permitsYes
PurchasedTransactional rules onlyTransactional rules onlyExclude from recoveryRecord conversion
Consent withdrawnSuppressSuppressFollow platform and legal deletion rulesRetain only what policy permits

Do not interpret “eligible” as “send now.” Eligibility says the destination may use the record. Campaign cadence, creative, and suppression logic live downstream.

Run a weekly join audit on a sample of recent sessions:

  1. Pick ten completed try-ons and confirm every event has one event ID, one timestamp, and a resolvable Shopify product.
  2. For identified shoppers, confirm the event appears on the correct Klaviyo profile and only on a Postscript subscriber when SMS permission exists.
  3. Place a test order and confirm purchase state updates in every destination that received the try-on.
  4. Confirm the buyer leaves recovery audiences and does not remain labeled as a non-converter.
  5. Compare destination counts with custom-event totals. Investigate gaps instead of averaging them away.

Shopify’s ecommerce optimization guidance treats improvement as continuous, data-led work across the shopping journey. This audit is the operational version of that idea. A marketing engine is only as trustworthy as its handoffs.

Questions Shopify operators ask

Should I re-engage Shopify customers with email or SMS?

Use email when you have an email identity and permission, especially when the message needs product detail or visual context. Use SMS only for an explicit SMS opt-in and a concise, high-intent reason to return. If both are available, define channel priority downstream and suppress overlap. Do not treat email consent as SMS consent.

How do I build a marketing engine for a Shopify store?

Start with one reliable intent event, such as a completed try-on. Attach product identity, customer or anonymous identity, consent, and purchase state. Route that record to the appropriate email, SMS, ads, and analytics destinations. Then verify that an order updates every destination and stops recovery. Add campaigns only after the data loop closes.

What try-on data should I send to Klaviyo?

Send the profile identity, a unique try-on event ID, event timestamp, Shopify product and variant IDs, SKU, product title, product URL, and purchase state. Keep consent on the profile and individual try-ons as events. Add only properties that support segmentation, personalization, suppression, or measurement.

Put the adjacent jobs in the right queue


About the author: Aaron is the founder of Antla. He cares more about where try-on events land than about subject-line folklore.

Before adding another campaign, trace one try-on from product page to purchase suppression. If the event cannot make that trip, start with Antla for Shopify and build the payload before the automation.