- Delivery
- Klaviyo Events API, one event per document
- Credential
- A private API key (pk_) with Accounts Read and Events Write. Full Access is not needed
- Metrics
- Eight, each named with the suffix - SignalBridge SS
- Profile match
- Email, phone number in international format, or external ID
- Retries
- Temporary failures and rate limits are retried from a durable queue
- Duplicates
- Each event carries a unique ID, so a repeated delivery is ignored
- Consent
- Held back when marketing consent is denied or required and not granted
- Plan
- Counts as one platform. Starter and trial plans allow two platforms
How it works
An event is captured
The script or the Shopify app records a shopping event. Shopify order lifecycle events such as cancellations, fulfilments and refunds come from the store's order data rather than the browser.
It is matched to a person
SignalBridge builds a Klaviyo profile from the event: email in lower case, a phone number converted to international format on a best-effort basis, an external ID, first and last name, and the billing location. An event with no email, phone number or external ID cannot be attached to a profile and is skipped.
It becomes a Klaviyo metric
The event name is translated to one of the metrics in the table. Events that do not map to a metric, such as page views, are not sent to Klaviyo.
Properties are attached
Order value, currency, order number, discount codes, line items, addresses, UTM parameters, referrer and the event source travel with the event so flows and segments can use them.
It is stored, then delivered
The event is written to a durable queue with a unique ID before delivery. Klaviyo rate limits and server errors are retried, while a rejected key or an invalid event is not. If Klaviyo needs to be reconnected, events are held until you do.
Metrics SignalBridge sends to Klaviyo
Every metric name ends with - SignalBridge SS. Build flows and segments on these names.
| Klaviyo metric | Triggered by | Carries |
|---|---|---|
| Viewed Product - SignalBridge SS | A product page view | Product name, ID, SKU, price, image and URL. |
| Added to Cart - SignalBridge SS | An item added to the cart | The product fields plus quantity and cart value. |
| Started Checkout - SignalBridge SS | Checkout started | Items, value and currency. |
| Placed Order - SignalBridge SS | A completed order | Order value, currency, order number, discount codes, items and addresses. |
| Ordered Product - SignalBridge SS | Each line item of a placed order | One event per product, with quantity, price, row total and variant. |
| Cancelled Order - SignalBridge SS | An order cancelled in the store | The order details at the time of cancellation. |
| Fulfilled Order - SignalBridge SS | An order fulfilled in the store | The order details. |
| Refunded Order - SignalBridge SS | An order refunded in the store | The order details. |
Properties on order events
These names appear in Klaviyo's flow and segment builders.
| Property | Content |
|---|---|
| $value, Currency, OrderId | Order total, currency and the store's order number. |
| Items, ItemNames, item_count | Line items with ProductID, SKU, ProductName, Quantity, ItemPrice, RowTotal, ProductURL, ImageURL and VariantName, plus Brand, Categories and CompareAtPrice when known. |
| Discount Codes, Discount Value | Codes applied and their combined amount. |
| BillingAddress, ShippingAddress | Name, address lines, city, region, postcode, country and phone. |
| utm_source, utm_medium, utm_campaign, utm_term, utm_content | Campaign details captured at arrival. |
| Referrer, EventSource | Where the visitor came from and which integration reported the event. |
Requirements
- A Klaviyo account and permission to create a private API key.
- A store whose events carry an email address or phone number, such as a Shopify store with the SignalBridge app.
- The SignalBridge script on your site or the SignalBridge Shopify app.
Set up Klaviyo
Create a private API key in Klaviyo
In Klaviyo open Settings, then API keys, and create a private key. Give it Accounts Read and Events Write access and nothing else. SignalBridge does not need Full Access.
Connect Klaviyo in SignalBridge
Open your pixel's settings, choose Connect Klaviyo and paste the key. It must start with pk_.
Check the connection
Use the test button. It confirms that the key can read the account. Whether the key can write events is confirmed by the first event Klaviyo accepts.
Wait for the first events
Place a test order or add a product to the cart while signed in or with an email already entered. The metrics appear in Klaviyo under Analytics once they have been received.
Build on the new metrics
Create or duplicate flows and segments using the metrics ending in - SignalBridge SS. They are separate from Klaviyo's own Shopify metrics, so existing flows do not change.
Verify it works
Find the metric in Klaviyo
Open Analytics, then Metrics, and search for SignalBridge SS. Each metric from the table that has been triggered should be listed.
Open the profile
Search for the email you used in the test and check the activity feed. The event should show its properties, including items and value.
Compare with your native metrics
Placed Order - SignalBridge SS counts should be equal to or higher than Klaviyo's own Placed Order metric, because server delivery does not depend on the browser. Small differences are normal.
Troubleshooting
Klaviyo rejected the API key
Create a new private key with Accounts Read and Events Write access, then reconnect. A public key or a key from another account will not work.
The connection test passes but no events appear
Klaviyo only confirms write access when it accepts an event. Check that the events you trigger carry an email, phone number or external ID.
Product views are not showing for visitors
A visitor with no email, phone number or external ID on the event has no profile to attach it to, so the event is skipped. Events from before a visitor was identified are not sent afterwards.
Events are held and not delivered
The integration may need to be reconnected. Reconnect Klaviyo and held events resume. Events that need marketing consent also wait until consent is known.
Flows do not trigger
Flows trigger on a specific metric name. Point them at the metrics ending in - SignalBridge SS, or duplicate the existing flow and change its trigger.
A profile has a wrong or incomplete phone number
SignalBridge converts a local number using the country of your site's domain ending, such as .de or .co.uk. On a .com site a number without a country code cannot be placed reliably, so collect phone numbers in international format at checkout.
What to know before you rely on it
Where this integration stops, so the numbers you see are read correctly.
- Only events that carry an email address, phone number or external ID reach Klaviyo.
- Events are recorded under new metrics. They do not feed Klaviyo's built-in Shopify metrics, so existing flows keep using those unless you change them.
- Order cancellation, fulfilment and refund metrics come from Shopify order data and are not produced for other platforms.
- Only the eight metrics in the table are sent. Page views and other events are not.
- Visitors who have not agreed to marketing tracking are not sent to Klaviyo.
Questions about this integration
Why does every metric end with SignalBridge SS?
The suffix keeps SignalBridge events apart from Klaviyo's own metrics. Nothing in your existing flows or reports changes until you choose to use the new metrics.
Does it replace the Klaviyo Shopify integration?
No. Keep it for syncing customers, subscriptions and its built-in metrics. SignalBridge adds server-side events that survive blocked browser scripts and carry extra marketing details.
Which permissions does the API key need?
Accounts Read and Events Write. SignalBridge does not need Full Access, and you should not grant it.
What about visitors who have not given consent?
Marketing consent is applied before delivery. An event is held back when consent was denied, or when your site requires consent and it has not been granted.
Can the same event be delivered twice?
Each event has a unique ID, and Klaviyo ignores a repeat of an ID it has already recorded, so retries do not create duplicates.
How do I use the events in a flow?
Choose a metric as the flow trigger, for example Started Checkout - SignalBridge SS for an abandoned checkout flow, and use properties such as Items and $value in the message and filters.
Does it work outside Shopify?
Yes, for events the script captures, as long as they include an email address, phone number or external ID. Cancellation, fulfilment and refund metrics need Shopify order data.
Is a Klaviyo plan limit involved?
Klaviyo's own limits on profiles and sends apply as usual. In SignalBridge, Klaviyo counts as one connected platform.