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

# Creating a Campaign in allGood for Marketo Users

> Complete walkthrough of building and managing campaigns in allGood

## Overview

The Campaign Builder is where you turn your campaign briefs into live marketing programs. This guide walks through the complete workflow from campaign setup to launch, designed for marketing ops teams who need full visibility and control over their campaigns.

The Campaign Builder follows a clear workflow that keeps strategy separate from execution. You provide the campaign brief, select a campaign template that matches your program type, and Mary handles the heavy lifting—creating assets, checking everything is set up correctly, and managing all the connections across your marketing tools.

## Step 1: Select Campaign Template

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/Step1-StartaNewCampaign-1.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=6df046f8a82f3307b2d1260b248aff29" alt="Step 1 Start A New Campaign" width="2536" height="874" data-path="images/Step1-StartaNewCampaign-1.png" />
</Frame>

From the **Campaigns** tab, you'll see your available campaign templates. Each template is a pre-configured campaign type that defines:

* **What gets created:** Emails, landing pages, Marketo programs, Salesforce campaigns, etc.
* **What's required:** Program IDs, folder paths, UTM parameters, campaign member statuses
* **Automation steps:** How Mary builds, deploys, and monitors your campaign
* **Content requirements:** Which content fields are required and which are optional

<Tip>
  Choose templates based on what you need to create, not just the channel. For example, a webinar template might include Marketo emails, Goldcast integration, landing pages, and Salesforce campaigns—all managed together as one program.
</Tip>

<Note>
  Templates are versioned, so when you create a campaign, it locks to that specific template version. This means your campaign won't break if the template gets updated later.
</Note>

## Step 2: Upload Campaign Brief

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/Step2-draganddropbriefdocoruploadgoogledoclink-1.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=39767b52f916640019d42dd9dfe21f82" alt="Step 2 Drag And Drop Brief Doc Or Upload Google Doc Link" width="1850" height="1212" data-path="images/Step2-draganddropbriefdocoruploadgoogledoclink-1.png" />
</Frame>

### How to Upload

* **From your computer:** Drag and drop `.docx` files or Word documents
* **From Google Docs:** Paste a Google Docs link (make sure sharing is set so Mary can access it)

### What Happens When You Upload

Mary reads through your brief and extracts the key information:

* **Document structure:** Your H1 and H2 headings become the navigation for your campaign
* **Content extraction:** Mary identifies which content maps to which asset
* **Campaign details:** Dates, owners, program IDs, compliance requirements
* **Content formatting:** Converts your brief into a format that works efficiently with AI

<Info>
  If you would like to make any larger changes to your content, feel free to make changes to your doc and then resubmit it.
</Info>

## Step 3: Start Campaign

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/Step3-Runthecampaignoncetheuploadiscomplete!.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=10c8b33b778a0a4656fac903ac5a4020" alt="Step 3 Run The Campaign Once The Upload Is Complete!" width="1820" height="1074" data-path="images/Step3-Runthecampaignoncetheuploadiscomplete!.png" />
</Frame>

Give your campaign a name and click **Start Campaign**. This creates:

* **Campaign record** with Draft status
* **Asset placeholders** for each deliverable (emails, landing pages, etc.)—all starting in Draft
* **Content library** organized by asset
* **Activity log** for tracking all changes

## Step 4: Campaign Overview & Asset Status

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/Step4-waitonthecampaignoverviewpageasMarybeginsbuildingoutthecampaign.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=39c7c2c0f15c62d93213311e34ce1780" alt="Step 4 Wait On The Campaign Overview Page As Mary Begins Building Out The Campaign" width="2986" height="1264" data-path="images/Step4-waitonthecampaignoverviewpageasMarybeginsbuildingoutthecampaign.png" />
</Frame>

The Campaign Overview page shows all the assets in your campaign. For each one, you'll see:

* **Status:** Draft → In Review → Ready → Live → Done (or Error if something goes wrong)
* **Asset type:** Marketo program, email, landing page, Salesforce campaign, etc.
* **Last update:** Most recent activity from the log

### Understanding Asset Status

| Status        | Description                                                       |
| ------------- | ----------------------------------------------------------------- |
| **Draft**     | Asset is created, content extracted, waiting for Mary to validate |
| **In Review** | Mary has validated everything and it's ready for you to approve   |
| **Ready**     | You've approved it and it's queued for deployment                 |
| **Live**      | Deployed to Marketo with confirmed IDs and URLs                   |
| **Done**      | Mary has verified everything is still live and working correctly  |
| **Error**     | Validation failed or deployment hit an issue                      |

**What's Mary doing?** For each asset, Mary runs quality checks that:

* Validate all required content is present
* Check image URLs are secure (HTTPS only)
* Verify CTA links follow your standards (HTTPS, approved domains, UTM parameters)
* Build draft versions with all content in place
* Log everything for your records

## Step 5: Editing & Mary's Task Management

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/CleanShot2026-02-16at14.04.49@2x.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=a854a865efc30066d456fab07551f028" alt="Clean Shot 2026 02 16 At 14 04 49@2x" width="1650" height="1350" data-path="images/CleanShot2026-02-16at14.04.49@2x.png" />
</Frame>

Click any asset from Campaign Overview to open the editor. This is where you can make changes through natural conversation with Mary.

### Mary's Task List

Every asset has its own task list. Mary tracks everything that needs to be done:

* **In Progress:** Tasks Mary is actively working on
* **Completed:** Finished changes with timestamps
* **Needs Attention:** Items blocked by missing information or validation errors

<Note>
  If Mary can't complete something (missing URL, unclear request, validation failure), she'll flag it in "Needs Attention" and explain exactly what's blocking her.
</Note>

### Making Multiple Changes at Once

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/image6.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=7baf384643f4daac0e03deee23eac447" alt="Image6" width="1888" height="484" data-path="images/image6.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/image5.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=1319abe968576a9a055cdc4bdda696a2" alt="Image5" width="1862" height="622" data-path="images/image5.png" />
</Frame>

You can request several changes in one message. For example:

> *"@Mary unbold 'more than build emails?', Change the bullet points to a numbered list, and change 'MARY IS NOW A FULL CAMPAIGN MANAGER' to title case"*

Mary breaks this into separate tasks. Each one gets:

* Its own line item in the task list
* Clear assignment to the right content field
* Individual completion tracking
* Independent execution (if one is blocked, the others still get done)

No more losing track of requests in Slack threads—everything is captured, queued, and visible to your whole team.

### Live Email Preview

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/image7.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=1104cdf22ff014b810f16358c49beceb" alt="Image7" width="1925" height="1013" data-path="images/image7.png" />
</Frame>

The preview shows exactly how your Marketo email will look, including:

* **Real-time updates:** As Mary completes tasks, the preview refreshes automatically
* **Side-by-side view:** Task list stays visible so you can track progress
* **Actual content:** All Marketo tokens show their real values
* **Proper layout:** Images, CTAs, and text blocks display in the correct structure

<Tip>
  You're looking at the actual email, not guessing how tokens will render. What you see is what will go live in Marketo.
</Tip>

### Content Field Highlighter

<Frame>
  <img src="https://mintcdn.com/allgoodtechnologyinc/ehJX4q8SzeGZVVYO/images/image1.png?fit=max&auto=format&n=ehJX4q8SzeGZVVYO&q=85&s=dbf4028d22cf29c511ec8b8a48638284" alt="Image1" width="1041" height="645" data-path="images/image1.png" />
</Frame>

Click any section of the preview to see which tokens control it. The highlighter shows:

* **Token name** (e.g., Banner, Banner URL)
* **Current value** (the actual content or URL)
* **Where it comes from** (campaign-wide default or asset-specific override)

**Benefits for marketing ops:**

* **Precise edits:** Know exactly which field controls which content
* **Inheritance visibility:** See if content is inherited from the campaign or specific to this asset
* **Quick troubleshooting:** If an image won't load or a link is broken, you immediately know which field to fix

