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!

The Top 25 AI Tools for Marketers

In this guide, we’re going to outline the top 25 AI tools for marketers.

The hype surrounding AI over the past year has started to settle. Now we’re entering an exciting phase where practical AI tools and solutions are being integrated into our daily work. Many of these tools can be used to expedite routine tasks, streamline operations, and ultimately free up more time and focus for creativity and strategic thinking.

When utilized well, AI-driven solutions can help marketers automate efficiently, gain deeper insights from data, create more personalized customer experiences at scale, and much more – leading to campaigns with greater impact.

But in order to maximize the benefits of AI, it’s important to experiment with how these tools can fit into your daily workflow and processes. The application will look slightly different for each person, but leveraging AI in a way that works for you is massively empowering.

So, without further ado, here are the top 25 AI tools for marketers (as of July 2024 – prices are USD):

 

All-Purpose LLMs

These are the major LLMs that are publicly available right now. They represent the forefront of generative AI technology and lead the way for the development of other tools and applications. All of them utilize a chatbot interface, allowing users to submit prompts and instructions in a conversational format. They can help with writing tasks, coding, research, planning, and much more. We’ve labeled them “all-purpose” because they have the widest range of possible applications out of any tools on this list.

 

1. ChatGPT

What it is:

This one hardly needs an introduction, but for those who don’t know, ChatGPT is essentially a conversational AI chatbot and virtual assistant.

Ever since OpenAI released ChatGPT-3.5 in November 2022, its popularity has reached unprecedented levels worldwide. And it’s already come a long way. ChatGPT-4o was released only a few months ago and it came with several new features and improvements over previous models, including enhanced language understanding and improved natural language processing.

Use case:

The use cases of ChatGPT are vast. Marketers can use it to write blog and article outlines, brainstorm copy headlines, generate images with DALL·E 3, perform code writing tasks, analytical tasks, and much more.

Price:

Free: For individuals just getting started with ChatGPT.
$0/Month

Plus: For individuals looking to amplify their productivity.
$20/Month

Team: For fast-moving teams and organizations ready to supercharge work.
$25 per user/month billed annually
$30 per user/month billed monthly

Enterprise: For global companies looking to enable their workforce with AI.
Contact Sales for a quote.

 

2. Custom GPTs

What it is:

Custom versions of ChatGPT, known as GPTs, are where you can really push the limits of this technology.
This includes the GPT creation tool that comes with ChatGPT Plus subscriptions, as well as the GPT API which can be integrated into other applications directly.

Use case:

By tailoring a custom GPT to your specific needs, you can perform specialized tasks even more efficiently – whether that means analyzing documents, managing unique datasets, or interpreting instructions. And to go one step further, the true potential of the GPT API is unlocked when you fine-tune it and integrate it into other platforms like Marketo for email personalization at scale, persona classification, and more.

Price:

The pricing structure for GPT API usage takes a “pay for what you use” approach. There are several different rates based on which model you’re using, and how many tokens you use. All the pricing information is outlined by OpenAI here.

 

3. Claude 3.5 Sonnet

What it is:

Claude 3.5 Sonnet is the latest model developed by Anthropic. It’s touted as their most intelligent one yet, operating at twice the speed of their previous Claude 3 Opus model with improved reasoning, knowledge, coding proficiency, and ability to understand complex, nuanced instructions. It also includes a new “Artifacts” feature: a dynamic workspace where users can see, edit, and build upon Claude’s creations in real time.

Use case:

This model excels at producing on-brand drafts for blogs, newsletters, articles, social media posts, and so on with a more natural, relatable tone than its predecessors. It’s ideal if you’re a marketer who needs to create polished content quickly, maintaining a consistent brand voice throughout. The “Artifacts” feature also allows for real-time collaboration, making it easier for teams to work together on content and marketing projects.

Price:

Free – $0 per person/month
Pro – $20 per person/month
Team – $25 per person/month

 

4. Gemini 1.5 Pro

What it is:

Google’s Gemini 1.5 Pro is similar to the above LLMs, but it sets itself apart through its large context window that allows it to process up to 1,000,000 tokens at once.

Use case:

A context window of this size makes Gemini 1.5 Pro ideal for handling extensive material like large datasets or comprehensive reports. It’s great for extracting valuable insights from market research data or reviewing and summarizing comprehensive industry reports.

Price:

Gemini Advanced Subscription – $20/month

 

Specialized Writing Tools

These tools focus more narrowly on using generative AI to help with writing tasks – whether you’re writing emails, blog articles, social media ads, product descriptions, or anything else. Their interface and feature set are tailored to writing assistance above all else.

 

5. Jasper

What it is:

Jasper is a generative AI tool that stands out by taking a highly tailored approach to content creation. It excels at learning and maintaining your brand’s unique style and voice.

Use case:

Jasper is great for generating personalized ad copy for different audience segments, long-form blog posts for inbound marketing strategies, and more. You can create a custom style guide and upload brand voice reference documents to a knowledge base, all of which powers output that is consistently on-brand. This is a great supplemental tool for any kind of copywriting and content writing that requires careful voice and tone accuracy.

Price:

Creator – $49 per seat/month
Pro – $69 per seat/month
Business – Custom Pricing

 

6. Writer

What it is:

Writer is a generative AI platform that puts an emphasis on enterprise security, privacy, and compliance requirements. For example, it offers robust visibility and access controls, it won’t use your data to train its models, and it adheres to global privacy laws and security standards.

Use case:

Like other generative AI tools on this list, it will boost content creation efficiency and creativity, offering a consistent flow of blog posts, social media content, marketing emails, and more. This is a really great option for marketers at larger organizations who want a generative AI platform that prioritizes security and privacy above all else.

Price:

Team – $18 per user/month
Enterprise – Custom Pricing

 

7. Persado

What it is:

Persado’s AI-powered platform creates personalized digital communications, using data-driven insights to enhance customer engagement. It features their “Motivation AI knowledge base” and is trained on enterprise language to optimize messages for higher conversions across multiple channels.

Use case:

