Skip to main content

Follow this integration guide to connect your Loop Returns data to SourceMedium.

Loop Returns is the returns and exchanges platform used by high-volume Shopify brands. SourceMedium syncs Loop as the authoritative source for return events. Shopify refund data lags significantly and misses exchange details. Every return is linked to its original Shopify order and customer, with outcome, financial breakdown, return reason, and timing.

Requirements

  • Active Loop Returns account
  • Shopify store connected to Loop Returns
  • Loop Returns API key

Steps

  1. Connect Loop Returns to your Shopify store if not already done
  2. In Loop Returns, navigate to Returns Management > Tools & integrations > Developer Tools and generate an API key
  3. Share the API key with your SourceMedium account manager or send it to support@sourcemedium.com to enable the integration

What data syncs

Return-level data (fct_returns)
FieldDescription
return_outcomeexchange, refund, upsell, credit, or combined outcomes such as exchange+refund
refund_amountCash refunded to the customer
exchange_totalValue of the exchange order
upsell_amountAdditional revenue collected during the return flow
net_return_costrefund_amount + gift_card_amount minus upsell_amount
days_to_returnDays between original order and return initiation
return_week_bucketReturn timing band: 0-7 days, 8-14 days, 15-21 days, etc.
sm_order_keyJoins to obt_orders for full order context
sm_customer_keyJoins to obt_customers for lifetime value analysis
Line-item data (stg_loopreturns__return_line_items)
FieldDescription
parent_return_reasonTop-level reason (e.g. “Item didn’t fit”)
return_reasonSub-level reason (e.g. “Waist too big”)
exchange_variant_idShopify variant ID of the exchanged-for product
skuSKU of the returned item
Order-grain reporting - Use fct_returns joined to obt_orders for order-level return and exchange metrics today. rpt_order_returns_v1 documents the planned order-level view, but it is not yet deployed to customer Managed Data Warehouses.

Questions you can answer

  • What percentage of our returns result in an exchange vs a refund?
  • Which SKUs and variants have the highest return rates this season?
  • What are the top return reasons this quarter, broken down by parent and sub-reason?
  • How does return timing (days to return) differ between exchange and refund outcomes?
  • Do customers who exchange rather than refund have higher 90-day repeat purchase rates?
  • What is our net return cost as a percentage of gross revenue by month?
  • How many orders have more than one return over their lifetime?
  • Which acquisition channels produce orders with the lowest return rates?

Notes

  • Loop Returns is the source of truth for return events. Shopify’s refund records lag by days and only capture a small fraction of exchange-outcome returns. Use fct_returns for all returns analysis, not the refunds fields in obt_orders.
  • A single Shopify order can have multiple Loop returns (e.g. two separate return events). fct_returns grain is per return, not per order.
  • Child exchange orders (Shopify order names starting with EXC-) are flagged with is_child_order_return = true. This field indicates the order being returned, not the return outcome itself.
  • Historical data is available from the date your Loop Returns account was created.