5 Marketing Ops Tasks That AI Can Do for You

Marketing Operations specialists are drowning in repetitive tasks.

Managing lead databases and setting up campaigns takes countless hours of manual work – not to mention the constant stream of requests from stakeholders.

And while these tasks are critical, they take away from strategic initiatives that can transform their organization’s marketing performance.

This is where AI Agents are changing the game.

Unlike traditional automation, AI Agents can understand context, make their own decisions, and execute complex, multi-step tasks that are normally reserved for humans.

At Revenue Pulse, we’ve built “Otto”: your AI teammate for Marketing Operations.

Otto seamlessly integrates with your Marketo instance, and lives in the apps you already use; you can chat with it in Slack and even tag it in Asana (or other ticketing systems), just like you would with any other teammate.

Otto is constantly learning new skills too. And while it would be impossible to go through every single thing Otto can do right now, we’re excited to showcase 5 tasks that most MOPs pros would be more than happy to delegate.

Let’s jump right in!

1. Merge duplicates in Marketo

In Slack, ask Otto to find a specific lead. Otto will search your Marketo instance for that lead and display any duplicates. Tell Otto to merge the records, and it will perform the merge for you automatically. You can then switch to Marketo to confirm there is now a single record for that lead. If needed, you can repeat the same steps for other leads without leaving Slack. 

2. Create webinar programs in Marketo (from Asana)

In Asana, simply comment “Otto, work on this” on a webinar creation ticket. Otto will then create a webinar program in Marketo from your template. It’ll place the program in the correct folder, leave Smart Campaigns deactivated, and fill the required tokens. You can see the program start to appear in Marketo as the build completes. Otto then posts a brief summary of what it created, so you know exactly what changed!

3. Send test emails

Once your webinar program is created, you can also ask Otto to send a sample of the follow-up email so you can review the exact content and formatting. After you confirm it looks right, tell Otto to activate the Smart Campaigns for attendees and no-shows. Otto turns those campaigns on and lets you know when everything is ready.

4. Create Salesforce campaigns that sync with Marketo programs

This time, let’s head back to Slack. When you ask Otto to create a program, it’ll build it in Marketo and update tokens. But it doesn’t end there. Otto will also create a matching Salesforce campaign with the required campaign member statuses. The statuses in Salesforce match the ones in Marketo, so both systems are aligned.

5. Import lists to Marketo

Send Otto a lead file (such as a CSV) and tell it which static list to import to. Otto will find the list, run the import, and report back with the results—including how many leads were processed and any failures that occurred. Just refresh your Marketo list to see the leads appear!

These are just a few examples of the time-consuming and repetitive MOPs tasks that Otto can take off your plate! And we’re developing new features and capabilities for Otto every day. Follow us here to be the first to know when new skills become available.

If you want to learn more about how Otto can help your team, book a personalized walk-through here.

Meet Otto: An RP AI Service Solution [Webinar]

We’re incredibly excited for you to meet Otto – our new service solution that’s going to change Marketing and Campaign Ops forever.

Join Joseph Peters, Darrell Alfonso, Lucas Gonçalves, and Andy Caron in the webinar above to see Otto in action!

Click the button below to book your personalized walk-through of Otto today.

Which Is the Best AI for Email Copywriting? [May 2025]

Over the past few months, major LLMs like Anthropic’s Claude 3.5 Sonnet, Claude 3.7 Sonnet, and ChatGPT-4.5 have significantly improved in writing quality.

But with so many options available, which AI is the best for email copywriting?

To find out, we conducted an experiment that evaluated how different LLMs and AI-powered writing assistants produce marketing email copy. Click the button below to view the report (and the results!):

Note: This report was published on Tuesday, May 13th, 2025. Any new models or AI advancements after this date are not included in our testing!

Can AI Create More Jobs Than It Replaces?

Many marketers and professionals across industries share an understandable fear:

AI could soon make their roles obsolete.

Headlines over the past year regularly warn us that sophisticated AI models could replace numerous jobs.

But is that the full story? Not necessarily.

There’s a compelling line of thought that AI and automation might do precisely the opposite in many scenarios: When certain processes become more efficient, demand skyrockets. And this leads to more headcount, not less.

So, instead of shrinking teams, AI can enable businesses to achieve more, which necessitates larger teams to handle increased workloads.

You don’t have to take our word for it either. Here’s a real-world scenario we experienced that showcases this idea in action ⬇️

(Note: We are discussing these ideas with a short- to mid-term timeframe in mind. AI advancements are moving so quickly that it’s impossible to predict how things will look even 5 years from now.)

pink line

Efficiency Gains Can
Create More Jobs

One of our clients (whose name we won’t disclose) had a team of 2 full-time campaign operations specialists who were overwhelmed by requests.

Each campaign took several hours, even days, of manual effort to complete. They had to clone programs, update emails, sync campaigns with Salesforce, and so on.

So, we came in and implemented a sophisticated ticketing system with robust automation that streamlined the entire process. The result was that the time to launch campaigns dropped dramatically.

The improvement was so pronounced that we all expected the team to do the same work with even fewer people.

Instead, the opposite happened.

With barriers removed and launch timelines shortened, the ease and speed of launching campaigns led to a massive surge in overall campaign volume. It quickly became too much for only two people to handle.

To keep up with demand, team headcount tripled from 2 to 6.

Greater efficiency led to more work, and ultimately, more people on the team.
 

Why Did This Happen?

It’s true that technology enables us to “do more with less.” But it doesn’t stop there. In reality, making something easier or faster often means people will do a lot more of it.