Using Persado, you can refine messaging strategies for email marketing, social media ads, landing pages, SMS campaigns, and more by leveraging data-driven insights and past campaign performance. This is especially useful for marketers striving for consistent, impactful, and tailored messages that resonate with different customer segments.

Price:

Custom Pricing Only

 

8. Agorapulse

What it is:

Agorapulse has a great AI writing assistant integrated directly into their existing platform that can enhance social media copy effectiveness to improve engagement.

Use case:

Agorapulse works best when you input your own copy, then ask it to optimize and fine-tune it into a new version that prioritizes engagement. You can also use it to generate fresh content ideas and suggest the best times to post for maximum reach. And full integration within their platform allows users to seamlessly improve their copy, analyze post-performance, and then schedule and manage future posts in one place. This is a great option for marketers looking to focus on maximizing social media content engagement.

Price:

Standard – $49 per month/user (Billed annually)
Professional – $79 per month/user (Billed annually)
Advanced – $119 per month/user (Billed annually)
Custom Pricing Available

 

Visual Content Creation Tools

These tools use AI to assist in the creation of visual and audio content. They focus primarily on AI-powered video generation and image generation, with some tools offering video and audio editing assistance, transcription generation, and other specialized features.

 

9. Celtra

What it is:

Celtra is a creative automation platform that leverages AI to help marketers and designers efficiently create, manage, and optimize digital advertising content at scale.

Use case:

Celtra is a pretty awesome tool for any marketer who needs to produce visually appealing work but also wants to automate several variations for A/B testing and optimization at scale. Use it to produce localized ads for different markets, using data-driven insights to continuously enhance campaign performance.

Price:

Custom Pricing Only

 

10. OpusClip

What it is:

OpusClip is a generative AI tool designed to repurpose long videos into short, engaging clips optimized for social media platforms.

Use case:

As a marketer, OpusClip is a game-changer for producing short-form, engaging video clips for social media ads, website content, short video tutorials for customer education, and more. It uses advanced AI to identify the most compelling moments in your long-form videos, then rearranges them into short clips that are more likely to go viral. With the growing demand for versatile video content in marketing, this is a must-have tool for your content creation team.

Price:

Free – $0/month
Starter – $15/month
Pro – $29/month
Enterprise – Custom Pricing

 

11. Descript

What it is:

Descript is an AI-powered platform that streamlines the audio and video editing and creation process. Unlike more traditional tools, it allows you to make changes to audio and video by editing the transcript text directly.

Use case:

Marketers can use Descript to create video transcripts, add captions, remove filler words, add green screen effects, enhance voices, clean up background noise, and more. We think it’s a crucial part of any marketing team’s content creation toolbox – particularly when it comes to producing and editing video content and audio podcasts more efficiently.

Price:

Free – $0 per month
Hobbyist – $12 per person/month (Billed annually)
Creator – $24 per person/month (Billed annually)
Business – $40 per person/month (Billed annually)
Enterprise – Custom Pricing

 

12. Runway

What it is:

Runway is currently one of the leading AI-powered video generation tools out there right now. It leverages advanced AI algorithms to generate custom video content based on your text instructions and inputs.

Use case:

Runway is a great resource for marketers to create appealing visual content for a wide range of use cases. Use it to quickly create short, engaging videos to supplement your social media ads, generate b-roll footage to use in longer video advertisements, make your educational and training content more engaging, and much more.

Price:

Basic – $0 per month
Standard – $12 per person/month (Billed annually)
Pro – $28 per person/month (Billed annually)
Unlimited – $76 per person/month (Billed annually)
Enterprise – Custom Pricing

Sora (Honorable Mention – Unreleased)

Since it’s quite similar to Runway, we wanted to take a second here to mention OpenAI’s up-and-coming AI video generation tool, Sora. We’ll learn more about it when it’s released to the public (hopefully later in 2024), but for now, it is definitely one to look out for. We’re confident that OpenAI’s entry into this space will be a strong one that marketers can utilize to produce impactful visual content.

 

13. Midjourney

What it is:

Midjourney is an AI-powered image generation tool that creates visual assets based on user descriptions and instructions. The images it produces largely depend on the submitted text prompt, but it is capable of a range of images, from photo-realistic to highly stylized or abstract.

Use case:

Similar to DALL·E 3, which is accessible through ChatGPT Plus, marketers can use Midjourney to generate images for social media content, blog articles, infographics, product mock-ups, brand imagery, email headers, mood boards and storyboards for brand and product aesthetics, and more. It’s fast, straightforward, and produces some of the best results out of any image generation tool.

Price:

*Basic – $10/month
*Standard – $30/month
*Pro – $60/month
*Mega – $120/month
Enterprise – Custom Pricing

*Annual plans available for a lower monthly rate

 

14. HeyGen

What it is:

HeyGen is an AI-powered video creation platform that specializes in deep fakes and synthetic avatars. It allows users to generate videos using customizable AI avatars and voices from text scripts or audio files.

Use case:

HeyGen is useful for creating immersive content that enhances your digital marketing efforts. For example, developing personalized video messages for marketing campaigns, producing interactive digital content for sales outreach, product overview videos for your website, and more are all enabled here. It’s a cutting-edge tool we think plenty of marketers will find useful.

Price:

Free – $0/month
*Creator – $29/month
*Team – $149/month
Enterprise – Custom Pricing

*Annual plans are available for a lower monthly rate. Price will also increase based on credits needed.

 

Productivity Enhancement Tools

These tools are designed with productivity enhancements in mind. Many of them feature “AI Agents” or “Copilot” chatbot helpers that can receive instructions and automate basic, repetitive tasks, freeing you up to focus on higher-impact, creative tasks.

 

15. Zapier

What it is:

Zapier is an automation tool with an experimental AI workspace that connects commonly used apps like Gmail, Slack, and over 2,000 more. It allows you to automate repetitive tasks without coding or relying on developers to build the integration.

Use case:

