MARKETO INTEGRATION GUIDE VERSION 1.2 JANUARY 2016
DOCUMENT PURPOSE This purpose of this document is to guide clients through the process of integrating Marketo and the WorkCast Platform. DOCUMENT CONTROL Date Requirement Editor Version Approver 19 th October 2015 Chris Stout 0.1 3 rd November 2015 Addition of Eloqua Chris Stout 0.2 API Service functionality. 10 th November 2015 Changes following Chris Stout 1.0 internal review. 7 th December 2015 Change Webhook Chris Stout 1.1 to use Tokens. Add section on Webinar No Show. 5 th January 2016 Added Step Numbering Chris Stout 1.2 ADDITIONAL DOCUMENT REFERENCES Below is a list of addition required documents and shortcuts to those documents. Title Version Date Author Filename WorkCast Integration 1.0.9 20 th May WorkCast_Data_Capture_Integration_ Data Capture Forms 2015 v109.docx WorkCast Marketo Integration Document 2
CONTENTS Document purpose... 2 Document control... 2 Additional document references... 2 Marketo... 4 Registration Import... 4 Webhook... 4 Form... 7 Landing Page... 9 Campaign... 10 WorkCast Marketo API Integration Service... 13 Marketo Setup... 13 WorkCast Service Operation... 22 Retry Processing... 23 Field Mappings... 23 WorkCast Marketo Integration Document 3
MARKETO The Marketo Marketing Automation Software Platform can be integrated with the WorkCast Platform using the following process. REGISTRATION IMPORT Marketo Campaigns can be used to push registration data into the WorkCast Platform. This is done by means of a Webhook which does an HTML POST to the WorkCast Data Usher interface. The following sections describe how the Webhook and the Campaign should be configured in order to push the data to WorkCast. WEBHOOK A new Webhook can be created in the Marketo Interface using the Webhook option in the Admin - > Integration Menu. WorkCast Marketo Integration Document 4
The new Webhook should be configured as follows:- URL: http://www.workcast.com/datausher.aspx?meid={{my.meid}}&pak={{my.pak}} Request Type: POST Template: wrk_standard_firstname_seq01_textbox={{lead.first Name:default=Work}}&wrk_standard_lastname_seq02_textb ox={{lead.lastname:default=cast}}&wrk_standard_email_s eq03_textbox={{lead.emailaddress:default=work.cast@work cast.com}}&wrk_redirectsuccess=http://www.workcast.com /registerthanks.aspx&wrk_redirectfailure=http://www.workc ast.com /registerthanks.aspx&wrk_datatype=dcdcfr Request Token Form/Url Encoding: Response Type: XML WorkCast Marketo Integration Document 5
In the above example, the default values for First and Last Name can be changed to your liking. The meid field in the URL should be populated with the WorkCast Managed Event Id for the Event Session in question. Similarly the pak field in the URL should be populated with the pak code of the WorkCast Event Session in question. Self Service clients should contact support@workcast.com to obtain a Managed Event ID (meid) and Pak code for each event session configured. We have used Program / Event level Tokens so that the same Webhook can be used for multiple Event Sessions. WorkCast Marketo Integration Document 6
FORM 1. Create a new Form in Marketo Design Studio. 2. New Form WorkCast Marketo Integration Document 7
Default settings which include the following fields are sufficient to push the data to the Data Usher:- First Name Last Name Email Address You can of course add any additional fields you would like to the form. WorkCast Marketo Integration Document 8
LANDING PAGE 1. Add a new Landing Page from the same Design Studio menu as above using any template you wish. 2. Edit the new Landing Page and add the Form you created in the previous step. 3. Approve and Close the Landing Page via the Landing Page Actions menu in the top left. WorkCast Marketo Integration Document 9
CAMPAIGN You now need to create an Interesting Moments Campaign to link the filling out of your form with the firing of the webhook. 1. Create a new Interesting Moments Smart Campaign from the Marketing Activities -> New Menu. 2. You need to define steps:- 1. Smart List Who 2. Flow What 3. Schedule When In order for the Webhook to fire when the Form is completed. WorkCast Marketo Integration Document 10
1. SMART LIST WHO Add a Fills Out Form Trigger from the Right Hand list and point it to the Form you created. 2. FLOW WHAT Add the Webhook you created to this step WorkCast Marketo Integration Document 11
3. SCHEDULE WHEN Configure the Schedule as you wish and then Activate the Campaign. 4. The above can be tested using the Landing Page Preview -> Preview Actions -> Generate Preview Link URL. Pasting that URL in to a browser, filling in and Submitting the Form will result in the details being registered for the WorkCast Event in question. WorkCast Marketo Integration Document 12
WORKCAST MARKETO API INTEGRATION SERVICE MARKETO SETUP The following steps need to be performed in Marketo in order for the WorkCast Marketo Service to be able to push Webinar Registration and Attendance data. ADMIN 1. The first step is to create a new API Role. WorkCast Marketo Integration Document 13
2. Next you need to create an API User 3. Create a WorkCast API Service Select a Service Type of Custom and select the API User created in Step 2 as the API Only User. 4. Please make a note of the following values and pass them to WorkCast in order to allow the WorkCast Service to access the Marketo Account:- REST API Endpoint (Web Services) Client Id (LaunchPoint) Client Secret (LaunchPoint) WorkCast Marketo Integration Document 14
EVENT PROGRAM Create a new Program of Program Type Event and Channel Webinar. The Event Name MUST be the same as the WorkCast Event Session Id. WorkCast Marketo Integration Document 15
REGISTRATION ACTIVITY 1. Create a Registration Child Campaign This MUST be called Registration 2. Setup the Campaign Smart List Use a Campaign is Requested Trigger set to Web Service API. WorkCast Marketo Integration Document 16
3. Setup the Campaign Flow Use a Change Program Status Action and set it to Webinar -> Registered. 4. Activate the Child Campaign WorkCast Marketo Integration Document 17
ATTENDNACE ACTIVITY 1. Create an Attendance Child Campaign This MUST be called Attendance. 2. Setup the Campaign Smart List Use a Campaign is Requested Trigger set to Web Service API. WorkCast Marketo Integration Document 18
3. Setup the Campaign Flow Use a Change Program Status Action and set it to Webinar -> Attended. 4. Activate the Child Campaign The most important parts of the above process are that the Event is named with the WorkCast Event Session Number and that the two Event Child Campaigns are called Registration and Attendance. WorkCast Marketo Integration Document 19
NO SHOW ACTIVITY 1. Create a Non-Attendance (No Show) Child Campaign. 2. Setup the Campaign Smart List Use a Not Campaign was Requested Trigger set to point to the Attendance Smart List for this Event Session. WorkCast Marketo Integration Document 20
3. Setup the Campaign Flow Use a Change Program Status Action and set it to Webinar -> No Show. 4. Check Schedule You can set up a schedule or update this Smart List manually. WorkCast Marketo Integration Document 21
WORKCAST SERVICE OPERATION The WorkCast Marketo Integration Service runs at scheduled intervals on one of WorkCasts servers. Registration and Attendance data for all configured accounts and events is retrieved from the WorkCast Data Warehouse database. Live data is shipped to the Data Warehouse on a 15 minute cycle. This in effect means that any new data will be pushed to the clients Marketo account in under an hour. During each cycle the service performs the following sequence of tasks for each configured client account:- Get the date and time of the last data record read from the WorkCast database. Update the current state of the process for this account in the database to Processing. Include the last processed date time in this record. Get the Marketo Host, Id and Secret for this account from the WorkCast database. Login to the Marketo API Get a list of email filter strings from the WorkCast database. If any new Lead Email addresses contain any of these filter strings then they will not be created in Marketo. Retry any failed Marketo API operations from previous runs. This process is described in greater detail in another section of this document. Get all the WorkCast Event Sessions that have been configured to be pushed to Marketo. For each configured WorkCast Event Session the service performs the following tasks:- Get all new Registration Data for that Event Session. Get all new Attendance Data for that Event Session. Reject all potential Leads that contain filter strings in their email addresses. Populate an outbound data structure for each Registration and Attendance. Process each Lead Record. If the Email Address exists as a Lead in Marketo, update it with any modified Lead fields and enrol the Lead in the correct Event Registration / Attendance campaign. If the Lead does not currently exist in Marketo, create a new Lead record, populate the Lead fields and enrol the Lead in the correct Event Registration / Attendance campaign. If any of the Reads, Updates or Creates in the above 2 steps fail, then add a new Retry record to the WorkCast database. Retry processing is detailed further in the next section. Increment the number of Successful or Failed records. Update the current state of the process for this account in the database to Pending. Logout from the Marketo API WorkCast Marketo Integration Document 22
RETRY PROCESSING At the start of each service cycle, it checks to see if there are any failed Lead or Activity Updates or Creates that failed during previous runs. If there are, then the service takes the first 50 records (oldest first) for that account and attempts to reprocess them. Each of the Retry records are basically a serialized JSON representation of the Lead or Activity wrapped with some required processing data. The wrapper includes the Type, Operation and remaining number of retries of the failed transaction. Each Marketo API operation will be tried 5 times. If they have not succeeded after 5 attempts it can safely be assumed that they are fundamentally flawed and will never succeed. They will remain in the Retry database table with a remaining number of retries of 0 so that they can be picked up by WorkCast Support and investigated. After each processing attempt, the number of remaining retries is decremented. If the processing attempt succeeded then the Retry record is deleted from the database. FIELD MAPPINGS LEAD Marketo firstname lastname salutation title company address city state postalcode country phone email leadsource WorkCast Firstname Surname Title JobTitle CompanyName AddressLine1 AddressLine2 AddressLine3 City CountyOrState PostalCode CountryCode Phone1 Email Webinar WorkCast Marketo Integration Document 23