Unfortunately, I didn't start using Zotero from the beginning.
I initially used Mendeley, then switched to Paperpile, and later moved to Notion. While I really liked Notion, it created a separate page for every entry - pages I never used, which was bothersome even though they could be ignored. Finally, I switched to Zotero.
However, Zotero lacks a built-in duplicate manager, and I often don't care about the item type of duplicates - I just want a single entry. I prefer conference papers or journal articles over preprints, and preprints over websites, as I sometimes save open review websites. Unfortunately, Zotero doesn't have this preference built-in, doesn't always show duplicate items, and won't merge fuzzily different items.
While there's a duplicate extension for Zotero (Zoplicate), it doesn't handle fuzzy matching well. Another major issue is that if you don't let an arXiv page load completely before clicking the Zotero button, it adds the arXiv as a webpage (with the arXiv id in title), creating a mess. Or adding from semantic scholar sometimes adds the \[PDF\]
in title, so now they are no longer considered duplicates.
I've been using some scripts to clean this up. I tried contributing to Zoplicate, but it was more complex than anticipated. At least I can now bulk merge by ignoring item type, though it still doesn't account for fuzzy matching or ignore item type when adding new items.
This is why I don't prefer the second script as much - it processes all items instead of just newly added ones.