external_id is now unique to prevent duplicates