You can teach Zapier’s bots to automate repetitive marketing tasks such as data synchronization between CRM and email marketing platforms. Or you can set up automated workflows, allowing Zapier to trigger social media posts based on blog publication. There are limitless possibilities here when it comes to streamlining marketing tasks and processes – and if you don’t know where to start, Zapier makes a large selection of user-created templates available.

Price:

Basic – $0/month
Premium – $20/month
Advanced – $100/month

Add-on services can be purchased for more complex and comprehensive workflow automations.

 

16. Google Workspace & Microsoft Copilot

What it is:

We’ve grouped these together because they both feature existing tools by Google and Microsoft that have been enhanced by AI to boost productivity.

If you use Google’s suite of productivity apps such as Google Docs and Sheets, you can take advantage of AI-driven (through Gemini) suggestions and automations directly in these tools.

Similarly, Microsoft has integrated “Microsoft Copilot”, a generative AI chatbot, into their entire Microsoft suite to enhance productivity and functionality. This includes everything from Word to Excel to Teams. Windows users will even find Microsoft Copilot on their desktop to streamline everyday tasks and processes.

Use case:

Use these AI integrations to draft, edit, and proofread text in Google Docs or Microsoft Word, as well as generate content based on prompts, suggest improvements, correct grammatical errors, and even enhance the tone and style of writing. AI can also help create presentations in Google Slides or Microsoft PowerPoint by suggesting layout designs and generating speaker notes – or by organizing and tracking data in Google Sheets or Microsoft Excel.

Price:

Microsoft Copilot
Microsoft Copilot Free – $0/month
Microsoft Copilot Pro – $20 per user/month

Gemini for Google Workspace
Requires an existing Google Workspace plan with one of these add-ons:
Gemini Business – $20 per user/month (Billed annually)
Gemini Enterprise – $30 per user/month (Billed annually)

 

17. HyperWrite AI Agents

What it is:

HyperWrite is an interesting AI tool that lets you create custom workflows for “AI Agents” who perform tasks autonomously for you. You can record the task once, then let the AI Agent take over and perform it as many times as you need.

Use case:

HyperWrite is definitely capable of assisting with routine email drafts, reports, and content outlines, but this new AI Agents feature is what sets it apart from other tools right now. You can set up Agents to automate personalized follow-ups to leads and customers, generate regular reports based on market research and competitive analysis, draft and schedule social media posts and content, and much more. For now, simple tasks are quite reliable, while more complex tasks are going to require more instructions and experimentation – but this feature continues to improve.

Price:

Premium – $16 per user/month (Billed annually)
*Ultra – $29 per user/month (Billed annually)

*As of July 2024, the Ultra tier is required to access Agent features.

 

Strategy Enhancement Tools

While similar to the previous category, these tools focus less on task automation and more on providing insights and information that can aid strategic decision-making and optimize campaigns. They can perform market analysis, competitive analysis, content strategy optimization and scheduling, sales strategy optimization, customer behavior insights, and more.

 

18. Perplexity

What it is:

As an AI chatbot-driven research platform, Perplexity functions as a hybrid between a search engine and an AI chatbot, combining features of both to deliver a seamless user experience.

Use case:

Marketers can use Perplexity to provide in-depth market analysis and insights that aid their strategic planning. It’s great for conducting comprehensive competitor analysis, identifying market trends, gathering consumer insights, or identifying potential partnership opportunities by analyzing industry networks. We like to think of it as an awesome research assistant.

Price:

Standard – $0/month
Professional – $20/month

 

19. MarketMuse

What it is:

MarketMuse is a content optimization platform that uses AI and machine learning to assist in the creation of high-quality, relevant content.

Use case:

MarketMuse can help content creators, marketers, and SEO professionals develop more effective content strategies. It’s great for conducting content audits, identifying content gaps, and ultimately optimizing content to rank higher on search engines. MarketMuse also has content planning features that help you develop a content calendar based on strategic keyword research, providing a roadmap for creation and distribution.

Price:

Free – $0/month
Standard – $149/month
Team – $399/month
Premium – Custom Pricing

 

20. Gong

What it is:

Gong.io is a revenue intelligence platform that uses artificial intelligence to analyze customer interactions across multiple channels, such as phone calls, emails, and web conferences.

Use case:

Gong leverages AI to analyze sales and revenue data, helping you make informed decisions that optimize your overall sales strategy. More specifically, it can improve sales pitch effectiveness by analyzing call recordings to provide actionable insights, track sales trends, forecast future performance, highlight and prioritize relevant opportunities, and more. All of this helps ensure your sales strategies align with what your customers are really looking for.

Price:

Custom Pricing Only

 

21. Intellimize

What it is:

Intellimize is an excellent tool that uses AI for website personalization and conversion rate optimization, offering features like AI-generated landing pages, an AI Content Studio, and integrations with other tools in your tech stack.

Use case:

Intellimize can help marketers test different website layouts to determine the most effective designs for user engagement. It can also help test and optimize call-to-action placements based on user behavior, which enhances the likelihood of conversions. And the AI Content studio ensures that consistent, relevant content is delivered to your audience for a more tailored and impactful user experience.

Price:

Custom Pricing Only

 

22. Hume

What it is:

Hume is a tool with the unique ability of using AI to interpret customer emotions. It’s trained on millions of human interactions, allowing it to measure nuanced vocal modulations, guiding language, and speech generation, as well as interpret both vocal and facial expressions.

Use case:

Marketers can make good use of this tool to help improve customer retention and satisfaction by monitoring sentiment analysis on social media, improving customer support interactions, personalizing customer experiences, and more. It can also be used to guide campaign effectiveness by analyzing the emotional reactions of target audiences to various content and advertisements.

Price:

Pay-as-you-go pricing model. Further details here.

 

Major Marketing & Sales Platforms

To round out the list, this section is reserved for pre-existing marketing and sales platforms that many marketers will already be using on a regular basis. We’ve included them because of their extensive AI integrations and additional AI-powered features, which significantly enhance productivity and efficiency for users. We’ll keep this part focused exclusively on what those AI integrations look like, as the platforms themselves will likely be familiar to you – and pricing will vary drastically based on your overall platform plan outside of AI-specific features.

 

23. HubSpot

HubSpot has a growing list of AI features and tools that it continues to integrate into its platform. Some of these include their AI Email Writer, AI Blog Writer, Content Remix, Chatbot Builder, and several more. Aside from these evolving options, they’ve created ChatSpot – HubSpot’s own AI-powered companion that can generate real-time insights from in-depth company research, comprehensive keyword rankings, and more.

 

24. Salesforce

Similar to HubSpot, Salesforce has integrated their own AI-powered assistant which they’ve titled Einstein Copilot. Powered by their Einstein 1 platform, it’s essentially a chatbot integrated directly into your Salesforce that can answer questions about prospects, sales data, opportunities, and so on. Outside of Einstein Copilot, Salesforce has integrated several other AI-powered features too such as generative AI for email writing, call summaries, and much more.

 

25. Adobe

Last but not least, we want to make sure we draw your attention to the AI-powered features Adobe has been integrating across all their offerings. From Adobe Firefly 3 for text-to-image generation, to Adobe Sensei GenAI for content and copy generation, to the integrated AI Assistant – all these features continue to accelerate productivity and creativity for marketers.

And if you’re an Adobe Marketo user, Adobe Dynamic Chat is now integrated with generative AI, allowing you to train it on sales, marketing, and product knowledge so customers and prospects can receive on-brand conversations and support.

pink line

We know that it’s tough for most marketers to stay up to date with the latest AI developments. Especially with how frequently new tools are being released. But once you sift through the noise and integrate a few key tools into your workflow, the resulting productivity and creativity increases make all the difference.

We encourage you to experiment with the tools from this list that are most relevant to the work you’re doing. Take some time to learn how they work and continuously refine how you use them.

And if you need some help, don’t hesitate to reach out to us here!

We’re continuously experimenting with different ways that AI can make us all the best marketers possible.

How to Use the Javascript API for Marketo Forms

In this guide, we’ll show you how the Javascript API can be leveraged to improve the control and customization of your Marketo Forms.

Marketo Forms are a key component of effective marketing automation. By facilitating lead acquisition and streamlining the data collection process, they are pivotal for nurturing leads and driving conversions.

But Marketo Forms aren’t perfect. They are flexible in some ways, but inflexible in others.

With added control over your Marketo Forms through the Javascript API, you can stay compliant, enhance the user experience, execute background submissions, and much more.

What is the Javascript API?

For those who are new to the Javascript API, it is essentially a tool that enables communication between the user’s browser and your Marketo instance. And that last part is important to remember: Javascript does not run in Marketo. Instead, it runs in the user’s browser and sends information back to Marketo or brings information forward form Marketo.

If you want to learn more about the Javascript API, you can read the Marketo documentation here.

Benefits of Using Javascript API for Marketo Forms

We briefly teased these above, but the 3 main benefits of using the Javascript API for Marketo Forms are as follows:

1. Improved Form Customization

The Javascript API allows for extensive customization of form fields and behaviors, letting you tailor forms to meet specific compliance requirements or UI/UX design choices.

MktoForms2.whenReady(function(form) {
  form.onValidate(function() {
    var emailField = form.getValues().Email;
    if (!emailField.includes("@example.com")) {
      form.submittable(false);
      alert("Please use your company email address.");
    }
  });
});

 
2. Dynamic Modification of Form Fields

The Javascript API also allows form fields to change dynamically based on user inputs or other criteria (This aligns with the example we mentioned earlier regarding form field changes for USA and Canadian citizens).

MktoForms2.whenReady(function (form) {
  var countryField = form.getFormElem().find("select[name='Country']");
  var stateField = form.getFormElem().find(".stateField");
  var stateLabel = stateField.find("label");
  var stateSelect = stateField.find("select[name='State']");
 
  var usaStates = ["list of states"];
  var canadaProvinces = ["list of provinces"];


  countryField.change(function () {
    var selectedCountry = $(this).val();
    if (selectedCountry === "USA" || selectedCountry === "Canada") {
      stateField.show();
      if (selectedCountry === "Canada") {
        stateLabel.text("Province");
        stateSelect.empty();
        canadaProvinces.forEach(function (province) {
          stateSelect.append('');
        });
      } else {
        stateLabel.text("State");
        stateSelect.empty();
        usaStates.forEach(function (state) {
          stateSelect.append('');
        });
      }
    } else {
      stateField.hide();
    }
  });


  // Trigger the change event on load to handle pre-selected values
  countryField.change();
});

 
3. Programmatic Form Submissions

The Javascript API supports programmatic submissions, enabling background data collection and submission from third-party forms (some marketers use entirely different forms for unique styling options and features) to your Marketo form.

MktoForms2.loadForm("//app-ab00.marketo.com", "123-ABC-456", 789, function(form) {
  form.addHiddenFields({
    "hiddenField1": "value1",
    "hiddenField2": "value2"
  });
  form.submit();
});

 

Limitations of Using Javascript API for Marketo Forms

While the pros certainly outweigh the cons, there are a couple of limitations you should keep in mind when using the Javascript API for your Marketo Forms:

1. Implementation Complexity

Depending on your level of proficiency in Javascript and understanding of web development, setting up the API to work properly can be a challenge. There are a lot of moving parts and several things can go wrong.
For example, a common issue is when the API loads and runs on the web page before the form loads. When this happens, the API can’t find any field inputs and fails to capture data for your Marketo instance.

The reverse can happen as well (although it’s far more rare): The form loads fast on the webpage, allowing the user to fill out the form before the API has loaded to capture those field inputs.

2. Marketo’s Backend Infrastructure

Despite the API’s flexibility, it is still limited by Marketo’s backend rules. For example, Marketo requires all form fields to relate to a lead (their email address) with each submission being tied to a lead identifier.

pink line

Now, let’s dive into some use cases we’ve put together to illustrate how Javascript API can solve common issues with Marketo Forms.

Use Case 1: Language & Compliance Based on Country

Problem: There is a need to comply with different data protection regulations and provide localized experiences based on the user’s location.

