Library / Compare / Agency vs in-house production: the spec is the SOW in both cases

CompareHow to wire it

Agency vs in-house production: the spec is the SOW in both casesHours inside or outside the building still need write-in tests.

This is not fractional-vs-agency. This is who ships pages, ads, and emails once a spec exists — staff or a shop. In-house is right for ongoing cadence and context. Agency is right for burst capacity and skills you will not hire. The leak is the same: production without a handoff, extra CTAs, campaigns that impersonate journeys, nobody running Monday. Choose by cadence vs burst, and wire tickets to the spec either way.

00

The short version

Intern through CEO

This is not fractional-vs-agency. This is who ships pages, ads, and emails once a spec exists — staff or a shop. In-house is right for ongoing cadence and context. Agency is right for burst capacity and skills you will not hire. The leak is the same: production without a handoff, extra CTAs, campaigns that impersonate journeys, nobody running Monday. Choose by cadence vs burst, and wire tickets to the spec either way.

  1. 01

    Agency production is right for a launch, a redesign burst, ads ops you cannot staff, with assets landing in your accounts. It is wrong as the owner of the CRM spec.

  2. 02

    In-house production is right for weekly emails, small page changes, location support, with the same tests. It is wrong when 'they are busy' means they skip write-in because they can nag each other in Slack.

  3. 03

    Shared leak: shipping without tests, CTA soup, two senders, scoreboard unowned.

  4. 04

    How to choose: if the work is a pulse, burst is fine. If the work is a clock (Monday, recare, flows), in-house (or a fractional operator) owns the clock. Do not give an agency the clock without a named internal owner.

  5. 05

    Wiring implication: same QA script for both. Agency access is least privilege. Files in your sub-account. Kickoff is the spec page, not a mood board.

Who

Same system. Three jobs.

Read your row

Intern

What you actually do

Run the QA on the last thing shipped, staff or agency. Failures are tickets. You are the same test either way.

Operator

What you protect

Bind production to the spec. Clocks in-house (or owned). Pulses can burst. Monday is internal.

CEO

What you refuse to fund

Where the humans sit is secondary. Whether tickets can ship a leak is primary. Spec as SOW for both. Until that is true, headcount and retainers are interchangeable fog.

Wire

How to connect it

Objects, then edges

Spec, ticket, write-in test, cadence vs burst, brand context, QA owner, scoreboard, extra-CTA ban.

  1. 01

    Ticket without a spec reference → rejected, in-house or agency

  2. 02

    New URL → production path UTM + thank-you test before spend

  3. 03

    Burst agency → dated end; assets in your GHL/Klaviyo not only their drive

  4. 04

    In-house → cadence calendar; they do not invent a second sale map

Steps

Do this in order

Why, then done when
  1. 01

    Split clock vs pulse

    What must happen every week vs what is a project.

    Why: Agencies on clocks without an internal owner drift. In-house on rare bursts may be slower — that can be OK.

    Done when: Two lists.

  2. 02

    One QA script

    Form, UTM, book, email exclusion. Used by staff and vendors.

    Why: Two quality standards is how vendors look worse or staff skip.

    Done when: A checklist in the sub-account description or a pinned note.

  3. 03

    Tickets cite the spec

    Job, writer, stage. No 'make a funnel' without the conversion named.

    Why: Vague tickets are how extra CTAs appear.

    Done when: A rejected vague ticket.

  4. 04

    Assets in your login

    GHL/Klaviyo/Google. Agency drive is a copy, not the record.

    Why: Vendor-only assets are hostage plus a second database.

    Done when: A test: you can edit the live form without the agency.

  5. 05

    Name the Monday owner internally

    Even if an agency reports. The number is yours.

    Why: Outsourced scoreboards are how you stop believing them.

    Done when: A person who will defend write-in and show rate.

When an agency is right

Burst, scarce skills, dated pulse, assets in your logins, spec as SOW. Wiring: least privilege, QA script, end date.

When in-house is right

Clocks, context, location support, weekly ship. Wiring: same QA, they do not own a shadow sale map, Monday person is them or they report to one.

The leak that is the same

Production without tests. Extra CTAs. Vendor or staff drive as record. Unowned Monday. Building vs vendor is not the leak. Unbound tickets are.

How to choose, and the wiring implication

Clock vs pulse. Same QA. Spec-cited tickets. Internal Monday owner. Assets in your accounts. Do not use 'we have people' as a reason to skip write-in.

Why

Questions people actually ask

Pushback is normal

In-house is cheaper per hour.

Until they skip tests and you buy ads into a dead thank-you. Fully loaded plus leak is the cost. QA is not optional because they sit next to you.

Agencies have process.

Their process may be campaigns. Your process is the spec. If they will not take the spec as SOW, they are the wrong shop for this layer.

Can the agency be the Monday owner?

They can run the meeting. You still need a company owner or you cannot fire them. Ownership that cannot be fired is a hostage.

This week

This week: clock vs pulse lists, one QA script, ticket template with spec fields, confirm assets live in your logins. No new vendor without that.

Continue

Other choices

Same leak. Different owner.
Compare

GoHighLevel vs HubSpot: pick the operating center, not the logo

Both can be a filing cabinet. Neither is a system until write-in and stages are jobs.

Read ↗
Compare

Native GHL calendar vs Calendly: one public door per job

Pretty vs native does not matter if two links both take Discovery.

Read ↗
Compare

Klaviyo vs GoHighLevel email: pick by object, not by 'which is better at email'

DTC lifecycle and coaching spines are different jobs. Two senders is a tax.

Read ↗
Compare

Snapshot vs rebuild: a zip is not a product unless you will govern it

Rebuilding from memory every client is how you never productize. Blasting a zip is how you never train.

Read ↗

Working notes

90-Day Growth Diagnostic

Pick the one sequence that deserves the next 90 days. Request the file. It arrives by email — not a public dump, not a drip of slogans.

Request the notes ↗
Next

If the leak is expensive, talk.

Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.