Skip to main content
ON24 Knowledge Center

Marketo ON24 Connect Data Integration

Overview

The Marketo ON24 Connect Data Integration can be used to create new people and custom object records in Marketo for Webinar, Engagement Hub, Target, and Virtual Conference activity. Custom object records can be used to trigger program membership, change program member statuses, and segment people based on ON24 activity.

See below for the different configuration options, and instructions on how to set up the service.


ON24 Registration

Option 1:

Create new people, create custom object records for all registrants, update custom object records with attendee activity.

|

|

|

|

|

|

|

|

|

|

 

Option 2:

Create new people, create custom object records with attendee activity.

1.png

 

2a.png

Marketo Registration

Option 1:

Create custom object records with attendee activity.

|

|

|

|

|

|

|

|

 

Option 2:

Create custom object records for all registrants, update custom object records with attendee activity.

4a.png

3a.png

NOTE: For Virtual Conference please contact Integration Support to enable your account before proceeding with the setup steps.

Setup Steps

1. Marketo > Create API Only Role

2. Marketo > Create API Only User

3. Marketo > Create Custom LaunchPoint Service

4. Marketo > Create Custom Field in Salesforce for PEP URL (OPTIONAL)

5. Marketo > Create Custom Object

6. ON24 Elite > Create API Credentials for a User

7. ON24 Connect > Configure Integration Service

8. Marketo > Using Custom Objects for Program Membership and Statuses

 

1. Marketo > Create API Only Role

Make sure to select just the permissions needed for this integration by clicking "+" sign to expand "API Access" node and then select:

  • Read-Write Custom Object
  • Read-Write Person

clipboard_e3c576ed97b863cca125ae70632d20a51.png


See Create an API Only User Role for more information.

 

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.

  • Roles: API Only Role
  • API Only: [checked]

clipboard_e9abeb67c1ca66dfecceacafda3675910.png


See Create an API Only User for more information.

 

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.

1. Add a new Custom LaunchPoint service. Use the API Only User from Step 2.

clipboard_e690befa667eb398b6f7750f3201650d3.png

2. After adding the new service, click on the View Details to get the following "Client Id" and "Client Secret" to use for Step 7.

Screenshot_4.png

3. Go to the Web Services and also get the Identity URL (everything before "/identity") to use in Step 7.

Screenshot_5.png


See Authentication for more information.

 

4. 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

pep_v1.png


See SFDC Sync: Field Sync and Prospect Engagement Profile for more information.

 

5. Marketo > Create Custom Object

Create a new custom object. 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

image(27).png

 

Note: Both the eventid and eventuserid fields data type should be configured depending on the type of ON24 client Account (North American client account), (Global client account), and (European client account):

  • For North American ON24 client account, the eventid and eventuserid both field data type can be defined as either String or Integer type.
  • For Global ON24 account and European ON24 account, the eventid and eventuserid both field data type must be defined as of type String.

The custom object can include any of the following fields. The first 3 fields are mandatory (*Marketo supports a maximum of 44 additional custom objects total, beyond the mandatory fields):

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 Integer/String Up to 10 digits/255 characters
eventuserid ON24-generated unique identified for a particular registrant. Anyone who registers successfully gets a new eventuserid. Yes Yes Integer/String Up to 10 digits/255 characters
email The email address for this attendee. No No email 1000 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 -
archiveminutes The total number of minutes this user attended the archived portion of this event. Multiple console launches are aggregated into a single number.  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

certificationwidgetresult

certificationwidgetresult

No

No

String

255 characters

registrationdate

registrationdate

No

No

DateTime

 

cumulativearchiveminutes

cumulativearchiveminutes

No

No

Integer

Up to 10 digits

campaigncode

campaigncode

No

No

String

255 characters

sourcecampaigncode

sourcecampaigncode

No

No

String

255 characters

breakoutid1

Display the Id for first break out widget submitted

No

No

Integer

Up to 10 digits

breakoutname1

Display the name for first break out widget submitted 

No

No

String

255 characters

breakoutrole1

Display the role for first break out widget submitted 

No

No

String

255 characters

breakoutcumulativeliveminutes1

Display the cumulative live minutes for first break out widget submitted 

No

No

Float

 

breakoutid2

Display the Id for second break out widget submitted

No

No

Integer

Up to 10 digits

breakoutname2

Display the name for second break out widget submitted 

No

No

String

255 characters

breakoutrole2

Display the role for second break out widget submitted 

No

No

String

255 characters

breakoutcumulativeliveminutes2

Display the cumulative live minutes for second break out widget submitted 

No

No

Float

 

breakoutid3

Display the Id for third break out widget submitted

No

No

Integer

Up to 10 digits

breakoutname3

Display the name for third break out widget submitted

No

No

String

255 characters

breakoutrole3

Display the role for third break out widget submitted 