Solution: The Javascript API can detect user location using the “Country” field or URL parameters, then dynamically adjust text and form fields accordingly. This results in a much better user experience, as well as assured compliance with differing international regulations.

Code Outline Example:

MktoForms2.whenRendered(function (form) {
  var opt = document.getElementById("Opt_In__c"); //opt-in element
  var check = opt.parentElement.parentElement.parentElement.parentElement; //checkbox element
  var text = document.getElementById("optin text").parentElement.parentElement.parentElement.parentElement; //text element in case there is no checkbox
  var uncheckedCountries = ["List of country codes that will display unchecked checkbox"]
  var precheckedCountries = ["List of country codes that will display prechecked checkbox"];
  var hideCountries = ["List of country codes that will hide the checkbox"];
  text.style.display = "none";
  check.style.display = "none";
  function unchecked() { //function that displays unchecked checkbox
    opt.checked = false;
    check.style.display = "block";
    text.style.display = "none";
  }
  function checked() { //function that displays prechecked checkbox
    opt.checked = true;
    check.style.display = "block";
    text.style.display = "none";
  }
  function hide() { //function that displays only the text
    opt.checked = true;
    check.style.display = "none";
    text.style.display = "block";
  }
  var select = document.getElementById("CountryCode");
    select.addEventListener("change", (e) => {
      if (hideCountries.includes(select.value)) {
        hide();
      } else if (uncheckedCountries.includes(select.value)) {
        unchecked();
      } else if (precheckedCountries.includes(select.value)) {
        checked();
      }
    });
})
MktoForms2.whenRendered(function (form) {
  var translations = {
    "en": {
      "FirstName": "First Name:",
      "LastName": "Last Name:",
      "Email": "Email Address:"
    },
    "pt": {
      "FirstName": "Nome:",
      "LastName": "Sobrenome:",
      "Email": "Endereço de Email:"
    }
  }
  // You can get the language from the country code as specified bellow and change the language of the form whe the county field changes
  var countryLanguage = {
    "US": "en",
    "UK": "en",
    "BR": "pt",
    "PT": "pt",
  }
  var language=countryLanguage
  var select = document.getElementById("CountryCode");
    select.addEventListener("change", (e) => {
      for (var labelTranslation in translations[language]) {
        // Identify each label element and change its text if it exists
        var labelElement = document.querySelector("label[for='" + labelTranslation + "']");
        if (labelElement) {
          labelElement.textContent = translations[language][labelTranslation];
        }
      }
    })
  // You could also get the language from a token (remember to define it in you program) and immediatly change the language of the form as below
  var language = "{{ my.language }}"
  for (var labelTranslation in translations[language]) {
    // Identify each label element and change its text if it exists
    var labelElement = document.querySelector("label[for='" + labelTranslation + "']");
    if (labelElement) {
      labelElement.textContent = translations[language][labelTranslation];
    }
  }
})

 

Use Case 2: Hidden Form Submission

Problem: There is a situation where a form submission needs to occur without any user interaction. This could be event tracking or other automated processes for data collection.

Solution: You can set up hidden form fields and trigger form submissions using the Javascript API. This allows data to be seamlessly collected from the background and then sent to your Marketo instance. Overall, this enables far more flexibility when it comes to data collection and submission processes.

Code Outline Example:

HTML

<form id="mktoForm_2095" style="display: none"></form>
<script>
MktoForms2.loadForm("//YOUR-DOMAIN", "YOUR MUNCHKIN", 123456); // You can get this in the embed code;
</script>

 
Javascript

document.getElementById('YOUR-FORM-ID').addEventListener('submit', function(event) {
  // Prevent page to redirect
  event.preventDefault();
  // Get URL Params
  var url = new URL(window.location.href);
  var utmsource = url.searchParams.get("utm_source")
  var utmmedium = url.searchParams.get("utm_medium")
  var utmcampaign = url.searchParams.get("utm_campaign")


  // Get Form Values
  var firstName = document.getElementById("FIRST-NAME-ID").value;
  var lastName = document.getElementById("LAST-NAME-ID").value;
  var email = document.getElementById("EMAIL-ID").value;


  var myForm = MktoForms2.getForm(123456); // Replace by your Marketo form ID
 
  var hiddenFields={
    "Email": email,
    "FirstName": firstName,
    "LastName": lastName,
    "Most_Recent_UTMSource":utmsource,
    "Most_Recent_UTM_Medium":utmmedium,
    "Most_Recent_UTM_Campaign":utmcampaign,
  }
  // Add hidden fields to the hidden form
  myForm.addHiddenFields(hiddenFields);
  // Submit the hidden form
  myForm.submit();
  // Submit the regular form
  document.getElementById('YOUR-FORM-ID').submit();
});

 
pink line

Leveraging the Javascript API for Marketo Forms opens up a world of possibilities for improved customization and dynamic interaction.

As a marketer, it’s an important tool that’ll allow you to enhance user experience, ensure compliance, and streamline data collection processes – which will ultimately drive more effective lead acquisition and conversion strategies.

And while there are some limitations to consider, the benefits definitely outweigh them.

As we covered above, proper implementation of the API can be complex.

So if you need any help at all, reach out to us here!

How to Use GPT-4o for Email Personalization in Marketo

In this guide, we’ll show you how to use GPT-4o for better email personalization directly within your Marketo instance!

The recent release of GPT-4o came with a long list of new features and improvements over previous models, but the ones most relevant to email personalization are its enhanced language understanding and improved natural language processing.

In short, GPT-4o understands context and nuance better than any previous architecture.

This means more accurate and engaging copy for your emails, enabling more personalization at scale without losing quality.

And the real value lies in integrating GPT-4o directly into Marketo, allowing us to utilize enhanced email personalization with more efficiency.

Here’s a step-by-step walkthrough on how to set it up.

pink line

Step 1: Accessing ChatGPT-4o API

First, we need to gain access to the ChatGPT API. Start by heading over to the OpenAI Platform and log in or sign up.

