Grouping Visitors

I’m unsure if this is possible to do, but I’m trying to track the behavior of my users to serve them content which they are interested in.

Example: User opens email containing image tracking code with a custom dimension. User then clicks a link, which brings them to our site. The results should display a single visitor that has a custom dimension defined and all the actions they performed.

My issue is that I’m seeing two visitors being created with the same IP address. The first visitor is the email being opened containing the custom dimension defined, but no actions. The second visitor doesn’t have a custom dimension, but has actions. Is there a way to group these visitors into one? I assume this has to deal with digital fingerprinting since the email is opened in a mail client and the site visitor is using a browser.