No

No

String

255 characters

breakoutcumulativeliveminutes3

Display the cumulative live minutes for third break out widget submitted 

No

No

Float

 

breakoutid4

Display the Id for fourth break out widget submitted

No

No

Integer

Up to 10 digits

breakoutname4

Display the name for fourth break out widget submitted

No

No

String

255 characters

breakoutrole4

Display the role for fourth break out widget submitted 

No

No

String

255 characters

breakoutcumulativeliveminutes4

Display the cumulative live minutes for fourth break out widget submitted

No

No

Float

 

breakoutid5

Display the Id for fifth break out widget submitted

No

No

Integer

Up to 10 digits

breakoutname5

Display the name for fifth break out widget submitted

No

No

String

255 characters

breakoutrole5

Display the role for fifth break out widget submitted

No

No

String

255 characters

breakoutcumulativeliveminutes5

Display the cumulative live minutes for fifth break out widget submitted

No

No

Float

 

locationvisited

locationvisited (Concat, until 10 locations)

No

No

text

3600 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 -
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 -
liveminutes The total number of minutes this user attended the live event. Multiple console launches are aggregated into a single number. No No Integer -
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 -
userquestionsandanswers This tag lists the questions asked by the user and answers from presenters No No text 3600 characters
ctaname1 Display name of the first CTA widget a user clicked on No No String 255 characters
ctadate1 Date user clicked on the first CTA widget No No DateTime -
ctaname2 Display name of the second CTA widget a user clicked on No No String 255 characters
ctadate2 Date user clicked on the second CTA widget No No DateTime -
ctaname3 Display name of the third CTA widget a user clicked on No No String 255 characters
ctadate3 Date user clicked on the third CTA widget No No DateTime -
meetingconversionswidgetname Meeting widget name, user defined No No string  255 characters
meetingconversionswidgettype Meeting type No No string  255 characters
meetingconversionswidgetaction Meeting action No No string  255 characters
meetingconversionswidgetsubmittedtimestamp Meeting submitted timestamp No No DateTime  -
democonversionswidgetname Demo widget name, user defined No No string  255 characters
democonversionswidgettype Demo type No No string  255 characters
democonversionswidgetaction Demo action No No string  255 characters
democonversionswidgetsubmittedtimestamp Demo submitted timestamp No No DateTime  -
contactuswidgetname Contact Us widget name, user defined No No string 255 characters
contactuswidgetsubmittedtimestamp Contact Us submission timestamp No No DateTime -
poll1question Client-determined poll question asked to the audience. No No text 3600 characters
poll1answer 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
poll2answer 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
poll3answer 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
poll4answer 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
poll5answer User-submitted answer to the poll. No No text 1500 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
survey1question Client-determined survey question asked to the audience. No No text 3600 characters
survey1answer 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
survey2answer 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
survey3answer 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
survey4answer 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
survey5answer User-submitted answer to the survey question. No No text 1500 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
certificationcredit NR or hours specified in Credit for Completion in certification widget No No String 255 characters
testwidgetresult Did not attempt, Passed, Failed No No String 255 characters
partnerref Source tracking value No No String 255 characters
custom1 Registration custom field 1 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
custom10 Registration custom field 10 No No Text 255 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
freetrialwidgetname Free Trial widget name, user defined No No String 255 characters
freetrialwidgettype Free Trial type No No String 255 characters
freetrialwidgetaction Free Trial action No No String 255 characters
freetrialwidgetsubmittedtimestamp Free Trial submitted timestamp No No DateTime -
getpricingwidgetname Get Pricing widget name, user defined No No String 255 characters
getpricingwidgettype Get Pricing type No No String 255 characters
getpricingwidgetaction Get Pricing action No No String 255 characters
getpricingwidgetsubmittedtimestamp Get Pricing submitted timestamp No No DateTime -

 

After you have added all of the fields go to Custom Object Actions > Approve Object.

image(36).png

 


See Add Marketo Custom Object Fields, Add Marketo Custom Object Link Fields, and Create Marketo Custom Objects for more information.
 

6. ON24 Elite > Create API Credentials for a User

The service will make API calls out to your workspace using API credentials generated by an Elite user.

  1. Go to Elite Analytics > API Dashboard
  2. Click Provision a New API Access Token
  3. Rename credentials to "Marketo ON24 Connect"

Screenshot_15(2).png

Note: API credentials are tied to Elite users. If the user is deleted, the API credentials will no longer be active. ON24 does not currently support dedicated API users.

7. ON24 Connect > Configure Integration Service

Go to ON24 Connect Marketo Integration

Login:
Enter your Elite login Username and Password.

image(28).png

Connection

ON24:
Select one of the API Tokens from Step 6 from the dropdown and click Associate Access Token. A message will indicate that the "Token has been associated."