Keep in mind, API access is not included in the ChatGPT Plus Subscription. APIs are billed separately, with a price breakdown provided here.

Once you register, you will receive API keys and the necessary credentials needed to integrate GPT-4o.

If you’re new to using OpenAI’s APIs, there is a comprehensive FAQ here.
 

Step 2: Refine Your ChatGPT Prompt

Next, we must craft an effective prompt for generating high-quality email content. If you don’t have access to ChatGPT-4o directly in your browser, you can use the previously acquired API right in Google Docs to test out different prompts.

To set up the AI in Google Docs, head over to Extensions -> Add-ons -> Get add-ons. This will open the Google Workspace Marketplace. Here, search for “GPT for Docs Sheets Slides” developed by Qualtir (as shown in the screenshot below).

Using this add-on, we can refine our prompt through trial and error using the ChatGPT API.

We’re going to need 2 separate prompts here:

  1. Email Body Prompt: This should include specific instructions regarding format and context to ensure the output is suitable for immediate use in Marketo.
  2. Email Subject Line Prompt: This will be for generating personalized subject lines. Make sure they are relevant to the content of the email itself.

Be sure to experiment and iterate until you land on an output that you’re satisfied with.
 

Step 3: Creating Fields in Marketo

Now, we need to head over to Marketo to create fields that will store the content we’re generating with ChatGPT.

We’ll need to create 2 fields, one for the email body and the other for the email subject line:

  1. Email Body Field: Create a “Text Area” field to store the email body content. This field type has a larger character limit of 65,535 characters – more than enough for your email copy.
  2. Subject Line Field: Create a “String” field for subject lines – this one will be limited to 255 characters.

 

Step 4: Creating Webhooks in Marketo

This is where the real magic happens. We have content ready to be pulled from ChatGPT through the API (Step 2), and we have a field to store the content in Marketo (Step 3).

Now, we’ll send the content from OpenAI to Marketo using webhooks. Once again, we’ll need 2 of them:

  1. Webhook for Email Body: Set up a webhook to request ChatGPT-4o. Then, in the response mapping, populate the email body field.

  2.  

  3. Webhook for Subject Line: Set up another webhook to request ChatGPT-4o. This time, in the response mapping, populate the subject line field with the content.

 

Step 5: Creating a Script to Hedge for Errors

There is always a chance that ChatGPT’s API will run into an error and return the value “N/A” in place of your subject line.

To hedge against this, we need to implement email script tokens that automatically catch these incorrect subject lines and stop those emails from going out.

Aside from that, there is another unique problem we ran into when it comes to line breaks in your email body copy:

Essentially, ChatGPT will send content with “
” tags to indicate line breaks. The problem is, When “
” exists, the JSON breaks and Marketo won’t be able to read it.

A workaround we came up with is to create another email script token that converts all “
” tags to “ is an arbitrary placeholder, you can use anything you want). Now Marketo will be able to read the content, and we can instruct it to turn those arbitrary “” tags back to “
” tags to reimplement the line breaks so the email is formatted correctly.

This is a bit of a tedious workaround, but it’s the reality of how these systems currently communicate with each other.
 

Step 6: Testing Phase

This final step is pretty self-explanatory but very important.

It’s essential that you test your emails rigorously to make sure everything is working properly before sending anything out to your list.

pink line

The enhanced language understanding and improved natural language processing that GPT-4o brings to the table streamlines the creation of more engaging, contextually accurate personalized emails.

And integrating it directly into Marketo allows us to leverage these capabilities with even more efficiency and speed at scale.

Knowing how to utilize GPT and integrate it into your systems will only become more important as it continues to improve over the coming months and years.

If you need help with any of the steps above, or if you want to know more about how Revenue Pulse can implement AI solutions for you, reach out to us here.

How to Hire Fractional Marketers

TLDR: Fractional marketing provides cost-effective access to top marketing talent on a part-time basis, allowing businesses to fill skill gaps without the expense of full-time hires. Keys to hiring a Fractional CMO or Fractional Marketer include defining strategic goals, setting clear expectations, and defining success metrics. At RP, we act as a Fractional Marketing Agency, integrating seamlessly with your team to boost marketing capabilities and drive growth.

pink line

If you want to hire great fractional marketing talent, you’re in the right place.

We’re going to break down what fractional marketing is, why it’s valuable, and key considerations when choosing who to hire.

Here are the sections we’ll be covering in this article:

 

What is Fractional Marketing? (And How Is It Valuable?)

Let’s start with a hypothetical (for most of you, this is NOT a hypothetical – it’s reality):

  1. You need more headcount and additional marketing resources to support growth.
  2. But your C-suite and board aren’t able to approve full-time hires right now.

Enter fractional marketers.

Essentially, fractional marketers are skilled marketers who work on a part-time basis to manage or enhance your company’s marketing initiatives. And despite not being on your payroll full-time, they are deeply integrated into your team.

The term itself doesn’t signify anything new or groundbreaking, but it does represent an ongoing shift in the marketing world.

Because in today’s digital marketing landscape, there are more channels than ever. You have email marketing, paid social, organic social, SEO, paid search, PPC, affiliates, influencers, referrals – it goes on.

And with so many different channels, we’re seeing a major increase in marketing “specialists” over “generalists”. Marketing teams want talent that can work in these channels at a very high level. But from a hiring perspective, companies simply can’t afford all of those full-time positions.

Fractional marketers offer a solution to this.

This arrangement allows businesses to leverage top-tier marketing expertise without committing to the overhead associated with full-time hires.

In short, the value of Fractional Marketing comes from:

  • Cost-Effectiveness: Pay for top-level expertise only when you need it, without the added expenses of benefits, bonuses, and full-time salaries (as we said above).
  • Flexibility: Fractional marketers can scale their involvement up or down based on your business’s current needs, providing a flexible solution that adapts to your company’s pace and budget.
  • Expertise on Demand: They typically bring a wealth of experience and specialized skills that can be hard to find in a single full-time employee. Crucial for navigating complex issues and achieving specific strategic goals.

