How to use the fast Pardot DOI process even when people don’t accept your cookies
When you are a user of Salesforce Marketing Cloud Account Engagement (aka Pardot or SF MCAE) and take your double opt-in process seriously, you likely came across this major annoyance: The standard Pardot double opt-in process doesn’t work when people don’t accept cookies and the official workaround is so slow that it really impacts the conversion rate.
Do not despair! I found a workable and tested solution for this issue, which is not even very complicated. But first, let’s explain the problem you face or will face when you are in the process of implementing Salesforce Account Engagement.
One Cookie to rule them all
Quite some functionality in Pardot or MCAE depends on cookies being accepted by people accessing pages or assets. If the Pardot cookie is not accepted those things simply won’t work. Some rather important items on the list are:
- Completion actions on custom redirects (which are the issue here)
- Page actions
- Source campaign association for custom redirects or landing pages
The standard MCAE double opt-in process works like this: You provide a form or form handler, which puts people on a single opt-in list and trigger an auto responder email. This e-mail contains a link, which people have to click. The link actually is a custom redirect which fires some required completion actions (remove from single opt-in list, add to double opt-in list) to finish the double opt-in. The trouble is that people who don’t consent to cookies still get the auto responder email and click the link. You just aren’t able to complete the process in the backend SINCE THE COMPLETION ACTION WILL NOT BE TRIGGERED because those depend on cookie consent! You will never know if they opted in or not.
The workaround which isn’t one
The official solution by Salesforce is to use an Engagement Studio program. It does make you independent of cookies because for emails you send with Engagement Studio you can “listen” for a specific link click and then fire of your actions to complete the double opt-in. This feature works based on the link tracking mechanism built into Pardot (and any other email marketing tool) and doesn’t rely on cookies.
Unfortunately, at the time of writing, there is a substantial time delay between form submission and entry into the Engagement Studio program. I’ve seen send delays up to more than 30 minutes (the documentation above says it can even be up to an hour). This is a real conversion killer because people expect the double opt-in email almost instantly. If they receive it later than expected, they might stop bothering with it – and your company.
How I solved the problem
The solution is rather simple but not very intuitive. Just use a form handler instead of relying on a custom redirect that might fire completion actions or not! A form handler does it’s job reliably and is easy to implement. Let me show you how it work’s. I’ll even tell you why I don’t use a landing page with a form and a thank you message.
- Build your form or form handler as usual
- Integrate an (conditional) auto responder email, which gets sent almost instantly
- Include a link to a form handler, which contains at least the email field. It looks like this in your email builder when you use HML: https://example.yourdomain.com/…/abcdef?email={{Recipient.Email}}
- This form handler receives the click as a form submission and executes all the completion actions you need
- Don’t forget to include a completion action with the form handler to reduce Prospect score by 50 (or whatever you changed the default value to). Otherwise this will inflate your scores. Also, this form handler should not be placed in a folder assigned to a scoring category to avoid impact on your topical scoring. It’s a global process component.
- Create and link pages for success and error in the form handler. Unless you need it for urgent technical reasons do not enable data forwarding for the form handler as this would show the subscriber email address in the success page URL – a rather bad practice. I’ve actually seen it happen (years ago with another technology) that this kind of page gets indexed by Google with the email address of a recipient included. We learned of this effect after the person in question googled their own name and sent our customer a complaint.
This last point is the reason why I don’t implement the process with landing pages and standard forms. If you use a standard landing page and use the thank you or error message configuration, the finally visible page will show the Prospect email address. Having those in a publicly visible URL should always be avoided. I know that ill-minded people can still get to the email address but for that you would need the link in the email itself or have to intercept it. In both cases the data exposure has already very likely occured.
For those who have to care anyway: for a customer we developed a secure solution. Contact me via LinkedIn if you need that level of security.
Some more potential here!
The cool thing about this workaround: you might even use it for fairly advanced process customization. Custom redirects are static. It’s always the same URL. With form handlers you can transfer dynamic values as you wish as long as you have Prospect fields to catch them. Conditional completion actions let you turn them into insights and actions.
Folks, please get creative!
Finally, a bonus tip for people reading to the end of the article: When you recreate the process above, begin with number 6 and work your way upwards. Otherwise you run into dependency issues where you can’t complete the configuration without having the next one done. I used the numbering order to follow the logical flow of the user experience which is easier to understand.