I apologize as this should really be a blog post, but I don't have the ability to post to blogs, so here it is. I figured I would share my experience with integrating Zoom with Marketo and using it for the past 2 years. Hopefully this can serve as a resource to anyone else looking to setup this integration in the future.
Note: My method of integration and use is based on our use case, which is using marketo forms and our own landing pages to allow people to register for the webinars, pushing the registrants to zoom, letting zoom handle all confirmation & reminder emails, then have zoom push attendees back to Marketo.
When integrating Zoom with Marketo, the first thing to do is follow the directions here on setting up the integration. At least the first part "Initial setup of Marketo and Zoom". However, their "setup for each webinar" is slightly redundant and you don't need as many smart campaigns as they have you setup for each webinar.
A few small changes to their initial setup:
How to setup your program:
Each zoom webinar needs to have a individual marketo program tied to it, in a 1:1 relationship. Inside that program, you need 2 smart campaigns (one for attendees, and one for the main registration flow) and a form. So if I have a zoom webinar scheduled for March 19th, then this is what it looks like in Marketo:
Tokens
Our emails (such as the webinar recap email or "no show" email from the example above) live in the design studio and we use program tokens to customize them to the individual webinar. We use these tokens for each program:
This allows us to customize the recap emails to the webinar, without have to deal with any code.
How to setup your program if you have multiple registration options for a single registration form
We use this method to allow people to register for a single session with many different time zone options from a single Marketo form
We've also used this method to host "recurring" webinars that happened every week. We didn't want to create a new landing page and form for every webinar, opting rather to have a single permanent registration page and form where we instead continually updated the options in the form.
Occasionally, we offer webinar with multiple time zones available. For example, we'll do a webinar and offer it at 2pm EST, 2pm GMT, and 2pm AEST.
Let me know if you have any questions about how we've set this up or how you can apply it at your own company, I'm happy to help.
Final note: If you opt to send your reminder emails and confirmation emails from Marketo (because Zoom's look awful), then these setup methods can still work, but you'll need an individual webhook for every webinar and you'll want to map multiple "join_url" fields on your Marketo Person/Lead object object (as many as a person could potentially register for at once).
- If you are going to send the confirmation & reminder emails from Marketo, but aren't going to use zoom registration forms/pages, then you only need to create the field "join_url" on the custom object.
Final note: If you opt to send your reminder emails and confirmation emails from Marketo (because Zoom's look awful), then these setup methods can still work, but you'll need an individual webhook for every webinar and you'll want to map multiple "join_url" fields on your "zoominfo" custom object (as many as a person could potentially register for at once).
In both these grafs I think you mean "the field 'join_url' on the Marketo Person/Lead object" -- the webhook doesn't map back to the CO, it maps back to the Person.
Whoops, thanks for that Sanford, typo on my part! I've updated the original post with the corrections.
Great tutorial. Just to add, people might face some issues in figuring out Zoom Api key and secret (this is because Zoom's documentation is old). To find api key and secret, you can do the following steps:
1. Go here: App Marketplace
2. Uncheck Intent to Publish
2. Enter App Name and Select "Account-level app" as app type
3. Select JWT Credentials.
4. Once you submit with relevant info, you will see your API key and secret. Enter those in your Marketo webinar tokens.
I've just completed a Marketo / Zoom integration & used this guide extensively - many thanks.
Just one question - in your smart campaign 'Registration Flow', should the first flow action be 'Call Webhook' - Zoom webinar (or whatever the webhook is called). Otherwise, how do the attendees in Marketo show in Zoom?
I may have missed something in your post but I had to do this for it to work for me.
@Barry Dupont - you are right. In the flow, call the webhook. Along with that change the webinar program status if any.
Yep, As Gursimran said, it's the first step in your flow.
Couple of tips:
Anyone built some form of integration not using JWT but with oauth? so essentially, chucking the Zoom guide out and DIY?
So if anyone is in the same position that I was - had no access to JWT credentials, or you don't want to deal with the api keys and secrets blah blah, and you're willing to settle for a simple integration (we're using our own landing pages and invitation emails while letting Zoom send confirmation and reminder emails to people who have registered)
I reversed engineered Zoom's webinar registration form to create webhook like this:
The minimum payload is:
first_name={{lead.First Name}}&last_name={{lead.Last Name}}&email={{lead.Email Address}}&questions=[{"name":"first_name","value":"{{lead.First Name}}"},"name":"last_name","value":"{{lead.Last Name}}"},"name":"email","value":"{{lead.Email Address}}"},"name":"confirm_email","value":"{{lead.Email Address}}"}]&custom_questions=[]
The webhook does provide a json response so you can map responses as well: