Español

A Day in the Life of a Marketing Ops Manager (What the JD Doesn't Tell You)

The job description said you'd "own the go-to-market machine" and "drive strategic initiatives across the funnel."

Today you have 47 routing errors waiting in LeanData from overnight. Your Marketo-to-Salesforce sync has been lagging 18 minutes since Friday, and nobody seems to care except you. A demand gen lead is asking, in a polite-but-tense Slack message, why their last campaign is showing up in the dashboard with utm_source=(none). And the pricing page form has been silently dropping 60% of submissions for three days, which you'll discover at 1pm.

That's the actual job. Not the JD fantasy.

If you're a Marketing Ops IC at a B2B SaaS company between 50 and 1,000 employees, six months to three years into the seat, this is going to feel like someone read your calendar. We wrote it because nobody else seems willing to. The work is real, the patterns are repeatable, and most of what you do in a day doesn't fit anywhere on the strategic roadmap your VP showed you in your interview.

Here's what a Tuesday actually looks like.

8am: The Routing-Error Queue

You open laptop. You open LeanData. You open Salesforce. You have a coffee.

The overnight queue is the first diagnostic of the day. Last night, while marketing was asleep, the lead-flow engine was awake, and it broke in the same three or four places it always does:

  • Orphan leads with no account match. Demandbase couldn't reverse-IP a company, the email domain didn't match a known account in SFDC, and now there are 14 leads sitting in a "no account" bucket that the round-robin can't touch.
  • Round-robin skips. Three reps were OOO yesterday but didn't update their availability in LeanData, so the router kept assigning to them, and the SDR manager only noticed at 7am when their rep dashboard looked empty.
  • Leads stuck in "pending enrichment." Some of them have been pending for 48+ hours because Clearbit returned a 429 during a campaign blast and the router queued them with no retry. Nobody saw the queue depth alert because that alert was going to a Slack channel that got archived in January.

Your first move is triage, not fixing. You pull the queue, you tag what's the router's fault (config), what's dirty data (enrichment), and what's a person problem (an SDR who hasn't logged in for a week and is silently breaking the round-robin).

Real example, exactly as it happens: LeanData routed 12 leads to a CSM who left two weeks ago. Nobody flagged it because the queue alerts were going to her email, which was suspended on day one of her offboarding. You find this because one of the leads opened a support ticket asking why nobody had followed up. Twelve hours of pipeline, gone, because IT and HR don't have a process for "remove this person from all routing rules."

You fix the routing config, you reassign the 12 leads, you write a Loom video for the SDR manager explaining why this happened and what changed. You do not get credit for any of it. By 9:15 the queue is clean. The CMO's dashboard, when she opens it, will show 12 fewer leads as "stuck" and she'll never know why.

That's a normal Tuesday morning. We call those leads "router orphans." Every MOps person has a name for them, and every MOps person has 12 of them in their queue right now.

9:30am: The MAP/CRM Sync Health Check

This is a five-minute ritual that occasionally explodes into a five-hour incident.

You open the MAP — Marketo, Pardot, HubSpot Marketing Hub, or Customer.io, depending on which one you inherited — and you go to the sync log. You're checking three things:

  1. Sync errors. How many records failed to push? What's the error code? Is it the same custom field type mismatch you fixed last month and somebody recreated?
  2. Lag time. What's the gap between "lead converts in MAP" and "lead appears in CRM"? Five minutes is fine. Eighteen minutes is a Friday-afternoon problem you didn't fix that's now a Tuesday-morning problem.
  3. Sync purgatory. The records that aren't erroring but aren't completing either. They're in some half-state where the API thinks they synced but the CRM never received them. We call this "sync purgatory." It's where MQLs go to die.

Common failures, ranked by frequency:

  • Custom field type mismatches. Somebody changed a number field to text in Salesforce because a sales ops person was "fixing a thing," and now every Marketo sync involving that field fails. The error message is always cryptic. The fix is always 20 minutes of detective work.
  • Picklist values that drifted. Marketo writes "Tier 1" to the lead source field. Salesforce now expects "Tier-1" because somebody updated the picklist last week. Every lead from a campaign now silently fails the sync.
  • API limit hits. A campaign send blew through the daily API quota by 11am because somebody triggered a re-sync of 200,000 records to "test something." Now everything queued after 11am is sitting in purgatory until midnight.

The diagnosis you'll run twice a month is what we call the phantom MQL. The lead scored to MQL in the MAP. The MAP sent the update. The CRM has no record of receiving it. You check the sync log and see the push went through. You check the lead in SFDC and the lifecycle stage is still "Lead." You eventually find the validation rule somebody added six months ago that silently rejects updates if the Lead Source field is blank, and that field is blank because the campaign that generated this lead didn't have a source mapped, and now you have 80 phantom MQLs from the last two weeks that the CMO has been counting in her dashboard but the SDRs have never seen.

Phantom MQLs are how MOps people lose trust they didn't have time to build. Naming the diagnosis at least lets you fix it as a category, not as 80 individual tickets.

11am: Async with Demand Gen on UTM Hygiene

Slack ping. It's the demand gen manager.

"hey, my campaign from last week isn't showing up in the dashboard. is the tracking broken?"

You already know what you're going to find before you click the link. You open the campaign URL. The UTM is utm_source=email_blast_v2_FINAL. You sigh. You open the URL builder spreadsheet that everyone agreed to use in Q2 and that nobody has used since Q3. You confirm: the source isn't in the taxonomy. It's not "email." It's not "newsletter." It's email_blast_v2_FINAL, which means the attribution model in Looker bucket-rolls it into "(other)," which is why it doesn't show up in the dashboard.

The Slack thread that follows is a delicate piece of cross-functional diplomacy. You don't want to be the person who says "you broke it." You also don't want to fix it silently for the fourth time this quarter. The version that works:

"Yeah, I see it. The source is email_blast_v2_FINAL and our taxonomy is expecting email. I'll re-tag the records this morning so it shows up. Want me to send you the URL builder again? I think the version we agreed on in Q2 is what's tripping this up. Happy to grab 15 minutes Thursday to walk through it if useful."

You re-tag. You send the spreadsheet. You make a note in your running doc that this is the third time this quarter, with this specific person, on this specific campaign type. You'll bring it up at the next demand-gen-MOps sync as a process gap, not a person gap, because that's how you keep the relationship intact while still flagging the pattern.

The diagnosis here is UTM rot. When 30% or more of your campaign URLs in the last 90 days don't match the taxonomy, your attribution model is lying. Not by a lot. By enough that the CMO's "marketing-influenced revenue" number is wrong by 7-12% in either direction, and you can't tell which direction without doing the cleanup yourself.

Most MOps people we know have a UTM rot rate between 20% and 40%. The ones who claim 5% are either lying or running a team of two. Naming the rot is half the battle.

1pm: Mid-Day Form Audit

You eat lunch at your desk because of course you do. While you eat you run the form audit. This is a 20-minute ritual you run because at some point in your career a form broke and nobody noticed for three days, and you swore you'd never let that happen again.

The audit checklist:

  • Submission count vs. last week. Pricing form usually does 40-60 submissions a day. Today it's done 8 by 1pm. That's the alarm bell.
  • Hidden field population rate. Are the UTMs being captured? Is the IP enrichment field firing? Is the consent checkbox being recorded?
  • Redirect URL. Does the form's thank-you redirect still work, or did somebody update the page slug last week and forget to update the form config?
  • MAP listener. Is the form actually pushing to Marketo / Pardot / HubSpot, or did the JavaScript snippet break when the marketing site got redeployed?

Today the count is wrong. You go to the pricing page and you submit a test form. It loads. It says "thanks." But when you check Marketo, your test record isn't there. You check the form embed on the page and the third-party JS that wraps it has been "cleaned up" by a marketing contractor who was working on page-load performance. They removed an event listener that they didn't realize was actually doing the form submission.

The pricing page form has been silently dropping 60% of submissions for three days. Three days, on the highest-intent page on the marketing site.

You file a P0 incident. You restore the embed. You count the missing submissions by cross-referencing GA4 page views against MAP form fills. You estimate the pipeline impact at $180-240K based on the page's typical conversion rate. You write a post-mortem that nobody asks for, because if you don't write it, the same contractor will do the same thing in six weeks. By 2:15 you've recovered 38 of the 64 missing submissions through a Demandbase reverse-IP lookup of the page's anonymous traffic in the affected window.

Nobody in the company will remember this happened by Friday. You will remember it for the rest of your career.

3pm: Dedupe and Lead Routing Fires

Afternoon energy is dedupe energy. You open the dedupe queue. There are 217 potential duplicates flagged. Half of them are real. Half are John Smith at Acme matching John Smith at Acme Corp because the company-name normalizer is stupid about LLC vs Inc vs Corp.

The real duplicates have to be merged. The merge is where the politics live:

  • Which record wins? The older one with the activity history, or the newer one with the better firmographics?
  • What fields survive? If the older record has Lead Source = Webinar and the newer one has Lead Source = Demo Request, which wins? (The newer one. The older one becomes a campaign membership, not a source.)
  • Who owns the activity history? If you merge a marketing-owned lead into a sales-owned contact, the merged record now has marketing's emails, sales's calls, and a confused CRM that doesn't know who to credit on the next opp.

Cross-system dedupe is the harder version. A lead exists in Marketo but never made it to SFDC because of the validation rule from this morning. A contact exists in HubSpot CRM but isn't in Customer.io because the integration was set up in 2022 and nobody updated it when product moved off HubSpot Marketing Hub. The dedupe queue is one queue. The systems are five. The merge logic has to be the same across all of them, or you'll create the same duplicate twice.

You spend an hour on the queue. You merge 80 records. You bounce 12 to the rep manager because they're real duplicates with conflicting account ownership and that's a sales-ops decision, not a MOps decision. You leave 40 in the queue because the firmographic fuzz isn't strong enough either way and you'd rather have a duplicate than a wrong merge. You close LeanData.

The dedupe rules from 2021 are still in production. You know they're bad. You also know that rebuilding them is a Q3 project that nobody has scoped because it doesn't move a metric anyone tracks. You add a line to your "things to fix when there's time" doc, which is on its 240th line, and which you have never not been adding to.

5pm: End-of-Day Attribution Cleanup

The CMO checks her dashboard on Monday morning. You spend Friday afternoon (and, increasingly, late Tuesday) making sure the numbers she sees on Monday aren't wrong in the obvious ways.

The unglamorous truth of attribution work: half of it is fixing yesterday's data, not building tomorrow's model.

What you're actually doing in the last 90 minutes of the day:

  • Reassigning campaign influence on opps that closed today. Three deals closed. Two had clean campaign touch records. One had a missing first-touch because the lead was created from an offline list import, and the import didn't have a source. You backfill it from the original list.
  • Backfilling first-touch on 14 leads from a webinar. The webinar form passed bad data to Marketo because the registration vendor changed their field labels and your integration didn't auto-detect it. You re-tag the 14 leads with the correct campaign and source. The dashboard will be 14 leads less wrong on Monday.
  • Marking three deals as "self-sourced, no marketing touch." The reps insisted these were inbound, but the activity history shows zero marketing touches in the 90 days before the opp opened. Marking them as self-sourced means the CMO's marketing-influenced-revenue number isn't inflated by sales-sourced wins. You'll get a Slack message from the CRO at some point this quarter complaining about this. You'll have the audit trail ready.

The Monday morning question you're solving for is always the same: "Why did MQL volume drop 22% week-over-week?" You're trying to make sure that when the CMO asks it, the answer is a real story (a campaign ended, a list was paused, a paid-search budget was redirected) and not a story about a broken form, a phantom MQL queue, or a sync that's been lagging since Friday.

The diagnostic work is the strategic work. You're protecting the integrity of the number the CMO uses to defend the marketing budget. That is the strategic contribution. It just doesn't look like the JD said it would.

The Stack You Actually Use Every Day

Pull this list out the next time someone asks "what tools do you work with." It's the honest answer.

  • MAP: Marketo, Pardot, HubSpot Marketing Hub, or Customer.io. You'll know one of them deeply. You'll know enough about a second to be dangerous in a migration. The third you've only read about.
  • CRM: Salesforce, HubSpot CRM, or Rework. The integration between MAP and CRM is where 80% of your bugs live, and 100% of your career leverage.
  • CDP / event tracking: Segment, sometimes mParticle. Segment is where the UTM rot conversation actually starts.
  • Routing and matching: LeanData. Sometimes Chili Piper for meetings. Sometimes a homegrown set of Salesforce flows that predate your hire date and that nobody fully understands.
  • Account intel: Demandbase, 6sense, Clearbit. You'll have one for ABM, one for enrichment, and one that's been on auto-renew for two years that you can't justify but can't cancel.
  • The Slack channel where you post "anyone else seeing weird sync delays?" at least once a week. This is non-negotiable. Every MOps person needs the channel. If your company doesn't have one, find a Pavilion or MO Pros community that does.

If you can run that stack, diagnose its failures, and translate the diagnosis into language a CMO and a CRO can both understand, you are doing the job. You're also one of maybe 30,000 people in the world who can.

The JD Said "Strategic." The Job Is Diagnostic.

Here's the reframe that will save your career, or at least your sanity:

You're not building the GTM machine from scratch. You're keeping the one you inherited from breaking, and slowly replacing the worst parts. That's the actual job. It's valuable. It's also exhausting if you don't name it.

The diagnostic work (the routing-orphan triage, the sync-purgatory cleanup, the UTM-rot detection, the phantom-MQL recovery, the form-audit sweep, the dedupe-merge politics, the attribution backfill) is what makes the strategic work possible. Without it, the dashboard the CMO checks Monday morning is a fiction. With it, the strategic conversations have a foundation.

The trap is that diagnostic work is invisible when it's done well. Nobody notices the form audit when the form is working. Nobody thanks you for keeping the sync lag under five minutes. Your performance review, if you let it, will be measured on the strategic projects you didn't have time to ship because you were keeping the existing system from collapsing.

The fix is to name it. In your one-on-one. In your quarterly review. In your interview for the next role. "I diagnosed and resolved 240 routing errors this quarter, recovered $1.8M in pipeline from form failures, and reduced UTM rot from 38% to 14%." That's the language. That's what gets you paid for it.

What This Means for Your Career

The skills you're actually building, even on the days that feel like firefighting:

  • Data debugging. You're learning to read a system's failure modes faster than anyone else in the company.
  • Vendor negotiation. You're the one on the renewal call asking the LeanData rep why your seat count is wrong.
  • Cross-team diplomacy. The UTM-hygiene conversation with demand gen is a leadership skill in disguise.
  • Stack architecture. Every MAP-to-CRM bug you fix is a lesson in why the previous architect made the choices they made, and what you'd do differently.

The promotion path that's actually real:

Senior MOps Manager → MOps Lead → Director of RevOps. Not "VP of Marketing." Most MOps ICs who try to jump to VP Marketing fail because the day-to-day is a different job. The one that works is going broader into RevOps, where the diagnostic skills compound across marketing, sales ops, and customer success.

The skills that travel between companies:

  • SQL. Enough to write your own queries against the data warehouse without waiting on the data team.
  • Looker, Mode, or whatever BI tool is in front of the warehouse. Enough to build the dashboard yourself when the data team has a 6-week backlog.
  • One MAP, deeply. Not three, shallowly. Pick Marketo, Pardot, or HubSpot, and become the person who can answer any question about it from memory. The depth is what gets you the next role.
  • API basics. REST, webhooks, rate limits, retry logic. You don't need to be a developer. You need to be the person in the room who can say "that's not going to work because of the API quota" before the project gets greenlit.

If you're reading this at the end of a Tuesday, with the routing queue clean and the attribution backfill done and the form audit filed, give yourself a minute. The job you did today was real. It was strategic. It was the kind of work that holds the rest of marketing together.

The JD didn't tell you this is what the job would be. We're telling you now. The diagnostic work is the strategic work, and the people who name it first are the ones who get to define how it's measured.

Tomorrow morning, the routing queue will be full again. That's fine. You know what's in it.

Learn More