A Deep Dive Into the Marketo-Uberflip Integration

August 5, 2016 Uberflip Customer Success

This article provides a deep dive into the Uberflip-Marketo integration. It's a technical guide that covers Integration Setup, Rest API Calls and Timing, User Experience and Form CTAs, How Secure the Integration is and Limitations.

Marketo Integration Setup and General Info

Uberflip's Marketo integration is built on Marketo’s REST API. Like most of our marketing automation platform (MAP) integrations, once an account has been integrated with Marketo, users can create Form Calls-To-Action (CTAs) in their Hub.

Form CTAs are like Marketo Forms, and are used to pass lead info to Marketo when submitted by end users.

Important Information about the Uberflip-Marketo Integration:

  • Requires the creation of a new Role in Marketo that is designated 'API ONLY'.
  • This API ONLY Role must be assigned one permission set only: Read/Write Lead permission.
  • Requires a new launchpoint > custom service created in Marketo with the newly created API ONLY User.
  • Four values are required to integrate a Hub with Marketo: the custom Launchpoint Service Client ID, Client Secret, REST API Endpoint, and REST API Identity.
  • If you do not have 'Block Management' activated on your Hub, we (Uberflip Admins) can view your account but we cannot tell you or share what the values are to integrate your account. That information can be found in Marketo.

For more information on how to integrate your Hub with Marketo, click here.

What Happens after Integration

Marketo Munchkin Tracking

Once the integration is completed, a tracking code tracking code is placed on every Hub Page to set a Marketo cookie on user visits. This code tracks web page visits and link clicks for the user and is called a 'Marketo Munchkin'.  

Here is what that script looks like: (123-ABC-456 is a sample Marketo ID):

<script type="text/javascript"> 
window.loadMarketoTracking = function(){ Munchkin = undefined; (function(d,s,i,r) { var el = d.getElementById(i); if (el){return;} var n=d.createElement(s),e=d.getElementsByTagName(s)[0]; n.id=i;n.src='//munchkin.marketo.net/munchkin.js'; n.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { Munchkin.init("123-abc-456", {"cookieLifeDays":365}); } }; n.onload = function() { Munchkin.init("123-abc-456",{"cookieLifeDays":365}); }; e.parentNode.insertBefore(n, e); })(document,"script","munchkin",300000); } loadMarketoTracking(); </script>

Munchkin Tracking for Users between Hub and Other Company Sites

The Munchkin tracking cookie is set at the domain level (*.company.com) when a Marketo form or Hub Form CTA is submitted.   

As long as both external site and Hub are from the same domain (sub-domains can be different), and the end user has submitted at least one form (either a native Marketo Form or a Hub Form CTA), the Munchkin will track web activity and link clicks, and pre-populate form fields with values the user submitted.

Optional Flipbook Page View Tracking with Munchkin

Flipbooks are separate from Hubs. They can be displayed outside of your Hub, using a standalone link or displayed in an iframe inside a Hub page.  

Because Flipbook pages are served through Javascript, Flipbook page views will be sent to Marketo through the Munchkin integration as 'Web Page Visit per page viewed' and 'Query Parameter'. This can be used to drive automation on not just which Flipbooks were viewed, but what pages were viewed.

Fields List - Required and Optional Fields

Aside from fields that are chosen to display on Form CTAs, some fields are a part of the Uberflip/Marketo Integration. In order for data to pass for these fields, a Form CTA must be submitted.  Fields will not update for leads if they filled out a Marketo form that is not in the Hub. 

These fields include Lead Source, Source Most Recent, Conversion Item Id and Conversion Item Title

Lead Source

The 'Lead Source' ('leadSource') is required, and a standard Marketo field. By default, when a Form CTA is submitted, the Lead Source will look something like: ‘UF-CTA-12345-CTAName’.

'12345' is unique CTA ID and CTAName is the CTA name that was entered when the form was created (i.e. "eBook CTA").

Uberflip will only populate the Lead Source value if the field is already blank.  If a value is already present for leadSource, by default Uberflip will not overwrite this value.

Source Most Recent

