getting data into marketo

40
© 2013 Marketo, Inc. Marketo Proprietary and Confidential Getting Data into Marketo - Forms, Custom Objects and Integrations

Upload: murtza-manzur

Post on 15-Jan-2015

960 views

Category:

Data & Analytics


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Data into Marketo -Forms, Custom Objects and Integrations

Page 2: Getting Data into Marketo

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

Page 3: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Records into Marketo

Page 4: Getting Data 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 5: Getting Data into Marketo

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

Page 6: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Getting Data in from Forms

Page 7: Getting Data into Marketo

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 8: Getting Data into Marketo

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

Page 9: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Forms 2.0Marketo forms, wherever!

Page 10: Getting Data into Marketo

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 11: Getting Data into Marketo

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])

Page 12: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

The Marketo Object Model

Page 13: Getting Data into Marketo

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Object Model

Page 14: Getting Data into Marketo

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

Page 15: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo’s SOAP API

Page 16: Getting Data into Marketo

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 17: Getting Data into Marketo

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 18: Getting Data into Marketo

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

Page 19: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Marketo Munchkin API

Page 20: Getting Data into Marketo

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 21: Getting Data into Marketo

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 22: Getting Data into Marketo

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 23: Getting Data into Marketo

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 24: Getting Data into Marketo

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 25: Getting Data into Marketo

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 26: Getting Data into Marketo

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

Page 27: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Custom Objects

Page 28: Getting Data into Marketo

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 29: Getting Data into Marketo

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 30: Getting Data into Marketo

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

Page 31: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting

Page 32: Getting Data into Marketo

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 33: Getting Data into Marketo

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 34: Getting Data into Marketo

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Email Scripting via Velocity

Page 35: Getting Data into Marketo

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”

Page 36: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Webhooks

Page 37: Getting Data into Marketo

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 38: Getting Data into Marketo

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 39: Getting Data into Marketo

Page

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

Webhooks

Page 40: Getting Data into Marketo

© 2013 Marketo, Inc. Marketo Proprietary and Confidential

More InformationPlease visit developers.marketo.com