Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

For Shopify

Shopify attributes the checkout. It cannot attribute the till.

Export your orders, upload your calls and leads beside them, and see which marketing produced the sales that never had a click on them.

No API key Nothing to install in ShopifyNothing to install No card requiredNo card

CloseRev reads a Shopify export of orders — the customer's email or phone, the order total and the date — and matches the ones with no click behind them against your call and lead records. Online checkout is already attributed and needs nothing from us; the point of this page is Shopify POS, phone orders and draft orders, where somebody researched online and bought where no pixel could follow. Orders that match no lead are reported as Direct / Unknown rather than credited to the last campaign that ran.

Last checked against Shopify's own documentation on September 24, 2026.

The gap

Your online orders are measured to the penny. The customer who compared three sofas on your website and then rang to order is invisible to every report you have.

Shopify sees

What was sold, to whom, and for how much.

no shared row
Your ad account sees

The click, the keyword, the call, and what each one cost.

The file

What the export needs in it.

Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.

  1. Needed

    Customer email or phone

    On the order's customer. Online orders always carry an email; point-of-sale and phone orders carry whichever your staff captured, which is why both columns belong in the file.

  2. Needed

    Order total

    What the order took, after discounts and including shipping if you want it counted. Consistency matters more than which you choose.

  3. Needed

    Order date

    When the order was placed. For draft orders sent as a quote, the date it was paid is closer to the decision.

  4. Optional

    Sales channel or location

    Online store, point of sale, draft order, and which shop. This is the column that separates what already has attribution from what does not, and it is the most important optional field on this page.

Step by step

Getting the file out of Shopify.

Written for somebody with Shopify open in the next tab. Report names vary by edition, so each step says what to look for.

  1. Export orders with the sales channel

    One row per order with a customer contact detail, the total, the date and — if at all possible — the channel or location it came through. Without the channel you cannot tell the already-attributed orders from the ones this exists for.

  2. Separate online checkout from everything else

    Online orders with a click behind them are already measured properly by your ad platforms. The value here is in point-of-sale, phone and draft orders, so isolate those first and read them on their own.

  3. Export your calls and leads

    Call tracking, the contact form, showroom enquiry logs, quote requests. Contact detail plus the source, campaign or keyword.

  4. Cover a wider window on the order side

    Considered purchases are researched for weeks before somebody walks in or rings. A window as short as the ad platform's will miss exactly the orders this is for.

  5. Upload both

    The join is the email and the phone, normalised on both sides, with weak links flagged rather than counted.

What comes back

The page Shopify cannot show you.

Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the Ecommerce & Retail page — not from a Shopify account.

Traced to a channel$196,00070% of $280,000
Sales matched192 of 264high confidence only
Average sale$1,060per paid sale
ChannelShareSalesRevenue
Google Ads84$98,000
Meta Ads61$53,200
Email marketing47$44,800
Direct / Unknown72$84,000

Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.

The argument

What changes when the order and the ad share a row.

This page is about the orders with no click, and only those

A straightforward online purchase is one of the best-measured events in commerce. The click, the session and the checkout are all in one place, the ad platform sees the conversion, and nothing here improves on that.

What is not measured is everything else Shopify now runs: a point-of-sale order in a shop, a phone order taken by a person, a draft order sent as a quote and paid days later. The customer researched online — that is where they found you — and then bought somewhere the pixel does not reach.

For merchants with a physical presence or a considered product, that is not a rounding error. It is frequently the larger half of the revenue and the half that decides whether the advertising pays.

The higher the price, the less likely the click and the purchase are the same event

Under fifty, people buy on the spot. Over a few thousand — furniture, equipment, jewellery, bikes, appliances — they research online, then come in to see it, then buy.

The result is a systematic bias in every report the merchant reads: the cheap impulse categories look efficient because their whole journey is online and measurable, and the expensive considered categories look like they do not work.

Budget follows the measurement rather than the money, and it does so quietly for years. Matching offline orders back to the enquiries and calls that preceded them is the correction, and it usually moves spend toward the categories that were carrying the business all along.

Point of sale captures a contact detail unevenly, and that shapes the answer

An online order cannot exist without an email. A shop order can, and often does — the transaction completes with a card and nothing else unless somebody asks.

That gradient decides your matched share. Merchants who capture an email at the till for the receipt match well; merchants who do not will see a large Direct / Unknown and should read it as a property of their till process rather than as a finding about their marketing.

It is also the cheapest thing on this page to fix. Asking for an email at the counter changes what can be measured more than any change to the advertising would.

Returning customers are the point of retail and the trap of attribution

Retail lives on repeat purchase, and a customer produced by a campaign two years ago may have bought fifteen times since. Crediting all of it to that campaign makes it look extraordinary; crediting none of it understates a channel producing genuinely loyal customers.

Neither answer is right for every merchant, so the report does not choose. First orders and subsequent orders are reported separately, and the decision about which to spend against stays visible and yours.

Fair questions

“Shopify already does that.” Not quite.

They say

“Our Shopify analytics already shows marketing attribution.”

We say

For orders placed online, and it does it well. This is about the orders placed in a shop or over the phone, which those reports cannot see at all.

They say

“We are online only.”

We say

Then you probably do not need this. If you take any phone orders or send draft orders as quotes, those are the ones worth reading.

They say

“Our till orders have no email.”

We say

Then the matched share will be low and the report will say so. Capturing an email at the counter is usually the highest-return change a shop can make here.

Questions

Shopify, specifically.

Something else? Ask us and a person answers.

No. There is no app to install and no scope to grant. It reads a file you exported, which is also why it cannot touch your storefront.

Start today

Two exports, and you will know.

Nothing to install in Shopify, no API key, and no need to have been tracking anything until now. Last year works as well as this month.