The power of Zapier & Marketo’s Custom Activities API

Hey, y’all…thanks for clicking on my article. If you’re a MOPs guy/gal like me, there’s a good chance that at some point in time, you’ve had to integrate another tool into Marketo…shoutout to Zapier 🙌🏻

There are out-of-the-box triggers and actions for Marketo in Zapier, but they’re kinda lame and leave a lot to be desired. So in come webhooks and Marketo’s custom activities API 🎊🎉

Let’s say you have an online learning platform to help with product adoption that is hosted on an LMS, or external community forum for users to ask questions/post ideas, or even a virtual event platform whose integration with Marketo isn’t as great as the sales rep said it was (😂). Honestly, the use cases are endless, but for this example, let’s use the online learning platform.

Use case: We want to track course completions in our LMS (hosted in Teachable) so we can nurture new users and drive product adoption.

Step 1: Create your custom activity in Marketo: Here are the official docs from Marketo, but go to Admin > Custom Activities > New Custom Activity. Once you build your custom activity, you’ll need to approve it so you get the custom activity ID which is important for later.

No alt text provided for this image
No alt text provided for this image

Step 2: Build your Zap: Trigger (luckily for us, Zapier has some pretty solid Teachable triggers, so we can use their out of the box “Course Completed” trigger, otherwise, you can also leverage Zapier’s “Catch Hook” trigger to give you more flexibility when it comes to triggering a zap from other tools)

No alt text provided for this image

Step 3: Create or Update Lead in Marketo: Pretty self-explanatory here, but you can pass through field information, for example, if this is a new lead in Marketo, you can set the Person Source or any other field depending on the use case.

No alt text provided for this image

Step 4: Get your Marketo API Authentication Key: Here’s where you’ll use a Zapier “GET” Webhook to ask permission from your Marketo instance to send requests via the custom activities API. The URL will include your instance ID and the client_id/client_secret will be from your Zapier launch point service you’ve set up to connect your Marketo instance to Zapier.

No alt text provided for this image

Step 6: Post to the lead record via the custom activity API: Here we are using a “Custom Request” webhook in Zapier to POST the custom activity data to the correct lead record. The URL uses your Marketo instance ID (same as the previous step), the leadID token from Step 3, the custom activity ID from Step 1, the Course Name for the custom activity’s primary attribute value from the zap trigger, and the current date/time from Zapier (token found here). We are also using the API access token from Step 5.

No alt text provided for this image
No alt text provided for this image

Finished Product:🤘🏻 When it’s all said and done, you are left with custom triggers and filter inside Marketo that can power smart campaigns (think sending nurture emails, scoring, alerting the account manager, etc…) It also shows up as a custom activity on the lead’s activity history record in Marketo as well.

No alt text provided for this image

See how much cleaner that is rather than using proxy fields to trigger automation or having a bunch of operational lists that Zapier is adding leads to 🤘🏻

If you’d made it all the way down here, wow! Thanks for sticking with me, hopefully, you learned something along the way. Cya ✌🏻

About The Author — Brad Couture
Brad Couture

Related free workshops

Button in Google Sheets to trigger a Google Script to send multiple rows to Zapier

Zapier Import Multiple Rows from Google Sheets

Anyone who has worked with Google Sheets in Zapier is likely to have run into the issue of needing to import more than the 20-row maximum imposed when using the Google Sheets app. This post will show you how to overcome this limitation and import multiple rows from Google Sheets into Zapier using some JavaScript and webhooks.

Become a member Launches Career and Community Platform for Marketing Operations Professionals

Community-led platform offers networking opportunities, career development tools, and educational resources for more than 3,000 “MO Pros” IRVINE—, a new platform for marketing operations professionals, launched today. The website aims to serve the 12 million global professionals in the industry—starting with the 2,800 members of the existing MO Pros community:

Become a member
Zapier nested looping horizontal flow diagram

Zapier Nested Looping using Webhooks & Python

Banging your head against the wall because of the 500 iteration limit on the “Looping by Zapier” action? Well make like Freddie Mercury and break free by using webhooks and Python in Zapier to achieve nested looping so that you can do as many iterations as you need!

Become a member