There’s a classic economic principle for this called Jevons’ Paradox. Put simply, it observes that increasing efficiency doesn’t always decrease consumption; in many cases, it increases it. This paradox originates from William Stanley Jevons. In the 19th century, when the use of coal became more efficient, Jevons noticed that coal consumption went up instead of down.

Think of AI and automation like expanding a highway. Initially, you might add lanes to ease congestion, with the expectation that there will be less crowded roads. But as traffic flows more freely, more drivers decide to use that route. Now the added lanes are starting to fill up. Before you know it, 2 lanes become 6 lanes (just as headcount tripled from 2 to 6 in our previous example).

The efficiency provided initially reduced traffic, but over the longer term, it increased demand.
 

AI as an Amplifier

This is where AI gets particularly exciting. It is the ultimate “efficiency gain” tool right now. LLMs (Large Language Models) and reasoning models from big players like OpenAI, Anthropic, and Google are rapidly improving, unlocking all sorts of new use cases and opportunities for amplified efficiency.

Broadly speaking, it’s helping knowledge workers across industries create content faster, generate data insights, streamline operational tasks, and more. At RP, we are constantly trying to push the envelope to integrate AI in safe and exciting ways.

And with Jevons’ Paradox in mind, AI becomes an amplifier that creates demand for more headcount, not a straight replacement for existing workers.

This has some major implications for those in leadership positions as well. A company that implements AI and robust automation, intending to reduce headcount, must strategically prepare for the possibility that the opposite could happen; more headcount could be needed due to increased demand.

Ultimately, successful AI implementation involves anticipating shifts in team structure, workload management, and workforce allocation. Businesses must become adept at not just deploying technology but also managing the growth and scalability that these innovations naturally encourage.

(If you’re looking for a starting point and a roadmap of what that AI implementation could look like for your company, check out our free AI Assessment Tool.)

pink line

While the fear that AI might render certain roles obsolete is understandable, we want to highlight the importance of staying optimistic and adaptable.

Things are changing very quickly, but it’s not all doom and gloom! AI has the potential to reshape jobs, unlock new pathways and possibilities, and create unprecedented demand.

If you have any questions about how your company can boost marketing operations efficiency using AI and automation, you can book a free 30-minute chat with us here.

What are AI Agents and Why Should Marketers Care?

A few weeks ago, Adobe announced a series of new AI-powered “agents” at Summit 2025.

These agents will be designed to assist marketers and streamline tasks within their existing workflows, covering a wide range of use cases within Adobe’s tools.

The Marketo Journey Builder, one of the newly announced agents, is particularly interesting to us. We’ll take a closer look at it below, but as the name suggests, it’s intended to help marketers build and optimize campaign journeys with much greater efficiency.

If the concept of an “AI agent” is new to you, don’t worry. In this article, we’re going to explore:

  • What AI agents are (and why you should care)
  • Adobe’s new AI agents
  • Other great AI agents available for use right now

Let’s get right into it!

pink line

What Are AI Agents (and Why Do They Matter)?

Essentially, an AI agent is a specialized assistant that can independently carry out preprogrammed multi-step tasks or workflows on a user’s behalf. They actively execute these tasks, make decisions with predefined goals, and can even interact with other software and tools.

In order to understand where we’re at with AI agents (and where we’re headed), let’s break down AI agent progression into 3 tiers ⬇️

1. Basic Assistants

These are the early assistants we’re all used to, like Alexa, Siri, and so on. These assistants are largely reactive, meaning they can answer questions, set reminders, play your music, or turn on your lights when asked. They’re useful (some more than others) but they operate within very fixed parameters and only respond to direct commands. They don’t carry out multi-step goals.

2. Workflow Agents

This is where we’re at right now. These are things like Agent.ai, OpenAI’s Operator, Adobe’s upcoming agents, and more (we’ll go into more detail on all of these below). This current generation of agents is far more capable than the basic assistants. They can handle complex, multi-step tasks by interacting with other software on your behalf, even going as far as controlling an entire web browser.

There are more general AI agents like OpenAI’s Operator that can perform a wide variety of tasks, as well as platforms like Agent.ai that host more specialized agents dedicated to niche use cases related to marketing, sales, etc.

It’s important to remember that the agents we have today aren’t fully autonomous (yet). They still work under human-defined goals and execute a sequence of programmed actions.

3. Fully Autonomous Agents

Which brings us to the future of AI agents. While we don’t know how long it will take to get there, eventually we may see fully autonomous agents that can tackle high-level objectives with almost no oversight. Ideally, we ask them to do something, and they figure out the sub-tasks and decisions along the way by themselves. The current iterations of autonomous agents are hit-or-miss and often require a lot of course correction. But we’re headed towards a future of fully autonomous “digital co-workers”.

So, why do AI Agents matter for marketers?

In a nutshell, these tools have the potential to massively increase efficiency and scale. Instead of just answering a question in a chat window, an AI agent may handle the entire process.

For example, they may be able to find leads in a CRM, email them a tailored intro, and schedule follow-ups. And on a smaller scale, they can significantly streamline day-to-day work by automating repetitive tasks entirely, such as segmenting audiences, personalizing campaigns, or analyzing journey performance.

Ultimately, it comes down to freeing up time so marketers can put more emphasis on creative, strategic activities that AI can’t replicate. AI agents help us do our best work, faster.

 

Adobe’s New AI Agents

As we mentioned earlier, the big theme of Adobe Summit 2025 was “Agentic AI” (check out our full recap of Summit here if you couldn’t attend!). In total, 10 new AI agents were unveiled at the conference. They’re each designed for specific workflows and are integrated into the Adobe Experience Cloud.

