Skip to main content
Data & Automation Platforms — Case Study

AI-Powered Marketing Automation Platform

The client was a marketing automation vendor serving small-business owners who wanted enterprise-grade campaign capability without enterprise headcount. The existing product was technically powerful but required marketing operations expertise to configure — audience segmentation, channel-specific creative variants, and send-time optimization were all manual configuration steps that took a small-business owner two to three days per campaign, by which point the opportunity had passed.

-90%setup time
-60%CS tickets
+22%campaign CTR
4specialist agents
AI-Powered Marketing Automation Platform
Category

Data & Automation Platforms

Industry

Marketing SaaS

Timeline

12 weeks from kickoff to general availability

Team size

4 specialists

Project Overview

The full story

The user problem was that the product had been designed by marketers for marketers, and the target customer was a founder running marketing as a side responsibility. Every screen assumed knowledge the customer did not have. The vendor’s customer success team was effectively building campaigns on behalf of customers, which made the unit economics unsustainable as the customer base grew.

We designed a multi-agent system that decomposed the campaign-building task into specialist agents — a segmentation agent, a creative agent, a channel agent, and an optimization agent — coordinated by a planner that translated a natural-language goal into a structured campaign plan. Each agent could be inspected and overridden, but the default flow ran end-to-end without requiring marketing-ops decisions.

What shipped was a workspace where a founder types a goal — "drive trial signups from the existing email list" — and gets a complete campaign with audience segments, channel-specific creative variants, a send schedule, and an optimization protocol, all ready to launch in under an hour. The agents expose their reasoning so a more sophisticated user can intervene at any step, and the customer success team shifted from building campaigns to coaching strategy.

The Problem

The product was built for marketing ops but sold to founders, so every campaign took the vendor’s CS team to actually launch.

01Friction point

Audience segmentation required SQL-like logic the typical customer could not author without two-day onboarding support.

02Friction point

Channel-specific creative variants had to be authored separately, with no shared brief or generation surface across channels.

03Friction point

Send-time optimization existed as a setting screen, which most customers left at the default and lost lift on every send.

04Friction point

Customer success was effectively a campaign-building service, which made gross margins worse with every new customer.

05Friction point

Campaigns took two to three days to set up, which missed time-sensitive opportunities like weekend promotions or news cycles.

Our Approach

How we structured the engagement

Decomposed campaign building into specialist agents so a non-marketer could ship in an hour what used to take three days.

  1. Phase 01Weeks 1-2

    Discovery

    Shadowed three CS reps for a week as they built campaigns alongside customers. Mapped every decision point and tagged it by the level of marketing expertise required. Output: four specialist agent specifications and a planner contract for translating natural-language goals into campaign plans.

  2. Phase 02Weeks 3-4

    Architecture

    Designed a LangGraph state machine with a planner node that produced a typed campaign plan and four executor agents. Each agent had a defined tool surface and a structured output schema, so the planner could verify the plan was buildable before any agent ran.

  3. Phase 03Weeks 5-10

    Build

    Shipped the planner first because it gated everything else. Built segmentation, creative, channel, and optimization agents in parallel. Used a typed schema layer over LangGraph so agents could not produce malformed campaign plans even when the underlying LLM hallucinated.

  4. Phase 04Weeks 11-12

    Launch

    Rolled out to fifty existing customers behind a flag, monitored campaign setup time and CS ticket volume weekly. Shipped the agent inspection panel in week eleven after power users asked to see what each agent was doing.

System Architecture

What we built, component by component

  1. 01

    Goal planner

    Translates a natural-language campaign goal into a typed campaign plan with budget, channels, audience criteria, and KPIs.

  2. 02

    Segmentation agent

    Builds audience segments from the customer’s existing contact list, with reasoning exposed for inspection and override.

  3. 03

    Creative agent

    Produces channel-specific copy and image variants conditioned on the brand voice and the campaign goal.

  4. 04

    Channel agent

    Selects channels and schedules sends per channel, balancing budget across email, SMS, and paid social based on historical performance.

  5. 05

    Optimization agent

    Configures send-time optimization, A/B test parameters, and the stop conditions for early winners across the campaign.

  6. 06

    Inspection surface

    Renders each agent’s reasoning and outputs in a single view so a user can intervene at any step before launch.

