Import your data

Your history does not have to stay behind when you switch to TrueMetriks. Import your customers, what they bought and where they came from, from another tool or a spreadsheet, and those sales show up in your reports on the dates they really happened.

Set this up with AI

Copy this prompt into ChatGPT, Claude or whichever AI you use. It carries this whole guide, the pages it depends on, and a link to every video, so it can walk you through it one step at a time.

Open as text

What you can import

You can bring in three kinds of history: who your customers are, what they bought, and where each sale came from.

Customers need an email address. That is the only column every file must have. A name (first and last, or one full name), phone number and country are optional.

Orders carry an order ID, the date and time of the purchase, and either the order total or line items with a price and a quantity. Products and SKUs come along when the file has them.

Currency can be a column of its own. A sale in another currency is converted into your website's currency at that day's rate, the same way your live sales are.

Refunds can be a refunded amount or a yes/no column. A partial refund is taken off the order, and a fully refunded order is skipped.

Sources tell TrueMetriks where each sale came from: UTM source, medium, campaign, ad set and ad, or a landing page URL that carries them. Sales with a source show up under their real channel, campaign and ad.

A file with only customers and no amounts works too. Each row then adds a customer and no order.

Where to find it

Go to Settings, then Account, and scroll to Import data.

The Import data button on the Imported customers tab of Users takes you to the same place, with that website already picked.

Only organization owners and admins see the card. Importing is part of the Growth and Unlimited plans.

Pick the website the history belongs to in Import into at the top of the card. Everything you import goes into that one website.

Import a file (CSV or Excel)

Drop your file on Upload a file, or click it to browse. Any column layout works: you do not need to rename or reorder anything first.

Import data

Bring your history from another tool or a spreadsheet: customers, what they bought and where they came from. Imported sales show up in your reports, so nothing is lost when you switch.

Import into demo-brand.example
Upload a fileCSV, XLSX

Any layout works. We read your columns and match email, order ID, product, SKU, amount, date and UTMs for you. You check the match before anything is saved.

Drop a file here or click to browse Exports from Hyros, Roaspy, Shopify, Stripe or your own sheet. Up to 10,000 rows.

Past imports

Your import runs in the background. You can leave this page. The sales show up in your reports when it says Done.

Source New customers Orders Revenue Status Date
shopify_orders_2024.csv 2,104 2,630 201,930 Importing 64% Oct 13, 2026
hyros_sales_export.csv 1,480 3,880 412,930 Done14 already in TrueMetriks Oct 2, 2026 Undo
roaspy_export.xlsx 1,308 1,912 96,410.5 Done Sep 28, 2026 Undo

After you drop a file: the Check columns step

orders_export.csv - 2,140 rows Cancel

We matched your columns. Change any that look wrong, or set them to Ignore.

Your column Sample values Matched to
Email [email protected], [email protected] Email Auto
Id 5501001, 5501002, 5501003 Order ID Auto
Name #1001, #1002, #1003 Ignore Not used
Created at 2025-03-04 14:22:01 -0500 Purchase date and time Auto
Total 120.00, 40.00, 75.50 Order total Auto
Landing Site /?utm_source=facebook&utm_medium=paid Landing page URL Auto
Dates are written asYear-Month-Day
Customers1,204
Orders1,630
Revenue98,410.5
Rows skipped3112 no valid email, 19 refunded

Where these sales will show

Paid Social 46%Imported 28%Paid Search 18%Email 8%

Orders without a source are labelled Imported, not Direct, so your Direct numbers stay honest.

Import 1,630 ordersBack
Settings → Account → Import data. Upload a CSV or Excel file; Past imports lists each import with its status, and shows Undo once an import is Done or Failed. After you drop a file, check how each column was matched, pick how dates are written, and review the totals before you click Import.

The file can be a .csv or an .xlsx, with up to 10,000 rows and up to 50 MB.

