Skip to main content
Level 2
May 26, 2026
Question

Need Help Creating a Verification Gate in Marketo w/o an email

  • May 26, 2026
  • 4 replies
  • 24 views

Hi Community!

I’m hoping to get some guidance on a verification flow we’re trying to build using Marketo Forms and Landing Pages.

The goal is to have members complete a short “verification” form on Page 1 before being allowed to access another form on Page 2. Ideally, we’d like to keep the experience as seamless as possible and avoid adding extra clicks or requiring an email in between.

We have a similar campaign today where a member fills out a form using proxy fields. Then, in an email, we use a Velocity script to compare those proxy fields against the real lead fields in Marketo to validate the member using their submitted information and email address.

What I’m trying to do now is avoid needing that email step. I attempted to mimic the same validation concept using custom HTML/JavaScript on a landing page, but I’m running into issues. The Page 1 form submission is updating the lead record — I can see the data value changes in the activity log... but when the member is redirected to Page 2 without going through an email, the page does not seem to recognize the lead field values needed for the comparison.

I did try to see if it populated any lead fields at all, and it does not. 

 

In short, I’m trying to figure out if there is a Marketo-native way to:

  1. Submit proxy/fake fields on Page 1

  2. Compare those values against the real lead fields

  3. Allow access to the Page 2 form only if the values match

  4. Avoid using an email as the step that runs the Velocity

Has anyone built a similar verification gate using Marketo Forms/Landing Pages?

Or is a webhook/external endpoint the only realistic way to make this work without relying on an email

Any suggestions or recommended approaches would be appreciated.

 

Thank you!

4 replies

BlaneMcMichen-1
Adobe Employee
Adobe Employee
May 26, 2026

Assuming you are getting to the page form an email CTA or some source where they are known.  I think you need to do your field comparison on the first page by reading the value of the comparison field into your script with the field token. If the value matches on submit you direct to the destination page and if they don’t you direct to the ‘sorry’ page.

SanfordWhiteman
Level 10
May 26, 2026

Let’s step back for a moment. To Blane’s point, is the idea that the pageview is associated with an existing record (whether from an existing Munchkin session or from mkt_tok in the current URL) and you want to make sure the human can self-identify as the same record?

 

If so, it’s certainly easily doable in JS: all the necessary data is there. Of course anyone can peek at the JS and see what you’re doing and work around it, but presumably this isn’t meant to be truly secure, just a good-faith effort. 

KaylaGaAuthor
Level 2
May 26, 2026

The intent is essentially to have the user “self-identify” against an existing record before accessing the secondary form to mitigate the need for a team member to reach out to the person filling out the form. But i don’t want to send an email after the initial form fill. (too many clicks) 

The ideal (if it were from a mailer) would be: 
Visit link > fill out “gate” form (that identifies the member) > Be redirected to “true form” if self-identification was positive. else = “Sorry” page. 

 

The blocker im running into is that Custom Header/Footer HTML does not act like Java. Unless I create a webhook (which would need to be hosted externally). 

 

Thoughts? 

SanfordWhiteman
Level 10
May 26, 2026

Not sure what “Custom Header/Footer HTML” means? As with any custom Marketo forms behaviors, you want them just before the closing </body> tag. (As they depend on MktoForms2 — there are ways to trigger when MktoForms2 is created, allowing scripts to be placed anywhere, but they’re relatively complex and not worth getting into here.)  

 

Without looking at your JS we couldn’t troubleshoot further. It’s pretty trivial to output {{lead.tokens}} into an HTML <datalist><option> list (<datalist> is always hidden) and then compare them to what the person entered. You don’t need to actually submit the form to the server, of course, as the all the data is on the page! You can do a sort of simulated submit that’s really just comparing the form proxy fields to the <option> values, then render the real form.