Important:  Please make sure to remove '/identity' from the identity URL.  Marketo automatically adds this to the URL when copied, so it needs to be removed manually.

6.png

Marketo:
Add the API credentials from Step 3 and click Test Connection. A validation of the Custom Object definitions will be done and feedback will be provided in case of errors. Upon successful connection, you should see a "Successful Connection" message.

7.png

Save:
This will enable the service to create custom object records for any existing person who attends a webinar in your ON24 workspace. For additional options related to creating new people, and creating custom object records at registration, see the Options section below.

9.png

Note: ON24 Configure Integration Service UI will display the proper error message and will not allow to save the configuration if eventid and eventuserid fields data type are not correct based on ON24 client account. 

Options

Create New People:
Use ON24 registration data to create new people who do not currently exist in your Marketo instance. Use this if you are collecting registrants through ON24 registration forms.

create_new_people.png

Below are the standard fields used to create new people. Custom fields are not supported.

ON24 Field Marketo Lead Field
firstname firstName
lastname lastName
email email
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

ON24 Registrants:
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.

on24_registrants_v1.png

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.

backfill_v1.png

Notifications:
Select this option if you want to receive email notifications after every sync activity.

notification_v1.png

Save:
After selecting any of the above options click Save to apply the settings.

9.png

Activity

Activity:
History of service processes. For any questions about failures, please send an email to on24connect@on24.zendesk.com

clipboard_e936bbd1f3150ee400787081b678df72e.png

 

 

8. 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 getting created and updated. Below are some options on how to use the custom objects based on how registration data is being collected.

See below for the different configuration options, as well as instructions on how to setup the service.


ON24 Registration

Option 1:

Create new people, create custom object records for all registrants, update custom object records with attendee activity.

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

 

Option 2:

Create new people, create custom object records with attendee activity.

1.png

 

2a.png

Add Person to Program as "Registered"

Smart List

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]

clipboard_eccb28df278da0a66a1ece4337a3cec10.png

Flow

  • Change Program Status
  • New Status: Webinar > Registered

reg_reg_v1.png

 

Update Program Member Status to "Attended"

Smart List

  • Trigger > ON24 Attendee is Updated*
  • Trigger Attribute: attendedlive
  • New Value: Y
  • eventid: [add eventid]

smart_v1.png

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]
  • attendedlive: Y

clipboard_e44a72eb4147345b80008440af19c7e80.png

Flow

  • Change Program Status
  • New Status: Webinar > Attended

clipboard_e453d2133f17a7a2cf94bb72ae0a8ebae.png

 

* Contact Marketo to enable "Custom Object is Updated" trigger

Update Program Member Status to "Attended"

Smart List

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]
  • attendedlive: Y

clipboard_e44a72eb4147345b80008440af19c7e80.png

Flow

  • Change Program Status
  • New Status: Webinar > Attended

clipboard_e453d2133f17a7a2cf94bb72ae0a8ebae.png

Marketo Registration

Option 1:

Create custom object records with attendee activity.

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Option 2:

Create custom object records for all registrants, update custom object records with attendee activity.

4a.png

3a.png

Update Program Member Status to "Attended"

Smart List

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]
  • attendedlive: Y

clipboard_e44a72eb4147345b80008440af19c7e80.png

Flow

Change Program Status

  • New Status: Webinar > Attended

clipboard_e453d2133f17a7a2cf94bb72ae0a8ebae.png

 

Update Program Member Status to "Attended On-demand"

Smart List

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]
  • attendedarchive: Y
  • attendedlive: N

aae_v2.png

Flow

  • Change Program Status
  • New Status: Webinar > Attended On-demand

floa_od_v1.png

Update Program Member Status to "Attended"

Smart List

  • Trigger > ON24 Attendee is Updated*
  • Trigger Attribute: attendedlive
  • New Value: Y
  • eventid: [add eventid]

smart_v1.png

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]
  • attendedlive: Y

clipboard_e44a72eb4147345b80008440af19c7e80.png

Flow

  • Change Program Status
  • New Status: Webinar > Attended

clipboard_e453d2133f17a7a2cf94bb72ae0a8ebae.png

 

Update Program Member Status to "Attended On-demand"

Smart List

  • Trigger > ON24 Attendee is Updated*
  • Trigger Attribute: attendedarchive
  • New Value: Y
  • attendedlive: N
  • eventid: [add eventid]

clipboard_e333ed04be6713f0e6aa207df3261f2bb.png

  • Trigger > Added to ON24 Attendee
  • eventid: [add eventid]
  • attendedarchive: Y
  • attendedlive: N

aae_v2.png

Flow

  • Change Program Status
  • New Status: Webinar > Attended

clipboard_e453d2133f17a7a2cf94bb72ae0a8ebae.png

 

* Contact Marketo to enable "Custom Object is Updated" trigger

 

  • Was this article helpful?