We’re upgrading our email infrastructure — for immediate response, email andrewjgaber@gmail.com meanwhile.
Skip to main content
Part of Digital Empire
Affiliate / Other

Klaviyo Signals JS in Additional Scripts

Klaviyo · Web Pixels API replacement · confidence: medium

Dies 2026-08-26

Paste-ready snippet
// Klaviyo "Signals" onsite identify/track script tags injected via
// Additional Scripts stop running Aug 26. The sandbox-correct replacement is
// the same Klaviyo Client Events API call as the Placed Order template,
// fired at the point identity is known (checkout_contact_info_submitted) so
// the profile identify happens as early in checkout as the old Signals
// script did, not only at completion.
analytics.subscribe('checkout_contact_info_submitted', (event) => {
  const { checkout } = event.data;
  if (!checkout || !checkout.email) return;

  fetch('https://a.klaviyo.com/client/profiles/?company_id=KLAVIYO_PUBLIC_API_KEY', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', revision: '2024-10-15' },
    keepalive: true,
    body: JSON.stringify({
      data: { type: 'profile', attributes: { email: checkout.email } },
    }),
  });
});

Legacy pattern detected via: klaviyo\.js|static\.klaviyo\.com|_klOnsite

What this does NOT cover

What this does NOT cover: Klaviyo Signals' onsite behavioral tracking (product views, search) — that requires separate product_viewed / search_submitted subscriptions, out of scope for this checkout-specific template. It also does not cover Klaviyo's official Shopify app identify calls; running both simultaneously will double-fire identify events.

Test-event verification checklist

  • Confirms Klaviyo's official Shopify app is not already handling identify (same duplicate check as the Placed Order template) — this is specifically for hand-rolled Signals installs.
  • checkout.email is present at checkout_contact_info_submitted time (Shopify fires this event once the customer submits the checkout contact-info step, before payment) — verify with the required read_customer_email scope.
  • Sends once per checkout session, not on every field keystroke.
  • Verify live against the platform's own test-event tool: https://developers.klaviyo.com/en/reference/create_client_profile

Related paste-ready snippets

Klaviyo Signals migration · Legacy learnq.push + Additional Scripts loader + the new Signals Purchase replacement.