Double Opt-in
Marketing Cloud

Part-1 Custom approach to implementing Double Opt-in in the Marketing Cloud

Double opt-in

Double Opt-In in Marketing Cloud means that the customer/subscriber confirms their email address by clicking on the link in the email sent when they subscribe to avoid bounces, and spam complaints thus increasing the IP reputation.

It is a good feature to implement for clients struggling with sender reputation issues or deliverability concerns. One of the main parameters the client should target is to “have a cleaner list” and that is directly proportional to better sender scores and inbox placement.

While sending emails, you don’t want an incorrect email address to interfere with delivery or your sender score. If the subscriber or client provided incorrect email addresses, that information is kept in the data extension, which you consistently use to send emails. This can result in bounced emails, which will harm your IP reputation. A secret sauce to achieve better deliverability is to implement “Double Opt-in” which is a way to ensure that you are using user verified email address for all email sends.

With the standard approach of MC double opt-in, you can only use double opt-in with Publication Lists/subscriber List. Also, for the Standard Preference Center of Marketing cloud only standard options such as publication Lists/Subscriber List are available. So, it is recommended to build a Custom Preference Center.

Use Case:

I was in the middle of an SFMC implementation for a very large retail client sending up to 500k emails a day, deliverability and inbox placement were of utmost importance as they were direct revenue drivers. The client had a great signup volume on the website but was struggling with bounces on the first email sent to customers as they ended up capturing the wrong email address added by users to avoid signup, which impacted the overall deliverability for the client. The client was a bit shy of introducing another integration that checks the email addresses on the form as this just didn’t involve extra cost but was not super reliable. So, we agreed upon implementing a double opt-in solution with some twist and customization that I will walk through during this blog, brace yourself for a lengthy blog.😊

Solution Approach:

We provided them the solution to have double opt-in from the subscribers so that their email address is verified from the email sent to the valid email that they use. This also ensures that the subscriber is interested in receiving emails from you and since it’s a user-driven confirmation chances of the email address being wrong is Zero.

Approach 1:

Implement double opt-in with Email Address being subscriber key (assuming SFMC is not integrated with Salesforce CRM)

For Double Opt-in in Marketing Cloud, create a Landing Page or smart capture form and send a verification email before storing the data to the data extension.


  1. Create a Data Extension with columns viz: Name, EmailAddress, Verified, Phone, Date (Current Date), etc.
  2. You can either create a smart capture landing page or use the URL hosted by the client.
  3. When the customer fills out the form the data will be stored in the data extension and the ‘Verified’ column will be blank which means it is not a verified customer.
  4. Create the Journey (using the cloud Page as an entry event and if it is client client-hosted URL then use Data extension as an entry source). When someone submits through the form send them an email for verification.
  5. In the verification email add a button to verify and then store the data in the DE
    AmpScript for Email template:

    Set @email=[EmailAddress] 
    Set @pageurl=CloudPageURL(‘Id’, “email”, @email) 
    Please verify your email.
    <a href="%%=RedirectTo(@pageurl)=%%" target="_blank" rel="noopener">Verify</a>

    In the same DE, the consent will be marked as Yes.

  6. In the Cloudpage use the RequestParameter to fetch the Email address from the email
    AmpScript on the CloudPage:

    Set @email = RequestParameter(‘email’) 
    Set @verified=” Yes” 
    /*Update the data extension*/ 
    UpdateData(“DEname”,1, “Email address”, @email, “Verified”, @ verified) 
    Your email has been verified!

    Note: Use the Cloud Page in the Journey Builder entry source.

Problem with this Approach:

  • This solution is feasible if you are not using CRM or if EmailAddress is the subscriber key.
    With this approach, as the customer sign-ups the email is sent and in Marketing Cloud Email address is recorded as the subscriber Key.

    FirstName LastName EmailAddress SubscriberKey
    Test1 Test

    If in the future the Salesforce CRM is used and the same subscriber signs up using the same email address then a duplicate record will be created with the contact ID as Subscriber Key as CRM always uses Contact ID as Subscriber Key.

    FirstName LastName EmailAddress SubscriberKey
    Test1 Test
    Test1 Test 003xxxxxxxxxxxxxxx
  • If using Salesforce CRM and contact ID is the subscriber key then it will create an issue.

Continue reading with Solution Approach 2, Use Double opt-in with Salesforce CRM being a system of record and integrated with SFMC.

Leave a Reply