One import runs at a time for each website. While an import or an Undo is still working, the upload area waits; upload the next file once the first is finished (Done, Failed or Undone). A bigger history goes in several files, one after the other.

An old .xls file has to be saved as .xlsx or .csv first.

When you split a file, split it between orders: keep every row of one order in the same part, or that order can come in short.

In an Excel workbook, TrueMetriks reads the first sheet that has data, with up to 500 columns. In any file, a title or banner row above the column names is skipped.

TrueMetriks then proposes what each column holds. It uses AI for this, and only the header row and the first 20 rows are sent to it, with each cell cut short. Matches made this way carry an Auto badge.

When AI is unavailable, or AI has already matched 50 files for your organization in the last 24 hours, a built-in matcher reads the column names instead. Its matches carry a Matched badge.

Check every row of the Check columns step. Change any match that looks wrong, and set any column you do not want to Ignore. You cannot import until one column is matched to Email.

When a column is matched to Purchase date and time, pick how your dates are written: Day/Month/Year, Month/Day/Year or Year-Month-Day. TrueMetriks reads the whole date column to guess, and a day over 12 settles it.

A file where every day is 12 or lower needs your eye. When TrueMetriks cannot tell, it starts on Month/Day/Year.

Dates with a time zone keep it. Dates without one are read in your website's reporting time zone, and a date with no time is placed at noon.

An order with an empty purchase date is dated at the moment you click Import. When no column is matched to Purchase date, that is every order. The Check columns step says how many orders will be dated today, so a missed date column does not go unnoticed.

A date that is there but cannot be read is never guessed. That order is skipped as an unreadable date.

Before anything is saved you see the totals: customers, orders, revenue and skipped rows, with the reason for each skip. The Where these sales will show bar shows which channels the orders will land in.

The totals come from the first match. If you change a column or the date order, your changes apply when you import.

Click Import when it looks right. The import runs in the background, so you can leave the page.

If another upload is being read on our side at that moment, you see "Another file is being read. Try again in a minute."

Exports from other tools

