Case Study
Marketo Campaign Manager
A self-serve campaign operations platform for marketing teams.
The Problem
Marketing ops teams spend a disproportionate amount of time on campaign setup — not strategy or analysis, but mechanical work: cloning Marketo program templates, populating tokens, configuring UTM parameters, building out campaign hierarchies, and keeping Salesforce in sync.
At scale, this becomes a bottleneck. Every campaign requires a Marketo-certified operator to execute a 15+ step manual process. Errors creep in. UTM strings drift. Programs get built inconsistently. Reporting breaks because the data structure doesn't match expectations.
The Solution
MCM is a production web application that wraps the entire campaign launch workflow in a structured, self-serve UI. A marketer fills in campaign details — no Marketo expertise required — and the platform handles the rest.
How It Works
- A four-level campaign hierarchy (Product Category → Initiative → Campaign → Email/UTM Link Tracking) is maintained in Snowflake and managed through MCM's CRUD interface
- When a campaign is created, MCM calls the Marketo Asset API to clone the appropriate program template into the correct folder structure
- Program tokens are built from campaign metadata and pushed via API — no manual token entry
- UTM parameters are auto-generated and stored alongside the Marketo program reference
- Marketo list import and validation surfaces errors before they reach the database
- An admin editor provides bulk data management for ops team oversight
- Marketo OAuth tokens are cached thread-safely with expiry buffer; Snowflake connections are request-scoped and pooled
Architecture Highlights
- Flask blueprint-based structure — each feature module is a self-contained blueprint
- Repository pattern throughout — all Snowflake queries in
repo_*.pyfiles; blueprints never query directly - Secrets managed via Azure Key Vault with lazy-loading on first Marketo API request
- Deployed to Azure App Service with a CI/CD pipeline via Azure DevOps
- Fully configurable hierarchy labels — levels can be renamed for any org's naming convention
- Generalized as an open-source-ready product (MCM) abstracted from any single company's stack