Overview
Klaviyo is an email and SMS platform for ecommerce. Order Editing connects to Klaviyo so you can send customer messages when shoppers edit orders, owe payment, receive invoices, submit contact forms, or qualify for order-status offers.
Order Editing sends custom metrics into Klaviyo. Each metric can start a Klaviyo flow, and each event includes properties you can use in message content, trigger filters, trigger splits, conditional splits, and reporting.
This guide covers the customer-facing Order Editing events merchants can use in Klaviyo. Keep Klaviyo's native Shopify connection enabled as well; Shopify still sends order and customer data, while Order Editing adds post-checkout editing and offer events.
Requirements
- An active Order Editing subscription
- A Klaviyo account for your store
- Permission to connect apps in Klaviyo
- Permission to create and edit Klaviyo flows
- A safe test order you can use to generate sample events before going live
Some metrics are available as soon as Klaviyo is connected. Others depend on the matching Order Editing notification, contact-form routing setting, or upsell strategy eventing setting being enabled.
Before you build flows: Create at least one safe test event for each metric you plan to use. Klaviyo's variable picker is much easier to trust once it can read a real event.
Connect Klaviyo
- In Order Editing, go to Integrations > Klaviyo.
- Click Connect to Klaviyo.
- Sign in to Klaviyo and approve the connection.
- Return to Order Editing and confirm Klaviyo shows as connected.
After the connection is active, Order Editing can send Klaviyo metrics when the matching action happens. To review notification-related settings, go to Settings > Order Editing Notifications. To review recent activity, use the Events area on the Klaviyo integration page or open the matching metric in Klaviyo.
Events and data sent to Klaviyo
Klaviyo may not show a custom metric until Order Editing has sent it at least once. If a metric is missing while building a flow, trigger the matching action with a safe test order, wait a few minutes, then check Klaviyo again.
The properties below are the most useful fields exposed by Order Editing. The exact fields available in a message should always be confirmed from a real Klaviyo preview event before setting the flow live.
Editing Allowed
When it fires: When an order has an Order Editing link available.
Best for: Adding an edit-order link to an order confirmation or post-purchase service message.
Useful event data: OrderEditingLink, OrderEditingName, OrderEditingToken, OrderEditingHtml, IsOrderBelowFreeShippingThreshold, LastKnownOrderInvoiceUrl, and extra.order_status_url.
Order Editing setup: Connect Klaviyo. The event is sent when Order Editing can generate the edit link.
Editing Started
When it fires: When a customer opens the editing experience from an Order Editing link.
Best for: Measuring engagement with the edit link, or starting a follow-up flow when a customer starts editing but does not complete a change.
Useful event data: OrderEditingLink and extra.order_status_url.
Order Editing setup: Connect Klaviyo. The event appears after a customer starts an edit.
Edits Saved
When it fires: When a customer saves an order edit.
Best for: Sending a branded edited-order confirmation.
Useful event data: OrderId, OrderName, Tags, LastKnownOrder, LastKnownOrderInvoiceUrl, and additional order data in extra.
Order Editing setup: In Settings > Order Editing Notifications, use the Klaviyo option for order edited emails.
Edits Reversed
When it fires: When Order Editing reverses an order edit, usually because a customer did not pay an outstanding balance before the edit expired.
Best for: Telling the customer that the edit was reversed and the original order will continue.
Useful event data: ReversedEditsSummary, OrderName, OrderId, Source, and additional order data in extra.
Order Editing setup: In Settings > Order Editing Notifications, use the Klaviyo option for reversed edit emails.
Payment Due
When it fires: When an edit creates an outstanding balance the customer needs to pay.
Best for: Sending a payment request after a customer adds items or otherwise owes more.
Useful event data: OrderId, OrderName, OrderEditingLink, OrderEditingHtml, LastKnownOrderInvoiceUrl, and extra.order_status_url.
Order Editing setup: In Settings > Order Editing Notifications, use the Klaviyo option for customer invoice or payment-due emails.
Order Upsells Paid
When it fires: When a customer completes payment for an added offer or added item that created an outstanding balance.
Best for: Sending an updated order confirmation after payment is complete.
Useful event data: OrderId, OrderName, OutstandingBalance, OutstandingBalanceCurrency, TotalAttributeRevenue, TotalAttributeRevenueCurrency, LastKnownUpsellTransaction, Tags, LastKnownOrderInvoiceUrl, and extra.order_status_url.
Order Editing setup: In Settings > Order Editing Notifications, use the Klaviyo option for updated order confirmation after payment.
Upsell Offers Available
When it fires: When a new order matches an active order-status upsell strategy that has Klaviyo eventing enabled.
Best for: Sending order-status offer follow-ups that bring the customer back to the order status page while the offer or editing window is still relevant.
Useful event data: OrderId, OrderStatusUrl, StrategyId, StrategyName, OfferText, OfferDescription, EditingDeadline, and extra.order_status_url.
Order Editing setup: Connect Klaviyo, keep the matching order-status upsell strategy active, and enable Klaviyo for that strategy's eventing.
Important: This event is strategy-specific. If you run several order-status offers, plan your Klaviyo flow around StrategyName or StrategyId before writing the email content. For the full setup walkthrough, see Send Order Status Page Upsells with Klaviyo.
Invoice Generated
When it fires: When an invoice URL becomes available for an order.
Best for: Sending an invoice-ready message with a download link.
Useful event data: FileDownloadUrl, TemporaryFileDownloadUrl, OrderName, OrderId, Source, LastKnownOrderInvoiceUrl, and extra.order_status_url.
Order Editing setup: Connect Klaviyo and enable the invoice workflow you want customers to receive.
Invoice Downloaded
When it fires: When an invoice is downloaded by email or through an Order Editing invoice flow.
Best for: Tracking invoice engagement or sending a follow-up message.
Useful event data: FileDownloadUrl, OrderName, OrderId, Source, sometimes LastKnownOrderInvoiceUrl, and extra.order_status_url.
Order Editing setup: Connect Klaviyo and use invoice delivery where relevant.
Editing Disallowed
When it fires: When editing is disabled for an order, including when Shopify Flow closes editing.
Best for: Notifying internal teams or preventing edit-order reminders after editing closes.
Useful event data: OrderEditingDisallowedReason, OrderEditingTags, LastKnownOrder, and additional order data in extra.
Order Editing setup: Connect Klaviyo. The event is sent when Order Editing receives the disable-editing action.
Contact Form Submitted
When it fires: When a customer submits a contact form through Order Editing and Klaviyo routing is enabled.
Best for: Routing customer messages through a Klaviyo support or service flow.
Useful event data: OrderId, OrderName, CustomerReason, CustomerMessage, CustomFields, and extra.order_status_url.
Order Editing setup: In Integrations > Klaviyo > Contact Forms, enable sending contact-form submissions to Klaviyo.
Create a Klaviyo flow
Use this pattern for each Order Editing metric.
- In Klaviyo, go to Flows.
- Create a new flow.
- Choose Metric as the trigger type.
- Select OrderEditing | CX Automations, then choose the metric you want to use, such as Edits Saved, Payment Due, or Upsell Offers Available.
- Add trigger filters if only some events should enter the flow.
- Add a trigger split or conditional split if customers should follow different paths.
- Add the email or SMS step.
- Open the message settings and leave Skip recently emailed profiles unticked. Order Editing messages are usually transactional or service-related, so Smart Sending can block important customer updates if it is enabled.
- Insert event properties from the trigger where needed.
- Preview and test the message using a real event from a safe internal order.
- Set the flow live when the content, filters, splits, and timing are correct.
Important: Leave Skip recently emailed profiles unticked for these service flows. If it is ticked, Klaviyo Smart Sending can silently skip customers who still need an edit, payment, invoice, or support update.
Avoid duplicates: If another system already sends a message for the same customer action, disable one of the messages before going live so customers do not receive duplicates.
Use event data in emails and SMS
Order Editing event properties can be inserted into message content in Klaviyo. The Klaviyo preview/test event is the safest source of truth because it shows the properties that exist on the event you selected as the flow trigger.
Tip: If the preview value is blank, do not guess the variable. Generate a better test event that contains the data you want to use.
Common examples include:
- Order name:
{{ event.OrderName }} - Edit or payment link:
{{ event.OrderEditingLink }} - Invoice download link:
{{ event.FileDownloadUrl }} - Contact form reason:
{{ event.CustomerReason }} - Contact form message:
{{ event.CustomerMessage }} - Offer strategy name:
{{ event.StrategyName }} - Offer headline or copy:
{{ event.OfferText }} - Order status page link:
{{ event.OrderStatusUrl }}
Use URL properties inside buttons. For example, a Payment Due message can use OrderEditingLink as the button URL, an Invoice Generated message can use FileDownloadUrl, and an Upsell Offers Available message can use OrderStatusUrl.
If a property is blank in Klaviyo, trigger the event again with an order state that includes that data. Invoice links only exist after an invoice URL is available, payment links only exist when payment is due, and offer strategy fields only exist on the offer event.
Trigger filters, trigger splits, and flow filters
Trigger filters
Use trigger filters to decide whether an event should enter the flow at all. This is best when the message should only send for a specific subset of events.
- Only enter a Payment Due flow when
OrderEditingLinkis present. - Only enter an invoice flow when
FileDownloadUrlis present. - Only enter a contact-form flow when
CustomerReasonmatches a topic you want Klaviyo to handle.
Trigger splits
Use a trigger split or conditional split when the same metric should enter one flow, but different customers need different paths.
Best practice: Use a split when the sending logic changes. Use dynamic variables when only the wording changes.
For Upsell Offers Available, split by StrategyName or StrategyId. StrategyName is easier to read in Klaviyo, while StrategyId is the more stable choice if strategy names may change.
Tip: Use StrategyName while building if it is easier for the team to read, then switch to StrategyId for long-running flows if names are likely to change.
- Use Upsell Offers Available as the flow trigger.
- Add a split where
StrategyNameequals the strategy name, or whereStrategyIdequals the strategy ID you want to target. - Add a branch for each major strategy, such as warranty offer, accessory offer, replenishment offer, or VIP offer.
- Use
OfferText,OfferDescription,OrderStatusUrl, andEditingDeadlinein the relevant branch. - Add a fallback path for any strategy name or ID that does not match a dedicated branch.
You can also split Contact Form Submitted by CustomerReason, Payment Due by whether an invoice link is present, or Order Upsells Paid by OutstandingBalanceCurrency if your copy differs by currency.
Flow filters
Use flow filters to stop messages that are no longer relevant. For example, a payment reminder flow should not continue sending reminders after the customer has paid. Use the Klaviyo data available in your account to exclude customers who already completed the follow-up action.
Recommended flow recipes
Edited-order confirmation
- Use Edits Saved as the metric trigger.
- Send one email confirming the customer changed their order.
- Include
OrderNameand a link back to the customer's latest order details if available. - Add a flow filter or suppression rule if another system already sends the same confirmation.
- If Shopify still sends a similar message, disable one of the two messages to avoid duplicates.
Payment-due invoice
- Use Payment Due as the metric trigger.
- Use
OrderEditingLinkas the primary button URL. - Include
OrderNameso the customer understands which order needs payment. - Add a delay and reminder only if your store's editing window leaves enough time for the customer to act.
- Use filters to avoid sending reminders after payment is complete.
Order-status offer follow-up
- Use Upsell Offers Available as the metric trigger.
- Add trigger filters if only some strategies should send email or SMS.
- Add trigger splits by
StrategyNameorStrategyIdwhen different strategies need different copy. - Use
StrategyName,OfferText, andOfferDescriptionto keep the message aligned with the offer. - Use
OrderStatusUrlas the main button URL. - Use
EditingDeadlineonly after confirming it appears in your test event. - For strategy setup, placement choice, and end-to-end testing, follow Send Order Status Page Upsells with Klaviyo.
Reversed-edit notice
- Use Edits Reversed as the metric trigger.
- Explain that the edit was reversed and the original order will continue.
- Include
ReversedEditsSummarywhen it is available. - Keep the message transactional and concise.
Invoice delivery
- Use Invoice Generated when the goal is to send the invoice once it is ready.
- Use
FileDownloadUrlas the download button URL. - Use Invoice Downloaded when the goal is to track or follow up after a download event.
- Add customer or country filters if your invoice messaging differs by region.
Contact-form routing
- In Order Editing, enable contact-form submissions for Klaviyo.
- Use Contact Form Submitted as the metric trigger.
- Use
CustomerReason,CustomerMessage, andCustomFieldsin the message or internal notification. - Add conditional splits by
CustomerReasonif different topics need different handling. - Send either an internal notification, a customer acknowledgement, or both.
Testing
Do this before going live: Test each flow with a real Order Editing event from a safe internal order. This confirms both the trigger and the variables used in the message.
- Connect Klaviyo in Order Editing.
- Create or choose a safe test order.
- Perform the action that should create the event, such as saving an edit, creating a payment-due edit, generating an invoice, submitting the contact form, or placing an order that matches an order-status offer strategy.
- In Klaviyo, open the customer profile or metric activity and confirm the event arrived.
- Open the event details and confirm the properties you plan to use are present.
- Use that event as the preview event when editing the email or SMS content.
- Send a test message to yourself before setting the flow live.
Troubleshooting
Klaviyo is not connected
Go to Integrations > Klaviyo. If Order Editing says Klaviyo needs to be reconnected, click Reconnect to Klaviyo and approve the connection again.
A metric is not visible in Klaviyo
Klaviyo usually shows a custom metric after the first matching event has been sent. Trigger the relevant customer action, wait a few minutes, then check Klaviyo again.
Upsell Offers Available is not firing
Confirm Klaviyo is connected, the order-status strategy is active, the order matches the strategy rules, the order has an order status URL, and Klaviyo is enabled for that strategy's eventing.
A flow is not sending
Check that the flow is live, the trigger metric is correct, and the flow filters do not exclude the test customer. Also confirm the matching Order Editing setting is enabled when the event requires one.
Customers get duplicate emails
Check this first: If Shopify and Klaviyo both send a message for the same event, the customer can receive two emails. In Settings > Order Editing Notifications, turn off the matching Shopify notification when you replace it with a Klaviyo flow.
Event properties are missing
Some properties only exist for certain events or order states. For example, invoice links only appear when an invoice URL is available, payment links only appear when payment is due, and offer strategy fields only appear on the offer event.
Links do not work in a preview message
Use a real test event from a safe internal order when previewing dynamic links. A message preview without event data may not have the order-specific URL needed for the link.
FAQ
Does this replace Klaviyo's Shopify connection?
No. Keep Klaviyo's Shopify connection in place. Order Editing adds extra metrics for editing, payment, invoice, contact-form, and order-status offer events.
Which metric should I use for an edited-order email?
Use Edits Saved for a confirmation after the customer saves an edit.
Which metric should I use for a payment request?
Use Payment Due when the customer needs to pay an outstanding balance after an edit.
Which metric should I use for order-status offer emails?
Use Upsell Offers Available. If you have multiple offer strategies, use StrategyName or StrategyId in a trigger split or conditional split so each strategy can receive the right message. Use StrategyId when you want the split to keep working even if the strategy is renamed. For the full setup, see Send Order Status Page Upsells with Klaviyo.
Which link should I use for invoices?
Use FileDownloadUrl when it is present on the invoice event. Use Klaviyo's event preview to confirm the property is available before setting the flow live.
Do I need to disable Shopify emails?
If a Klaviyo flow replaces a Shopify notification for the same customer action, disable the matching Shopify notification to avoid duplicate emails.
Why can't I see a metric before testing?
Klaviyo may not show a custom metric until Order Editing has sent at least one event for that metric. Run the matching customer action first, then refresh Klaviyo's metric list.