There’s no rules on what kind of marketer can be “fractional” either. You can find fractional marketers that will help you resolve technical issues with CRM integration, prepare venture capital pitches, offer executive-level strategic guidance, and everything in between.

 

How To Hire a Fractional CMO

The recent rise of the “Fractional CMO” is a big contributor to the increasing popularity of the “Fractional” term in the marketing world.

So why use the title “Fractional CMO” when the concept of fractional work is nearly synonymous with freelance work?

The difference is, freelance work has never really applied to higher-level leadership or C-Suite roles. These positions have always been filled by full-time, long-term salary hires.

The Fractional CMO changed that perception.

You can pay a Fractional CMO only for a fraction of their time – as needed. This lowers the cost for businesses, while giving them the benefit of an experienced leader who can steer the marketing ship with strategic vision and executive presence.

So how should leadership teams approach hiring a Fractional CMO?

  • Define strategic goals: Clarify what the Fractional CMO is expected to achieve, such as refining brand strategy or accelerating growth. This will vary based on your company size, goals, budget, and lifecycle.
  • Look for relevant experience and skills: Choose candidates with a strong track record in roles that showcase their ability to develop strategic visions, influence teams, and make decisions.
  • Consider cultural fit: Ensure your chosen Fractional CMO aligns with your company’s culture and can motivate and lead the marketing team effectively.
  • Discuss expectations: Agree on their on-site presence, availability for meetings, and response times for critical issues. Remember, they aren’t full-time. Setting clear expectations here can make or break a successful fractional hire.
  • Set clear success metrics: Define specific performance metrics such as marketing ROI, brand development, and customer acquisition costs. These will be the north stars that help you track progress and guide your Fractional CMO.
  • Establish an onboarding process: While this isn’t specific to fractional hires, it’s still important to implement a structured onboarding process to quickly integrate any new hire into your team and systems.
  • Have a plan for future sustainability: Due to the nature of fractional hires, your company likely won’t work with a Fractional CMO for years on end. It is typically a shorter-term agreement that is focused on specific goals. With that in mind, establish a system that will set up your company for success even after your Fractional CMO has left.

 

Hiring Other Fractional Marketers

When it comes to enhancing the rest of your marketing team with fractional talent, the hiring process remains mostly the same.

Examine your strategy for any gaps that might exist and consider your budget and team’s bandwidth. If your team is overwhelmed and unable to handle additional full-time roles, allocating budget towards fractional marketing resources could be the strategic lever you need.

Pinpoint exactly where a fractional professional can make the biggest impact.

For example: Your company needs to enhance its digital presence through advanced SEO and data analytics but lacks the in-house expertise.

Rather than hiring full-time employees, you could bring in fractional SEO specialists who can set up the necessary frameworks, train existing staff, and oversee the initial implementation of sophisticated strategies.

As mentioned earlier, skills, experience, cultural fit, expectations, and a good onboarding process are important for any new hire – fractional or not.

pink line

Hiring fractional marketers allows companies to harness top-tier marketing expertise and drive growth while maintaining control over budgets and scaling operations efficiently.

With these recruitment and integration tips in mind, you’ll find fractional marketers who can significantly enhance your marketing capabilities and provide a competitive edge.

At RP, we’ve been acting as extended fractional team members and fractional marketing leaders for some of the biggest brands in the world for over a decade.

Acting as a Fractional Marketing Agency, our consultants specialize in various domains, allowing us to assemble the perfect combination of experts to augment your marketing operations with tailored solutions.

If you want to explore how we can fill the gaps in your marketing strategy, feel free to reach out to us here!

Launch Codes Live Recap: April 25th, 2024

On our 3rd episode of Launch Codes Live, Joe (CEO) and Andy (President) dissect the latest developments from Adobe, explore the issues posed by deep fakes, and offer insight into the closed vs. open source LLM’s debate.

Adobe FireFly 3 Announced

A couple days ago (on April 23rd), Adobe debuted the Adobe Firefly Image 3 Foundation Model at MAX London.

This will be the next major release in their collection of creative generative AI tools.

Currently in beta, this new iteration of FireFly 3 enhances Adobe’s already impressive suite, particularly in terms of photo realism capabilities. With tools like this, companies can now create bespoke, copyright-compliant images internally, potentially reducing reliance on external stock photo providers and reshaping the landscape of digital content creation.

Joe and Andy reflect on the rapid advancements of these tools, pointing out that it has only taken a single year to reach the 3rd major iteration of Adobe’s FireFly. 12 months from now, we could be looking at FireFly 5 or even 6. Time will tell.

The Fake James Bond Trailer

Joe and Andy shift the conversation to a fake James Bond trailer that has amassed millions of views and sparked widespread debate about the potential of AI in media creation. While this technology showcases impressive capabilities in generating convincing media, it raises significant ethical questions.

With tools like OpenAI’s Sora and Microsoft VASA-1 on the horizon, believable media will be easier than ever to create and disseminate – posing a major challenge for content verification and public trust in media.

While some aspects of the Bond trailer are clearly manufactured (such as Margot Robbie’s mouth movements being very off when she speaks, as Andy pointed out) the overall execution and presentation of the trailer demonstrates the increasing sophistication of deep fake technology, blurring the lines between reality and fabrication.

Adobe For B2B Marketers

Adobe is making significant strides in the B2B sector with its enhanced marketing tools, notably Adobe Journey Optimizer (AJO) and Customer Data Platform (CDP).

Andy notes that Adobe has been moving more and more into the B2B space for quite some time now, with things only ramping up as the months go by. This past Adobe Summit 2024 in Vegas is a prime example of that, where Adobe announced a new B2B-centric track for their AJO offering.

And while CDP is a relatively new tool in the Adobe collection, it was also announced at Adobe Summit 2024 that CDP will be able to access data warehouses in real-time, rather than going through cycles to bring data in. This ability to access and query data in real-time is definitely something people have been asking for.

Joe and Andy discuss these features in more detail – as well as the idea of unification of marketing tools – at more length in the full episode.

Meta’s Llama 3:
Open vs. Closed Source LLM’s