Source - Most Recent (source_most_recent) is also required.

  • This is a field that must be created in Marketo, as a 'STRING' type.
  • Similar to 'Lead Source', but it's overwritten each time a Form CTA is submitted by the same user.
  • Will be in the same format as 'Lead Source' (UF-CTA-12345-CtaName).

Conversion Item Id (uf_conversion_item_id) - Optional but recommended

Conversion Item ID is an Integer Field that will be populated with the Item ID that the end user submitted the Form CTA on.  

This information can be used to drive campaigns and automation based on the content that was converted on. If you choose to use this field, you must also create the uf_conversion_item_title field in Marketo (this one is next).

Conversion Item Title (uf_conversion_item_title) - Optional but recommended

The Conversion Item Title is a Text Field that will be populated with the specific Item Title that the end user submitted the Form CTA on.  

This can also be used to drive campaigns and automation based on the content that was converted on. If you choose to use this field, you must also create uf_conversion_item_id in Marketo. 

Last Visited Item Id (uf_last_visited_item_id) - Optional but recommended

This one is an Integer Field.  Once the end user has submitted Form CTA, the ID will update for each Item that user visited until they leave your Hub.

Counter Fields - Optional 

Content Counters are optional custom fields (integer) you can create in Marketo which can add a +1 whenever a particular type of content page is viewed on the Hub.  Types are:
    •    Tweets Viewed
    •    Articles Viewed (blog)
    •    Posts Viewed (Facebook/Instagram posts viewed)
    •    Videos Viewed
    •    Flipbooks Viewed
    •    Presentations Viewed (Slideshare)

Integration Item Parameters - Optional (Enterprise accounts only)

Each Item in a Hub can have Marketo Fields and static values assigned. These fields and values can be passed to Marketo on any submission of a Form CTA that is tied to that Item (contact us for more information about this feature). 

Rest API Calls and Timing

Once connected to your Marketo account, Uberflip will use the Marketo API to make calls to your Marketo account. There's a limit to how many API calls can be made in Marketo, so here's an overview of the types of calls Uberflip makes and when they happen.

When creating and / or editing Form CTAs, Uberflip makes the following API calls:

Choosing a Marketo List for Leads (Optional)

  • GET /oauth/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}
  • authorization token is passed in the API call request while the CTA is being edited / created
  • GET /v1/lists.json?name=XXX - validate that list XXX list exists in Marketo

Choosing Marketo Fields

These will be the fields you want to have displayed in your CTA. They can be visible/hidden, and text, dropdown or checkbox. If no Marketo list was chosen, Uberflip will send a GET request for the token and authorization.

  • GET /v1/leads/describe.json - Retrieve a list of all fields available for Leads and their REST API Mappings

Lead Tracking with Munchkin

This connects the Munchkin tracking with the Marketo Lead record when a user lands on a Hub page. Users are tracked anonymously if no Munchkin code is present or no Marketo Lead record exists that matches the cookie.

  • GET /v1/leads.json?filterType=COOKIE&filterValues={marketo_cookie}
  • Cached for 1 hour per user, requested again after 1 hour

Form CTA Submission

These calls are made when an end user fills out and submits a Form CTA.

  • POST /v1/leads.json -- updates the Marketo lead record with the Form CTA values, both displayed and hidden. The uf_conversion_item_id, uf_conversion_item_title, any counter fields (if being used), and any Integration Item Parameters (if present) are also updated.
  • POST /v1/lists/{list_id}/leads.json -- adds the lead to the list if the CTA is tied directly to a Marketo List.

Viewing Pieces of Content

