Moving a trading journal out of Notion: how it works
Retyping trades by hand isn't an option — a hundred records with ten fields each kills any desire to change tools. Here is how a journal moves across with one link, and what happens to your own column names.
Short version. In Notion you press Share → Publish to web, copy the link and paste it into the journal. No integration keys, no API setup. The journal then guesses which of your columns maps to which field, you fix the mapping if needed, and trades move over with their screenshots.
Why a public link rather than the API
Notion has an official API, and it would be the "proper" route. But it requires creating an integration, obtaining an Internal Integration Secret and granting it access to the database. Explaining that to someone who just wants their trades moved is hopeless.
A public link makes sense to everyone: Share → Publish to web → copy. The journal reads the page the same way any random visitor's browser does. The price we pay is that Notion's internal format is undocumented and can change — but an import like this breaks loudly, meaning it simply stops reading rather than quietly producing wrong data.
How the journal guesses your columns
Everyone names columns differently: "Direction", "Side", "Where", "Trade type", "Name". No dictionary covers that, so the guessing happens in two steps.
Step one — by name
Each journal field has a list of marker words in three languages. For
direction those are position, direction,
side, long, short, plus the Russian and
Ukrainian equivalents.
Step two — by values
If the name says nothing, the journal looks at the contents of the first rows. A column holding "Long" and "Short" is direction, whatever it is called. A column holding "TP", "SL" and "BE" is the result.
That is why the "Name" column, which many people use for the instrument,
is usually recognised correctly: by values like XAU/USD and
US100.
A story of its own — mixed alphabets
Journals constantly contain things like "Сontinuation" with a Cyrillic "С", or "ХAU/USD" with a Cyrillic "Х". The eye can't tell, but to a program it is a different word — and the field arrives empty. The journal folds such mixed words into whichever alphabet dominates them. A word that is entirely Cyrillic or entirely Latin is left alone: there is nothing to confuse it with.
What comes across
| What | How |
|---|---|
| Trades | Every row of the database, by date |
| Fields | Date, instrument, direction, bias, continuation/reversal, entry model, setup, session, result, RR, risk, entry details, notes, mistakes, comment |
| Screenshots | Images from the records, with the timeframe from the caption where there is one |
| Trading system | Your rules can be pulled from Notion separately |
Results are normalised to the journal's own values: "win", "tp", "take", "profit" and their Russian and Ukrainian equivalents all become a take profit; "loss", "sl", "stop" and theirs become a stop. A timeframe caption like "1m − 5m" is kept whole rather than truncated to the first one: screenshots often carry several timeframes, and the first alone would mislead.
What not to expect
The limits, stated plainly so there are no surprises:
- Notion formulas and relations don't come across. A published page doesn't always expose their results — for formula columns and closed relations Notion simply sends no value. If your win rate was a formula, you won't need it anyway: the journal calculates it itself.
- Empty stays empty. If the "Session" column is only partly filled in the source database, it will be only partly filled after the import. That isn't an import error — it's how the source looks.
- Very heavy screenshots are skipped. Images above 12 MB aren't fetched, so the import doesn't stall on a single record.
How many imports you get
The free plan includes 3 imports in the first 30 days. That is enough with room to spare: usually the first is a trial run and the second the real import, after the mapping is corrected.
And if you'd rather not leave Notion at all, the subscription keeps the journal in sync with your database: log a trade in StatsAI or in Telegram, and it appears in your Notion base.
What to do after the import
Check three things; it takes a minute:
- The field mapping — make sure "setup" didn't land in "entry model". If it did, fix it by hand and run the import again.
- The results. Confirm that every TP, SL and BE was recognised, especially if you wrote them as words in your own language.
- The breakdown by setup. This is the whole point of moving: on the imported history the journal immediately calculates profit factor and splits the result by setup, instrument and session — without a single formula.
updated October 27, 2026