I built 200+ workflows so three teams read one number
CRM architecture, routing, attribution and reporting, wired together so sales, marketing and finance stop debating whose spreadsheet is right. Ten years of it, across B2B and fintech GTM systems, four of them under a $250M+ revenue line.
Senior Marketing Manager at ThinkingAI since 2026. Four years at PingPong before that, a 1,500-person company: Marketing Manager, Ads & Lifecycle, 2021–2023, then Senior Digital Marketing Manager, Growth & Operations, 2023–2025. And six years at ToLocal, a company of twenty-odd, the last of them as VP of Marketing: seven people in the US and five in China, on a $10M annual media budget.
Two teams, two lead numbers, twenty minutes of reconciliation
Two teams report different lead volumes, and both are right. When marketing, sales and finance each pull from their own export, every pipeline review starts by matching numbers before anyone can talk about what to do. That is the problem I get hired to fix.
I architect the CRM across Salesforce, HubSpot or Pipedrive, then build the measurement spine on top: I set the attribution model, name the UTMs, write the tracking plan, enforce the data rules and keep the systems in sync, finished with dashboards for funnel health, velocity, conversion and revenue. At PingPong I owned that stack end to end, Salesforce, HubSpot, Webflow, 6sense, Zapier, ZoomInfo, Salesloft, and GA4 with Tag Manager, all of it on one architecture.
I owned the demand side of the cross-border payments line end to end, with sales and finance running their own sides, and revenue on it went from $2M to $76M in year one and past $250M+ by year two without my ops layer ever becoming the bottleneck. ToLocal was a twenty-odd-person B2C affiliate company; PingPong was a 1,500-person B2B fintech where I owned one revenue line.
Where the stack is running
I grouped these by what each one proves. The case studies show the stack running under a real revenue line. Next to them sit the systems I built when an off-the-shelf tool would not fit. The writing shows the diagnosis, including the times the obvious cause turned out to be wrong.
The stack in production
Marketing opsI built 200+ governed workflows, and the handoff went from twelve hours to under two minutes. Global web and trackingI wired multi-region lead flow and attribution that held across three regulatory realities. Reports and insights portalI stood up self-hosted BI on platform APIs, so reporting stopped depending on a vendor's definition. CMS rebuildI gave a non-technical team a funnel-aware Sanity platform with governance they can operate. Revenue engineI ran the ops layer under this line, $2M to past $250M, and my instrumentation survived finance review.Built independently, live URLs
MarketingOpsI built this one after PingPong: forwarded emails become versioned master data, and a person clears the exceptions. FinGuardI gave compliance its own rulebook inside the product, so it stayed current. AdGuardI turned four platform rulebooks into schema so a distributed team could check itself before spending. TechSpyI wired account enrichment into the CRM through Zapier and an API.How I diagnose, written down
Fixing a cross-domain tracking problemTwo months blamed on the cookie layer, one hour on the actual cause. The clearest example of the method. Marketing ops that replaced chaos with a queueHow I take requests in, rank them and run the queue. Automating a messy monthly reportI took hand-cleaning from one to two hours down to under five minutes, then measured the accuracy limit. Turning email chaos into a calm operationI looked for the cause under the symptom, then admitted the first attempt was wrong. The trade-show follow-up systemBadges to CRM. I settle the routing and the SLA in the week before the event, while there is still time to change them. Scaling a launch on ops infrastructureWhat has to exist before a launch, and what breaks when it does not.The order I build in,
every time
01 · Definitions before automation
I define lifecycle stages, qualification logic, routing rules and handoff points once, and write them down before anything gets automated. Most “attribution problems” I've been handed were definition problems: two teams counting different things under the same name. I settle the language first, because no tool fixes a disagreement about words.
Settle the words before buying the tool02 · Build reliable data foundations
I name the source of truth, structure the CRM, govern the fields and wire the sync. Cleaning happens on write. One dataset is then safe to report from, and I refuse to skip this layer no matter how loudly someone wants a dashboard first.
No dashboard before the definitions hold03 · Hand the queue to the system
I moved lead assignment, enrichment, follow-up and lifecycle triggers out of human queues into workflows that inherit the shared definitions. Because they all inherit the same definitions, the 200+ workflows I built stayed coherent with each other, and the lead handoff I automated collapsed from ~12 hours to 1–2 minutes.
Workflows inherit the definitions, or they drift04 · Measure what the system does
Every dashboard projects the same dataset: funnel health, velocity, conversion, revenue. I treat reporting as a product of the architecture, which is why that monthly report compiles in under five minutes, and why daily snapshots became worth standing up.
Change the architecture and every report changes with itTwo receipts: a 12-hour queue and a two-hour report
A 12-hour queue became a 2-minute handoff
Before I rebuilt it, a form-fill waited roughly twelve hours for a human to route it. I rebuilt the path as system behavior: the form normalizes the capture, the system scores enrichment and intent on arrival, routing puts the lead in front of the right rep with context attached, and a cadence fires the moment the record lands. Handoff now takes 1–2 minutes.
Seventy-odd workflows sat on the payments line; by the time I left the stack carried 200+. They share one architecture, so a new workflow inherits the definitions already settled.
Lead handoff ~12 hours → 1–2 minutes · 200+ workflows in productionEight reports that agree by construction
I collapsed reporting into a single cleaned dataset that generates eight reports, channel, lifecycle, pipeline and campaign views that feed themselves from the same numbers. Monthly compile time fell from one-to-two hours to under five minutes, and I added daily snapshots because refreshing cost nothing. The before time is from memory.
That result came out of the ops layer above. After I left PingPong I rebuilt the same problem as a standalone tool, the Marketing Report Assistant, which turns scattered CSV and channel exports into clean centralized data, normalizing messy column names and duplicates so attribution isn't quietly broken by dirty data before anyone reads a chart.
Monthly report 1–2 hours → under 5 minutes · daily snapshots on demandHiring for marketing ops?
Tell me where the numbers disagree today. I will show you the layer that stops it.