I am trying to embed a form in WordPress using a form that uses a Webhook in Marketo to post the data out to a third-party event system. In a Marketo landing page, the form posts fine and the data gets pushed. When I embed the form in WordPress, the button changes to Please Wait and then fails.
The error is a 400 error "checksum missing." Is there a way to have the embedded form work directly within our site?
Solved! Go to Solution.
Sounds like you’re conflating two different areas.
While it’s interesting that you‘re using Call Webhook to relay data out of Marketo, that webhook cannot under any circumstances interfere with form submission. Webhooks only run in Smart Campaigns, and SCs only run after submission is complete.
So let’s think more carefully here about what’s happening in the browser (i.e. not in the webhook). Are you truly using the form embed code, or are you trying to submit a non-Marketo form to the /save2 endpoint directly? That direct submission will not work. The only way to submit a visible non-Marketo form, from the browser, is to send the data to a hidden Marketo form and use the standard submit() method.
Sounds like you’re conflating two different areas.
While it’s interesting that you‘re using Call Webhook to relay data out of Marketo, that webhook cannot under any circumstances interfere with form submission. Webhooks only run in Smart Campaigns, and SCs only run after submission is complete.
So let’s think more carefully here about what’s happening in the browser (i.e. not in the webhook). Are you truly using the form embed code, or are you trying to submit a non-Marketo form to the /save2 endpoint directly? That direct submission will not work. The only way to submit a visible non-Marketo form, from the browser, is to send the data to a hidden Marketo form and use the standard submit() method.
I am using a true Marketo form with the embed code that was provided. Here is the snippet (X'd out).
<script src="//app-XXX.marketo.com/js/forms2/js/forms2.min.js"></script> <form id="mktoForm_2116"></form> <script>MktoForms2.loadForm("//app-XXX.marketo.com", "915-XXX-149", 2116);</script>
But, your reply made me think there may be a conflict with a plugin and I did some digging. Turned out there was an old Marketo form plugin conflicting with it. Removed and it is working as it should. Thank you for the help.
We started seeing (noticing) this 400 error "checksum missing" yesterday also. Odd that we both have the same issue starting on the same day. Curious what and where the old marketo plugin lived. Was that something inside Marketo admin area or something in your code?
We are getting the exact same error when calling save2. Its been working for a couple of years now without any issue. We haven't touched this code in months. We just noticed the error today.
It seems something must have changed on the Marketo side for everybody to just start getting this error all at the same time.
Actually save2 seems to still be there. It's just been updated to send a checksum. We were using a local copy of the javascript, so we never got the update. Once we incorporated the updated copy, it started working.
Yes, obviously I meant unsanctioned POSTs to /save2 outside of the library, not that the endpoint itself disappeared. That’s what the alerts and technotes have been about. Nevertheless, you shouldn’t expect that path to be permanent. That’s another reason why using an offline copy of the library is very fragile.