The agents at launch include:

  • Account qualification agent
  • Audience agent
  • Content production agent
  • Data insights agent
  • Data engineering agent
  • Experimentation agent
  • Journey agent
  • Product advisor agent
  • Site optimization agent
  • Workflow optimization agents

With more on the way soon.

And part of this launch was the introduction of the “Agent Orchestrator” in Adobe’s Experience Platform, which allows users to build and manage AI agents all in one place.

One particular highlight for us (along with many other Marketo users) was the Marketo Journey Builder Agent. Essentially, it is the aforementioned Journey agent embedded into Marketo Engage. It offers a new visual journey builder canvas for designing lead-nurturing campaigns with an AI agent working behind the scenes as a co-pilot.

In practice, this means the agent can suggest the next best touchpoints, identify if certain leads are “dropping off” at a stage of the journey, and even suggest a re-engagement path. Overall, it’s promising smarter campaigns with less effort. Newer marketers can lean on the agent’s recommendations to create effective campaigns, while more experienced marketers can iterate and refine campaigns faster than ever (by letting the agent automate tasks such as pulling performance reports or doing a segment analysis).

It’s like having a marketing strategist and automation expert rolled into one – and they live inside your Marketo instance!

 

Other AI Agents You Can Try Today

If you want to explore more AI agents, here are three platforms making waves that cover a wide variety of use cases:

Manus – A fully autonomous general-purpose AI agent. You can give Manus a goal or task, and it’ll attempt to handle all the steps to achieve it across web research, content creation, data analysis, and so on. Manus boasts that it “bridges minds and actions” by not just thinking, but delivering results. It’s like a personal executive assistant that never sleeps, though it’s a relatively new product, so expect ongoing improvements.

Agent.ai – Created by Dharmesh Shah, co-founder and CTO of HubSpot, Agent.ai is a platform where users can find and “hire” AI agents for repetitive and time-consuming work, and build their own agents for custom use cases. Through their Agent Network, marketers have access to hundreds of AI agents for tasks like company research and conversion rate optimization. With the Agent Builder, users can create custom workflows that combine existing agents, major AI models (ChatGPT, Claude, Gemini, etc.), YouTube, X, and HubSpot features to create new agents for unique use cases.

OpenAI Operator – Announced as a research preview in early 2025, Operator is essentially ChatGPT with the ability to take actions on the web. It uses a built-in browser to click, scroll, and input data on websites.​ For example, you can ask Operator to “Log into our Zendesk account, filter support tickets from the past 30 days for Product X, download the data, and summarize the top three customer frustrations mentioned in the tickets.” It will complete this multi-step task by navigating real tools online. Right now (as of April 2025), Operator is available to ChatGPT Pro subscribers in the U.S. as OpenAI gathers feedback.

pink line

For marketers, AI agents like these offer a path to greater scalability and efficiency. We’re moving beyond using AI predominantly for insights or content creation, towards AI that takes action and executes complex, multi-step tasks to free up more time for higher-value work.

It’s an exciting time to be in marketing ops, as we continue to experiment with (and benefit from) these digital helpers that are reshaping our processes.

If you have any questions about AI agents or want to chat about optimizing your marketing and sales operations, reach out to us here!

AI Assessment Tool with Lucas Gonçalves

Where do companies actually start when it comes to “integrating AI?”

There is constant discussion about how AI is a game-changer. But successfully adopting AI on a company-wide scale requires careful planning, assessing, pivoting, and more.

And doing all this requires time that most organizations don’t have.

This is why we created a fully automated AI Assessment tool.

It’s pretty straightforward. Just complete a short questionnaire, and our AI Assessment tool will automatically generate a personalized report that details:

  • Where your company currently stands regarding AI adoption readiness
  • A customized roadmap your company can follow for successful AI integration.

To shed some more light on how our AI Assessment tool works and why it’s essential for businesses right now, we sat down with RP’s Director of AI & Automation, Lucas Gonçalves.

pink line

For those who may not know Lucas, he is a Marketo Champion with a strong background in computational mathematics and several years of experience working with AI and machine learning. When ChatGPT 3.5 launched in November 2022, Lucas led RP’s initiative to explore various AI use cases in Marketing Operations. Over the past few years, he’s presented at multiple MUG events, Adobe Summit, and several RP webinars.

Today, Lucas continues to pioneer practical ways that marketers can benefit from AI — with RP’s AI Assessment tool being the latest example.
 

Why is RP’s AI Assessment tool important?

Lucas: In Marketing Operations, we are continuously discussing AI use cases and how AI can boost productivity and efficiency. But these are use cases that benefit individual tasks (ie. using AI in Marketo to optimize email send times, perform email sentiment analysis, and more).

There hasn’t been a structured approach that companies can use to understand the steps they should take to achieve wider-scale AI adoption. Until now!

This AI Assessment report is the perfect starting point that will add structure and clarity to the AI adoption journey. It will help leadership teams get engaged and excited, offering a strategic-fit framework that highlights the stepping stones needed to reach their AI goals.
 

What is RP’s AI Assessment tool?

Lucas: At its core, the AI Assessment tool is built on a set of questions that have been carefully designed to help generate a report on where your company is on its AI adoption journey.

The tool uses an AI adoption framework we created that consists of 4 levels:

  • Level 1: No Adoption – Individuals are using AI on their own without company approval, support, or assistance. In many cases, employees are breaking company policy by using AI.
  • Level 2: Individual Adoption – The company supports the use of ChatGPT or other LLMs on an individual level for daily tasks, but no company-wide integration exists.
  • Level 3: Organizational Adoption – The company has deeper, customized AI integrations that are tailored to their needs and processes.
  • Level 4: Overall Adoption – The company has reached a point where several custom AI integrations are in place with minimal issues.