This call is made when a known end user (meaning they've previously submitted a CTA) views an Item. 

  • POST /v1/leads.json - updates the lead, uf_last_visited_item_id and any counter fields (if applicable).

User Experience and Form CTAs

How an end user experiences Form CTAs in a Hub, and the data that is passed to Marketo for that user (if they fill out a CTA) will depend on:

  • Has the user submitted a Form CTA previously?
  • Is progressive profiling being used for the CTA (an Uberflip feature)?
  • Is the CTA set to ‘never hide (an Uberflip feature)?

Anonymous Users

Users who have never submitted a Form CTA or a Marketo Form in their browser are "anonymous users". Every placed Form CTA will display to anonymous users and all fields will be blank.

The Munchkin cookie is still placed on their browser, and their web activity and link clicks are tracked, but they will need to complete a Form CTA to creat a new Markeo Lead record, or tie their activity to an existing Marketo Lead.

Users Who Previously Submitted a Native Marketo Form 

A Hub visitor who has submitted a Marketo Form on a website that has the same domain as the Hub, will have their activity and link clicks tracked through Munchkin tracking, even if they do not fill out a Form CTA.

They will see Form CTAs on Hub pages, and any fields on the Form CTA that are already known by Marketo will be be auto-filled with their information.

Users Who Previously Submitted a Form CTA and all fields

Any user who has filled out and submitted a Form CTA, will by default not be presented that particular CTA again (unless ‘Never Hide this CTA’ feature is enabled).   

However if they view another page that has a different Form CTA placed, that CTA will display to them. Any values that they've previously submitted that are applicable to the new CTA will be pre-populated.  

Progressive Profiling

Progressive Profiling can be turned on for any Form CTA. It defines how many fields are displayed to a user when they view a Form CTA.  If you have a Form CTA with 9 fields, you can use progressive profiling to show users only a few fields at a time so that they don't get overwhelmed.

Let's say a Form CTA has progressive profiling enabled to show three fields at a time, with eight fields in the CTA. The fields are in the following order:  Email Address, First Name, Last Name, Phone Number, Company, Industry, Country, and State.

Here's how one user who eventually fills out all of the fields will experience the CTA:

  • The first page the user views with the Form CTA will show: Email Address, First Name and Last Name
  • The user fills out the CTA and the second time they see it, they're asked to submit Phone Number, Company and Industry
  • The next time they land on a page with the same CTA, they're asked for Country and State.  

By default, once the user has been fully profiled for all fields available for that Form CTA, that CTA will not be displayed again to the end user

Things you should know about how Progressive Profiling works:  

  • It only works if and when CTAs are submitted.  
  • Progressive profiling will not for CTAs that don't have the feature activated. Nor will it work for Native Marketo Forms with Progressive Profiling enabled.  
  • There is no way to force specific fields to  ‘Always Display’ (although this can be accomplished through Custom Code>Javscript).
  • If progressive profiling and ‘Never Hide this CTA' are both enabled, you can choose to display the primary fields again (Email, FIrst Name, Last Name, Company)  or display the ‘Success State’ of the CTA (usually a message and optional hyperlink).


Data Transfer Between Uberflip and Marketo

Lead information is stored on the end user’s local device/browser and pushed to Marketo after they've submitted a CTA.

 All data between Uberflip and Marketo is encrypted using HTTPS protocol and sent securely.

Uberflip Account Access - Team Members

Access to Uberflip Accounts can be controlled via the 'Team' section in your Hub.  Team Leads can control what each user has access to in the Hub.  

The app tracks each member’s activity. To view what team members have done inside a Hub, accessible via the Team/Activity section.

Enterprise Security Features

Enterprise Accounts have access to these additional security controls:

  • Password Policy
  • Minimum password length, minimum password age, maximum password age, Enforce password history, password reset token time limit before expiry, password complexity enforcement
  • Session Policy
  • Idle Session Timeout, Absolute Session Timeout
  • IP restriction
  • Limit account login access to a list of restricted IP addresses
  • User Locking Policy
  • Restrict number of login attempts, User lockout duration in minutes, Period until reset of failed login attempts in Minutes, Period of inactivity until lockout in days

Contact us if you'd like to talk to someone about your account options.


Uberflip Hubs and Form CTAs cannot integrate directly with Workspace Lists or Lead Partitions in Marketo.  

As of right now, lead information can only be pushed to default partitions and static lists within the main lead database.

Previous Article
Field Management with Marketo
Field Management with Marketo

Adding, removing, and re-syncing form fields on a Marketo Form CTA is very straightforward.

Next Article
Setting up Custom Fields in Marketo for your Hub
Setting up Custom Fields in Marketo for your Hub

Once you've integrated your Hub with Marketo, you have the option to set up your integration so you can get...