TrueMetriks documentation: Import your data https://docs.truemetriks.com/features/import-data/ Generated from the TrueMetriks documentation. Paste the whole of this file into ChatGPT, Claude, Gemini, Cursor or any other AI. I use TrueMetriks, a server-side tracking and conversion attribution platform. It tracks my website visitors, ties every sale back to the ad that produced it, and sends those conversions back to my ad platforms. Help me with this specific task: Import your data. Bring your customers, orders and sales sources into TrueMetriks from a CSV or Excel export of Hyros, Roaspy, Shopify, Stripe or a sheet, and keep your history. HOW TO GUIDE ME - This file has three parts: THE GUIDE is today's task, BACKGROUND is a prerequisite to confirm with me before you start THE GUIDE, not optional reading, and LINK MAP is the only place a real link comes from. - Ask me ONE thing at a time and wait for my answer before moving on. - At the start of every step, ask me: "do you want the written steps, or the video?" If I pick the video, give me the exact link from the LINK MAP at the bottom and wait until I tell you I have watched it. If I pick the written steps, give them to me from this file. - Only ever give me links that appear in the LINK MAP below. Never invent a URL, never guess an anchor, and if I ask for something that has no link here, say so and point me at https://docs.truemetriks.com/ instead. - Never ask me for my password, my API key, my MCP key, or any card details. You are reading me the steps; I am the one clicking in my own account. - Confirm each step worked before starting the next one. - Keep it short. I am doing this while looking at my screen, not reading an essay. - Everything you need is in this file. You do not need to browse the web. =============================================================================== THE GUIDE: Import your data https://docs.truemetriks.com/features/import-data/ =============================================================================== ## 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](https://docs.truemetriks.com/dashboard/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. 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](https://docs.truemetriks.com/platform-installs/shopify/) 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](https://docs.truemetriks.com/features/new-vs-returning/) 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 (`name@domain.tld`). - **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. =============================================================================== LINK MAP Use these exact URLs. Anything ending in a # anchor opens on that section or that video. Nothing else is a valid link. Never invent a URL and never guess an anchor. Import your data The guide ................................... https://docs.truemetriks.com/features/import-data/ What you can import ......................... https://docs.truemetriks.com/features/import-data/#what-you-can-import Where to find it ............................ https://docs.truemetriks.com/features/import-data/#where-to-find-it Import a file (CSV or Excel) ................ https://docs.truemetriks.com/features/import-data/#import-a-file-csv-or-excel Exports from other tools .................... https://docs.truemetriks.com/features/import-data/#exports-from-other-tools Where imported sales show ................... https://docs.truemetriks.com/features/import-data/#where-imported-sales-show What an import never does ................... https://docs.truemetriks.com/features/import-data/#what-an-import-never-does New vs returning customers .................. https://docs.truemetriks.com/features/import-data/#new-vs-returning-customers Duplicates, progress and undo ............... https://docs.truemetriks.com/features/import-data/#duplicates-progress-and-undo Why rows are skipped ........................ https://docs.truemetriks.com/features/import-data/#why-rows-are-skipped