Getting Data into Marketo

Preview:

DESCRIPTION

 

Citation preview

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Data into Marketo -Forms, Custom Objects and Integrations

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Objectives

• Objectives• Understand options around getting data into Marketo• Review the Marketo Object Model• Review how the SOAP API interacts with the Marketo Data Model• Discuss best practices around integrating with Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Records into Marketo

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Records into Marketo

• Integration with your CRM• Can create duplicates

• List Import via CSV files• De-dupe logic in place

• Upon Marketo form submission• De-dupe logic in place

• Manually via Marketo Interface• Can create duplicates

• SOAP API• Can either de-dupe (using email as a unique key) or create duplicates (use your

own unique key)

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Best Practices Around List Import

• List Import or use Marketo forms to create/update leads• Can create duplicates

• List Import• Trusted/Untrusted Source• Mode: Normal, Optimize for new leads, Skip new leads and updates

• Don’t upload lists with no emailaddresses

• Select key users to perform List uploads

• Consider automated list loadthrough the API

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Data in from Forms

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Data In from Forms

‘Fills Out Form’ Event Pre-fill? Tech Efforts

Marketo Form on Marketo Landing Page X X None

Marketo Form on non-Marketo landing page X Minimal

Non-Marketo form submitted via SOAP API High

Non-Marketo form submitted via Munchkin API Medium

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Data in from Non-Marketo Forms

• Options• Marketo form on a non-Marketo page via Forms 2.0

o Get the code from the Form◉ Marketing Activities → Form → Form Actions → Embed Code

• SOAP API• Munchkin API

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Forms 2.0Marketo forms, wherever!

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Forms 2.0

• Empowers Marketers to create beautiful, stable, and flexible web forms without programming knowledge• Marketo Landing Page• Embedded on non-Marketo landing page

• Examples• Hide a form after successful submission• Direct visitor to a URL determined by JS after successful submission• Set form field values• Read form field values on form submit• Submit a form based on an event that is not part of the form• Prevent a form from being submitted• Add additional hidden fields to form• Show the form in a lightbox style dialog• Show custom error message on form submit based on custom business logic

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Forms 2.0 API

• MktoForms2 (top level) and Form Objects• MktoForms2 Methods

• .loadForm(baseUrl, munchkinId, formId [,callback])• .lightbox(form [,opts])• .newForm(formData [,callback])• .getForm(formId)• .allForms()• .getPageFields()

• Form Methods• .render([formElem])• .getId()• .getFormElem()• .validate()• .onValidate(callback)• .submit()• .onSubmit(callback)

• http://developers.marketo.com/documentation/websites/forms-2-0/

• .onSuccess(callback)• .submitable([canSubmit])• .allFieldsFilled()• .setValues(vals)• .getValues()• .addHiddenFields(values)• .vals([values])• .showErrorMessage(msg [,elem])

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

The Marketo Object Model

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Object Model

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Lead Operations Matrix

Create Read Update Delete Merge

Marketo UI X* X X X X

Form Fill Out X X

List Import+ X X

SOAP API X* X X X

REST API^ X* X X

Munchkin API X X

• * = can create duplicates• ^ = to be released soon

• List Imports• importToList SOAP API call = API version of List Import functionality exposed in Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo’s SOAP API

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo’s SOAP API – Tradeoffs

• Benefits• Allows for non-native integrations• Secure backend communication

• Considerations:• Not all fields and functionality exposed in Marketo UI are available in SOAP API• Developer resources needed

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo’s SOAP API

• Access to leads, actions, custom objects, and other entities

• Access via Admin → SOAP API• Endpoint, user id, encryption key

• Latest Version: 2_3

• Daily API Quota: 10,000 API calls

• WSDL: https://<MUNCHKIN_ID>.mktoapi.com/soap/mktows/2_3?WSDL

• HMAC-SHA1 security

• http://developers.marketo.com/documentation/soap/

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo’s SOAP API Operations

• Authentication Header• mktowsUserId (string), requestSignature (string), requestTimestamp (datetime)

• Lead Operations• getLead, getMultipleLeads, getLeadActivity, getLeadChanges• syncLead, syncMultipleLeads, mergeLeads

• Campaigns• getCampaignsForSource, requestCampaign, scheduleCampaign

• Lists• importToList, getImportToListStatus, listOperation

• Object Operations such as Activity or Opportunity• getMObjects, syncMObjects, deleteMObjects, listMObjects, describeMObjects

• Marketo Custom Object Operations• getCustomObjects, syncCustomObjects, deleteCustomObjects

• Other operations• getChannels, getTags

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Munchkin API

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo’s Munchkin JS API – Tradeoffs

• Benefits• Enables tracking of web page visits and click links• Included by default on all Marketo landing pages• Low development efforts

• Considerations:• For form submits, least preferred option since it runs client-side

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Munchkin API• Allows Marketo to track web activities

• Set Marketo cookie to track web visits and clicks• Anonymous and/or known leads

• Automatically included on Marketo Landing Pages

• Other use cases:• Create a Marketo lead when a user fills out a non-Marketo form• Custom tracking (ex: watching a video, listening to an audio clip, downloading a

whitepaper)• Pre-fill Marketo forms

