Klaviyo integration
Native. No Zapier hop. PixelProof scan-complete events fire directly into your Klaviyo metrics feed as pixelproof.scan.complete, so your existing Klaviyo flows can react to tracking issues on your Shopify store the same way they react toPlaced Order or Started Checkout.
Why it matters
Shopify DTC founders already live in Klaviyo. A "your Meta pixel just broke" email is higher-signal when it comes from the same lifecycle-marketing tool the founder checks every morning, threaded next to abandoned-cart flows. That flow can also branch by scan severity, hold sending until the issue persists 24h, or auto-add the store owner to a "needs a call" Klaviyo segment.
Setup (3 steps, ~2 minutes)
- In Klaviyo, create a private API key with
events:write,profiles:write, andmetrics:readscopes. Klaviyo docs: create a private API key. - Email
hello@digital-empire-app.vercel.appwith the key and the email associated with your PixelProof account. Enterprise beta: we wire the integration for you and confirm the first event lands within an hour. - Run any PixelProof scan (browser extension or dashboard trigger). Check your Klaviyo Analytics → Metrics view --
pixelproof.scan.completeappears within seconds.
Self-serve connect flow ships with the Growth-tier launch. Until then we handle onboarding manually via the /andy/integrations/klaviyo operator surface.
Events fired
Every event is JSON:API v3 shape, sent as a POST to a.klaviyo.com/api/events/.
pixelproof.scan.complete
Fires when a Chrome-extension scan finishes and its snapshot is written to PixelProof.
{
"data": {
"type": "event",
"attributes": {
"metric": { "data": { "type": "metric",
"attributes": { "name": "pixelproof.scan.complete" } } },
"profile": { "data": { "type": "profile",
"attributes": { "email": "founder@acme.myshopify.com",
"properties": { "source": "pixelproof",
"store_domain":
"acme.myshopify.com" } } } },
"unique_id": "<sha of the scan snapshot>",
"time": "2026-08-26T12:34:56.000Z",
"value": 3,
"properties": {
"store_domain": "acme.myshopify.com",
"scan_type": "pixel",
"scan_id": "scan_abc123",
"error_count": 2,
"warn_count": 1,
"score": 55,
"findings": ["Meta pixel missing", "GA4 misconfigured"]
}
}
}
}pixelproof.test.ping
Fires when an operator hits Test event on the /andy admin surface. Use it in your Klaviyo flow-builder as a safe trigger for staging a new flow.
Building a flow in Klaviyo
- In Klaviyo → Flows → Create Flow → Start from scratch.
- Trigger = Metric ->
pixelproof.scan.complete. - Add a conditional split on
error_count >= 1to only email on real breakage. - Wire the email body against the event properties (Klaviyo exposes them as
{{ event.error_count }}etc.).
Security posture
- Klaviyo private keys are encrypted at rest with AES-256-GCM, keyed off an integration-scoped HKDF derivation of
INTEGRATION_ENC_KEY. The plaintext is never persisted; the admin surface only ever renders the first 8 and last 4 chars. - Row-level security is enabled on
portfolio.klaviyo_integrationswith zero policies -- only the service-role Supabase client (server-side) can read the encrypted blob. - Dispatch failures are logged to
portfolio.klaviyo_dispatch_logand surface in the admin UI. A Klaviyo outage never blocks or fails a PixelProof scan write. - The Revoke action hard-deletes the row and cascades the dispatch log -- no soft-delete window where a stale key can leak.
Related surfaces
- /docs/webhooks -- generic HTTP callback for Zapier / n8n / Make / any custom endpoint.
- /docs/api -- inbound REST surface (issue API keys under /andy/api-keys).