With Meta’s recent release of Llama 3, the conversation surrounding open vs. closed source LLM’s continues to heat up.

Joe introduces the topic by acknowledging the appeal of open-source models due to their ability to be advanced and augmented through community efforts. But on the other hand, he also recognizes the concerns about the security and ethical implications of open-source LLMs: “What’s the balance between this idea of progression and openness, and this idea of ‘closed’ maybe being a little bit safer?”

Andy builds on Joe’s points by recalling a book called “The Master Switch” by Tim Wu which discusses the historical patterns seen in the development of technologies like radio and television. Those began as open but eventually became regulated and more closed – will LLM’s follow the same trajectory across the board?

This conversation goes into much greater detail and nuance in the full episode below!

Watch the full episode.

If you missed this episode Launch Codes Live, and want to dive into these topics at a deeper level, you can watch the full recording on LinkedIn here.

Be on the lookout for the next event on LinkedIn in May!

How to Automate Marketo Form Documentation

After over a decade of navigating the fast-paced world of MOPs, I’ve learned the hard way that documentation, especially for Marketo forms, often takes a backseat amidst more pressing priorities.

But the reality is, documenting forms in Marketo is absolutely essential when it comes to audits, inventory management, and ensuring compliance with internal and external regulations.

However, manually documenting each form’s fields, validation rules, and configurations can be incredibly time-consuming and prone to errors.

That is exactly what this guide aims to address.

We’ll walk you through a streamlined, automated approach to documenting Marketo forms using API and Python so you can save time and reduce errors – freeing you up to focus on driving impactful marketing strategies.
 

Who is this guide for?

If you’re already familiar with using the Marketo API, you’ll find this guide immensely helpful.

We’ll provide you with a Python script that automates the extraction and documentation of form fields directly from Marketo, saving you hours of manual work.
 

Not familiar with the Marketo API?

For those who aren’t as comfortable with the Marketo API or scripting in Python, don’t worry—we’re here to help. Our team can assist you with your project, ensuring your forms are documented correctly and efficiently. You can book a free 30-minute chat with an expert here to get started.

Alternatively, if you’re keen on learning how to do this yourself, we highly recommend signing up for the API Crash Course course offered by Tyron Pretorious on The Workflow Pro blog. This course will equip you with the knowledge and skills to leverage the Marketo API for various automation and integration tasks.
 

Our Step-By-Step Guide

The script we provide leverages the Marketo API to fetch form fields and then formats this data into a neatly organized Excel file, with each form’s fields documented in a separate tab.

Prerequisites:

  • Marketo API access with client_id and client_secret.
  • Python installed on your system.
  • marketorestpython and pandas Python packages installed. You can install these via pip:
pip install marketorestpython pandas openpyxl

 

The Script (Python):

from marketorestpython.client import MarketoClient
import pandas as pd

# Marketo Credentials
munchkin_id = ""  # fill in Munchkin ID
client_id = ""  # enter Client ID
client_secret = ""  # enter Client Secret
api_limit = None
max_retry_time = None
requests_timeout = (3.0, 10.0)

# Initialize Marketo Client
mc = MarketoClient(munchkin_id, client_id, client_secret, api_limit, max_retry_time, requests_timeout=requests_timeout)

# List of form IDs to process
form_ids = [1000, 1001, 1002]  # Add form IDs here as integers

# Initialize Excel writer
excel_filename = 'marketo_form_fields.xlsx'
writer = pd.ExcelWriter(excel_filename, engine='openpyxl')

for form_id in form_ids:
    # Retrieve fields for the current form
    fields = mc.execute(method='get_form_fields', id=form_id, status=None)

    # Create a DataFrame from the fields
    if fields:
        data = []
        for field in fields:
            if 'fieldMetaData' in field and 'values' in field['fieldMetaData']:
                picklist_options = "; ".join([f"{opt['label']} ({opt['value']})" for opt in field['fieldMetaData']['values']])
            else:
                picklist_options = ''
            
            data.append({
                'ID': field.get('id', ''),
                'Label': field.get('label', ''),
                'Data Type': field.get('dataType', ''),
                'Validation Message': field.get('validationMessage', ''),
                'Required': field.get('required', False),
                'Form Prefill': field.get('formPrefill', False),
                'Visibility Rules': field.get('visibilityRules', {}).get('ruleType', ''),
                'Hint Text': field.get('hintText', ''),
                'Max Length': field.get('maxLength', ''),
                'Picklist Options': picklist_options,
            })
        
        df = pd.DataFrame(data)

        # Use form ID as sheet name for now
        sheet_name = str(form_id)
        df.to_excel(writer, index=False, sheet_name=sheet_name[:31])  # Excel sheet name has a max of 31 characters

# Save the Excel workbook
writer.save()
print(f"Excel file '{excel_filename}' has been created successfully.")

 
How to Use the Script:

1) Fill in Your Credentials: Replace the placeholder values for munchkin_id, client_id, and client_secret with your actual Marketo API credentials.

# Marketo Credentials
munchkin_id = ""  # fill in Munchkin ID
client_id = ""  # enter Client ID
client_secret = ""  # enter Client Secret

 

2) Specify Form IDs: In the form_ids list, replace the example IDs with the IDs of the forms you want to document.

# List of form IDs to process
form_ids = [1000, 1001, 1002]  # Add form IDs here as integers

 

3) Run the Script: Execute the script in your Python environment. The script will communicate with the Marketo API, retrieve the specified forms’ fields, and output the information into an Excel file named marketo_form_fields.xlsx. Here’s what that file should look like:

4) Review Your Documentation: Open the generated Excel file to review your forms’ documentation. Each tab within the workbook corresponds to a different form, named using the form’s ID.

pink line

By automating the documentation of Marketo forms, you can significantly reduce the time and effort required for audits and inventories. This not only improves accuracy but also allows you to allocate your valuable time to more strategic tasks.

If you encounter any challenges or have questions about customizing the script for your specific needs, don’t hesitate to reach out for professional assistance. As mentioned earlier, you can book a free consultation with one of our experts here.