The generated AI Assessment report will tell you which level your company is at (in our experience, most are between levels 1 and 2 right now). But it’s not just an evaluation of your current situation. It will also give your company 3 to 5 things to focus on, with a personalized road map on how to advance adoption.
 

Is the AI Assessment report generated by AI?

Lucas: The report itself is “AI-augmented”. While AI does build most of it, human eyes are making sure the end result is useful. And to be clear, the report you receive isn’t raw AI responses that you’d get from going to ChatGPT. We are using AI models and agents that are carefully trained on RP’s perspective, with guard rails in place to make sure the information you receive is accurate, relevant, and practical.
 

How is the AI Assessment report structured?

Lucas: The report will start with an executive summary followed by a brief introduction section. Then, it will cover 5 main areas of focus, divided into 3 “foundations for AI” and 2 types of “gains” as outlined below.

3 Foundations for AI:

  1. Team and Skills: Are team members comfortable with AI? Trained to use AI?
  2. Data: Is your data clean, structured, and ready to be fed into AI systems?
  3. Strategy: How can AI connect multiple areas such as Marketing, IT, Sales, etc?

2 Gains from AI:

  1. Customer Experience Gains: Better, more relevant copy, more optimized landing pages, better outreach timing, etc.
  2. Operational Efficiency Gains: Shorter time to launch new campaigns, reduced administrative overhead for projects, etc.

 
Where (and when) is the AI Assessment tool available?

Lucas: It is available right now for free here!

pink line

We’re incredibly excited for you to give our new AI Assessment tool a try.

And if you have any questions or comments for Lucas and the rest of our team, don’t hesitate to reach out to us.

AI + Marketo: How to Implement 3 High Impact, No Risk Solutions

Whenever AI is mentioned in the workplace, there are normally concerns over data privacy, security, and compliance (and rightfully so).

So, how can marketers safely integrate AI into their work?

We answered this question by showcasing 3 AI use cases that protect your data, while still producing high-impact results.

It all happened last week in our event titled: “AI + Marketo: How to Implement 3 High Impact, No Risk Solutions”.

Hosted by: Andy Caron (President, RP), Lucas Machado (Director of AI & Automation, RP), and Tyron Pretorius (Owner, The Workflow Pro).

If you missed it, you can watch the FULL recording above!

Here’s a quick overview of what we covered.

pink line

Before we get into the specific use cases, we went through a few “AI Fundamentals” including the differences between general models and fine-tuned models, pricing, and compliance.

Then, we went deep on the ChatGPT-Marketo connection, including the use of webhooks, integration platforms, and the Marketo API.

After that, we covered 3 specific use cases (with a bonus use case at the end):
 

1. Sentiment Analysis

For this, we demonstrate how to perform a sentiment analysis of your Marketo emails using ChatGPT, leading to enhanced content that resonates with your audience and improves open rates, click-through rates, and conversions.

Follow along with the webinar or read our in-depth guide here.
 

2. Finding the Best Email Send Times

Here, we show how you can extract email interaction data from your Marketo instance and use ChatGPT analysis to answer the age-old question: When is the best time to send emails?
Follow along with the webinar or read our in-depth guide here.
 

3. Persona Classification

Traditional classification methods often fall short due to constantly changing job titles, industry terms, and other parameters. The good news is, we can create our own fine-tuned GPT that understands the patterns of these term changes, then integrate directly into Marketo for enhanced persona classification.

Follow along with the webinar or read our in-depth guide here to learn how it’s done.
 

4. Sales Acceleration (BONUS)

For our final use case, we show you how to integrate ChatGPT, Marketo, and your CRM with an IPaaS solution like Zapier or Workato to automatically generate reports for your sales team – instantly contextualizing MQLs so your reps can have effective conversations that close more sales.

Follow along with the webinar or read our in-depth guide here.

pink line

If you have any questions about integrating AI with Marketo, don’t hesitate to reach out to us!

How to Accelerate Sales with GPT

In this guide, we’ll show you how to integrate ChatGPT, Marketo, and your CRM with an IPaaS solution like Zapier or Workato to automatically generate reports for your sales team, granting them instant insights into MQLs.

Why does this matter?

In sales, context is key. Especially when interpreting how and why a lead has become a Marketing Qualified Lead (MQL).

Yet, too often, the data behind that qualification is buried in layers of engagement metrics, making it very time-consuming for sales reps to decipher and piece together the story on their own.

This solution directly addresses that issue by allowing ChatGPT to analyze lead engagement data and generate a clear, concise summary of their journey toward qualification.

By achieving a deep understanding of each lead’s journey more efficiently, your sales team will always be prepared to have effective and informed conversations that close.

Who is this guide for?

Before we get into the nitty gritty, this guide is designed for those with basic knowledge of Marketo, as well as foundational knowledge in an integration platform of their choice (whether that’s Zapier, Workato, Microsoft Power Automate, etc.)

Let’s get into it!
 

Why IPaaS?

For those who may not know, IPaaS stands for “Integration Platform as a Service”. Integrating ChatGPT with Marketo and our CRM without an IPaaS would’ve involved more manual coding work, AWS, and so on, making this entire process far more tedious.

For that reason, we’ve opted to lean on an integration platform to do some of the heavy lifting. We’re using Zapier, but any other one should get the job done. Your exact IPaaS will likely depend on which one your company has invested in.