**For your stakeholders:** Instead of describing "the hero image" or "the CTA," they can click the section and reference the exact field name. No more ambiguity in feedback. No need to understand tokens.

## Step 6: Approve and Launch

Once all edits are complete and validation passes:

1. **Review:** Asset moves to In Review after passing all checks
2. **Approve:** Click approve (or let Mary auto-approve if that's configured in your template)
3. **Deploy:** Mary launches the asset, which means she:
   * Creates or updates assets in Marketo
   * Gets back confirmed IDs and URLs
   * Logs all outcomes in your activity log
4. **Live:** Asset shows as Live with direct links to edit or preview in your marketing tools

### What Gets Created

Depending on your template, Mary can create:

* **In Marketo:** Programs, emails (with all tokens populated), landing pages, smart campaigns
* **Other integrations:** Goldcast events, Zoom webinars

All IDs and URLs are saved in your campaign record and visible in Campaign Overview.

## Step 7: Monitoring and Maintenance

After launch, Mary periodically checks that:

* Assets are still live (URLs work, programs exist)
* Nothing has been manually changed in Marketo that conflicts with your campaign
* Performance data is collected (if configured in your template)

<Tip>
  Mary won't re-check if nothing has changed. You can always force a manual check if needed.
</Tip>

## Common Workflows

### Adding Assets Mid-Campaign

Need to add a regional variant or follow-up email after your campaign is already set up?

* Mary can create new assets from your existing campaign
* Content automatically inherits from the parent campaign by default
* Regional overrides (e.g., APAC-specific hero copy) only affect the new asset
* Only the new asset goes through build and deploy—existing assets aren't touched

### Fixing Validation Errors

If an asset gets stuck in Error status:

1. Check the activity log for the specific error message
2. Common issues: missing Marketo program ID, non-HTTPS image URL, or unapproved CTA domain
3. Update the content through the chat interface
4. Mary automatically re-runs validation once you fix the issue

## Best Practices

<AccordionGroup>
  <Accordion title="Structure your briefs with clear headings">
    Use H1 and H2 headings to organize your brief. Mary uses these to understand your campaign structure, so "Email 1 Content" as an H1 makes it crystal clear what goes where.
  </Accordion>

  <Accordion title="Double-check required info before uploading">
    Make sure all required content is in your brief (program IDs, event dates, etc.). It's much faster to add these in the document than to go back and forth in chat later.
  </Accordion>

  <Accordion title="Be specific when requesting changes">
    Instead of "change the hero image," say "change the email 1 hero\_banner to \[URL]" (could be multiple hero images in the campaign). Mary can figure out ambiguous requests, but being specific saves time.
  </Accordion>

  <Accordion title="Use the activity log for troubleshooting">
    The activity log is your complete audit trail. If something fails, the log shows exactly what went wrong and which content field caused the issue.
  </Accordion>

  <Accordion title="Set campaign-wide defaults">
    Put shared content at the campaign level (brand colors, legal disclaimers, UTM parameters). Regional or asset-specific versions can override these as needed.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Asset stuck in Draft">
    Check the activity log for validation errors. Common causes: missing program ID, non-HTTPS image, or required content field not filled in your brief.
  </Accordion>

  <Accordion title="Mary can't find a content field">
    Use the content highlighter to verify the field exists. If it's not there, it wasn't extracted from your brief. You can add it manually through chat.
  </Accordion>

  <Accordion title="Deploy failed with 'Program not found'">
    The program ID points to a Marketo program that doesn't exist or you don't have permission to access. Verify the ID in Marketo and update your campaign.
  </Accordion>

  <Accordion title="Multiple people editing the same asset">
    Mary handles this automatically. All requests are queued and processed in order. The task list shows who requested what and when.
  </Accordion>

  <Accordion title="Manual Marketo edits not showing up">
    Mary doesn't automatically detect changes made directly in Marketo. Use "Force Re-check" to sync your campaign state with what's actually live.
  </Accordion>
</AccordionGroup>