Data Flow

A user types a goal, the planner produces a typed campaign plan, and the four executor agents run against that plan in dependency order. Each agent writes its output into the plan and the inspection surface renders the running plan in real time. The user approves or overrides any step before the plan is committed to the underlying campaign engine for execution.

Goal planner
Segmentation agent
Creative agent
Channel agent
Optimization agent
Key Decisions

The trade-offs we made and why

Decision 01Lead trade-off

Used LangGraph with typed schemas over an ad-hoc chain

Chain-based orchestration hid state and made debugging campaign failures painful. LangGraph with typed schemas at each node meant every transition was inspectable and the planner could validate the campaign was buildable before any agent burned tokens.

Decision 02

Built the planner before any executor agent

A clean plan format made the executor agents trivially parallel and let us swap implementations without touching the orchestration. Starting with executors would have produced a tangle of interdependencies that we would have unwound later anyway.

Decision 03

Exposed agent reasoning instead of hiding it

Power users wanted to know why segments were drawn the way they were. Hiding the reasoning would have forced them to override blindly and trust would erode. Exposing it created an inspection surface that doubled as a teaching tool for less expert users.

Decision 04

Anchored optimization on historical channel performance

The optimization agent could have used industry benchmarks but tenant-specific history was more predictive on small audiences. Each tenant’s prior campaigns became training signal for their own future campaigns, which compounded performance over time.

Outcomes

What changed for the client

setup time

Median campaign setup time dropped from two and a half days to under one hour across the design-partner cohort.

CS tickets

Reduction in campaign-setup support tickets per customer per month after rollout to the existing customer base.

campaign CTR

Average click-through rate improvement on AI-built campaigns versus the pre-rollout baseline of manually configured campaigns.

specialist agents

Segmentation, creative, channel, and optimization agents coordinated by a planner under a single typed plan schema.

In their words
Our customer success team stopped building campaigns and started teaching strategy. The inspection panel is the part that made power users trust the agents.
CEOMarketing automation SaaS vendor
Tech Stack

The tools behind the system

Built with a deliberate stack chosen for production reliability and operational velocity.

5 componentsProduction-grade
PythonLangChainLangGraphFastAPIAWS
What we’d carry forward

Lessons learned from the build

01Lesson

Typed schemas at every agent boundary were worth the upfront cost. The first time an agent returned a malformed plan and the planner caught it before execution, we got back days of debugging that we would have otherwise lost to production triage.

02Lesson

Inspection was not a power-user feature, it was a trust feature. Customers who never opened the inspection panel still launched more campaigns because they knew they could see what the agents had done. We would surface inspection more prominently in the default view next time.

03Lesson

Tenant-specific optimization history compounded faster than we predicted. After two months, customers who had run six or more campaigns were seeing measurably better performance than new customers, which became a retention argument we did not anticipate.

Related Services

Similar delivery work usually starts in these service areas

If you are exploring a similar product, workflow, or implementation challenge, these are the service tracks that usually fit best.

Industry Context

Where this project sits in the bigger market picture

Patterns for AI features, internal tooling, and product delivery in SaaS businesses.

Similar Project?

Build a result-driven AI product with a team that has shipped before

If you are exploring a similar product, workflow, or AI use case, we can help scope the right architecture, delivery model, and first milestone.

Start with clarity

Have an AI idea, messy workflow, or product vision? Let's make it buildable.

Bring the problem. We'll help shape the product, define the architecture, and show the fastest path to a serious first version.

  • A practical first roadmap in the discovery call

  • Architecture, timeline, and delivery options in plain English

  • Security, scalability, and reliability discussed upfront

Model registry

softus-rag-v4.2

live

187ms

Latency

128k

Context

$0.004

Cost / req

Evaluation suite

Faithfulness94%
Answer relevance97%
Citation accuracy99%

Deploy pipeline

prod / canary 25% — healthy