And since the terminology, UI, and feature set will differ slightly depending on what you’re using, we’re going to keep this guide IPaaS-agnostic – focusing more on the logic behind the workflow, as well as the code snippets you’ll need at each step.

Here’s a graphic of what the entire workflow will look like at a high level:


 

Step 1: Initial setup in Marketo

Start by creating a “text” field in your Marketo instance and make sure it’s mapped to your CRM for sales team visibility. This is where we’ll house the text summary written by ChatGPT that contextualizes MQLs for sales reps.
 

Step 2: Starting the workflow in your IPaaS

Now, we need to build the workflow that will fill the Marketo text field we just created. Head over to your integration platform and create a new workflow that is triggered by an HTTP request.

This trigger will be our first block in the flow:


 

Step 3: Retrieving data from Marketo

In this step, we’re going to tackle the next three blocks in the workflow:

There are a couple things we need from Marketo to extract lead engagement data that we’ll feed to ChatGPT later.

1) First, we need the Marketo Access Token. This will grant us access to the Marketo API, allowing us to programmatically talk to Marketo to enable the automation of tasks, integrate with other systems, and retrieve data.

Use this code to get the Marketo Access Token:

import requests
import pandas as pd
import json
MUNCHKIN = "EDIT HERE"
client_id = "EDIT HERE"
client_secret= "EDIT HERE"
leadid="EDIT HERE"
sinceDate="EDIT HERE"
gptAPIKey="EDIT HERE"
fieldName="EDIT HERE"
def get_access_token():
    global client_id
    global client_secret
    global MUNCHKIN
    params={'grant_type': 'client_credentials',
            'client_id': client_id,
            'client_secret': client_secret}
    headers={'Accept-Encoding': 'gzip'}
    url="https://"+MUNCHKIN+".mktorest.com/identity/oauth/token"
    response=requests.get(url=url,params=params,headers=headers)
    data=response.json()
    print(data)
    return data['access_token']

 

2) Second, we need the Marketo Paging Token. This is required to use the Activities API, which is used to interact with lead engagement data (opened web pages, attended webinars, etc.) We also use this to define the time frame for pulling engagement data. In Marketo, you can’t select any specific time frame; you can only set a start date (up to 3 months ago) and pull data from there to the present. In our case, we recommend setting that to 1 month ago.

Use this code to get the Marketo Paging Token:

url="https://"+MUNCHKIN+".mktorest.com/rest/v1/activities/pagingtoken.json"
token=get_access_token()
params={'access_token': token,
        'sinceDatetime': sinceDate}
response=requests.get(url=url,params=params)
data=response.json()
nextPageToken=data['nextPageToken']

 

3) Now, we’ll use the two tokens above, plus the lead ID from Step 2, to fetch all the engagement data from a specified back date. This will generate a large string of data that includes all the email interactions, web activity, program status, and more of a lead.

Use this code to fetch lead engagement data:

access_token=get_access_token()
def get_lead_activities(auth_token, lead_id, firstToken):
   url = f"https://"+MUNCHKIN+".mktorest.com/rest/v1/activities.json"
    params = {
        "access_token": auth_token,
        "leadId": lead_id,
        "activityTypeIds": "1,2,3,10,11,34,104",
        "nextPageToken": firstToken
    }
    activities = []
    more_results = True
    while more_results:
        response = requests.get(url, params=params)
        data = response.json()
        if 'result' in data:
            activities.extend(data['result'])
        more_results = data.get('moreResult', False)
        if more_results:
            params["nextPageToken"] = data['nextPageToken']
    return activities
all_activities = get_lead_activities(access_token, leadid,nextPageToken)
all_activities = str(all_activities).replace('"', "'")
activities=all_activities

 

Step 4: Analyze engagement data with ChatGPT

Let’s move on to the final two blocks of the workflow:


 

1) This is where we come up with an appropriate prompt about summarizing how and why a lead became an MQL, then send it to ChatGPT through the GPT-4o API.

Here’s a prompt that produced good results for us:

“Analyze the following lead activities and explain the activities that contributed to this lead being marked as MQL so a salesperson knows how they should approach the client, including which product or service this lead is most interested in and any other relevant insights. Include relevant URLs on form fills:" +activities+" – Remember this will only be read by a salesperson, so don't use technical explanations, just your best summary. Keep your response limited to 100 words.”

 

And use this code to send it to ChatGPT via the API:

def send_to_chatgpt(activities):
    url = "https://api.openai.com/v1/chat/completions"
    headers = {
        "Authorization": gptAPIKey,
        "Content-Type": "application/json"
    }
    prompt = """Analyze the following lead activities and explain the activities that contributed to this lead being marked as MQL so a salesperson knows how they should approach the client, including which product or service this lead is most interested in and any other relevant insights. Include relevant URLs on form fills:""" +activities+""" – Remember this will only be read by a salesperson, so don't use technical explanations, just your best summary. Keep your response limited to 100 words."""
    data = {
        "model": "gpt-4o-mini",
        "messages": [{"role": "user", "content": prompt}],
        "max_tokens": 250
    }
    response = requests.post(url, headers=headers, json=data)
    return response.json()
gpt_response = send_to_chatgpt(activities)['choices'][0]['message']['content']

 

2) Once we’ve prompted GPT, we need to capture the text summary it sends back to us and use an API request to store it in the Marketo text field we created in Step 1.

Use this code to capture and store ChatGPT’s response:

def update_marketo_field(lead_id, field_name, gpt_response):
    url = "https://+MUNCHKIN+.mktorest.com/rest/v1/leads.json?access_token="+str(input_data['access_token'])
    headers = {
        "Content-Type": "application/json"
    }
    payload = {
        "action": "updateOnly",
        "lookupField": "id",
        "input": [
            {
                "id": int(lead_id),
                field_name: gpt_response
            }
        ]
    }
    response = requests.post(url, headers=headers, json=payload)
