Skip to main content

Order Properties from Shopify

Written by Alex Bitca

Order properties are additional details about a customer's order, such as the products purchased, the order value, or the shipping destination. Retently imports these properties from Shopify and attaches them to survey responses, giving you the full purchase context behind every score and comment.

For order properties to appear under a survey response, two conditions must be met:

  1. Shopify order data must be flowing into Retently. This happens through a Shopify webhook notification connected to your store (see the two options below).

  2. Retently must be able to connect the survey response to a specific order. This connection is made through the Shopify order ID.

If your surveys are triggered directly by Shopify, both conditions are met automatically. If your surveys are triggered by another tool (Klaviyo, Gorgias, Zendesk, or any other service), you must pass the Shopify order ID in your trigger payload as a property named exactly order_id. This article covers both setups.


How Order Data Gets into Retently

There are two ways to push Shopify order properties into Retently:

Option 1: A Shopify-triggered survey campaign

If you trigger surveys directly from Shopify, the related order properties are imported at the same time the survey is triggered, and each survey response is enriched with order data automatically. No extra configuration is needed.

To use this option, create a transactional survey campaign and connect its webhook to a Shopify webhook notification. Follow the steps in Transactional survey trigger via Shopify.

Option 2: An import-only inbound webhook

If you send surveys from another system, you can still import order data from Shopify without triggering any surveys. This is done with an inbound webhook that has the Create or update contact scope. A webhook with this scope can only receive and store the information Shopify sends, it cannot be assigned to a campaign and will never send a survey.

This is the required setup when your surveys are triggered by a non-Shopify tool such as Klaviyo, Gorgias, or Zendesk. The full step-by-step is in the next section.


Match Survey Responses to Orders When Surveys Are Triggered Outside Shopify

When a tool like Klaviyo triggers your surveys, that tool usually sends Retently only the customer's email and name. Nothing in that payload connects the survey to a Shopify order, so the response shows no order data. To create that connection, set up the order import and pass the order ID in your trigger, as follows.

Step 1: Create the import-only inbound webhook

On the Inbound Webhooks page, click + Create new webhook and set:

  • Scope: Create or update contact

  • Integration: Shopify

Once created, copy the webhook URL. You will need it in the next step.

Step 2: Add the webhook to Shopify

From your Shopify admin, go to Settings > Notifications, scroll down to the Webhooks section, and click Create webhook. Then set:

  • Event: Order fulfillment

  • Format: JSON

  • URL: paste the Retently webhook URL from Step 1

  • Webhook API version: choose the version with the "(Latest)" label

Save the webhook. From this moment on, every time an order is fulfilled in your Shopify store, the order information is sent to Retently and stored.

Step 3: Pass the order ID in your survey trigger

In the tool that triggers your surveys, add a property named exactly order_id to the payload it sends to Retently, and set its value to Shopify's order ID variable.

For example, in a Klaviyo flow that triggers a Retently survey through a webhook action, the body of the webhook would include:

{
"email": "{{ customer email }}",
"first_name": "{{ customer first name }}",
"last_name": "{{ customer last name }}",
"order_id": "{{ Shopify order ID }}"
}

Important: pass the order ID, not the order name or order number. The order ID is the long numeric value (around 13 digits) that Shopify assigns internally. The order number (e.g., #1001) is much shorter and will not match. If you pass the order number, the survey response will not be linked to the order.

Step 4: Done. Matching happens automatically

When a survey is triggered, the order ID travels with it as a property. When the customer answers, Retently matches that order ID against the orders already stored for your account and attaches the full order details to the survey response. You will see the order ID and the products from that order under the response, and the order properties become available in filters.

Note: matching applies to responses collected after the setup is in place. Responses received before the order ID was passed in the trigger will not have order data attached.


Order Properties We Import from Shopify

The following is the full list of attributes imported from Shopify and available in filters:

  • New or returning customer

  • Total orders

  • Last order date

  • Total spent

  • Orders count

  • Order ID

  • Order date

  • Order total price

  • Order items

  • Product name

  • Product SKU

  • Product price

  • Coupons

  • Order tags

  • Fulfillment status

  • Fulfillment date

  • Shipping city

  • Shipping state

  • Shipping country

  • Shipping zip

  • Shipping country code


How Order Properties Are Used

Once imported and matched, order properties are attached to each survey response. This gives you two capabilities:

1. View order details for each respondent

On any individual response page, you can see the customer's order attributes, such as items purchased, total order value, or shipping country. This helps you understand the context behind each score or comment.

2. Filter and segment your data

Order properties become available in all Audience and Attributes filters across the app. You can create targeted segments, compare performance across customer groups, and uncover insights tied to specific order characteristics.


Examples of Filters You Can Apply

Order properties allow for flexible and precise segmentation. Here are some common examples you can use across dashboards, reports, and response lists:

  • Order number is greater than 1 - (Return customers only)

  • Last order date is more than 90 days ago - (Inactive or at-risk customers)

  • Shipping country is not USA - (International buyers segment)

  • Coupons exist - (Customers who used a discount code)

This level of filtering helps you understand how different customer groups score your brand, highlight trends, and focus your retention efforts.

Did this answer your question?