← All Work

Marketo Campaign Manager

A self-serve campaign operations platform for marketing teams.

Python Flask Marketo Asset API Snowflake Azure App Service Azure Key Vault Jinja2
Context Built at Ericsson / Cradlepoint
Role Developer + architect
Stack Python · Flask · Snowflake · Marketo API

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 manually clone templates, populate tokens, configure UTM parameters, and sync the campaign hierarchy — each step a potential source of drift. Errors creep in. 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.

MCM increased campaign build efficiency by 20% — not by shortcutting the process, but by automating it entirely. Program cloning, token population, UTM generation, and Snowflake hierarchy sync happen in a single workflow, with no Marketo expertise required to launch a campaign.

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_*.py files; 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

Outcomes

20%
Reduction in campaign build time
0
Marketo expertise required to launch a campaign
1
Single source of truth — Snowflake drives Marketo, not the reverse
Consistent UTM and program structure at any volume