The data exported by arc timeline 4 is missing timelineItemId

After upgrading to Arc Timeline 4, I successfully imported my historical data. However, upon reviewing the exported data, I noticed that files in the note directory are missing the timelineItemId field for all historical entries. This field only appears in data generated natively by Arc Timeline 4. As a result, I am unable to link my historical notes with their corresponding events based on the exported data.

Additionally, the base field in the event JSONs (under the item directory) doesn’t indicate if a note exists or not.
Providing a fix for this would be immensely beneficial for power users who need to perform automated data processing on their exported files. :face_savoring_food:

Hm, that’s curious. Thanks for the heads up! Seems a weird omission. Anyway it’s filed now, and hopefully will be fixed in the upcoming v1.0.1 update.

Though I suspect it’ll require a fresh install and fresh migration from the old app, if the importer is definitely missing that field during the import. That’s annoying. Anyway, I’ll get onto that shortly, and might have some details to report back soonish.

Hi again @curoky! So just getting into this now, I’ve realised this isn’t a bug, it’s intentional. Because the old app / database doesn’t even have the timelineItemId field!

The old app only matched notes to items by date. If the note’s date fell within the item’s date range, it showed up for that item in the timeline view. The new app has this new field, so that notes can be associated either by timelineItemId or by date range or by both. It’s a new feature in the new app.

So the importer is in principle actually doing what it’s supposed to.

The question then is whether to update the importer to infer an item id by date. But I’m thinking that’s problematic, and not really what the importer is meant to be doing. The importer isn’t meant to infer or process, merely import the data as it is. We shouldn’t really scope creep on the importer.

So while it’s not the answer you’re wanting, I think probably the cleanest and most correct solution is to add date matching functionality to your scripting. If the note has nil timelineItemId then try to item match it by date range.