Every Import Decision, End to End
Every contact you import walks the same path. Nothing below is a judgment call Hamtrax makes differently from one run to the next — these four stages are the rule set, in order. Stage ③ is drawn in two halves so each diagram stays readable: ③a picks the kind of destination, ③b resolves the activation folder.
Stages ① and ② have already run by the time Select's We found X contacts summary appears. That is why it can report unreadable and duplicate records before Next opens Review.
The same rules written out in prose are How Imported Contacts Are Filed; the workflow they sit inside is Importing Contacts.
① Parse — is the record readable?
② Duplicates — have I seen this contact already?
Every question below compares the record against the copy of your logbook on this device, so Hamtrax proves that copy is complete before the stage runs. A device that has never finished loading your logbook from the cloud — a brand-new browser or phone, or one whose site data was cleared — would answer "no match" to all of them and let a whole file back in as new contacts. So Hamtrax loads your logbook first, and when it still can't confirm it has all of it the import stops before Review: "This device has not finished loading your logbook, so duplicates cannot be checked yet. Check your connection, then retry." Your parsed file is kept, and Retry picks the run back up at the Select source summary. The same proof is required again at the Finalize step, so losing it mid-import gets the same message rather than a second copy of your log; Retry there returns to Review. A device that has loaded your logbook before never sees this, online or offline.
Every question below is also asked twice: once of the record as your file spells it, and once of the record as Hamtrax will store it. Filing can add identity a file never carried — a contact known only by its country name or DXCC number gets its DX identity when Hamtrax files it under DX Chasing — so without the second question a re-imported row and its saved twin would read as two different contacts.
③a Route — which side of the contact decides?
Hamtrax reads the contact's own activity tags in a fixed priority order — your side first, their side second, plain entity evidence last. This half picks the kind of destination; only the activation route needs the extra question in ③b.
Three rules ride along with the first question. A MY_SIG that names no reference
identifies nothing, so it is dropped before the tree runs and the contact routes
on its THEIR side. And an activity code Hamtrax doesn't have
installed — or can't tell apart — is never re-stamped as POTA; it stays custom
and unchanged. Finally, a side whose SIG pair is blank takes its activity from that program's own dedicated ADIF field, so a summit or WWFF area written that way answers the same questions as a tagged one.
③b Route — which activation folder?
Only contacts that took the Activation route above reach this half. A program month and the need for custom review are already decided; an activation still has to name itself and find out whether one of your existing sessions owns it.
④ Guardrails and your review
Activations, POTA hunting, DX chasing, and Repeaters each have a separate Review stage marked Auto-organized. Custom Folders — Manually organized then shows one row per proposed custom folder, including individual contest years, months of chasing, and activation sessions. Each starts on Create this folder. Choosing I'll folder these myself keeps those contacts for manual organization in Custom Folders — Unrecognized, alongside contacts with no suggestion. It does not exclude them, and the same folder checks apply throughout.
The first three checks all run on this device, and they all judge a folder this device just worked out for itself. Only the fourth judges the folder your logbook actually holds — which is why the summary at the end of an import reports imported and refused separately instead of calling every local save a success. A contact your logbook has not answered for yet still counts as imported, because it asks nothing of you; if that answer turns out to be a refusal, it reaches you under Needs Filing instead.
The third check can also recognize a contact you already have. When it does, that contact joins the duplicates from ② on the finish screen rather than being reported as a failure: a duplicate is counted as a duplicate wherever it is noticed.