blog-banner-on24.png

The New ON24 Webinar Integration

TBlane_McMichen
Marketo Employee
Marketo Employee
REVISED ARTICLE (2/17/2023)

What’s changed? The good, the bad, and the ugly do differently.

UPDATES:  This article has been updated with some new and revised information.

  • Documentation links have been updated to new ON24 docs
  • Context added to the background info.

Background:

ON24 has changed their integration with Marketo, and the native LaunchPoint integration is no longer an option for new accounts.  (Existing accounts can continue to use the legacy integration.)  The new method of integration is API calls, with custom objects. [In a conversation with the ON24 team, I learned that the new integration was the result of several drivers.  Customers wanted more data to be available in Marketo from the ON24 event.  The Launchpoint integration was convenient, but it greatly limited the data sharing. Custom objects, while not perfect, offered the ability to share more datapoints which are mentioned later in this article. They also mentioned that an integration kickoff call is available to clients, if needed.] This fundamentally changes the way you set-up the integration and associated programs.  You no longer bind the program to the event.  Event registrations are passed from ON24 to Marketo and each event is represented by a separate custom object record.  There are some things I like about it and some things that I don’t, but you can make up your own mind.

Pitfalls

ON24 has revised their document, which have been referenced in the article below.  For your convenience, here are some quick links:

There is a bit of a learning curve on how to design your programs, but there are some set-up details that can cause headaches and hair-loss.  (This article may help reduce both.) The integration is documented in the Marketo ON24 Connect Data Integration, but not everything is obvious.  Especially if you like to start with a Marketo registration form, then pass the registrant to ON24. How to avoid some basic problems.

  • Options – at the end of the document, there are “options” that are very important.
    • “Create New People” needs to be enabled if you ever want to use the ON24 registration page and have the new leads added to Marketo.  If not, you will only see registrations for “known” in persons in Marketo.
    • “ON24 Registrants” needs to be set to sync registration activity to Marketo.  This includes registrations and participation data.
    • “Backfill in Marketo” is your safety net if you found that you missed the above settings and have active programs running.
  • ON24 Attendee[i] – is the name of the custom object (or whatever name you choose to give it) is where all the magic happens. Marketo programs must use the data in the custom object to add program members, change status, etc. This means that you need triggers for future activities and batch campaigns for data that has already been passed to Marketo.
    NOTE: You only need to create one custom object for your Marketo Engage instance, even if you have more than one ON24 account or add another account in the future.
  • The Webhook –The 36-page instructions linked above make no mention of a webhook or how you pass a Marketo registration to ON24. Webhook information can be found in the Marketo to ON24 – Webinars article. (insert ethereal Aha! sound here)

If you follow the instructions in both of these articles and don’t skip any sections, you should be OK.

Avoid Old Habits

The old ways of doing things are gone. Reset your brain.

  1. You don’t use the native LaunchPoint integration.
  2. You don’t pick the event partner or event in the program settings.
  3. You don’t build smart campaigns that trigger on program membership or status changes.
  4. You cannot use the {{member.webinar url}} token. (It will be NULL.)

The New Way

The new integration will require a little more set-up, but you can build most of this into a program template for easy replication.  I recommend creating the template with all of the Smart Campaign variations then you only need to configure/activate the ones that are needed for your event.  Before we get into the details, this diagram may help visualize the integration activities associated with the event.

ON24-Marketo Program FlowON24-Marketo Program Flow


Not every path in this flow may apply to your set-up, but these are considerations you may want to include in your program template design.  Some key things to note:

  • The custom object record is only created by ON24 when a person is added to the event in the ON24 environment
  • Registrations that originate in Marketo are only added to the ON24 event by the webhook
  • Last minute registrations via the webhook from Marketo can be delayed if the systems are busy and these activities are queued.  (This can impact when the user join link is functional.)
  • Registrations that originate in ON24 will be known to ON24 before they are shared with Marketo
  • ON24 will only create a custom object for existing records in Marketo unless you configured ON24 to “Create New People”
  • You can register people during the event.  The custom object will be created and updated.
  • All registration activities, notifications, status changes, and follow-up actions must evaluate the custom object existence and field values.

Reading the Tea Leaves (Custom Object)

The key to all actions and controls is in the custom object.  There are several fields within it that are important to understand and use in your smart campaign build.  While there are many more fields that can be configured, these are the ones that are key to program membership and status.  Also, note that these field names are set-up when you create the custom object and may not have been added by your system administrator.

Custom Object Field

Value

Required/Suggested Use

eventid

integer

The presence of a custom object with the ON24 event ID indicates that the person is registered for that event. This is the key to identifying the custom object and associated fields below. [required]

attendedlive

Boolean

Use this Y/N value to identify if a user attended the live event. You can use this to change the program status to "Attended".

attendedarchive

Boolean

Use this Y/N value to identify if a user viewed the on-demand event. You can use this to change the program status to "Attended - OnDemand".

cumulativeliveminutes

integer

