Sending a Fairing survey by email with Klaviyo (flows vs. campaigns)
Last updated: October 14, 2026
You can send a Fairing survey to customers by email using a Fairing Hosted Landing Page (or a landing page on your Shopify store). This article covers the one requirement that trips people up: the survey link needs a transaction ID, and Klaviyo flows and campaigns handle that differently.
Why the link needs a transaction ID
Every response in Fairing is tied to a transaction. The landing page reads the transaction ID from the i parameter in the URL, so a link without it will not load a survey. Each transaction can be answered once; a customer who opens the link again sees "You have already completed this survey."
Sending from a Klaviyo flow (recommended)
In a flow triggered by Placed Order, the order is available as an event, so Fairing can fill in the ID for you.
In Fairing, open the landing page setup and choose Via email, then Klaviyo.
Copy the generated HTML and paste it into an HTML block in your flow email.
The link uses
{{ event.extra.id }}, which Klaviyo fills with the Shopify order ID when the email sends.
Sending from a Klaviyo campaign (one-off send to a segment)
{{ event.extra.id }} is not available in campaigns because there is no triggering event. The workaround is to store each customer's most recent Shopify order ID as a profile property and reference it in the URL.
In Klaviyo, make sure each profile has a property holding their latest Shopify order ID (for example
Last Order ID). Many Shopify integrations set this automatically; if not, add it via a flow or a profile import. It must be the Shopify order ID, not the order number.In your campaign email, link to your landing page with the property appended:
https://yourstore.com/pages/survey?i={{ person|lookup:'Last Order ID'|default:'' }}Send a test to a profile that has the property set and confirm the survey loads.
Customers whose property is empty will land on the page with no survey, so filter your segment to profiles where the property is set.
Which questions appear on the landing page
Only questions with the landing page enabled as a display surface are shown there.
Questions show one after another in Question Stream order.
To make sure every recipient sees the questions, target them to All Customers and set them to Always.
A customer can respond once per transaction. A fresh order gives them a fresh survey.
Avoiding double-asking customers who answered at checkout
If the same question also runs on your Thank You page, add a filter to the Klaviyo flow so it skips profiles that already have a value for that question's property. The setup is the same as the "send to customers who haven't completed the survey" example in the Klaviyo integration docs, inverted.
Not currently possible
Sending a one-off question stream to a static list or segment without an associated transaction. If that matters to you, let us know in chat; it is on our radar.