Hi @lfilippi, your approach seems very sensible to me and I can’t think of anything else to add. By using the Item Lists node for de-duplication you take care of removing duplicates in the current workflow, by using the additional table column you keep track of previously processed items.
Personally, I’d consider using a SQL database for a job like this as it allows enforcing constraints (for example, making sure a phone number exists only once in a table) and querying data in a very flexible way. On the other hand, setting up a full blown database adds a lot of complexity for a job like this.
This ensures that only those items from my “data” list pass the Merge node that don’t exist on the “block” list (using the id field of each item). So in this case, Charmander with id 4 wouldn’t pass the Merge node: