# Marketing Ops Sop Generator

> >

- **Type:** Skill
- **Install:** `agentstack add skill-stallin-sanamandra-b2b-saas-marketing-skills-marketing-ops-sop-generator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Stallin-Sanamandra](https://agentstack.voostack.com/s/stallin-sanamandra)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Stallin-Sanamandra](https://github.com/Stallin-Sanamandra)
- **Source:** https://github.com/Stallin-Sanamandra/b2b-saas-marketing-skills/tree/main/skills/marketing-ops-sop-generator

## Install

```sh
agentstack add skill-stallin-sanamandra-b2b-saas-marketing-skills-marketing-ops-sop-generator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Marketing Ops SOP Generator

> A sequential system for building, auditing, and maintaining marketing operations
> infrastructure. Each phase produces documentation that the next phase depends on.
> Phase 8 runs continuously to catch drift before it becomes debt.

## Why This Skill Exists

Marketing ops at most B2B SaaS companies isn't broken in dramatic ways. It's broken
in slow, invisible ways that compound until someone asks a question nobody can answer:

- "Why do we have 47 different UTM source values for LinkedIn?"
- "Which of these 200 HubSpot workflows is still active and which should have been
  turned off six months ago?"
- "A lead came in from our top ABM account 3 days ago and nobody followed up.
  Where did it go?"
- "We changed the lead scoring model last month. Did anyone tell the BDR team?"

The pattern is always the same: someone built something, didn't document it, left
or moved on, and now nobody knows how it works or whether it's still correct. Every
undocumented process is a liability that gets more expensive to fix the longer it runs.

This skill encodes the SOPs that prevent this drift. Not by creating documentation
for its own sake, but by building the minimum viable governance that keeps campaign
tracking clean, lead routing reliable, and system changes auditable.

## When to Use This Skill

- Setting up marketing ops for a new team or company
- Auditing existing marketing ops for gaps and inconsistencies
- Standardizing campaign naming conventions across geos and teams
- Building or fixing UTM tracking governance
- Creating QA checklists for campaign launches
- Documenting lead routing logic and SLA requirements
- Building incident response playbooks for marketing system failures
- Onboarding a new marketing ops hire or handoff between team members
- Cleaning up HubSpot (or equivalent MAP) after years of ungoverned changes
- Preparing for a CRM migration or MAP integration

## When NOT to Use This Skill

- Campaign strategy or creative development (this is infrastructure, not content)
- Attribution modeling or pipeline reporting (use Pipeline Attribution Narrator)
- ABM program design (use ABM Program Orchestrator)
- BDR outreach or sales enablement (use BDR Enablement Generator)
- One-off campaign setup (this is systems-level, not campaign-level)
- CRM admin or technical implementation (this is process design, not configuration)

---

## The Marketing Ops SOP Pipeline: 8 Sequential Phases

```
PHASE 1              PHASE 2              PHASE 3              PHASE 4
Ops Audit &      →   Naming &         →   Lead Management  →   Campaign Launch
Gap Assessment        Taxonomy              & Routing            QA System

     ↓                                                              ↓

PHASE 8              PHASE 7              PHASE 6              PHASE 5
Continuous       ←   Change            ←   Incident         ←   Tool & Access
Drift Detection      Management            Response              Governance

     ↓
     └──→ PHASE 1 (quarterly re-audit)
```

**The continuous loop:** Phase 8 runs ongoing checks against the standards set in
Phases 1-7. When drift is detected (new untagged campaigns, broken workflows,
undocumented changes), it triggers a targeted fix rather than waiting for a
quarterly audit to catch it.

---

## Phase 1: Ops Audit & Gap Assessment

**Input:** Access to MAP (HubSpot), CRM, ad platforms, analytics tools
**Output:** Marketing ops health scorecard with prioritized gaps

### Marketing Ops Health Scorecard

Score each area before building any SOPs. You can't fix what you haven't diagnosed.

```
MARKETING OPS HEALTH SCORECARD

Team: ________________
Date: ________________
Scored by: ________________

SCORING: 1 = No process exists | 2 = Informal/tribal knowledge |
3 = Documented but not enforced | 4 = Documented and followed |
5 = Documented, followed, and audited regularly

AREA                                          SCORE    NOTES
─────────────────────────────────────────────────────────────
Campaign naming convention                    [ /5]    _______________
UTM parameter governance                      [ /5]    _______________
Lead lifecycle definitions                    [ /5]    _______________
Lead routing logic                            [ /5]    _______________
Lead scoring model                            [ /5]    _______________
Form strategy & management                    [ /5]    _______________
Workflow documentation                        [ /5]    _______________
List hygiene & segmentation                   [ /5]    _______________
Tool access & permissions                     [ /5]    _______________
Campaign QA process                           [ /5]    _______________
Reporting & dashboard governance              [ /5]    _______________
Change management process                     [ /5]    _______________
Incident response procedures                  [ /5]    _______________
Onboarding documentation                      [ /5]    _______________
─────────────────────────────────────────────────────────────
TOTAL                                         [ /70]

PRIORITY GAPS (score 1 or 2):
1. _________________________________
2. _________________________________
3. _________________________________

IMMEDIATE ACTION (the single most damaging gap):
_________________________________
```

### Prioritization Framework

Not all ops gaps are equal. Prioritize by business impact, not by ease of fixing.

| Priority | Criteria | Examples |
|----------|----------|---------|
| **P0: Fix this week** | Directly losing pipeline or misattributing revenue | Broken lead routing (leads not reaching sales). UTM tracking so inconsistent that attribution data is unusable. |
| **P1: Fix this month** | Causing regular errors that require manual cleanup | No campaign naming convention (can't segment reports). Lead scoring model outdated (BDRs getting bad leads). |
| **P2: Fix this quarter** | Creating tech debt that will get worse over time | Undocumented workflows. No change management process. Duplicate properties in HubSpot. |
| **P3: Build when capacity allows** | Nice to have but not causing active damage | Comprehensive onboarding docs. Automated QA checks. Dashboard governance. |

---

## Phase 2: Naming & Taxonomy

**Input:** Gap assessment (Phase 1), list of active campaigns, current naming patterns
**Output:** Naming convention standard + UTM governance document

### Campaign Naming Convention

A naming convention is only useful if it's enforceable, parseable, and adopted.
Three rules:

1. **Machine-parseable.** If you can't split the name by delimiter and extract
   each component programmatically, it's not a convention. It's a suggestion.
2. **Human-readable.** A team member should look at the name and understand the
   campaign without clicking into it.
3. **Enforced at creation, not at reporting.** If people can create campaigns
   without following the convention, they will.

### Naming Convention Template

```
CAMPAIGN NAMING CONVENTION

Format:
[Year]-[Geo]-[Segment]-[Channel]-[Type]-[Name]-[Variant]

Components:
─────────────────────────────────────────────────────
COMPONENT     VALUES                      EXAMPLE
─────────────────────────────────────────────────────
Year          YYYY                        2026
Geo           NAEU | APAC | GLOBAL        NAEU
Segment       C1 | C2 | ALL              C2
Channel       LI | GG | FB | EM |        LI
              WEB | EV | DM | CS |
              SEO | REF | ABM
Type          PAID | ORG | NUR |         PAID
              WBN | WP | CS | EV
Name          Descriptive, no spaces     soc2-audit-readiness
              Use hyphens as separators
Variant       A | B | CTRL (optional)    A
─────────────────────────────────────────────────────

Examples:
2026-NAEU-C2-LI-PAID-soc2-audit-readiness-A
2026-APAC-C1-EM-NUR-iso27001-onboarding
2026-GLOBAL-ALL-WEB-ORG-compliance-roi-calculator
2026-NAEU-C2-ABM-PAID-fintech-ciso-awareness

Channel codes:
LI = LinkedIn          GG = Google Ads       FB = Meta/Facebook
EM = Email             WEB = Website         EV = Events
DM = Direct mail       CS = Content synd.    SEO = Organic search
REF = Referral         ABM = ABM program     PR = PR/Earned

Type codes:
PAID = Paid campaign   ORG = Organic         NUR = Nurture
WBN = Webinar          WP = Whitepaper       CS = Case study
EV = Event             LP = Landing page
```

### UTM Governance

UTMs are the connective tissue between campaign activity and attribution data.
Inconsistent UTMs make attribution unreliable. Unreliable attribution leads to
bad budget decisions.

```
UTM PARAMETER STANDARD

─────────────────────────────────────────────────────────
PARAMETER       RULE                        EXAMPLES
─────────────────────────────────────────────────────────
utm_source      Platform name, lowercase    linkedin, google, hubspot,
                No variations allowed       facebook, direct-mail,
                                            g2, trustradius

utm_medium      Channel type, lowercase     paid-social, paid-search,
                Controlled vocabulary       cpc, email, organic-social,
                                            display, content-syndication,
                                            referral, event

utm_campaign    Campaign name from naming   2026-naeu-c2-li-paid-
                convention, lowercase       soc2-audit-readiness

utm_content     Ad/asset variant            ciso-pain-v1, banner-a,
                                            ebook-cover-blue

utm_term        Keyword (paid search only)  soc2-compliance-software
─────────────────────────────────────────────────────────

ENFORCEMENT RULES:
1. All lowercase. No exceptions. "LinkedIn" and "linkedin" are different
   values in every analytics platform.
2. No spaces. Use hyphens as separators.
3. utm_source and utm_medium use a controlled vocabulary. New values
   require approval and documentation.
4. utm_campaign must match the HubSpot campaign name.
5. Every link in every paid campaign, email, and external content must
   have UTMs. No exceptions.
6. Internal links (site navigation, help docs) never get UTMs. UTMs on
   internal links break attribution by overwriting the original source.
```

### UTM Audit Checklist

Run monthly. Takes 30 minutes. Prevents 30 hours of cleanup later.

- [ ] Export all utm_source values from GA4/HubSpot. Check for duplicates and typos.
- [ ] Export all utm_medium values. Verify against controlled vocabulary.
- [ ] Check the 10 most recent paid campaigns for correct UTM formatting.
- [ ] Verify no internal links have UTM parameters.
- [ ] Confirm utm_campaign values match HubSpot campaign names.
- [ ] Check for any campaigns running without UTMs (especially new ad sets).

---

## Phase 3: Lead Management & Routing

**Input:** Naming convention (Phase 2), CRM/MAP access, sales team structure
**Output:** Lead lifecycle definition, routing logic, SLA documentation

### Lead Lifecycle Definitions

Define once, enforce everywhere. Every team (marketing, BDR, sales) must use the
same definitions. Disagreement on what "qualified" means is the #1 cause of
marketing-sales friction.

```
LEAD LIFECYCLE STAGES

─────────────────────────────────────────────────────────────────────
STAGE          DEFINITION                     OWNER    ENTRY CRITERIA
─────────────────────────────────────────────────────────────────────
Subscriber     Known contact, no intent       MKT      Form fill (content
               signal                                  download, newsletter)

Lead           Engaged contact, fits           MKT      Meets minimum
               minimum firmographic                     firmographic criteria
               criteria                                 (company size, industry)

MQL            Lead scoring threshold          MKT      Score >= [threshold].
               reached                                  Combination of fit +
                                                        engagement signals.

SAL            Accepted by BDR/sales for       BDR      BDR confirms contact
               follow-up                                is reachable and
                                                        account fits ICP

SQL            Qualified through               BDR      BANT or MEDDIC
               discovery conversation                   qualification criteria
                                                        confirmed on call

SQO            Sales-qualified opportunity     SALES    Opportunity created in
               with defined next steps                  CRM with stage, amount,
                                                        and close date

Closed Won     Deal signed                    SALES    Contract executed

Closed Lost    Deal lost                      SALES    Reason documented
                                                        in CRM

Disqualified   Does not meet criteria          ANY      Reason documented.
                                                        Not deleted from CRM.

Recycled       Previously engaged, not         MKT      Returned from BDR/sales
               ready now                                with reason. Re-enters
                                                        nurture.
─────────────────────────────────────────────────────────────────────
```

### Lead Routing Logic

Document the actual routing rules, not the intended ones. Then fix the gap.

```
LEAD ROUTING RULES

INBOUND LEADS (form fills, demo requests, contact us):
1. Lead enters HubSpot via form submission
2. Enrichment runs (company size, industry, geo) [tool: ________]
3. Lead scoring evaluates fit + intent
4. Routing decision:

   IF demo request or "contact sales":
     → Route to BDR within [X] minutes (SLA: ________)
     → Assignment: [round-robin / territory / named account]
     → Notification: [Slack channel / email / both]

   IF content download or webinar registration:
     → Enter nurture sequence
     → Monitor for scoring threshold
     → Route to BDR when MQL threshold reached

   IF from ABM target account:
     → Flag as ABM lead in CRM
     → Route to assigned ABM BDR immediately (SLA: ________)
     → Notify ABM program owner

   IF disqualified (below company size, wrong geo, competitor):
     → Auto-disqualify with reason
     → Do not route to BDR
     → Add to exclusion list for paid campaigns

OUTBOUND LEADS (BDR-sourced):
1. BDR creates lead in CRM from outbound prospecting
2. Lead tagged with source = "outbound" and BDR name
3. If meeting booked: BDR completes qualification fields
4. If qualified: BDR creates opportunity and hands off to AE

ROUTING EXCEPTIONS:
- Enterprise accounts (>500 employees): route to [named AE/team]
- Existing customers: route to CSM, not BDR
- Partner/referral leads: route to [partner manager]
```

### Lead Routing SLA

| Lead Type | Routing SLA | First Touch SLA | Escalation |
|-----------|-------------|-----------------|------------|
| Demo request | 500           +0
Industry          SaaS, FinTech,        +15
                  HealthTech
                  Other tech            +5
                  Non-tech              -10
Title             CISO, CTO, VP Eng,    +20
                  Compliance Mgr
                  Director level        +10
                  Individual contrib.   +0
Geo               NA, EU, ANZ           +10
                  India, APAC           +5

ENGAGEMENT SCORING (behavioral):
────────────────────────────────────────
ACTION                         POINTS    DECAY
────────────────────────────────────────
Demo request                   +50       None
Pricing page visit             +25       30 days
Case study download            +15       30 days
Webinar attended               +15       60 days
Blog post view (3+)            +10       30 days
Email click                    +5        14 days
Email open                     +1        7 days
Webinar registered

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Stallin-Sanamandra](https://github.com/Stallin-Sanamandra)
- **Source:** [Stallin-Sanamandra/b2b-saas-marketing-skills](https://github.com/Stallin-Sanamandra/b2b-saas-marketing-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-stallin-sanamandra-b2b-saas-marketing-skills-marketing-ops-sop-generator
- Seller: https://agentstack.voostack.com/s/stallin-sanamandra
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
