Marketo data integration setup instructions when using ON24 registration - Recurring Simu-live.
Marketo Data Integration Setup Instructions:
When Using ON24 Registration
If using ON24 form for registration, you can create new people, create custom object records for all registrants & update custom object records with attendee activity.
Setup Steps:
Step 1: Marketo > Create API Only Role
Step 2: Marketo > Create API Only User
Step 3: Marketo > Create Custom LaunchPoint Service
Step 4: Marketo > Create Custom Object
Step 5: Elite > Create API Credentials for a User
Step 6: ON24 Connect > Configure Integration Service
Step 7: Marketo > Using Custom Objects for Program Membership and Statuses
Step 8: Marketo > Create Custom Field in Salesforce for PEP URL (OPTIONAL)
Important Configuration Steps:
CONFIGURATION OPTION | SETTING |
Elite’s “Login Only” registration setting | Disabled |
Create New People | Enabled |
Add ON24 registrant data to ON24 Attendee custom object in Marketo | Enabled |
Add ON24 attendee data to ON24 Attendee custom object in Marketo | Enabled |
Notes:
- To see the other ON24 Marketo Connect Data Integration setup options, go here.
- Recurring Simu-Live Events must use ON24 Registration Forms.
- In Elite, add the Parent Event ID into the Campaign Code Field.
Step 1: Marketo> Create API Only Role
To create ON24 specific Role, click Admin on top of the page and select Users & Roles.Select Roles on top of the page and click New Role.
Add a Role Name and in Permissions, expand Access API.
In the Access API section, include the ‘Read-Write Custom Object’ and ‘Read-Write Person’ and click Save.
NOTE: See Create an API Only User Role for more information.
Step 2: Marketo> Create API Only User
A new user should be created for the integration. It is valuable to use a dedicated, API Only User to distinguish activity from other API Only Users you may have for other services.To create ON24 API Only User, click on Users & Roles on the left tab and then click Users on the top of the page.
Click Invite New User.
A pop-up window will appear. Add Email, First Name, Last Name and click Next.
Select the role API Only Role and checkbox API Only and click Next.
Click Send in the next window.
The user is created.
Step 3: Marketo > Create Custom LaunchPoint Service
Create a Custom LaunchPoint Service for the Marketo ON24 Connect service to call out to the Marketo API for creating people and custom object records.To create a Custom LaunchPoint Service, click on Integration on left navigation bar and then click LaunchPoint.
Click New on the top of the page.
A pop-up for New Service will appear. Add Display Name & choose Custom from the drop-down under Service.
Add a Description and select API Only User (refer Step 2) from the drop-down and click Create.
After adding the new service, click on LaunchPoint on the left navigation bar, go to your Service Name (ABC Company Test), and click View Details.
You will see your Client Id, Client Secret and Authorized User.
Copy the Client Id and Client Secret to use in step 6.
Go to Web Services on the left Navigation bar and get the Identity URL (everything before ‘/identity’) to use in Step 6.
NOTE: See Authentication for more information.
Step 4: Marketo> Create Custom Object
To create a new Custom Object, click on Admin -> Database Management and then Marketo Custom Objects in left navigation bar.Click New Custom Object to create a Custom Object.
A pop-up window to Create Object will appear.
Add the below details. Verify that the API Name value is oN24Attendee_c. The API Name must match exactly what is listed below.
- Display Name: ON24 Attendee
- API Name: oN24Attendee_c
- Show in Person Detail: SHOW
A Custom Object (ON24 Attendee) is created.
The custom object can include any of the following fields.
NOTE: The first 4 fields are mandatory.
Name | Description | Required | Dedupe Field | Data Type | Size |
---|---|---|---|---|---|
personid | Marketo leadId | Yes | Yes | link (Person > Id) | Up to 10 digits |
eventid | ON24 unique event identifier | Yes | Yes | String | 255 characters |
eventuserid | ON24-generated unique identified for a particular registrant. Anyone who registers successfully gets a new eventuserid. | Yes | Yes | String | 255 characters |
sourcecampaigncode | Campaign Code captured if registrant originated from Ehub. | Yes | No | String | 255 characters |
answeredpolls | The number of polls the user responded to | No | No | Integer | - |
answeredsurveys | The number of surveys the user responded to | No | No | Integer | - |
archiveviewed | The number of times the attendee launched the event console during the archive period of the event. | No | No | Integer | - |
askedquestions | The number of questions the user asked | No | No | Integer | - |
attendedarchive | Y or N, whether this attendee viewed the archived portion of this event. | No | No | String | 1 character |
attendedlive | Y or N, whether this attendee viewed the live event. | No | No | String | 1 character |
certificationcredit | NR or hours specified in Credit for Completion in certification widget | No | No | String | 255 characters |
certificationwidgetresult | C = Certified P = Partial NC = Not Certified |
No | No | String | 255 characters |
contactuswidgetname | Contact Us widget name, user defined | No | No | String | 255 characters |
contactuswidgetsubmittedtimestamp | Contact Us submission timestamp | No | No | DateTime | - |
ctadate1 | Date and time user clicked on the first Take Action widget (formerly Call To Action) | No | No | DateTime | - |
ctadate2 | Date and time user clicked on the second Take Action widget (formerly Call To Action) | No | No | DateTime | - |
ctadate3 | Date and time user clicked on the third Take Action widget (formerly Call To Action) | No | No | DateTime | - |
ctaname1 | Display name of the first Take Action widget (formerly Call To Action) | No | No | String | 255 characters |
ctaname2 | Display name of the second Take Action widget (formerly Call To Action) | No | No | String | 255 characters |
ctaname3 | Display name of the third Take Action widget (formerly Call To Action) | No | No | String | 255 characters |
cumulativearchiveminutes | Number of minutes the user attended the archived/on-demand portion of this event. Multiple console launches are aggregated into a single number. | Strongly Recommended | No | Integer | - |
cumulativeliveminutes | Number of minutes the user attended the live portion of this event. Multiple console launches are aggregated into a single number. | Strongly Recommended | No | Integer | - |
custom1 | Registration custom field 1 | No | No | Text | 255 characters |
custom10 | Registration custom field 10 | No | No | Text | 255 characters |
custom2 | Registration custom field 2 | No | No | Text | 255 characters |
custom3 | Registration custom field 3 | No | No | Text | 255 characters |
custom4 | Registration custom field 4 | No | No | Text | 255 characters |
custom5 | Registration custom field 5 | No | No | Text | 255 characters |
custom6 | Registration custom field 6 | No | No | Text | 255 characters |
custom7 | Registration custom field 7 | No | No | Text | 255 characters |
custom8 | Registration custom field 8 | No | No | Text | 255 characters |
custom9 | Registration custom field 9 | No | No | Text | 255 characters |
democonversionswidgetaction | Demo action | No | No | String | 255 characters |
democonversionswidgetname | Demo widget name, user defined | No | No | String | 255 characters |
democonversionswidgetsubmittedtimestamp | Demo submitted timestamp | No | No | DateTime | - |
democonversionswidgettype | Demo type | No | No | String | 255 characters |
driftwidgetaction | Drift action | No | No | String | 255 characters |
driftwidgetid | Drift widget id | No | No | Integer | - |
driftwidgetname | Drift widget name | No | No | String | 255 characters |
driftwidgettype | Drift type | No | No | String | 255 characters |
The email address for this attendee. | No | No | 1000 characters | ||
engagementscore | This is a number between 0 and 10.0 measuring how engaged a user was based on activity during the webcast. | No | No | Float | - |
eventtags | List of tags in a event. This will show up as a comma separated list. | No | No | String | 255 characters |
eventtitle | The main tagline or title for the event. Typically under 100 characters. | No | No | String | 255 characters |
firstarchiveactivity | The date/time this attendee first opened the event console during the archived event. e.g., Mon, 30 Mar 2009 12:27 PDT | No | No | DateTime | - |
firstliveactivity | The date/time this attendee first opened the event console during this live event. e.g., Mon, 30 Mar 2009 12:27 PDT | No | No | DateTime | - |
freetrialwidgetaction | Free Trial action | No | No | String | 255 characters |
freetrialwidgetname | Free Trial widget name, user defined | No | No | String | 255 characters |
freetrialwidgetsubmittedtimestamp | Free Trial submitted timestamp | No | No | DateTime | - |
freetrialwidgettype | Free Trial type | No | No | String | 255 characters |
getpricingwidgetaction | Get Pricing action | No | No | String | 255 characters |
getpricingwidgetname | Get Pricing widget name, user defined | No | No | String | 255 characters |
getpricingwidgetsubmittedtimestamp | Get Pricing submitted timestamp | No | No | DateTime | - |
getpricingwidgettype | Get Pricing type | No | No | String | 255 characters |
lastarchiveactivity | The date/time this attendee was last known to have an open event console during the archived event. e.g., Mon, 30 Mar 2009 12:27 PDT | No | No | DateTime | - |
lastliveactivity | The date/time this attendee was last known to have an open event console during this live event. e.g., Mon, 30 Mar 2009 12:27 PDT | No | No | DateTime | - |
meetingconversionswidgetaction | Meeting action | No | No | String | 255 characters |
meetingconversionswidgetname | Meeting widget name, user defined. | No | No | String | 255 characters |
meetingconversionswidgetsubmittedtimestamp | Meeting submitted timestamp. | No | No | DateTime | - |
meetingconversionswidgettype | Meeting type | No | No | String | 255 characters |
partnerref | Source tracking value. | No | No | String | 255 characters |
poll1answer | User-submitted answer to the poll. | No | No | Text | 1500 characters |
poll1question | Client-determined poll question asked to the audience. | No | No | Text | 3600 characters |
poll2answer | User-submitted answer to the poll. | No | No | Text | 1500 characters |
poll2question | Client-determined poll question asked to the audience. | No | No | Text | 3600 characters |
poll3answer | User-submitted answer to the poll. | No | No | Text | 1500 characters |
poll3question | Client-determined poll question asked to the audience. | No | No | Text | 3600 characters |
poll4answer | User-submitted answer to the poll. | No | No | Text | 1500 characters |
poll4question | Client-determined poll question asked to the audience. | No | No | Text | 3600 characters |
poll5answer | User-submitted answer to the poll. | No | No | Text | 1500 characters |
poll5question | Client-determined poll question asked to the audience. | No | No | Text | 3600 characters |
resource1viewed | Name of 1st resource viewed in the Resource Widget. | No | No | Text | 1000 characters |
resource2viewed | Name of 2nd resource viewed in the Resource Widget. | No | No | Text | 1000 characters |
resource3viewed | Name of 3rd resource viewed in the Resource Widget. | No | No | Text | 1000 characters |
resource4viewed | Name of 4th resource viewed in the Resource Widget. | No | No | Text | 1000 characters |
resource5viewed | Name of 5th resource viewed in the Resource Widget. | No | No | Text | 1000 characters |
sourceeventid | Eventid of where registrant or attendee originated. This could be an engagement hub, target page or virtual conference eventid. | No | No | String | 255 characters |
survey1answer | User-submitted answer to the survey question. | No | No | Text | 1500 characters |
survey1question | Client-determined survey question asked to the audience. | No | No | Text | 3600 characters |
survey2answer | User-submitted answer to the survey question. | No | No | Text | 1500 characters |
survey2question | Client-determined survey question asked to the audience. | No | No | Text | 3600 characters |
survey3answer | User-submitted answer to the survey question. | No | No | Text | 1500 characters |
survey3question | Client-determined survey question asked to the audience. | No | No | Text | 3600 characters |
survey4answer | User-submitted answer to the survey question. | No | No | Text | 1500 characters |
survey4question | Client-determined survey question asked to the audience. | No | No | Text | 3600 characters |
survey5answer | User-submitted answer to the survey question. | No | No | Text | 1500 characters |
survey5question | Client-determined survey question asked to the audience. | No | No | Text | 3600 characters |
testwidgetresult | Did not attempt, Passed, Failed | No | No | String | 255 characters |
totalresourcesviewed | Total number or resources viewed from the Resource Widget | No | No | Integer | - |
userprofileurl | A unique webpage that displays lifetime activity of an ON24 webinar/video attendee, including their engagement score, total viewing time, resources downloaded, and questions asked. Information is collected from webinars, videos, and documents. | No | No | String | 255 characters |
userquestionsandanswers | This tag lists the questions asked by the user and answers from presenters | No | No | Text | 3600 characters |
utmcampaign | Name of the specific campaign | No | No | String | 255 characters |
utmcontent | cta clicked | No | No | String | 255 characters |
utmmedium | Type of source (e.g. email, social, etc.) | No | No | String | 255 characters |
utmsource | Identifies source of visit ( (e.g. google, website, etc.) | No | No | String | 255 characters |
utmterm | Paid search keyword | No | No | String | 255 characters |
locationvisited (VC only) | List of locations visited from a VC | No | No | Text | 3600 characters |
After you have added the required fields, go to Custom Object Actions > Approve Object.
See Add Marketo Custom Object Fields, Add Marketo Custom Object Link Fields, and Create Marketo Custom Objects for more information.
Step 5: Elite> Create API Credentials for a User
The service will make API calls out to your workspace using API credentials generated by an Elite Platform user with Manage Users permission. As a result, provision a new token and name it "Marketo ON24 Connect."
Step 6: Marketo> Configure Integration Service
- Log into the ON24 Platform.
- From the top menu bar, press Platform Tools, and then Integrations.
- Locate "Adobe Marketo Engage" and press "Configure."
Connection Tab
- The area on the left (green box) reflects information found in the ON24 Platform, whereas the area on the right (red box) reflects information found in your Marketo instance.
- On the left, select the token name you created in Step 5 and then click Associate Access Token. When successful, a message will indicate that the "Token has been associated."
- Select one of the API Tokens from step 5 from the dropdown and click Associate Access Token.
- On the right, enter Marketo Client Id, Client secret and Identity URL (everything before <'></'>) that was saved in Step 3 and click Test Connection. A validation of the Custom Object definitions will be done. If successful, a "successful connection" message will display. If unsuccessful, feedback will be provided in case of errors.
- Press "Save Changes." A "Save Successful" message will display. This will enable the service to create custom object records for any existing person who attends a webinar in your ON24 workspace.
Options
NOTE: Refer to Configuration options for the different selections based on registration.
Follow these configuration settings:
Create New People - Use ON24 registration data to create new people who do not currently exist in your Marketo instance.
Below are the standard fields used to create new people.
ON24 Field | Marketo Lead Field |
firstname | firstName |
lastname | lastName |
company | company |
job_title | title |
address_street1 | address |
city | city |
state | state |
zip | postalCode |
country | country |
work_phone | phone |
company_industry | industry |
company_size | numberOfEmployees |
job_function | leadRole |
"ON24" | leadSource |
UTM Campaign | UTM_Campaign |
UTM Content | UTM_content |
UTM Medium | UTM_Medium |
UTM Source | UTM_Source |
UTM Term | UTM_term |
ON24 Attendee Custom Object:
- Add ON24 registrant data to ON24 Attendee custom object in Marketo - Create custom object records for all registrants. Use this if you are collecting registrants through ON24 forms and you want to use the custom object records to trigger program membership for registrants. The service will create the custom object records at registration and then update the records if a person attends a webinar.
- Add ON24 attendee activity to ON24 Attendee custom object to Marketo - Keep this enabled to pass attendee data to the custom object.
Backfill in Marketo:
This feature is useful when you need to import data which existed before the integration was configured for your account. There’s a limit of 31 days per execution.
Notifications:
Select this option if you want to receive email notifications after every sync activity.
After selecting the options, click Save Changes to apply the settings.
Activity
History of service processes.
Step 7: Marketo > Using Custom Objects for Program Membership and Statuses
The ON24 Attendee custom object can be used with Triggered Campaigns or Batch Campaigns depending on when the object is being used.
Add Person to Program as "Registered"
Smart List:
- Trigger > Added to ON24 Attendee
- sourcecampaigncode is [parent webcast eventid]
Flow:
- Change Program Status
- New Status: Webinar > Registered
Add Person to Program as "Attended"
Smart List:
- Trigger > ON24 Attendee is Updated*
- Trigger Attribute: cumulativeliveminutes
- New Value: greater than 0
- sourcecampaigncode is [parent webcast eventid]
Flow:
- Change Program Status
- New Status: Webinar > Attended
Add Person to Program as "Attended on-demand"
Smart List:
- Trigger > ON24 Attendee is Updated*
- Trigger Attribute: cumulativearchiveminutes
- New Value: > 0
- cumulativeliveminutes: 0
- sourcecampaigncode is [parent webcast eventid]
Flow:
- Change Program Status
- New Status: Webinar > Attended On-demand
* Contact Marketo to enable "Custom Object is Updated" trigger.
Add Person to Program as "No Show"
Smart List:
- Batch > Has ON24 Attendee
- cumulativeliveminutes: empty
- cumulativearchiveminutes: empty
- sourcecampaigncode is [parent webcast eventid]
Flow:
- Change Program Status
- New Status: Webinar > No Show
Scheduling No-Show Batch:
- Occur Every Day of the recurring Event
- Schedule the No Show Batch to run 4-6 hours after the conclusion of the Elite Webinar.
Step 8: Marketo> Create Custom Field in Salesforce for PEP URL (OPTIONAL)
Create a custom field in the Salesforce contact and lead objects to sync with Marketo person records. The integration service will push over the ON24 Prospect Engagement Profile URL to the pEPURL__c field in the Marketo person records, which in turn will sync the field to Salesforce.
API Name: pEPURL__c
See SFDC Sync: Field Sync and Prospect Engagement Profile for more information.
Comments
0 comments
Please sign in to leave a comment.