Flow of process as we've configured it:
As I suspected, the Form submission is creating a new Contact Record because that is first time Marketo is getting an Email Address. We'd like this Form submission to Append/Update the same record we created on the API call in Steps #1 & #2 above.
Two solutions I was hoping to possibly work and looking for any guidance here:
Solved! Go to Solution.
You're on the right track with #1 but not quite.
When you create the lead via API, use the mobile_number@email.invalid as the placeholder Email Address value as you indicate.
Include Email Address as a hidden field on the form. Fill it from the query string with the mobile_number@email.invalid.
Include another email field, SelfServiceEmailAddress (or whatever you want to call it) as a visible field on the form. Label it "Email" of course.
When the SelfServiceEmailAddress comes in via form fill, use Change Data Value to change Email Address to {{lead.SelfServiceEmailAddress}}.
You're on the right track with #1 but not quite.
When you create the lead via API, use the mobile_number@email.invalid as the placeholder Email Address value as you indicate.
Include Email Address as a hidden field on the form. Fill it from the query string with the mobile_number@email.invalid.
Include another email field, SelfServiceEmailAddress (or whatever you want to call it) as a visible field on the form. Label it "Email" of course.
When the SelfServiceEmailAddress comes in via form fill, use Change Data Value to change Email Address to {{lead.SelfServiceEmailAddress}}.
Working like a charm! Is it risky that the hidden "real" email field is Required since a user could possibly get back to this page w/o the query string on their URL?
You could fill it with the SelfServiceEmailAddress (using JS) if it's empty, if that's a worry.