
Most marketing AI conversations stall in the same place. Everyone agrees the technology is real. Nobody can point to a marketing AI campaign that was actually built with it, end to end, with the boring middle steps included. The list hygiene. The QA. The field mapping that silently rejects a lead.
So we ran the experiment on ourselves.
One clarification up front, because it shapes everything below. The AI in this story is not a chat window we pasted prompts into. It is an AI coworker: an agentic system with a seat in our workspace, its own logins, and access to our brand standards, our marketing platform, our CRM and our campaign management tool. More on what that means in step seven, where it wrote this post.
We’re at Braze Forge 2026 in Las Vegas at the end of September, and we needed a full pre-event, at-event and post-event program. We decided to build it the way we’ve been telling clients marketing AI can work. AI does the drafting, the parsing, the assembly and the checking. Our team owns strategy, judgment and every approval. Two weeks, one campaign, no shortcuts skipped.
Here’s each step, what AI actually did, and where a human still had to be the adult in the room.
1. Planning the marketing AI campaign
We started with the brief, not the assets. AI drafted the campaign architecture from a short conversation about goals: objective and targets, audience tiers, offer at each stage, a touch-by-touch sequence across pre/at/post, and the measurement model.
What made it useful wasn’t speed. It was that the plan came back specific. Not “send a pre-event email” but a dated sequence (email, organic social, 1:1 outreach from account owners, a score-based follow-up), each with an audience definition and its own tracking parameter, so source attribution came free instead of being reverse-engineered later.
What we changed: the targets, the offer wording, and the honest reality that a campaign two weeks out has fewer usable email addresses than a plan assumes. Which brings us to the least glamorous step.
2. The audience, where AI earned its keep
We had an attendee list of job title and company only. No names, no emails, and a healthy mix of Braze partners and fellow sponsors mixed in with actual target brands.
AI cleaned it. It pulled the published sponsor list and the partner directory, matched them against the file, collapsed name variants that string matching alone would miss, and produced a brands-only list of companies and attendee roles. Then a second file explaining, row by row, exactly why each exclusion happened.
That second file is the part worth noticing. An AI output you can’t audit is a liability. An AI output that shows its reasoning per row is something a marketer can approve, argue with, or reverse in thirty seconds. (We reversed a few.)
From there: match those companies to our CRM, pull the people who are genuinely in scope (marketing, lifecycle, CRM and retention titles, plus anyone whose original lead source shows prior Braze or Forge activity), and split the rest into a gap file for enrichment. The first pass overshot by grabbing every contact at a matched account. We said so, it re-sliced on title and lead-source signal, and the list came down to about half the number of records. Smaller, and dramatically more mailable.
Not consent, though. Presence in a CRM is not permission, and suppression and opt-out rules still get applied by a human before anything sends. AI doesn’t get a vote on that.
3. Creative ideation and copy
With the audience real, the creative got easier, because the audience told us who we were writing to. The titles skewed heavily toward managers and directors who run programs day to day, not transformation buyers. So the copy talks about the work rather than the vision.
AI drafted every email: subject line options, preheaders, body, CTAs, across the six touches. Then it produced visual mockups of each one, designed comps we could review as creative rather than as text, with subject and preheader shown above the layout so copy and design got critiqued in the same pass.
The honest assessment of AI copy: the first draft is a competent, slightly generic version of the right email. The value is that it exists in minutes and gives you something to react to. Our team’s edits were the usual ones. Cut a sentence, sharpen the ask, kill a claim we can’t back up. That’s a good division of labor.
4. From comp to buildable asset
This is where most “AI made our campaign” stories quietly end. Ours didn’t.
The mockups became production HTML: 600px table layouts, a web-safe font stack, buttons that render in Outlook, mobile queries that stack the multi-column blocks, and merge-field placeholders ready to swap for real platform fields. Plus a bundle of every referenced image, de-duplicated, ready to upload to the image library.
One nice constraint fell out of that build. The gradient headers are CSS with a solid color fallback rather than baked into a JPG, so headline text stays live, selectable and readable in image-off inboxes. Outlook gets flat navy. Everyone else gets the gradient. That’s the kind of decision AI proposes and an email developer confirms.
Then we went one step further than “here’s your HTML, go paste it in.” AI built the assets directly in our marketing platform. We run Oracle Eloqua, so AI worked against the Eloqua API with basic marketer-type credentials. It created the registration landing page, the form behind it, the emails, and the supporting records, all as drafts, in a clearly labeled campaign folder, with nothing activated without a person clicking approve.
A few things we’d flag for anyone trying this:
- Scope the permissions before you scope the ambition. View access across the instance, edit and delete only in the assets and folders you’ve explicitly opened up. Ours refused a delete on a production asset outside the granted assets, exactly as it should.
- The platform is the source of truth for what’s live. Your repo is the source of truth for what’s correct. Eloqua rewrites and expands stored HTML on save, so a round trip isn’t byte-identical. Hang on to your own clean copy and treat the platform’s version as the published one, not the original.
- Creating a page doesn’t create its form. The unglamorous dependency chain still has to be built and checked deliberately. Form exists, processing steps are wired, the list they write to is the list the campaign reads. AI just does it faster and doesn’t get bored on step nine.
None of this is Eloqua-specific. If your orchestration platform has an API, whether that’s Braze, Iterable, Salesforce Marketing Cloud, Marketo or HubSpot, the same pattern works. Restricted credentials, drafts only, human approval to activate, and your own clean copy kept outside the platform. The platform changes. The operating model doesn’t.
5. The assessment, a tool rather than an asset
The campaign needed an offer better than “come see us.” So the offer became a product: a Marketing AI Readiness Assessment. Thirty statements across six dimensions, scored 0–4, producing a stage, a set of gating flags where the foundations are weak, and a 90-day action list.
We’ve spent the past year on longer-form marketing AI assessments and thought leadership. What we didn’t have was something short, easy and genuinely useful for a prospect standing in a booth at Braze Forge, with enough legs to keep working long after the event. Building that meant a real application: dynamic scoring, a database, a report. Our AppCloud product team is heads-down on new apps, so Marketing had to figure out how to build a fully functional, very dynamic assessment app on its own.
So we had AI build it: the scoring model, the public web app, the database behind it so answers are captured even without a form fill, an internal admin view for the team, and a designed PDF report. It runs at ai-readiness.relationshipone.com, and it posts to Eloqua so a completed assessment becomes a real, trackable marketing record with the report delivered by email.
Then a small, very typical problem. The score follow-up email needed the score as a graphic rather than a bare number. Generating an image per lead is fragile. Instead we pre-rendered every possible score as a static image. The score reports to one decimal, so 0.0 through 4.0 is 41 files, and the right URL passes through on the form post. Cacheable, no cold starts, nothing to render at send time, reusable in a deck. The score also appears in live text beside the graphic, because plenty of inboxes block images and the number is the entire point.
6. QA, the step nobody blogs about
Every asset and integration got a QA pass. Test submissions run end to end to confirm the platform accepted every field (including the new one) rather than silently dropping a lead, emails rendered against the real hosted assets, links checked, tracking parameters confirmed per touch, and the test records flagged for cleanup before anyone pulled a list.
We learned why that matters the hard way earlier in the build. A field-length rule quietly rejected a URL twice, with no error anywhere a marketer would look.
So we didn’t stop at spot checks. We had AI run a full end-to-end pre-launch review of the entire campaign, read-only, against the live platform. It pulled the campaign and walked every child asset: each email, each segment, each contact list, the form and its processing steps, the custom object storing responses, the email group that supplies the footer, and the canvas connections between the steps. Then it produced a single summary of what’s ready to launch, what’s a blocker, and what’s a warning worth fixing but not fatal.
We also stacked the deck against it. Before the run we deliberately left a few potholes in the campaign, a segment with no records and a link placeholder buried down in an email’s HTML, to see whether a real-time review would actually catch them or just hand us a clean bill of health.
It found our potholes. Then it found several more we hadn’t planted.
Our first run came back with nine blockers, thirteen warnings and ten clean passes. The blockers were the kind of thing that survives a human eyeball, because everything looks fine:
- A segment with zero members. The campaign would have run beautifully and reached nobody.
- Placeholder text still sitting in email HTML where a real booking link was supposed to go.
- Merge syntax from our drafting format that the platform doesn’t recognize, which would have shipped as literal curly braces into someone’s inbox.
- A contact list the campaign reads from that no form step ever writes to.
- A hidden campaign ID left as a placeholder on a landing page. No attribution, and a campaign we couldn’t have reported on afterward.
- Error paths for unsubscribes, bouncebacks and global exclusions, not routed anywhere.
- And the small stuff that quietly costs performance: a trailing space in a subject line, missing preview text, no plain-text version, images with no alt text.
Every one of those is a known failure mode. Every one of those gets missed by tired people at 6pm the day before launch. That’s exactly the work to hand to something that doesn’t get tired, and then have a human triage the output, because a blocker list still needs someone to decide what’s genuinely blocking.
That review is now a repeatable script rather than a one-off, so it runs on the next campaign, and the one after that. It may be the most valuable thing that came out of the entire experiment.
The lesson generalizes. AI is fast enough that you can afford to check everything, so check everything. Speed without verification isn’t productivity. It’s a faster route to a broken send.
7. And then AI wrote this post
Which brings us to the piece you’re reading.
The blog post about the experiment was the last step of the experiment. It started the way any content piece should, as a task in our campaign management platform. AI created the task itself: brief, owner, due date, deliverables, linked to the Forge campaign so the content sits with the program it supports instead of floating in someone’s inbox. We use Optimizely CMP. If you run Adobe Workfront, Asana or Wrike, the same thing applies. A content piece that isn’t a tracked task in the system your team actually works in is a content piece that slips.
From there:
- Drafting from what already existed. AI didn’t start from a blank page and a topic. It started from the actual artifacts of the campaign, the brief, the audience files and their exclusion logs, the copy, the built assets, the QA output, and turned that record into a narrative. That’s the difference between AI writing about marketing and AI writing from the work.
- Iterating like a writer, not a generator. The first draft got beefed up in specific places on request. More detail on building assets directly in the platform, more detail on the pre-launch review. Then trimmed, then sharpened. The value wasn’t the first output. It was how cheap revision number four was.
- Supporting creative. AI produced the supporting visuals, header imagery and the graphics illustrating the workflow, on brand and in the right formats and sizes for the post and its social cutdowns, so publishing didn’t stall waiting on a design queue.
- A final QA pass on the post itself. Same discipline as the campaign. Claims checked against what actually happened, numbers verified against the source files rather than the draft, links tested, and a search pass: a title and meta description that read like a human wrote them, headings structured around what people search for, internal links to the related service pages, image alt text, and a short list of terms this post can realistically rank for versus ones it can’t.
Back to the coworker point from the top, because this is the step where it matters most. The access list is roughly what a new hire gets on day one, plus a memory of every decision we have made together so far.
Agentic is the load-bearing word. A chatbot answers a question. An agent does the work. It takes a goal, decides the steps, uses the tools, writes and runs its own scripts, checks its output, and comes back with something finished plus a record of how it got there. It asks when it is missing something. It stops when it hits a permission boundary. It waits for a person to approve before anything goes live. In practice it behaves less like a writing tool and more like a very fast colleague who reads everything, forgets nothing, has no ego about revision number four, and still needs a human to tell it what matters.
Worth saying plainly, because it is the part people assume works the other way round: none of this came from AI going out and reading the internet. There is no public article about our campaign to summarize. To write this post, AI had to know us. Who we are, how we sell, who this program was for, what the brief said, which assets it built, which ones we sent back, what the QA run found, and what we decided to do about it. It was writing from a record it helped create, not from a search result.
That is the difference between AI as a content machine and AI working inside a marketing team. A generic model with a good prompt gives you a post about marketing AI. A model with access to your brief, your data, your platform and your standards gives you a post about your work. One of those is worth publishing.
That last item deserves a note. AI is genuinely good at SEO recommendations and genuinely bad at being trusted with them unsupervised. Ours suggested a few keyword directions that would have made the post rank for traffic we don’t want. A person picked the ones that matched the business.
What we’d tell you from the inside
Four things held up:
- AI is strongest on the unglamorous middle. List cleansing, matching, gap analysis, format conversion, QA scripting. The work that eats a week and never shows up in a case study.
- First drafts, not final answers. Every strategic decision in this campaign, audience and offer and targets and tone, was made by a person. Faster, because a draft was already on the table.
- Auditability is the requirement. Every AI output here came with its reasoning attached. That’s what made approving it a five-minute job instead of a trust exercise.
- AI didn’t replace the plumbing knowledge. Knowing that a platform silently rejects an over-length field, or that Outlook ignores CSS gradients, is what turned an AI draft into something that ships.
What we kept for ourselves
You may have noticed a few gaps. We didn’t publish the final numbers, the exact size of the audience that went into the campaign, how the touches performed, or what Forge actually returned for us. That is on purpose. At the time this posts, some of it isn’t in yet, because Forge hasn’t happened. The rest is the kind of detail we’d rather walk through with a client than hand to a competitor.
We’re happy to share it, just not in a blog post. If you want the real figures, the back-and-forth behind any step above, meaning the actual working sessions with our AI coworker, or an honest read on what this would take in your own stack, get in touch and we’ll walk you through it.
If you’re trying to figure out where marketing AI fits in your own operation, start where we started. Get honest about your foundations. Take the Marketing AI Readiness Assessment: five minutes, six dimensions, a scored report and a 90-day plan.
And if you’re heading to Braze Forge, bring your report. Find us in the Engagement Expo and we’ll walk it with you.
![]()
