> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allgoodhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Editing and sending emails with the allGood Marketo MCP

> Read or update tokens, edit email modules and content sections, clone programs and emails, and send test sends with the allGood Marketo MCP.

Once the allGood Marketo MCP is connected, you can read or update tokens, edit email modules and content, clone programs and emails, and send test sends directly in conversation. This article covers the tools for making and testing changes — tokens are grouped here because they drive so much of what an email actually says. To find a program or email, or just read its details, see [Finding programs and working with data](/use-cases/marketo-mcp/capabilities).

New to MCP, or wondering what connecting it actually does? See the [Overview](/use-cases/marketo-mcp/index) first.

***

## Before you start

The Marketo MCP must be active in your conversation before any of these tools are available — see [Claude Desktop](/use-cases/marketo-mcp/claude-desktop) or [ChatGPT Desktop](/use-cases/marketo-mcp/chatgpt-desktop) for setup.

<Note>
  Every tool below can be set individually to run automatically, ask you first, or be turned off — see [Can I control which actions need my approval first?](/use-cases/marketo-mcp/faq#can-i-control-which-actions-need-my-approval-first) in the FAQ.
</Note>

## What data this touches

The Marketo tools read and write Marketo program and email data — programs, folders, tokens, email content and templates, forms, and smart campaign names. They don't touch lead or contact records. Everything the assistant does is attributed back to you individually and logged, even though Marketo itself only sees allGood's single integration user — so a change made in a chat is traceable to the person who made it, not just to "allGood."

***

## Working with tokens

### Get program tokens

**What it does:** Returns a lightweight list of all tokens in a program — names, types, and current values — without fetching the full asset inventory.

**When to use it:** When you just need to check token values and don't need the full program details.

**Example prompts:**

* *"What tokens are set in program 1234?"*
* *"List all tokens in this program and flag any that are empty."*

### Update a single token

**What it does:** Creates or updates one token in a program. If the token already exists, it overwrites the current value; if it doesn't, it creates it.

**When to use it:** When you need to update one specific token — a subject line, a date, a UTM parameter — without touching anything else.

**Example prompts:**

* *"Set the `{{my.EventDate}}` token in program 5678 to 'July 15, 2026'."*

<Warning>
  Token updates apply immediately to your live Marketo program. Active smart campaigns using this token pick up the new value on their next send — confirm the program ID and token name before applying the change.
</Warning>

### Update multiple tokens at once

**What it does:** Creates or updates a batch of tokens in one operation.

**When to use it:** When you're populating a new program's tokens from a brief, or refreshing several tokens at once.

**Example prompts:**

* *"Set all the tokens for program 1234 based on this campaign brief: \[paste brief]."*

<Warning>
  All updates apply immediately. If one token update fails, the others may still succeed — you'll get a report of which succeeded and which didn't.
</Warning>

***

## Editing emails

<Note>
  Every tool in this section edits an email's **draft**. Marketo keeps sending the currently approved version until that draft is approved inside Marketo — so any change made here is staged, not live, until someone approves it.
</Note>

### Add a module to an email

**What it does:** Places a module from the email's template at a given position.

**When to use it:** To add a new content block to an email — a testimonial, an extra CTA — at a specific spot.

**Example prompts:**

* *"Add a second Testimonial block to email 1234, after the hero."*

<Note>
  Running this twice places two separate instances — re-running it after a timeout duplicates the module rather than doing nothing. Read the layout back afterward to confirm what actually landed.
</Note>

### Remove a module from an email

**What it does:** Removes a placed module from an email, along with its content.

**When to use it:** To drop a content block you no longer want.

**Example prompts:**

* *"Remove the footer promo block from this email."*

<Warning>
  The module's content is removed with it. Re-adding the module later starts from the template's defaults, not the content you removed — confirm before removing a module with authored content in it.
</Warning>

### Rearrange an email's modules

**What it does:** Sets the display order of an email's placed modules.

**When to use it:** To reorder content — move a CTA above testimonials, reverse a sequence of blocks.

**Example prompts:**

* *"Move the CTA above the testimonials in email 1234."*

### Update a module's variable

**What it does:** Sets the value of one variable on a placed module — a background color, a button label, a link target.

**When to use it:** For a module's own settings, as opposed to its body content.

**Example prompts:**

* *"Make the CTA button in email 1234 say 'Reserve my seat'."*

<Note>
  If the current value contains a `{{my.*}}` token, overwriting it here breaks that link for this email only. Setting the program token instead is usually what you want.
</Note>

### Update an email's content section

**What it does:** Sets the content of one editable section in an email. This isn't limited to text — the section's own type decides what "content" means: for a text section it's copy, for an image section it's the image itself (plus alt text and sizing), and for a snippet or dynamic content section it's which snippet or which dynamic content rule set gets used there.

**When to use it:** To change what an email actually says or shows — a headline, body copy, a hero image, or which snippet a section pulls in.

**Example prompts:**

* *"Change the headline in email 1234 to 'Join us in March'."*
* *"Swap the hero image for this uploaded one, keeping its current size."*
* *"Switch the footer section in email 4321 to use the 'Winter Promo' snippet instead."*

<Note>
  Check the section's current type with "Get an email's current layout" (in [Finding programs and working with data](/use-cases/marketo-mcp/capabilities)) before updating it. Sending text content to an image section (or the reverse) won't produce the result you expect.
</Note>

### Clone an email

**What it does:** Copies a single email's template, modules, content, and sender fields into a new email in a folder or program.

**When to use it:** To start a new email from an existing one, rather than an empty templated shell.

**Example prompts:**

* *"Clone email 1234 into program 5678 as 'Reminder - Variant B'."*

***

## Cloning and sending

### Clone a program

**What it does:** Copies an entire program — its child assets (emails, landing pages, smart campaigns, smart lists, forms) and its tokens — into a folder or another program.

**When to use it:** To start a new campaign from an existing one rather than building from scratch.

**Example prompts:**

* *"Clone program 1234 into folder 5678 as 'Q2 Webinar'."*

### Send a sample email

**What it does:** Sends a test send of an email's current draft to one address, without affecting campaign membership or performance stats.

**When to use it:** To check how an email renders in a real inbox before it goes live.

**Example prompts:**

* *"Send me a test of email 1234."*
* *"Send a sample of the reminder email to [jane@example.com](mailto:jane@example.com)."*

### Upload an image for use in an email

**What it does:** Two steps that work together — get a direct upload link for a PNG or JPEG (10 MB max), then publish the uploaded file into Marketo's Design Studio and get back a public URL to use in email HTML.

**When to use it:** When a brief includes an image Marketo can't already fetch from a URL, or you're adding a new logo or asset to an email.

**Example prompts:**

* *"I want to add this logo to the email — where do I upload it?"*

<Note>
  Each upload link expires after a few minutes and fills one destination — request a fresh one right before you use it. Uploading the same file twice creates two separate Design Studio files, so reuse the URL you got the first time.
</Note>

***

## Practical workflows

### Rebuild an email from a brief

> *"Clone email 1234 into program 5678 as 'Q3 Reminder', then update its headline and CTA button text to match this brief: \[paste brief]."*

### Review an email before approval

> *"Show me the current layout of email 4321, then get its full HTML so I can review it, then send me a sample."*

If a tool doesn't behave as described here, contact [allGood support](mailto:support@allgoodhq.com).

## Related articles

* [Overview](/use-cases/marketo-mcp/index)
* [Finding programs and working with data](/use-cases/marketo-mcp/capabilities)
* [Marketo MCP FAQ](/use-cases/marketo-mcp/faq)
* [Import a list into a worksheet with MCP](/use-cases/list-upload/mcp-list-upload)
* [Marketo MCP: security, data, and governance](/use-cases/marketo-mcp/security-and-governance)