update_response = update_marketo_field(leadid, fieldName, gpt_response)

 

Step 5: Automate the workflow

In our fifth and final stage, we need to ensure this IPaaS workflow is triggered any time a lead becomes an MQL in our Marketo instance. This is achieved by creating a webhook in Marketo that looks like this:


 

Example response:


 
pink line

And that’s it!

Now, whenever a lead becomes an MQL in Marketo, your IPaaS workflow should be triggered.

This will automatically send a full text summary of why that lead became an MQL to a Marketo text field that is also mapped to your CRM for sales reps to see.

Instant insights into the lead journey will save your sales reps tons of time they’d otherwise spend sifting through metrics to piece together the story.

Ultimately, they’ll be more informed more quickly, so they can have better conversations with prospects and close more sales.

If you need help setting this up or have any other questions, feel free to reach out here.

How to Use GPT for Sentiment Analysis
in Marketo

In this guide, we’ll show you how to perform a sentiment analysis of your Marketo emails using ChatGPT, leading to enhanced content that resonates with your audience and improves open rates, click-through rates, and conversions.

And if you’ve been wondering how to safely integrate AI into your marketing tasks, this is a great starting point that is relatively straightforward to set up.

For those who may not know, sentiment analysis is a natural language processing technique used to determine the emotional tone behind a text. Through text data analysis, this process can identify whether the sentiment expressed is positive, negative, or neutral.

For marketers, a deep understanding of audience sentiment can provide clues about what type of content elicits positive reactions from recipients. By leveraging these insights, you can improve your content strategy and engage your audience more effectively.

This guide is geared towards Marketo users, but if you already have email data – including body text and subject lines – from a different platform exported as a CSV, skip to step 4 to see where ChatGPT comes in.

Let’s get into it!

pink line

Step 1) Export your email performance report from Marketo.

We’ll get things started by navigating over to the “Reports” section in Marketo. We want to export an email performance report of emails that are regularly delivered to the same database – think monthly newsletters, loyalty program updates, seasonal sale events, etc.

By using emails delivered to a similar audience over a longer period, we eliminate as many variables as possible, allowing us to measure how shifts in tone and content change engagement metrics.

We should now have an email performance report exported as a CSV file from Marketo that includes open rates, click-through rates, bounce rates, and several other fields.
 

Step 2) Use the Marketo API to Localize Email IDs

In this step, we’ll be using the Marketo API to add and manipulate some of the information in our CSV file.

Why are we doing this?

In short, for each email we’re isolating the “Email Name” and “Email Program”, then using that information to fetch the “Email ID”. The “Email ID” will then be used in the next step to fetch the subject line and body text of each email, which we’ll then upload to ChatGPT for sentiment analysis.

If this sounds complicated, don’t worry. It’s relatively straightforward once we break it down.

Note: The Marketo API is a way for us to programmatically talk to Marketo to enable the automation of tasks, integrate with other systems, and in our case, retrieve data from the Marketo platform.

1) In our current CSV file, the first column titled “Email Name” has a bunch of consolidated information, including the email name and the email program. The problem is, we need to split this information into two separate, dedicated columns: One for the “Email Name” and one for the “Email Program.”

Use the following code snippets to do this:

Initial Setup

import pandas as pd
import json
import requests
 
base_url = 'https://MUNCHKINID.mktorest.com'
client_id = 'YOUR-CLIENT-ID'
client_secret = 'YOUR-CLIENT-SECRET'
 
def getToken ():
	response = requests.get(base_url+'/identity/oauth/token?grant_type=client_credentials&client_id='+client_id+'&client_secret='+client_secret)
 
	temp = json.loads(response.text)
	token = temp['access_token']
 
	return token
 
df=pd.read_excel('YOUR-FILE-PATH.xlsx')
df.drop(['First Activity (EDT)','Last Activity (EDT)'],axis=1,inplace=True)

 

Get the Program and Email Name

df[['Program','Email']] = df['Email Name'].str.split('.',expand=True)

 

2) Once those are split into two columns, we can perform an API call that will tell Marketo to use “Email Name” and “Email Program” to fetch the “Email ID”.

Use this code snippet to do that:

Get the Email ID

def getProgramID(programName):
	token=getToken()
	response = requests.get(base_url+'/rest/asset/v1/program/byName.json?name='+programName+'&access_token='+token)
	return json.loads(response.text)['result'][0]['id']
 
def getFolder(programID):
	token=getToken()
	response = requests.get(base_url+'/rest/asset/v1/folders.json?root={"id":'+str(programID)+',"type":"Program"}&access_token='+token)
	return json.loads(response.text)['result'][0]['folderId']
 
def getEmails(folderID):
	token=getToken()
	response = requests.get(base_url+'/rest/asset/v1/emails.json?folder='+str(folderID)+'&access_token='+token)
	return json.loads(response.text)['result']
 
def getEmailID(emailName,programName):
	emails=getEmails(getFolder(getProgramID(programName)))
	for email in emails:
    	if email['name']==emailName:
        	return email['id']
 
df['EmailID']=df.apply(lambda x: getEmailID(x.Email, x.Program), axis=1)

 

Step 3) Download Email Subject Lines and Body Text

Now that we have the “Email ID” for each email, we’ll use the Marketo API to download all the subject lines and body text data.

Here are the code snippets you’ll need to do this:

1) Get Email Subject Lines

