I think the biggest trick here is that our funnel starts from an email client (user opens and clicks on the link) and then continues in the browser. It could be the same browser where user is logged in/fingerprinted or a brand new one (in-app browser or simply a different laptop).
All CRM providers allow us to upload external data (users data to build segments, for example, like countries, status in the system – customer/in trial/new signup). Same way we can upload user IDs ( I highly recommend to encrypt them to make sure that actual user IDs won’t be exposed).
We can add these encrypted user IDs to all links in our email – that way regardless of the browser we’ll be able to identify the user on our website and in web analytics.