Email · Lifecycle · CRM data · Reporting

I own the email channel and the system underneath it.

I own the calendar, the builds, the HubSpot workflows underneath them, the contact data they run on, and the reporting that says whether any of it made money. When the tool cannot do something, I build it.

8+years building marketing systems
80+HubSpot workflows audited and cleaned
24emails in an always-on lifecycle sequence
8channels in one automated weekly report

The shape of the work

Source file to send to pipeline

Email content flows from a source text file through a script into the marketing tool, then out to contacts, with suppression rules and reporting back to pipeline CONTENT Source filecopy in version control Push scriptAPI, diffable Templatesin the CRM ROUTING Welcome sequence24 emails, always on Lifecycle tracksbranch on behaviour SuppressionSALES WINS Sendto the right people Reportingopens, clicks, MQLs, pipeline, revenue what worked comes back into the source file
The copy lives in a file, not in the tool. Suppression sits between the tracks and the send, so it applies to every campaign rather than being remembered per campaign.

What I do

Email and lifecycle

Design the calendar, the always-on sequence, and the tracks that branch on what people do. Build them, send them, and report on them without handing off.

HubSpot infrastructure

Workflows, sequences, lists, templates, and smart content. I work in the API as readily as the editor, which is how you audit a portal rather than click through it.

Contact data and segmentation

Suppression rules, re-enrolment rules, and a tagging scheme that holds up. Most overcontacting is a data problem wearing a copy problem's clothes.

Reporting to pipeline

Opens and clicks are the start. The number that counts is deals influenced, and it has to be automatic so it gets published in the bad weeks too.

How I work

Every email is a file in version control.

An email saved in a marketing tool is a dead end. You cannot search it, diff it, reuse it, or rewrite twelve of them at once. So I keep the copy as structured text and push it into the tool with a script. The tool becomes a delivery channel rather than the place the work lives.

  • Write the source once, in a format a script can read.
  • Tag it so the same piece can serve email, site, and search.
  • Push to the tool over the API, so edits are diffs and mistakes roll back.
  • Automate the measurement, so the report exists whether or not anyone had a good week.

This site is the working example. Every page here is a template in a Rust application, checked into git, deployed on push, with the internal links and routes verified by a script before anything ships.

Evidence

Systems I have built and run

Lifecycle email architecture

A 24-email always-on sequence, six behaviour-based tracks, and the suppression rules that stop them colliding.

Read the case study

HubSpot flow audit

A repeatable audit of 80+ workflows that finds overlapping triggers, reused assets, and missing suppression.

Read the case study

Weekly reporting system

One script, eight channels, a written summary, and a deck that builds itself every Monday.

Read the case study

Attribution repair

Hand-typed source fields overwritten by tracking data every fifteen minutes, then revenue joined back to first touch.

Read the case study

Lead qualification gate

Rules that filter non-buyers out of paid search, backtested on six months of leads before going live.

Read the case study

On AI

I use models where the work repeats every week.

I use models for the parts of marketing that are the same every week: writing the summary of a report, drafting variants, sorting messages by intent. Each one has a fallback, because a model that fails should degrade the output, not stop the process.

I do not use them where a wrong answer is expensive and invisible. Filtering leads is a good example. The rules there are three plain conditions anyone can read, and they were tested against six months of known outcomes before they went near a live form.

Confidentiality

What I withhold.

The case studies here describe methods and structures. Employer figures are rounded or given as change rather than absolute values. Account identifiers, workflow IDs, campaign names, email copy, and anything about a named contact or deal are left out.

I will walk through any of it in detail in a conversation, at the level of method. Someone who publishes their last employer's CRM data will publish yours.