def getEmailSubject(emailID):
	token=getToken()
	response = requests.get(base_url+'/rest/asset/v1/email/'+str(emailID)+'.json?access_token='+token)
	return json.loads(response.text)['result'][0]['subject']['value']
 
df['EmailSubject']=df.apply(lambda x: getEmailSubject(x.EmailID), axis=1)

 

2) Get Email Body Text

def getEmailText(emailID):
	token=getToken()
	response = requests.get(base_url+'/rest/asset/v1/email/'+str(emailID)+'/fullContent.json?type=Text&access_token='+token)
	return json.loads(response.text)['result'][0]['content']
 
df['EmailText']=df.apply(lambda x: getEmailText(x.EmailID), axis=1)

 

3) Lastly, we must save the final results into an updated CSV file using this code:

df.to_excel(‘YOUR-FILE-PATH.xlsx',index=False)

 

At this point, your CSV file should now have engagement metrics, body text, and subject lines for every email.
 

Step 4) Perform Sentiment Analysis with ChatGPT

This is where the real magic happens!

With our data ready, we can now use ChatGPT to perform a comprehensive sentiment analysis.

ChatGPT-4o can do this because of its enhanced language understanding, improved natural language processing, and advanced data analytics feature that can create code and assess specific parts of data that you upload.

Note: You’ll need a Chat-GPT Plus subscription for 20 USD per month to upload your CSV for sentiment analysis.

1) Go over to ChatGPT in your browser, press the “Attach file” button, and upload your email data CSV.


 

2) Prompt ChatGPT to perform a sentiment analysis. Here’s an example:

You are a Marketing Data Analyst at company X that does X. Most of our audience is X. Your job is to analyze the data from our Marketing emails and answer the following questions:
1. For a sentiment analysis: Which type of subject lines result in a higher open rate? Which type of content leads to a higher click rate?
2. Which words in the subject line result in a higher open rate? Which words in the body content result in a higher click rate? And which words result in a lower open and click rate? Remove the URL-related words.
3. Which topics lead to higher open and click rates? And which topics lead to lower ones?

 

Step 5) Optimize your content

The last step is to apply the trends and insights provided by ChatGPT’s sentiment analysis to improve the effectiveness of your content.

ChatGPT does a pretty good job of contextualizing sentiment scores by explaining parameters and categories clearly, so the interpretation process should be relatively straightforward – but ultimately, it’s up to you and your team to tailor and refine your email subject lines and body content accordingly.

It’s also important to constantly measure and update your content strategy, as well as reanalyze sentiment with ChatGPT as new data and feedback come in.

pink line

Leveraging ChatGPT for email sentiment analysis is a perfect starting point for anyone looking to take advantage of AI to improve their content strategy.

You’ll gain instant insights into what kind of messaging and tone is resonating with your audience effectively, and where you need to change things up to improve engagement.

Remember to regularly reassess your content with fresh data and sentiment analysis to stay aligned with your audience’s evolving preferences – view this process as one of continuous refinement over time.

If you need help setting this up, or if you want to learn about other ways we’re using AI to enhance marketing strategies, send us a message here.

How to Use GPT
for Persona Classification in Marketo

In this guide, we’ll show you exactly how to create a fine-tuned GPT model that’s integrated directly into Marketo for enhanced persona classification.
 
Persona classification plays a crucial role in successfully delivering targeted and personalized content to your audience.
 
However, traditional classification methods often fall short due to the dynamic nature of job titles, industry terms, and other parameters.
 
For example, Persona A may include a job title with the word “Tech”. Then, some months or even years later, that same job title drops “Tech” and uses “IT” in the title instead. This can be true for several different job titles and even entire industries.
 
All these words and terms must be constantly updated for your personas to accurately reflect the roles you want to target – and this takes a lot of manual work.
 
Put simply, marketers spend a lot of time defining personas only for them to quickly become outdated.
 

This is where GPT comes in

The good news is, we can create our own fine-tuned GPT that understands the patterns of these term changes.

It can take “Technology Analyst” and “IT Analyst” and feed them into the same group, for example. Then, when a new term like “Python” comes up in a job title, it’ll understand where to categorize that role based on your existing persona instructions and examples.

And since we’ll be training our model on job titles and industry terms rather than actual private identifiers, this application of GPT has no privacy or compliance risks whatsoever.

Here’s our guide on how to set it up!

(This guide is for tech professionals and enthusiasts who use Marketo. Not a lot of coding is required, but it would help to know coding basics or be willing to learn!)
 

Understanding persona classification

Before we get into the technical aspects of tuning your GPT model and integrating it with Marketo:

None of this will be very useful if you haven’t already taken the time to define your personas.

This almost goes without saying, but we still wanted to quickly mention it.

Defined persona groups based on job title, industry, pain points, and other characteristics are information that your fine-tuned GPT will need in order to automatically update and recategorize contacts when terms change.
 

1) Prepare your data for GPT fine-tuning

The first thing we need to do is prepare our data for fine-tuning. Let’s walk through what that looks like.

  1. Start by reaching out to your Marketing and Sales teams and gather about 200 leads/customers that will be used as examples for a given persona. The job titles, industries, and other important characteristics of these contacts need to fit your previously defined persona as closely as possible.
  2. Once you have those contacts, it’s time to clean the data. Eliminate any duplicate entries, weird characters, or other erroneous inputs.
  3. Now, we need to transform this data into a JSONL format (for those who may not know, this is a JSON but without any commas). This will allow us to feed it into our custom GPT with instructions and descriptions about persona classification. Since this step is very important, we’ve created a resource that will help you through it. Follow the guide below:

