Unlocking Powerful Workflow Automation: Practical Applications of Marketo Engage REST API
Discover the power of the Marketo Engage REST API, empowering you to streamline your marketing operations workflows, reduce manual labor, and free up time for revenue-driving activities. Using REST API will enable you to leverage automation tools such as Zapier to trigger automated workflows and programming languages like Python to perform actions in bulk.
In this webinar, you will:
- Learn what the Marketo Engage REST API is, how to create your first API user, and how to monitor API usage across different users.
- Understand how the REST API can be used from within tools like Zapier and programming languages like Python.
- Be inspired by real-world use cases of how the REST API can be used to streamline typical Marketing Operation workflows such as merging leads, creating UTM tracking programs, and extracting activity data.
Hi, everyone. So as Amy mentioned, I鈥檒l be walking you through today how you can unlock powerful workflow automation by using the REST API within Marketo. And I鈥檒l be showing you three practical applications that you can take away and start doing right now in your Marketo instance. A bit about me first.
I鈥檓 the marketing operations manager at Telnex, and I鈥檓 also a blogger and freelancer at the Workflow Pro. Some of you might have come across my blog already. And I put my LinkedIn QR code here if anyone wants to connect with me. A little bit of fun facts about me. And I live in San Diego. I鈥檓 obviously from Ireland. I don鈥檛 have a typical San Diego accent. And I was born in South Africa, so I鈥檝e bounced around quite a bit from South Africa to Ireland to now San Diego. Like a typical San Diego, I love volleyball, but I actually dislike surfing. It鈥檚 one of the most challenging things I鈥檝e ever tried, and I just haven鈥檛 gotten the hang of it. So it鈥檚 on the back burner for now.
And in Ireland, I studied mechanical engineering. I love problem solving. I love data analysis. But then I came to the US to do a master鈥檚 in entrepreneurship, and that pushed me more towards the business side of things. And I think I found a good home in marketing operations now with Telnex because I鈥檓 still doing data analysis. I鈥檓 still doing automation and problem solving. I鈥檓 just doing it in the business domain as opposed to the engineering domain. And when it comes to the Marketo API, it was a bit of a baptism of fire when I first joined Telnex. There were lots of repetitive processes, and as the single Marketo person at my company, at a small startup of about 200 people, it was sucking up a lot of my time every day to keep doing these repetitive tasks. And my engineering team was using Zapier. So I started looking at using Zapier and the Marketo API to automate a lot of these processes to free up time I could put towards more strategic projects. So that鈥檚 why I really got involved with Marketo API and learned to inside out. And that鈥檚 why I鈥檓 here today to share it all with you.
So I鈥檓 gonna cover what is an API. So an API is an application programming interface, and it鈥檚 a way for two or more programs to communicate with each other. And I know me giving you this technical definition of the internet doesn鈥檛 help explain it any better. So I鈥檇 like to give an analogy that will help you understand what an API is. So you can imagine API documentation, like a restaurant menu for a software. When you鈥檙e looking at the restaurant menu, you鈥檒l see dishes with descriptions. And this is equivalent to all the API requests you can make with an API documentation. And then when you select a certain dish and you tell the waiter, the waiter then goes into the kitchen, tells the chef, the chef prepares the meal, and then the meal gets brought back to you. You don鈥檛 see what goes on behind the scenes in the kitchen. You just get a meal delivered to your table. And this is how an API request is made. So once you select an API request from the documentation, you make that request, you send information away, something happens in the background on another computer, and then you get information back, which is similar to the meal being delivered to your table. So this is a nice analogy that you can remember when you鈥檙e trying to think of how APIs work.
And there are two main request types that you鈥檒l be using, especially with the Marketo API. One is a GET request, which you use to retrieve information from a system or get information from Marketo in this case. And then there鈥檚 a POST request, which is used to send information to a system. And in Marketo, we typically use this for making updates within our Marketo instance, when it comes to assets or making updates to leads within the instance.
And why are API so important? The reason for this is that all software platforms communicate with each other via APIs. It鈥檚 the stitching that connects the modern software ecosystem together. And all of the most popular platforms, you know all have an API, LinkedIn, Google Sheets, Gmail, Facebook, and Marketo. That鈥檚 why we鈥檙e here today. So it鈥檚 very important that you at least have an understanding of what they are, because this is how modern software communicates with one another.
So let鈥檚 see how we can start using the API within Marketo. The very first step, and you will need admin permissions in order to do this, is to create an API role if you don鈥檛 have one already.
So when you go to the admin section, you go to users and roles down here, and then you select on roles over here, and then we鈥檙e going to create a new role.
And we鈥檙e going to give that role a name. We鈥檙e going to select access API here, and then we鈥檙e going to click create. An important tip is whenever you鈥檙e creating a role within Marketo, it鈥檚 always to assign the minimum permissions needed for a role. So if you鈥檙e getting a third party contractor in to design your email templates, you鈥檇 only give them access to the design studio. You wouldn鈥檛 give them access to any of these other permissions here. And in this case, because we鈥檙e keeping this internally in the company, this is just API access for you. We鈥檙e going to assign all of the API permissions to you so you can test out all the functionality of the Marketo API.
But say, for example, you鈥檙e creating an API role, which you want to connect to a business intelligence tool, like Domo or Tableau or Power BI. In this case, you鈥檇 only give that tool read-only access to the business intelligence tool. Read-only access to your data, you wouldn鈥檛 give it access to anything else. So that鈥檚 why it鈥檚 always important to give the minimum permissions needed when you鈥檙e creating a role.
And then once we have the new role created, we want to create an API user within this role.
So we鈥檙e going to go to the users and role sections again, we鈥檙e going to go to users, and we鈥檙e going to invite a new user. We鈥檙e going to enter the email here. And the email doesn鈥檛 really matter for an API user because as we鈥檒l see later on, there is no actual invite email sent for an API user. And then we just give it a first name and a last name. You can make these as descriptive as possible if you want, just to let people know that this is your API user for testing the API.
And then we select API only down here to ensure that this user only has API access. And we select the role that we created previously.
Then we hit next. And then all we have to do, as I mentioned before, an invitation is not required for API only users. So that鈥檚 why the email didn鈥檛 matter. All we do is hit send and that鈥檚 our API user created.
And then in order to get our API credentials, which we鈥檒l need for making our first API requests, we need to create a launch point service for this new API user.
So if you go to the admin section, you click on launch point, you click this new dropdown here, and then we鈥檙e going to create a new service. We enter the display name. We select the custom service type. We enter descriptions and say, hey, this is our launch point service for testing at the Marketo API. And then we select the API user that we just created in the previous slide.
And then if you click in to that new launch point service, you鈥檒l be able to get the client ID and the client secret that you鈥檒l need to make your first API requests.
And it鈥檚 important that you don鈥檛 share these credentials with anyone, they鈥檙e the keys to the castle. If anyone has access to these credentials and they鈥檝e got bad intent, they could delete leads within your Marketo instance, they could delete programs and delete all sorts of other assets or extract data from your Marketo instance. So it鈥檚 very important that, you know, if you鈥檙e looking for help in the Marketo forum or you鈥檙e looking for help on Stack Overflow or somewhere else online, never share your API credentials in there because then they鈥檙e publicly exposed. And if you ever do do that, delete the API launch point service as soon as possible so that no one can use those credentials.
Okay, so once we鈥檝e created our launch point service, before we start making API requests, we first need to make sure that all the current processes we have using the API, like all our connected platforms, need to make sure that they鈥檙e below the API usage thresholds of our Marketo instance. So if we go to the web services section within admin, we鈥檒l see this little panel here, which shows us our REST API usage and our bulk API usage. The only difference between these two types of API within Marketo is that the REST API is more useful for modifying assets, modifying leads, and making updates within Marketo. Whereas the bulk export API is more useful when you want to extract large amounts of data from Marketo. And we have an example later on where we鈥檙e extracting people鈥檚 email activity from Marketo. That鈥檚 a case where we鈥檇 use the bulk export API because it鈥檚 specifically tailored to extract large amounts of data from Marketo.
So that鈥檚 the difference between those two.
And if you want to take a look at our REST API usage breakdown in the last seven days, we can click on this hyperlink here and it opens up this window where we can see the API usage for all of our API users over the past seven days.
And we can do something very similar for the bulk export API, where if we click on this hyperlink here, it then gives us a breakdown over the past seven days of how much megabytes each user is using. And you鈥檒l notice that the quota for the REST API is 50,000 requests per day in my Marketo instance. It might be different in your Marketo instance, you can always purchase more if you need it.
So this is measured in calls per day for the normal API, but for the bulk extract API, it鈥檚 actually measured in megabytes. So you鈥檝e got a limit of 500 megabytes per day by default, but then again, your instance might be different.
So you want to make sure before you start building any new workflows using the Marketo API, that all your limits with the bulk API and the normal API are below their thresholds.
And it鈥檚 very important to have one API user per connected service. So you can see here for like segment, we鈥檝e got a dedicated user for Data Grail, we鈥檝e got a dedicated user. And to tell you why this is so important, I鈥檒l tell you a story of when I joined Telnex, it was a year or two in, and we were exceeding our 50,000 API requests per day quota. And it looked like it was coming from Zapier. And I couldn鈥檛 figure out, why is Zapier using so many calls? And it was especially happening on a Saturday and Sunday. And I鈥檓 like, that鈥檚 so strange. Like most of our workflows in Zapier were a B2B company. We shouldn鈥檛 be having such a high workload on Saturday and Sunday.
And then just by coincidence, I was in our business intelligence tool, Domo. And I noticed that our Marketo datasets, which were extracting from Domo, were running on Saturday and Sunday. And then the connection happened in my head. I was like, oh, maybe the Domo integration is using the segment API credentials. Sorry, is using the Zapier API credentials. So that鈥檚 why it looked like all of these API requests that were coming from Zapier, they were actually coming from Domo instead. So that鈥檚 why it was so confusing. That鈥檚 why it鈥檚 better for each connected platform you want to connect to Marketo. Make sure you have a dedicated API user for each service. So then you can see a breakdown day over day separated out and they鈥檙e not mixed together. Like in that story I told you where all the Domo and Zapier requests were all mixed together under the Zapier user. So that鈥檚 what you want to avoid. You want to have a nice breakdown like this per user.
Okay, so now we鈥檝e created our launch point service to get our API credentials. We鈥檝e made sure that all our current connections and all our current workflows are below all our Marketo API usage thresholds. And now the next part of this is taking those API credentials that you have and making your first requests. I highly recommend using Postman to do this. It鈥檚 a free API testing tool. And if you check the resources module for the Marketo API quick start guide, it shows you how to make your first request using Postman. And Postman has a very easy to use feature that allows you to take any request and get the code in over 20 different programming languages to make that exact same request. So if you select Python, for example, it鈥檒l give you the Python code to make the exact same requests in Python. So it鈥檚 very easy to go from Postman to code. And then if you want to make requests within an I-PASS tool such as Zapier or Workado, you can then take that Python code or code in your favorite programming language and then build those into a code step in Zapier or Workado or something like that.
And then this blog post also walks you through your API limits, which are things like you can鈥檛 make more than 10 concurrent API requests at once, or you can鈥檛 make more than a certain number of requests every minute. It walks you through these limits.
So this is a great place to go when you鈥檙e ready to start making your first API requests. And for the next part of the presentation, I鈥檓 going to inspire you to take those next steps and show you why you should be interested in getting started with the API.
So the very first one is doing data analysis with ChatGPT. And in this case, I鈥檓 using it to find the best send time for all the leads in my Marketo instance, but you can take the exact same methodology here and use it for any data analysis within Marketo. So the very first step is we鈥檙e going to export and gather our email activity using the API and a Python script. We鈥檙e going to upload this data to ChatGPT and ask it to get the best send time for each lead in the file that we uploaded. We鈥檙e then going to import that best send time into Marketo and then use this best send time to send out our emails.
So the very first part of this, as I mentioned, is we extract the email activity, which is the email delivered times and the email open times for the past 90 days from our Marketo instance, using the API within a Python script. And in the blog post within the resources section, you can find it there. I actually share the Python code that鈥檚 necessary to do this. So obviously you鈥檙e only getting started with the API. You might not have programming experience, but if you have access to a developer at your company, you kind of walk them through what you鈥檙e trying to achieve and they can just copy and paste that code to get started.
So once we run that Python script, this is what the output looks like, where we鈥檝e got a lead ID in this column. We鈥檝e got all the emails that were delivered to this lead over the past 90 days. And then we鈥檝e got all the opened and delivered times for each of these emails.
And that is the input that we upload to ChatGPT. And we say, hey, ChatGPT, this file contains the delivered and open times for the emails received by each lead. Please determine the best time of day to email these leads to maximize the chances that they will open future emails. Note that the times are in UTC time. So whenever you鈥檙e using the bulk export API, the times it gives you, which we saw on that Google sheet are in UTC time. So we need to make ChatGPT aware of that. And when I鈥檓 asking for the output time, the optimum send time, I ask it to give it to me in the time zone of my Marketo instance, which for me is central district time. So be aware of that. So then the final part of this is I ask it to provide an output table containing the lead ID and the optimum send time in central district time where the time should be to the nearest hour as a digit from one to 24.
And just to answer a few quick questions, which some of you might have when it comes to data privacy concerns when using ChatGPT.
As a default, OpenAI retains your data for 30 days for operational and security purposes, just to make sure you鈥檙e not violating their fair usage policy. But then after the 30 days, if you鈥檙e using the API, it does not use your data to improve its models. If you鈥檙e using the browser, the data may be used to improve the models, but there鈥檚 an option to deactivate this in the settings. And if you鈥檝e got a team account, this is actually deactivated by default. So you can see here, the text is quite small, but for my company, whenever I鈥檓 in the ChatGPT browser, at the very bottom, it says Telnex official workspaces, chats aren鈥檛 used to train our models.
And some just general recommendations, always ensure compliance with local data regulations and anonymize the data whenever possible. So when we looked at the previous Google Sheets slide, let me push this, you鈥檒l notice here that this is all anonymized. There鈥檚 no need to worry here because we don鈥檛 have any PII in here. It鈥檚 all a lead ID and you can鈥檛 link this lead ID to any person based on the data that鈥檚 in this Google Sheet alone. So always anonymize the data wherever possible. And this is the output that we get from ChatGPT, where we get a lead ID, and then we get the optimum send time for each lead ID based on their previous email engagement when they opened all our emails in the past.
And then all we have to do is do a mapping between lead ID and email address. And then we鈥檒l import the lead ID and the email address, and then we鈥檒l import all these optimum send times with the email address into our Marketo instance using the import list feature.
And then the final part of this, once all these best send times have been uploaded to all our leads, the way we send emails at the best send time for each person is in the flow of our smart campaigns. We schedule the campaign to start running at 12 a.m. midnight, and then we鈥檝e got 24 send email and 23 wait steps, actually 24 send email steps and 23 wait steps. And it鈥檚 a bit convoluted to set up the first time, but once you have the setup, you can just clone the smart campaign the next time you want to send an email, so it鈥檚 much easier.
But we start at the very top and we say, if the best send time is zero, meaning midnight, then let鈥檚 send the email, else if it鈥檚 not, we鈥檙e not gonna do anything, we鈥檙e gonna wait another hour, and then we鈥檒l check if the best send time is 1 a.m., let鈥檚 send to all the people whose best send time is 1 a.m., then let鈥檚 wait another hour, let鈥檚 send to people whose best send time is 2 a.m., and so on until we鈥檝e gone through all the hours of the 24 hour clock. So it is a pain to set up once, but once you do it once, you can just clone it and repeat it.
The next use case I wanna walk you through is merging leads. I know it鈥檚 an issue that a lot of people struggle with in Marketo, and when I first joined Telnex, I had a backlog of 30,000 duplicates to merge, and we鈥檙e coming up to our contract renewal, and we鈥檙e gonna have to go to a new database tier size and pay an increased price because of these 30,000 duplicates, so I needed to find a way to merge them. Obviously, merging 30,000 duplicates by hand manually is not feasible, so I started looking at how we could use the API to automate this process, and there are two main methods. There was one using a Python script to merge the backlog of duplicates that we had, and then the second was having live merging using Zapier, which is as duplicates get created, merge them so that a backlog doesn鈥檛 build up in future. Obviously, if you can solve the issue for the duplicates, you need to do that. You should do that first, and then there鈥檚 no need for the Zapier workflow to do the live merging, but in the case for my company, just the way processes are set up, we can鈥檛 avoid duplicates, so we needed this live merging option with Zapier.
So the workflow, I鈥檒l walk through the live merging workflow first because it鈥檚 a bit easier to understand. The very first thing we do is we create custom rules for winning field values, and the reason why this is important, if you鈥檝e ever merged leads using the graphic interface, when you鈥檙e about to merge two leads together, it gives you an option to choose, hey, for lead status here, I want to choose renurture rather than prospect. You can choose which field values are prioritized when you鈥檙e merging leads. However, unfortunately, when you鈥檙e making the merge API request, it doesn鈥檛 give you the option to prioritize field values when you鈥檙e doing that merge. So what we have to do instead is we have to compare our two leads together in the workflow, and we have to store all these winning field values that we want to be on the winning lead. So in this case, we want the SQL value of lead status to be prioritized over no one because this lead is further down the funnel, so we want to keep that value. So on the winning lead, we want SQL to be prioritized above no one. We want the true value of unsubscribed to be prioritized over the false value.
And we want page search to be prioritized above organic when it comes to lead source. So we鈥檒l define rules for all the fields that are important to us so that when there鈥檚 discrepancies between the field values, between the two leads, we know which field value to pick and we want to be on the winning lead. So we鈥檒l store all these winning field values off to the side for the moment. We鈥檒l complete the merge, and then we鈥檒l update the winning lead with all these winning field values.
So that鈥檚 what it looks like here in the Zapier workflow where we get the duplicate leads, we select the winning field values that we want to be on the winning lead, we merge the leads together, and then we update the winning lead with the winning field values. And this is how we do it in Zapier where as soon as a lead gets, duplicate leads gets created in Marketo, we add them to a static list and that triggers the Zapier workflow to merge those two leads together. So this is very good on a live basis or go forward basis where you鈥檙e merging duplicates as soon as they are created.
But if you鈥檝e got a backlog, as I mentioned before of like 30,000 duplicates, this is where you鈥檇 use a Python script, but the logic is very similar where you鈥檙e still doing the exact same thing where these two things here are just loops, which loop through all the duplicates in your Marketo instance, but you鈥檙e still doing the exact same thing. You鈥檙e still getting the duplicates that exist for an email address. You鈥檙e choosing the winning field values that you want to be on the winning lead. You鈥檙e gonna merge those leads together. Then you鈥檙e gonna update the winning lead with those winning field values. And then you鈥檙e just gonna loop again and repeat this process. And in this case, we鈥檙e repeating the process until we鈥檝e merged all the leads or we鈥檝e run out of token life on our Marketo access token. So the Marketo access token that you need to make API requests, this lets Marketo know, hey, I鈥檝e got the necessary permission to make these requests. And you get this using your API credentials that I showed you how to get at the very start of this presentation. It only lasts for an hour. So that鈥檚 why we loop through until we鈥檝e merged all our duplicates or we鈥檝e exceeded the one hour of our token life. So we have to get a new token and then repeat the process. So it鈥檚 just a for loop doing these exact, it鈥檚 just a for loop doing these exact same three actions over and over again until we鈥檝e merged all our duplicates. And then we celebrate at the very end once they鈥檙e all merged. And then the third and final use case that I鈥檇 like to walk you through today is how you can create UTM tracking programs for all your ad campaigns. So the way the workflow is triggered is that someone on our demand generation team will fill out a Google form and this triggers the workflow to start running in Zapier. We create UTM parameters based on what was submitted in the Google form. And then we create a Marketo program to track these UTM parameters. And you can check the resources module for the UTM tracking blog. And I also forgot to mention that the blogs for the live merging and the bulk merging are also in the resources section. So check that out. Any of the use cases I鈥檝e gone through here, there is a blog and a walkthrough video in each of those blogs. So you can get more detail and in-depth walkthroughs there.
So the very start of this is that we have a Google form where we ask for the campaign name and we ask them to put it in a particular format with the year, the month and the campaign name. This is the destination URL on our website where the ad goes to. And then we ask them to choose the platform, whether it鈥檚 advertising or page search. They select advertising, we ask them to choose between LinkedIn, Facebook. If it鈥檚 page search, we ask them to choose between Google, DuckDuckGo, Bing and so on. And then once that Google form gets submitted, we take all the information that was submitted in the form fill and we go to a Google sheet and we build UTM parameters using Google sheets formulas within the Google sheet. So as soon as the information gets populated in the sheet, the Google sheets formulas create the UTM parameters and then we extract those in step number three here.
And then we鈥檝e got the Google form form form. And then we鈥檝e got five consecutive Marketo API requests where we鈥檙e getting the access token. And then the end result is that we want to create a Marketo program within the right folder. So at my company, the folder hierarchy we have is that we have a year folder for all our paid campaigns, a month folder, and then we create the program within the latest month folder. So these steps here either get the latest year folder or they create it and they either get the latest month folder or they create it.
And then we find the latest Marketo program for that sub channel. So when they fill out that Google form and they said, hey, it鈥檚 a Facebook campaign, we鈥檙e gonna find the latest Facebook program that we鈥檙e going to clone because obviously a Facebook program we created two years ago might be up to date. So we wanna clone the most recent Facebook program because it鈥檚 the most likely to be up to date.
And then we clone this Marketo program. So we鈥檙e gonna clone the latest Marketo program and put it in the latest month folder.
And then we鈥檙e gonna get the program ID, and then we鈥檙e gonna update the program tokens with all the UTM parameters and attribution information that we got from the form fill. And these program tokens are then used in the flow steps of the smart campaigns within this program to update the person鈥檚 first search attribution or last search attribution.
And then we also update all the smart campaign descriptions. In this case, I take the UTM parameters and I put those in the smart campaign descriptions because I use those UTM parameters in the smart lists within the smart campaigns. So it鈥檚 very easy for me to go to the description, copy the UTM parameters, and then put them in the smart list. And again, a lot of the stuff I鈥檓 saying here might not quite make sense because I鈥檓 doing it at a very high level. But again, if you wanna check this out in more detail, you can go to the blog post in the resources section. And again, there鈥檚 a YouTube walkthrough video to walk you through it all.
So I鈥檝e shown you three very interesting use cases that have hopefully got you thinking. And as maybe a potential future webinar, we鈥檇 like to know, we鈥檇 like you to pick which of these three you鈥檇 like us to dive into more, or maybe there鈥檚 something else you wanna hear about, or maybe option E, you don鈥檛 even know where to start and you鈥檙e just looking to make your first requests. If you vote on these, then this will inform a future webinar that we鈥檒l have. And we can maybe go through another use case, or we can show you how to make your first request using something like Postman and then transition to code and then to something like Zapier. So I鈥檒l give you a minute or two to make your votes and then I鈥檒l wrap up the presentation with our key takeaways and the steps you can start taking today.
Okay.
Okay, let鈥檚 see if we can get to 150 and then I鈥檒l move on.
Okay, I think I will move on here because I know Amy has a lot of soft percent, but I think 140, 61% isn鈥檛 bad of registrants. Okay.
Okay, so it seems like merging duplicates is the most popular one so far.
And yeah, we鈥檒l let you know if we do a followup presentation on this and we can walk you through both the live merging and the bulk merging that I set up. So yeah, I know this is an issue for a lot of people and it鈥檚 a pain to merge people manually or pay for a third party tool. So yeah, we鈥檒l let you know if we have plans to make that webinar in the future.
And some other use cases just to get you thinking about what鈥檚 possible is, at my company we clone our Marketo programs at the start of every month or the start of every quarter depending on what cadence we want. And that鈥檚 something you can do with Marketo API and you can use Zapier again, where it triggers at the start of every month or every quarter to clone all these programs. You can update period costs in bulk. So if you鈥檝e got all your paid advertising spend for all your different channels, you can map these to their corresponding Marketo programs and update all the period costs over a time range for each Marketo program. And you can also automate your email newsletter creation. So you give a Google Sheet to your content team, they fill out the Google Sheet, they press a button, then via API this creates an email program in Marketo, creates the email and then takes all the content from the Google Sheet and pushes it in to your Marketo email so you can also streamline and automate your whole newsletter creation process.
The three main things I鈥檇 like you guys to remember from today is that when you鈥檙e creating an API role, always give the minimum permissions necessary. If it鈥檚 an email designer, only give them access to the design studio. If it鈥檚 a BI tool, only give them access to the read access, only give them access to the read features of the API role. Have a single API user per service so it鈥檚 easy to see the breakdown of how much each user is using per day and be extremely careful when sharing your API credentials because of the keys to the castle and someone can do a lot of damage if they鈥檝e got bad intent to your Marketo instance.
And then you can start taking the next steps today. Go to web services, check all your API usage is below thresholds before you start making any more API calls for new workflows. Create your API role and your API user. And again, make sure that each service has their own dedicated API user. And then take the credentials from this launch point service that you create. Go over to the Marketo API Quickstart guide and then you can start making your first requests using a testing tool like Postman. And then you can see a transition to code and Zapier. And then finally start thinking about what you can automate using the API. If there鈥檚 anything repetitive that you鈥檙e doing, that鈥檚 a good indication that you could use the API to automate that process and save time in your day to day.
Now we鈥檒l get to the questions that you left for Tyran. If you haven鈥檛 already, please post your questions in the Q&A box. And in the meantime, we鈥檒l start with a couple of questions that we have received in the Q&A section.
So Tyran, maybe you can start from this question. How do you know which set of records among all the duplicates are the duplicates of each other? Do you run a smart campaign per record? So I think the question is asking like, how do I get the duplicates into the Python scriptures up here? So you鈥檝e got it in your database section where you can see all your possible duplicates. So what you have to do there is export that as a list view and make sure that the list view contains all the fields you care about when merging. So if you care about the lead source, make sure that鈥檚 in there. If you care about their lead score, make sure that鈥檚 in there and export that list view of the possible duplicates smart list from your database. And that鈥檚 what you bring into the Python script. Or if it鈥檚 Zapier, there鈥檚 a trigger for a duplicate being created, and then you can add them to a list, and then you can use that add to list trigger to trigger the Zapier workflow to run. So yeah, for me, that鈥檚 how we did it. Our possible duplicate smart list is based on email address, and that鈥檚 what we鈥檙e using to identify duplicates in either the smart list or the smart campaign that adds them to the static list to get them into Zapier.
Okay, so hopefully that helps. And please just leave questions in the Q&A section, or if you wanna chat with other attendees, leverage the attendee chat as well to further discuss this topic. Another question鈥檚 on API user creation. Does the email address matter since it鈥檚 not a true user account? So instead of using real email address, can you use fake email address? I鈥檓 thinking about this from a scalability perspective where a new API user would be created per integration. Yep, the email address doesn鈥檛 matter at all. So you can make it something descriptive, like apitestingattheworkflowpro.com is the example I had. Just make sure that it鈥檚 somewhat indicative of what the role will be doing or what the user will be doing.
Okay, great. So another question here is about what are the best practices for removing OAPI custom services? Is it good to delete them straight away? Data records will still have their references. Also, how to interpret the API usage, requests made in the last seven days tab in admin section to measure the usage rate, any documentation around it.
Yeah, if you go to the Marketo API Quick Start Guide, it does talk about documentation for API limits and also how you can monitor your API usage, but I鈥檒l just go back to the slide quickly.
So they鈥檙e asking how you can interpret this. These are all your API users, and you can see how much each is using per day, and then the total sum down the bottom. So for me, I want this total sum to be below 50,000 every day.
And when it comes to deleting old services, this is a good place to check first. Like you鈥檇 want to make sure that before I delete the Data Grail integration, I wanna see zeros here for the past seven days, or actually it won鈥檛 appear in here at all. So if it鈥檚 made zero requests, I鈥檓 pretty sure it doesn鈥檛 appear in this report at all. I鈥檓 the same for the Bulk Extract API. So that鈥檚 a good indication that you can delete it because it鈥檚 not making any API requests. So that鈥檚 what I do first before deleting any API users. Make sure that the usage for the Bulk API and the normal API is zero before you do so. And then you can delete it.
Okay, great. One more question here, and we may be at time. There鈥檚 a question about, could you use the API to export subscription preferences for the entire database to a CSV? Yes, you could. So if you wanted to export a list, you could export a list instead where you鈥檇 build a smart list, you鈥檇 bring in all the fields you鈥檙e interested about, all the subscription fields into a list view, and then export that. The Bulk Extract API is more useful for like getting activity data, like I showed you email activity. But when you want to export fields on leads, I think building a smart list and then getting a list view with all those fields in it is a much easier way to go than just using the API. Okay, thank you, Tarun, for answering the questions. We are at time. And so we will be going through the rest of the questions at the end and get Tarun鈥檚 input and writing. So be sure to follow the community posts that we share in the resource section. We hope to see you in our next webinar. And if you would like to ask further questions from the experts, please join the Marketo Engage Champion Office Hour on May 9th. Thank you and we鈥檒l see you next time.
Join the conversation on the .