Identify a bookmark by its post ID
Titles and wording are poor identifiers. Two posts can begin with the same sentence, and a single post can appear in more than one captured page response. SaveGlint uses the numeric post ID to merge records within an import. It prefers longer captured text and combines returned media where available. If two local records have different text of equal length, the first text is kept; local preview does not show the cloud library’s conflict report.
That merge affects the normalized records and notes. When you choose a JSON file, original.json in the full local export keeps that file’s exact bytes, including any repeated raw records. For pasted JSON, it keeps a UTF-8 copy of the pasted text instead. Seeing duplicates in this source backup is different from seeing duplicate Markdown notes.
A useful small check is the two-post example below. Its Markdown files use stable names: 90001.md and 90002.md. Those names help you compare files without depending on a heading or the language of a post.
Keep each Obsidian import in its own folder
Unzip a new export into a dated folder, for example X Bookmarks/2026-11-08/. Keep its index.md and bookmarks/ together. Before combining that folder with an older import, compare post IDs and review any files you edited.
Copying the same filename into an existing folder can trigger your operating system’s replace or keep-both behavior. Replacing a file can remove your handwritten additions; keeping both can produce duplicate notes. SaveGlint does not examine your vault or merge your edits.
If you routinely annotate imports, keep personal notes in a separate file and link to the imported note, or make a backup before replacing it. Choose the workflow deliberately instead of accepting a large replacement dialog without reviewing it.
Treat a Notion upload as a new import
A Markdown import is not an update connection to the pages you imported last time. Importing the same pack again can create another set of pages. The stable post ID inside a note is useful for review, but it does not turn a Markdown import into automatic Notion synchronization.
Use a dedicated page for each import batch, such as X Bookmarks — November 8. If an upload appears to fail, inspect that page before retrying. Import a smaller set of missing Markdown files when practical, then compare the results.
The download called Notion Markdown pack contains notes and a README. The full export ZIP also contains backups and metadata that are intended for keeping outside the Notion note import. The Notion guide explains which pack to use.
Cloud saves have a different boundary
The optional SaveGlint library isolates records by account and handles repeated post IDs during confirmed saves. Import receipts help retry the same save batch without duplicating it. Conflicting captured text may require review rather than silently replacing a record.
This does not update an Obsidian vault or a Notion workspace. Once you export a cloud snapshot and import it elsewhere, that destination has its own copies. Keep the snapshot and record which destination batch it belongs to.
A repeat-import checklist
- Keep the previous JSON and any handwritten notes backed up.
- Check whether the new file contains the same post IDs, new IDs or longer versions of existing posts.
- Try a small import in a new folder or page.
- Review replacement or duplicate behavior in the destination app.
- Only then combine collections or remove confirmed duplicates.
These steps take a little longer than importing everything twice, but keep recovery possible when you discover a missing annotation or an interrupted batch.