• Enable Munchkin API Use• Admin → Integration → Munchkin → API Configuration → Edit Link → Click

checkbox for Enable Munchkin API

• http://developers.marketo.com/documentation/websites/lead-tracking-munchkin-js/

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Munchkin Tracker

• Munchkin Tracking Code Functionality • Check if a cookie has already been placed on the visitor’s computer by your

website• If there is no cookie, add one and create an

anonymous lead• Send an event to Marketo noting a web page

visit or click link

• Configuration Options• Synchronous, Asynchronous, Asynchronous

jQuery loading• Support “Do Not Track” Browser request• Cookie anonymous users• Set cookie expiration

• Sample Cookie Value• id:561-HYG-937&token:_mch-marketo.com-1374552656411-90718

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Calling Munchkin API Functions

• General form of a Munchkin call:

<script type="text/javascript">document.write(unescape("%3Cscript src='//munchkin.marketo.net/munchkin.js' type='text/javascript'%3E%3C/script%3E"));</script><script>Munchkin.init('<MUNCHKIN_ID>');</script> <script type="text/javascript”>

mktoMunchkinFunction ('<FUNCTION>',{key1:'value1', key2: 'value2'},'hash'

);</script>

• Must call Munchkin.init() before making any mktoMunchkinFunction() calls

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Munchkin API Functions

• visitWebPage({url, params}) – records a ‘Visit Web Page’ event• First call to Munchkin.init() always creates a Visit Web Page event for the

current page• url – can point to any page, even one that doesn’t exist• params – to add URL parameters

• clickLink({href}) – records a ‘Click Link’ event • href – can be any value, even a page that doesn’t exist

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Munchkin API Functions

• associateLead({key1, key2}, hash) – create a new lead in Marketo or associate the user with an existing lead• De-dupes on email address• Array of field name and value pairs• Security hash encoded with SHA1

o Concatenate your API Private Key with the lead’s email address then encode with SHA1 (non-HMAC version)

• Use call on a page following a form submit for a login, information request or registration

• Do not use with SFDC Web2Lead forms. Doing so will create duplicates.

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Munchkin API: Triggering Campaigns

• Triggers• Lead is Created

o Source Type is Munchkin API• Visits Web Page• Clicks Link on Webpage

• Filters• Lead was Created

o Source Type is Munchkin API• Visited Web Page• Not Visited Web Page• Clicked Link on Web Page• Not Clicked Link on Web Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Custom Objects

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Custom Objects – Tradeoffs

• Benefits• Enables 1:many relationship between a lead and the custom object records

• Considerations:• Cannot put custom object fields on forms• Cannot see custom object records in the Marketo Interface• Implementation overhead

• Also note, that you cannot see custom object data from native CRM syncs via Marketo’s SOAP API

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Custom Objects

• Allows for the creation of 1:many relationship between Marketo leads and custom object records

• With a custom object, you can:• Create, update, delete via the SOAP API• Use Smart List trigger when new records are added• Use Smart List to filter on Custom Object data• Use custom object data in Marketo Email Scripting

• SOAP API calls:• syncCustomObjects, getCustomObjects, deleteCustomObjects

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Custom Objects

• When to use:• Have lead data that can be categorized in a 1:many relationship• Segmentation• Campaign with a flow triggered by a new custom object record being created

• When not to use:• Marketo is synced to SFDC• Need to access the custom object on a landing page• Custom objects are not tied to a lead• Need to trigger off when a Custom Object Lead Record has been deleted or

updated• Clear and repopulate Custom Object data regularly• View/edit the data directly from within the Marketo interface

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting – Tradeoffs

• Benefits• Ability to send emails using Velocity templates• Ability to reference custom objects and opportunity data in emails

• Considerations:• Can only use Marketo custom objects or custom objects related to Lead or

Contact• Not compatible with Dynamic Content (including Snippet)• Embedding a Script Token as a URL parameter will not be processed• Implementation overhead

• If you include 1+ email scripts in an email, they will execute top to bottom

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting via Velocity

• Email Scripting• Allows one to execute Velocity scripts within Marketo emails

• What can be referenced:• Lead attributes• Opportunities• Custom objects• Object that triggered the email

• Marketo → Marketing Activites → <PROGRAM> → My Tokens• Type = Email Script

• http://developers.marketo.com/documentation/email-scripting/

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting via Velocity

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting

• Include the script within a Marketo email by referencing the Program token• Allows one to execute Velocity scripts within Marketo emails

• Test via “Send Sample Email”

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Webhooks

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Webhooks Trade Offs

• Benefits• Ability to send and receive data from and external web service• Quick to implement

• Considerations• Limited error handling• Cannot be used in batch campaigns• Cannot subscribe to third party webhooks

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Webhooks

• Allows one to make a call from within Marketo to an external service

• Through webhooks, you can:• Push data from one platform to another• Retrieve data from another platform

• POST and GET supported

• Accepts XML or JSON responses

• Sample use cases: send a SMS text message via Twilio, de-dupe via RingLead in SFDC

• http://developers.marketo.com/documentation/webhooks/

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Webhooks

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

More InformationPlease visit developers.marketo.com

Recommended