Shopify: use the orders export. The numeric Id column is the order ID, not Name (#1001). TrueMetriks picks Id for you.

The numeric ID is what lets TrueMetriks recognise orders it already tracked, so they are skipped instead of counted twice.

One case cannot be matched. When the Shopify Custom Pixel could not read an order's ID at checkout, it saved the checkout token instead. That tracked order never matches the export's Id, so the import adds it a second time.

Roaspy: upload its export file. Its platform, campaign, ad set and ad columns are matched to UTM source, campaign, ad set and ad for you, with AI on or off.

If the Roaspy file has no medium column, a row with a platform and a campaign, ad set or ad still counts as paid. A Facebook ad sale lands in Paid Social and a Google one in Paid Search.

Hyros: export your sales as a CSV or Excel file and upload it the same way. Check how its columns were matched, as for any other file.

Stripe, or a sheet you made yourself: upload it the same way. Any layout works as long as it has an email column.

When several rows share one order ID, they are the line items of one order and become one order. Rows with no order ID each become an order of their own.

Where imported sales show

Imported sales show in Revenue, Acquisition and Conversions, on the dates they really happened.

They show up in your reports when the import says Done in Past imports.

A sale with a UTM source lands under its real channel, campaign, ad set and ad, next to your tracked sales.

A sale with a source but no medium counts as paid when it also has a campaign, ad set, ad or Google click ID. A Facebook source then lands in Paid Social and a Google source in Paid Search.

Email, SMS and Direct sources keep their own channel, even with a campaign.

A source with nothing else beside it is read the way a tracked visit would be. For example, facebook alone is Organic Social.

A sale with no source but a Google click ID (gclid, gbraid or wbraid) in its landing page URL is a Google ad click, so it lands in Paid Search.

A sale with no source at all lands under the Imported channel, never under Direct. A Facebook or TikTok click ID alone is not a source, because those are added to organic visits too.

Under Imported, a sale keeps its own campaign, ad set and ad when the file has them.

Under Imported, a sale with no campaign of its own is grouped under the import's name: the file name and the day of the import in UTC, for example orders_export.csv (2026-10-13). Two imports of files with the same name on the same day share that row.

Each imported order also adds one visit just before the sale, on its historical date, so the sale has a source to credit. Your visit counts for those past days go up by the same number.

What an import never does

Nothing you import is sent to Facebook, Google Ads, TikTok or GA4. It does not reach your webhooks and does not trigger an email.

Imported sales only change what you see in TrueMetriks.

New vs returning customers

Every buyer of an imported order counts as an existing customer. Their next purchase counts as returning, not new.

A customer-only row (an email with no amount and no order ID) counts as an existing customer too.

A buyer is not saved when their only order was skipped as refunded, as a zero or negative amount, or for an unreadable amount or date. Their first real purchase still counts as new.

This keeps your new-customer numbers honest. See New vs Returning customers for how the split works.

Duplicates, progress and undo

Importing the same history twice never doubles it. Uploading the same file again skips every order that is already imported, including orders that had no date.

An order TrueMetriks already tracked live with the same order ID is skipped too. Past imports shows these as "already in TrueMetriks".

Imports run in the background, one after another. You can leave the page while one runs.

An import goes from Queued to Importing (with a percentage), then Finishing up while your reports catch up, then Done.

If an import keeps failing, it stops as Failed, with the reason next to it.

Past imports lists the website's newest 50 imports: the file name, the new customers and orders each one added, the revenue, the status and the date.

Undo shows next to an import that is Done or Failed. It removes that import's orders and the customers it added from your reports.

An undo runs in the background too: Undoing, then Finishing undo, then Undone. The orders are gone from your reports when it says Undone.

If an undo stops part way, the import shows Failed with "Click Undo to finish removing it". Click Undo again and it carries on where it stopped.

An Undone import keeps an Undo again link. It is safe to click: it removes anything of that import that is still left.

Why rows are skipped

The Check columns step counts the skipped rows by reason:

  • No valid email: the row has no email, or the email is not shaped like an address ([email protected]).
  • Unreadable date: the date is there but could not be read, is before the year 2000, or is more than one day in the future.
  • Unreadable amount: the total or price is not a number.
  • Refunded: the order was fully refunded, or refunded down to zero.
  • Zero or negative amount: the order is free, or the row is a refund line on its own.

One more reason only shows once the import runs, in Past imports as "already in TrueMetriks":

  • Already imported: the order is already in TrueMetriks, from an earlier import or from live tracking.

Frequently asked questions

Can I import from Roaspy?

Yes. Upload the Roaspy export under Upload a file. Its Platform column is matched to UTM source for you, with AI on or off. A sale with a platform and a campaign, ad set or ad counts as paid even without a medium column, so Facebook and Google ad sales land in Paid Social and Paid Search.

Can I import from Hyros?

Yes, with an export. Export your Hyros sales as a CSV or Excel file and upload it under Upload a file, then check how its columns were matched, as for any other file.

Why are some of my sales under Imported?

Those sales had no source in the file: no UTM source, and no landing page URL carrying one. TrueMetriks puts them under their own Imported channel instead of Direct, so your Direct numbers only hold real direct visits.

Will importing fire conversions to my ad platforms?

No. Imported sales are never sent to Facebook, Google Ads, TikTok or GA4, never go to your webhooks, and never trigger an email. They only show in your TrueMetriks reports.

What happens if I upload the same file twice?

Nothing is doubled. Every order already imported, and every order TrueMetriks already tracked with the same order ID, is skipped. Past imports shows how many were skipped as already in TrueMetriks.

Can I undo an import?

Yes. In Past imports, click Undo next to an import that is Done or Failed. The undo runs in the background, and its orders and the customers it added are gone from your reports when it says Undone.

Need help with this?

Reach us instantly on WhatsApp, or send us a message and we will get back to you. On workdays we usually respond in less than 24 hours.

or send us a message