AEM Campaign Builder
Streamlit tool that automates casino landing-page publishing in Adobe Experience Manager, replacing a manual authoring process.
The problem
Every casino campaign at Holland America Line needs a set of landing pages built in Adobe Experience Manager: one deal page per tier, one banner experience fragment per tier, a CSV with pricing rules, and a published timeline. Campaigns have 5 to 11 tiers each, and there are multiple campaigns a month. Authoring each one by hand in AEM is slow, error-prone, and means an analyst is effectively a copy-paste robot for an afternoon.
What I built
A Streamlit app that takes a campaign from Snowflake and builds everything end to end. It creates the banner experience fragments with the right headline, subtext, logo, T&C modal, and background image. It creates the deal pages, links them to the banner fragments, and points them at the correct CSV. It uploads the CSV to the AEM DAM. It schedules publish and unpublish times in Eastern. Then it verifies the build by reading every property back out of AEM and comparing to the Snowflake spec, because a partial failure that silently leaves a page with the wrong offer is worse than a loud crash.
Auth is a detail worth noting. AEM does not hand out API keys. The tool launches Edge with the user’s SSO profile, waits for login to complete, extracts session cookies, and uses those for all subsequent API calls. CSRF tokens are fetched lazily and refreshed on 403.
Key design choices:
- Build and publish are separate actions. You build into AEM author, verify, and then publish. This gives you a safe checkpoint.
- Configuration lives in YAML, not code. Paths, templates, logos, beverage mappings, headline templates per campaign type. Changing a T&C block does not require a deploy.
- Idempotent by default. Re-running a build on an existing campaign updates properties in place instead of failing.
- A deep verification step runs after every build. It checks banner content, banner path per tier, CSV presence, country list, logos, and T&C blocks. If any of these drift, the tool tells you which tier failed and why.
Outcome
Casino campaigns that took most of a day to author now build in minutes. 26 unit tests covering template fill, date formatting, banner generation, URL generation, and verification. Campaigns run across four AEM environments (dev, QA, stage, prod). The tool detects environment quirks (stage’s wcmcommand lowercases page names, prod preserves case) and adjusts.
What’s next
- Automate the deal card component on the cruise-deals listing page. Currently the Merch team builds this by hand, using data the tool already generates.
- Integrate Claravine XID generation so campaign URLs carry tracking tags automatically.
- Trigger Akamai cache purges after publish instead of waiting out the TTL.