We are having contactIDs with their an email address, but for specific engagement plans we have for the same user a different email address.

How can we define which mail to use when sending out. Today the fallback is always up to the default mail address in the xdb, but if we start building a preference center with multiple selections/categories and email addresses this is not working.

Also we need to capture all the optins and optouts for the different selections/Categories linked to their email address. the only solution we see now is to create a new ContactID in the xdb but than we loose the full power of the 1 view on a contact.

  • Are you saying you want to allow users to subscribe to each list with a different email? Aug 28 '17 at 13:46
  • Dear Vincent, that is exactly the case, we have 1 contact with multiple email addresses for different commercial and transactional outputs/purposes. We can add multiple email addresses to 1 contact, but it seems thatthe exm is taking the default email address. So my question is how can we select the specific email address we want to use when sending out? Aug 31 '17 at 8:05
  • That's a nice requirement... I'm pretty sure ExM always takes the preferred email of the contact... I'll try to find time to dig a bit more as I don't want to recommend you having different contacts Aug 31 '17 at 8:22

EXM gets the email address of the contact in the getXdbContactRecipient pipeline, specifically in the AssignEmailProperties pipeline processor of that pipeline.

You have two options:

  1. Change the EmailAddressesFacetName in /App_Config/Include/EmailExperience/Sitecore.EmailExperience.Core.config to use a different facet to load the email address from OR
  2. Replace the AssignEmailProperties pipeline processor with your own

In your case, it sounds like the second option is the way to go.


If I am understanding your question correctly, you have added the ability for users to provide more than one email address. The user may be the same, but they may prefer emails for some things to go to Email Address A and other things to go to Email Address B. If this is the case, then you need to find a different way to identify contacts, other than by their email addresses.

Look at it this way: if you know that it's the same user then you must inherently have a way to identify that user (e.g. User ID/username, account number, phone number, etc.) that is not using their email address. Use one of those things that are enforced to be unique for each user. This could actually be a "primary" email address, if email addresses are used as usernames and additional emails can be added to the account, as well. If this is the case, then once the user logs in you should know their "primary" email address and you can use this value as the Contact ID.

By identifying contacts by a value that is unique for each user, you can ensure that, regardless of what email address you plan to send an email, you only have one xDB contact per user.

  • Thanks a lot, this is exactly the case, but the problem we have that in EXM it is using the default emailaddress, how can make a selection and be sure to deliver the message to Email Address B for a specific campaign. We installed EXM to have a global overview of the marketing pressure and communication. Aug 29 '17 at 8:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.