How to convert your data to JSONL format

  1. Open up this JSONL formatting tool we created and create a copy for yourself to edit.
  2. The “System” column is where our instructions for GPT go. The message can be something like: “You are going to analyze lead job titles to fit them into the correct persona. I’ll send you the job title only, and you should respond with the persona classification only.”
  3. In the “User” column, input the job titles of each of your contacts. In our example, we’ve put “Cloud Infrastructure Analyst” as the job title.
  4. In the “Assistant” column, we are going to input the persona “type” that we want GPT to give us. In other words, when it receives the job title from the “User” column, we want it to categorize that as “Persona A” or simply “A”. Here is an example of what your first row should look like at this point:

     

  5.  

  6. From here, you can repeat the same “System” column message for every single row. Then copy and paste the rest of the job titles from your contacts in the “User” column, and “A”, “B”, “C”, etc. for the corresponding persona type as your output in every row of the “Assistant” column. You don’t need to touch anything in the “JSONL” column, as this has been set up to automatically populate based on the inputs from the other columns.
  7. Once all your data is in there, we need to get it out of the sheet and into a .txt file. Simply copy and paste everything in the JSONL column and paste that into your .txt file.

Important note: Take 80% of your data (if you have 600 rows, then take 480 rows) and put that into one .txt file, then take the remaining 20% of your data (120 rows) and paste those into a second .txt file. We do this because we want two separate JSONLs: One for training (80% of our data) and one for testing (20% of our data).

We do this because GPT will not only train itself on the larger file but will also optimize itself using the test file as a reference – leading to better performance and results.

 

2) Creating a fine-tuned GPT model

Now that our data is cleaned and formatted into 2 JSONL files (one for training, one for testing), we can send it to the OpenAI API to fine-tune our GPT model.

If you want, you can check out OpenAI’s extensive tutorial on how to create a fine-tuned model here. But we will quickly walk you through the basic, high-level steps.

  1. When you start the process of fine-tuning a model through the OpenAI SDK, use a snippet of Python code to upload your JSONL training file like this:
  2. import openai
    openai.api_key = ""
    openai.File.create(
      file=open(r"train_file_path", "rb"),
      purpose='fine-tune'
    )
    

     

  3. Do this again, but now upload your JSONL testing file.
  4. openai.File.create(
      file=open(r"test_file_path", "rb"),
      purpose='fine-tune'
    )
    

     

  5. Check that both files were uploaded and processed successfully using the command “openai.file.retrieve” to check their status.
  6. openai.File.retrieve("Train-File-ID"),openai.File.retrieve("Test-File-ID")
    

     

  7. Now, we can actually fine-tune the model using the code below. Here, GPT will optimize itself by measuring the training file against the test file reference.
  8. openai.FineTuningJob.create(training_file="Train-File-ID", validation_file= "Test-File-ID", model="gpt-3.5-turbo or gpt-4o-mini")
    

     

  9. Lastly, we can confirm that the model is fine-tuned. This is also the step where we receive the fine-tuned model ID, which we will use in our webhook in Marketo. You can also take it upon yourself to test your model before committing it to Marketo using this line of code:
  10. openai.FineTuningJob.retrieve("FT-ID")
    completion = openai.ChatCompletion.create(
      model="MODEL_ID",
      temperature=0,
      max_tokens=100,
      messages=[
        {"role": "user", "content": "Your Test Message"}
      ]
    )
    print(completion.choices[0])
    

     

Note: When creating a fine-tuned model, we are currently limited to GPT 3.5 turbo and GPT4o Mini.
 

3) Integrate your fine-tuned GPT model with Marketo

Our fine-tuned GPT model is now ready to be integrated with Marketo. This is a relatively short step that involves creating a webhook in Marketo (which we covered in Step 4 of this guide) with the following fields:
 

 

4) Integrate your fine-tuned GPT model with Marketo

So we have our fine-tuned GPT model set up (Step 2) and we have our webhook in Marketo created (Step 3). Now we’ll set up some automation in Marketo to use them together.

We’ll do this by creating a smart campaign in Marketo that will be triggered when a new lead is created or when lead information changes.

Once triggered, the smart campaign will send the information via webhook to the fine-tuned GPT, which will respond with the correct persona type (A, B, C, or whatever signifiers you used in your JSONL files).

Finally, if the persona for that lead has changed, the lead record will be automatically updated with the new classification.

Smart List:

 

Flow:

 

Outcome:

 

The Result

When all of this is set up properly, you will have an automatically updating field in Marketo for each lead that will signify which persona they fit into.

  • Here’s a quick example that demonstrates how this new setup will operate:
    • Jim is an “IT Analyst” and has been classified as Persona A.
    • Jim’s role changes to “Technology Analyst”. This new role information could’ve come from a new form Jim filled out, a salesperson on your team updating Jim’s information, etc.
    • Your smart campaign in Marketo is triggered (the one from Step 4).
    • This will call on your fine-tuned GPT model and ask it something like “Which persona is Tech Analyst?” It will respond with Persona A or whichever persona is most appropriate.
    • Then, the Marketo field for Jim’s persona will be automatically updated.

Note: This entire process is not limited to the language you are working in either. It can apply to any language worldwide.

pink line

The upfront work required to set this up is definitely worth it in the long run.

By leveraging a fine-tuned GPT model with proper integration and automation in Marketo, your persona classifications will be far more accurate and up to date, with minimal manual intervention required.

Ultimately, this will improve the effectiveness of your campaigns through better targeting, while freeing up more time for strategic and creative thinking.

And if you need help setting this up or have any other questions about how AI can improve marketing operations efficiency, send us a message here!