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

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 ✌🏻

Post a comment