How to Seamlessly Use Unbounce LPs with Marketo (and Get Rid of their Broken “Integration”)

NOTE: Marketo began rejecting programmatic submissions to this endpoint on May 7, 2021. Follow this post instead for integrating Unbounce and Marketo. If you’re starting from scratch, start with Step 1. If you’re tweaking an existing Marketo/Unbounce integration using the instructions from this post, skip to Step 4.

Let me start by saying, I really like Unbounce. It’s a great tool for marketers (who aren’t necessarily designers or web developers) to create landing pages that look great. It has its own quirks but, generally speaking, it’s awesome and easy-to-use.

However, the Unbounce Marketo “integration” is, um… not good.  Especially since you have to pay for the Premium Unbounce license before realizing the “integration” is definitely in air quotes.

With this tutorial, you’ll truly integrate Unbounce with Marketo by:
  • triggering actual form submission events in Marketo
  • and associating the Munchkin cookie with the known lead

>> Related: How to Manage GoToWebinar Simulated Live Events in Marketo <<

Problems with the out-of-the-box Unbounce + Marketo “integration”

  1. Unbounce uses the rate-limited Marketo REST API to send lead records over to Marketo. That means it’s super easy for nefarious actors to launch a DoS attack, cripple your Marketo instance, and quickly burn through your API limits. Even under normal conditions, you can exceed this rate limit.  It could be as simple as getting a spike of event registrations after an invite email is sent.  That causes submissions to fail to sync.
  2. There’s no way to submit a form through the REST API. Marketo now offers an endpoint to submit a form via the REST API, but Unbounce still uses the Add to List method. So you’re limited to adding people to static lists in Marketo. That means within Marketo you’ll have to re-create any logic that normally would use a Filled Out Form trigger to use the Added to List trigger instead. This can cause a lot of headaches.
  3. Lastly, filling out an Unbounce form does NOT handle the cookie association with the person record in Marketo.  New leads via Unbounce form submissions will NOT have their web activity associated with their lead record. Yes, even if you have Munchkin deployed on your Unbounce pages. There are a few solutions proposed on the Unbounce community involving the Munchkin associateLead call, but these involve either exposing a public function where a user could feed in email addresses to generate valid associator tokens they could use to spam your Marketo instance (a security no-no), or worse, directly exposing your API secret key in a public function (BIG no-no).

The most obvious workaround: embed a Marketo form directly on an Unbounce page

Now, you can use a Marketo form embedded directly on an Unbounce page, but it makes the design experience clunky:  your form won’t be rendered in the Unbounce editor or previews.  That means your LP creator would have to publish the page before they can see if the form is the right size.

You may also have to set up external conversion tracking on your thank you page in order to track the conversion within Unbounce.

My preferred workaround:  use a server-side post

Fortunately, there’s a better way: one that doesn’t consume Marketo API calls, generates a form submit activity in Marketo, and associates the cookie with the known user. Welcome, my friends, to the server-side post.

To start, deploy Munchkin on your Unbounce page(s).  And ensure the Unbounce form you want to integrate with a Marketo form includes the following case-sensitive hidden fields:

  • munchkinId – This will always have the same default value, and you can grab this from your instance under Admin > Munchkin > Munchkin Account ID.
  • formid – The four-digit number Id of the form you want to submit in Marketo. You can access this from the URL of the form asset in Marketo.
  • retURL – The URL you want to redirect the user to after submitting the form.
  • _mkt_trk – This should be left blank.  It will be populated by the Munchkin script to ensure tracked web visits are associated with the user submitting the form.
  • _mktoReferrer – This should be left blank and will be populated by the script at the end of this post.

Unbounce Hidden Fields Screenshot

You can include additional fields.  Just remember the field Name and ID must exactly match the SOAP API Name of the corresponding Marketo field.

By default, Unbounce auto-generates a field name and ID, so you’ll want to override this setting when adding new fields.

You can access the API names of fields by going to Admin > Field Management > Export Field Names in Marketo. As a reminder, these are case-sensitive.

Once you have your form fields configured, in the Form Confirmation settings in Unbounce, select Post Form Data to URL. Under the URL, enter:

https://[your-pod-here].marketo.com/index.php/leadCapture/save

In order to populate the _mktoReferrer field, include the following script (courtesy of Sanford Whiteman), either directly on your page, or through Script Manager:

<script>
   function populateMktoSpecialFields(e){
     var ubForm = e.target.forms[0],
         mktoSpecials = [{
           name : "_mktoReferrer",
           value : document.location.href
         }];

     mktoSpecials
       .forEach(function(fieldDesc){
         var inputEl = ubForm.querySelector("[name='" + fieldDesc.name + "']");
         inputEl.value = fieldDesc.value;
       });
   }
  document.addEventListener("DOMContentLoaded", populateMktoSpecialFields);
</script>

With this Unbounce Marketo integration, you’ll trigger actual form submission events in Marketo, and associate the Munchkin cookie with the known lead. You’ll also avoid using the Marketo REST API altogether, so there’s no worry about exceeding your API limits.

The Fine Print

  1. Officially, Marketo no longer supports this method, and recommends that all implementations migrate to using the Forms 2.0 library to do a Marketo form submission in the background. Marketo began rejecting submissions using this endpoint starting May 7, 2021.
  2. Unbounce forms don’t support progressive profiling. If that is a need, you’ll be better off embedding a Marketo form.
  3. Unbounce is an external site that won’t support form pre-fill natively. However, there is a solution for this.

 

Sponge.io | Marketing and Revenue Ops

Get a System Audit

Whether you inherited a new instance or just want a second opinion, we'll dive in and benchmark your tech stack.

  • Hidden
  • Hidden
  • Hidden
  • Hidden
  • Hidden

Sponge.io | Marketing and Revenue Ops

Download Resource

Use this form to recieve your free resource in your inbox today!