Use the number of minutes value to identify how long the person participated in the live event. You may want to use a minimum threshold value to qualify a person for the smart campaign that changes the program status or issues program incentives.

cumulativearchiveminutes

integer

Use the number of minutes value to identify how much of the recorded content the user viewed. You may want to use a minimum threshold value to qualify a person for the smart campaign that changes the program status or issues program incentives.

Member Join Link & Event Tokens

Since the join link is no longer added to the program, you cannot use the {{member.Webinar URL}} token.  Instead, you need to create the link with a combination of tokens. You will need to create a token for the event ID e.g. {{my.eventid}} and the event key e.g. {{my.key}} which you can get from the “Audience” link in ON24. You can find it by clicking the link at the top of the event which will open a box as shown below.  See the highlighted text for an example.  (Of course your values will be different.)

 

ON24-Marketo-Token-Values.png

 

Once you have created the tokens, you will use them to “build” a join link with as follows with the tokens in bold for visual clarity:

https://event.on24.com/wcc/r/{{my.eventid}}/{{my.key}}?mode=login&email={{lead.email address}}

Create New Habits

The new way requires a focus on the custom object records and changes to those records.

  1. At a minimum you will need the ON24 Event ID to identify relevant data for the program.
    1. Create a local token for the event ID   e.g. {{my.eventid}}
    2. Create a toke for the event key   e.g. {{my.key}}
  2. Remember that an event custom object is added only once, after that you will need to trigger on updates to the ON24 Attendeei custom object.
    1. Sometime triggers don't happen. (It's a fallen world.) This can occur if your instance is very busy and the trigger campaign is waiting for an extended period of time, and the campaign times-out without executing.  (If you happen to be monitoring the campaign, you can bump the priority of the waiting campaign in the Campaign Queue of the workspace.)
    2. It is more likely that you have other things to do and you didn't see the campaign waiting in the queue. All is not lost, you can create a smart campaign that uses the custom object filter with the same settings as the trigger, and run it as a batch process.
      Power Tip:  You may just want to create this as a safety net, and schedule it to run every day during the event period. This will sweep any missed activity into the program. You don't need to recreate everything, add a "Campaign is Requested" trigger to the main smart campaign and request it in the flow of the sweeping batch campaign.
  3. You must build the member join link with multiple tokens.
  4. Create a test event and program to gain some experience … then Test. Test. Test.

 

There is much more to learn and understand, which will come with practice.  Hopefully this article will get you off to a good start and avoid some frustrations and mistakes.

 

 

[i] ON24 Attendee is the suggested name for the custom object.  You can use something different but note that this is how this article refers to the custom object. I also recommend creating all of the fields, because you may need them some day and it will reduce the need for troubleshooting in the future.

9489
14
14 Comments
Vinay_Kumar
Level 9 - Community Advisor

Thanks for sharing the information. 

I have been practicing this for a few of my accounts. For some everything is working seamlessly, however for some we faced a data mismatch issue between both instances Marketo and On24.  

As you said "There is much more to learn and understand, which will come with practice",  certainly practice and testing will help here. 

Katja_Keesom
Level 10 - Community Advisor

Thanks for the heads up, very useful!

TK9
Level 2
Level 2

Thank you this was very helpful!

derelict_wombat
Level 3

About to setup our first integration with ON24 so this is perfect timing to see this. 

chiranjeet_shah
Level 2

Thanks for sharing details of a new way of ON24 Marketo integration. it is helpful. 

jace_brendle
Level 3

The webhook info here is critical, and like you mentioned... NOT in any of the other documentation. Thank you!

ShannonKPerkuto
Level 2

Thank you for this detailed explanation!

Jprithvi2616
Level 1

Thanks for the documentation. It has been a great help. I'm actually stuck at the last stage which is using these in smart campaigns. I have attached a screenshot below which say "Added to ON24 Attendee" does this mean the custom object? 

 

Jprithvi2616_0-1698863568117.png

I did some testing on the join now link and as soon as I click on the link it says you are now registered to the event. 

Jprithvi2616_0-1698868360572.png

 

 

TBlane_McMichen
Marketo Employee

@Jprithvi2616 The Added to ON24 Attendee trigger will action when a custom object record with the corresponding eventid is added to the person record. This will occur in either of these cases:

  1. If a person registers via the ON24 platform. (if enabled for the event)
  2. After the Marketo webhook passes the registrant info to ON24, it will respond with a custom object record. (there may be a time delay)

Regarding the join link, it the email you are testing is registered in the ON24 event, you will see this message before the event which indicates that your registration is confirmed.  If you use the link at the time of the event, you will be admitted to the event.  If you us the link after the event, if available, you may view the on-demand recording.

Jprithvi2616
Level 1

@TBlane_McMichen - Thanks for the clarification.

 

I'm kinda new to this and would want to know the difference between the ON24 old setup vs new setup?

In the previous setup we used to add ON24 under event in MKTO program where in the status are synced from ON24. But now we are able to control the changes more at custom object level. Am I right?

 

I've been testing it and would need someone to confirm if I'm doing it rightly.