Marketing Ops · Request intake playbook

Stop writing tickets for requesters. Split intake from the ticket.

Requesters describe the outcome in a short form. Ops turns it into a ticket with scope, out-of-scope and acceptance criteria at triage. Nothing gets built until it's ready. On this page
Kestrel AI · MOps queue
Toggle to see the same request arrive two ways.
MOPS-214 · List / segment · P2 · Size S

Objective: Invite open-pipeline prospects within 50 mi of Austin to the Nov 19 dinner.

Scope: HubSpot active list, contacts with open deals, 50-mile radius, title Director+.

Out of scope: Customers, the email build, and the send.

Acceptance: Given the list is built, when Dana opens it, then it shows 80–150 contacts with zero customers and zero unsubscribes.

Ready: objective ✓ AC ✓ approver ✓ size ✓

Back-and-forth0 msgs
Can you verify done?Yes
Priority set byOps
Picked up at Tuesday triage. Scoped in 4 minutes, delivered Wednesday, closed when Dana confirmed the count.
Why this breaks

The template isn't the problem. The handoff is.

Most intake systems fail because the requester is asked to write the ticket and the builder is asked to guess.

01

Intake and ticket are the same artifact

Requesters write wishes, not tickets. Ops re-interviews them in comments, and the real scope shows up halfway through the build.

"Anyone have a solid template for incoming ticket requests? Acceptance criteria, scope, etc?"

02

There's no definition of ready

Work starts without an outcome, acceptance criteria or a named approver. "Done" gets negotiated after the work is shipped.

03

Requesters set their own priority

Every request is urgent. Seniority and proximity decide the order, and the real P1 waits behind a VP's "quick ask."

04

Triage happens continuously

Every request interrupts someone building. Research puts the cost at about 23 minutes to fully get back into an interrupted task.

05

The queue has no cap

Work in progress grows, so cycle time grows with it. Nobody can give a date, and requesters start DMing to jump the line.

06

Big asks hide inside tickets

"Rebuild the nurture" is filed like "add a field." A week of work becomes a ticket nobody can finish or close.

What good looks like

Benchmarks for a request queue that keeps its promises.

Track acknowledgment time, delivery time, SLA hit rate and queue size. Promise only what those numbers support.

MetricWeakAcceptableStrongSource
Acknowledge a P1Over 1 business daySame dayWithin 1 business hour; status in 4 hoursBasedash, 2025
Deliver a P2Over 2 weeksWithin 10 business daysWithin 5 business daysBasedash, 2025
SLA hit rate, P1 and P2Under 75%75–90%Over 90%Basedash, 2025
Open queue sizeUncapped, 100+50–10030–50 active; rest scheduled or declinedBasedash, 2025
Unplanned buffer each week0% (fully booked)15–25%30–40% held for P1s to startBasedash, 2025
Items in progress per personOver 54–53–5 as a starting WIP limitCalade (Little's Law), 2025
Required fields on the formEverything requiredMostly requiredOnly fields that route, trigger or report (~9 for marketing)Cirface, 2025

Sources: Basedash intake and triage framework (2025); Calade on Little's Law and WIP limits (2025); Cirface intake form best practices (2025). Interruption cost: Gloria Mark, UC Irvine (2008), about 23 minutes 15 seconds to fully resume an interrupted task; the APA (2006) puts task-switching losses at up to 40% of productive time.

The step-by-step playbook

Ten steps from Slack chaos to a queue you can promise from.

One front door, two artifacts, one ready gate, and a cadence that protects build time.

01
Front door

Pick one front door and close the others

What

One form for every request. DMs, emails and hallway asks get a link back.

Why

Requests in DMs are invisible work in progress with no SLA and no history.

How

Asana Form, a Jira Service Management portal, or a HubSpot form that creates a ticket.

  • Pin the form in the marketing channel. Save a Slack reply: "Happy to help. Drop it in the form so it gets triaged Tuesday: [link]."
  • Asana: project in Board view with sections New, Triage, Needs info, Sprint Ready, In Progress, In Review, Done. Form default section = New.
  • HubSpot: a separate "MOps Requests" ticket pipeline so internal work never mixes with customer support.
02
Front door

Ask business questions on the form

What

Requesters answer outcome questions, not build questions.

Why

Requesters are good at describing a problem and bad at writing specs. Ask what they know.

How

Eight required fields, one branch per request type, one optional catch-all.

  • Required: request type, outcome wanted, what happens today, who's affected and how many, needed-by date, what drives that date, what breaks if we don't, link to the asset, approver.
  • Branch on request type (campaign build, list or segment, workflow, data fix, report, new field, integration). Show asset-specific questions only for that type.
  • Asana: branching needs Business or Enterprise; mapping answers to custom fields works on Premium. Map Request type to a single-select and Needed by to the due date.
03
Triage

Translate intake into a ticket at triage

What

Ops writes the ticket from the intake answers in a fixed format.

Why

The person who builds it should define it. That's where rework gets prevented.

How

Seven fields, readable in under 60 seconds.

  • Objective (one sentence), context, scope, out of scope, acceptance criteria, dependencies, definition of done.
  • If the ticket takes longer than 60 seconds to read, the scope is too big. Split it.
  • Store the template as an Asana task template or a Jira issue description default so nobody starts from blank.
04
Triage

Write acceptance criteria you can test

What

Observable checks in Given / When / Then form.

Why

"Works correctly" can't be verified, so it can't be closed.

How

Written before work starts, by whoever will verify it.

  • Good: "Given a contact submits the demo form with Country = Canada, when the workflow runs, then the owner is set to the Canada AE within 5 minutes and a task is created."
  • Keep team-wide items (QA'd in sandbox, documented, announced) in the definition of done, not in each ticket's criteria.
05
Triage

Gate everything on a definition of ready

What

Nothing moves to Sprint Ready without objective, acceptance criteria, approver and size.

Why

It stops the comment ping-pong that eats more time than the build.

How

A rule or validator that bounces incomplete tickets back.

  • Asana rule: when a task moves to Sprint Ready and the "Acceptance criteria" field is empty, move it to Needs info and comment @requester.
  • Jira: a workflow validator on the transition to Ready that requires the Acceptance Criteria field.
06
Triage

Ops sets priority and size, not the requester

What

A fixed P1–P4 scale and S–XL sizing, set at triage.

Why

Requesters will all choose High. Take their date and their impact, then decide.

How

Priority from impact and date. Size in builder hours.

  • P1 blocks revenue or a decision today. P2 is time-bound within 1–2 weeks. P3 is useful and gets scheduled. P4 has no date or owner and gets deferred or declined.
  • S under 30 minutes, M half a day, L 1–3 days. XL is over a week and becomes a project with a brief, not a ticket.
07
Commit

Put SLA clocks on what you promise

What

Time to acknowledge and time to deliver, by priority, in business hours.

Why

A published SLA ends "where's my thing?" DMs. A missed one tells you capacity is wrong.

How

Native SLA features where they exist, rules where they don't.

  • Jira Service Management: SLA "Time to first response." Start on Issue Created, pause on Waiting for customer, stop when status = Triaged. Goals by JQL (priority = P1 1h, P2 8h, P3 16h) on a business-hours calendar.
  • Asana: rule "Priority is P1 → set due date to today and assign the on-call owner."
  • HubSpot: ticket SLAs for time to first response and time to close on the internal pipeline.
08
Commit

Triage on a cadence with a rotating on-call

What

Two 30-minute triage sessions a week. One person owns P1s and small items each week.

Why

Batching protects build time. The rotation keeps response fast without everyone being interrupted.

How

Recurring triage meeting plus an "On-call" field or assignee rule.

  • Agenda: new requests, Needs info older than 3 days, anything at risk of missing SLA. Nothing else.
  • Teams with heavy P1 volume can run a 15-minute daily triage instead.
09
Deliver

Cap work in progress and point everything

What

3–5 items in progress per person, and an estimate on every ticket before it's committed.

Why

Little's Law: cycle time equals work in progress divided by throughput. Less WIP means faster delivery with the same team.

How

Column limits on the board and a points or hours field.

  • Example: 32 items in progress at 1.25 finished a day is a 25.6-day cycle time. Cut WIP to 24 and it drops to 19.2 days.
  • Hold 30–40% of weekly capacity for P1s at first, then tune it down using real P1 volume.
10
Deliver

Close the loop, then report monthly

What

Done means shipped, verified by the requester, documented and announced.

Why

Closing without confirmation creates reopened tickets and erodes trust in the queue.

How

An In Review step, an auto-close rule, and a monthly queue report.

  • In Review: requester confirms against the acceptance criteria. Auto-close after 3 business days with no response.
  • Monthly report: throughput by type, cycle time by size, SLA hit rate, share bounced for missing info, top requesters. Repeated asks become self-serve (saved views, list templates, a dashboard).
Best practices

Twelve rules that keep the queue honest after launch week.

The format matters less than these rules. Teams that skip them are back in DMs within a month.

  1. Separate intake from the ticket. Requester language in, builder language out.
  2. Make "out of scope" required. One line that prevents more rework than anything else on the ticket.
  3. Write acceptance criteria before work starts, by whoever will verify the result.
  4. Requesters propose dates; ops sets priority. Ask what breaks if it doesn't happen.
  5. Every required field earns its place by routing, triggering or reporting something.
  6. One form with branches beats seven forms nobody can find.
  7. Use single-selects for anything you'll report on. Free text can't be grouped.
  8. Cap the active queue. Schedule, defer with a date, or decline the rest.
  9. Publish the queue and the SLAs. Visibility is what ends the "quick question" DMs.
  10. XL requests become projects with a one-page brief and milestones.
  11. Rotate on-call weekly so everyone else gets uninterrupted build time.
  12. Review the template monthly. Drop fields nobody uses and add the question you keep asking in comments.
Common mistakes

Eight intake mistakes and what each one really costs.

Each one feels helpful to the requester and costs the ops team a day a week.

Accepting DMs as tickets

Work arrives where nobody else can see it.

Cost: invisible WIP, no SLA, duplicate builds.

Making every field required

Requesters rush or abandon the form.

Cost: junk submissions and a form people route around.

"Works correctly" as acceptance criteria

Nobody can prove it's done.

Cost: rework and arguments at handoff.

Letting requesters set priority

Everything arrives as P1.

Cost: seniority wins and real P1s wait.

Triaging all day

Every new request interrupts someone building.

Cost: about 23 minutes to refocus after each interruption.

No WIP limit

Everything is started; little is finished.

Cost: 32 items at 1.25 a day is a 25.6-day wait.

Closing without the requester

Ops marks it done; the requester disagrees.

Cost: reopened tickets and trust in the queue drops.

Buying a heavy tool first

A full service desk before there's a working process.

Cost: low adoption; a form and a board would have worked.
Queue calculator

Enter your queue. See throughput, wait time and what it costs.

Little's Law does the math: cycle time is work in progress divided by throughput.

20
2.5 h
2
30 h
Time not spent on meetings, projects and admin.
40
Throughput24 / wkPeople × hours ÷ hours per request.
Utilization83%Demand hours ÷ capacity hours.
Cycle time today8.3 daysWIP ÷ throughput, in business days.
Cycle time at WIP limit1.7 daysWIP capped at 4 per person = 8.
Where this queue is headed

Backlog shrinks by 4 tickets a week at this pace.

Triaging as requests arrive costs about 7.7 focus hours a week.

Interruption cost uses 23 minutes per request (Gloria Mark, 2008). Batching triage into two sessions removes most of it.

Copyable template

Intake form, ticket template, priority matrix and SLAs.

Paste it into Asana, Jira, Notion or a HubSpot ticket description and adjust the request types to yours.

mops-request-intake-template.txt
=== PART 1: INTAKE FORM (requester fills, about 3 minutes) ===
1. Request type*        [single-select] Campaign build | List or segment | Workflow or automation |
                        Data fix | Report or dashboard | New field or property | Integration or tool
2. Outcome you want*    [text] The result, not the thing to build. "More demo bookings from webinar attendees."
3. What happens today?* [text] What's broken or missing right now.
4. Who's affected?*     [single-select] Just me | My team | Sales | Whole company | Customers
   How many records / people? [number]
5. Needed by*           [date]
   What drives that date?* [text] Launch, event, board meeting, contract...
6. What breaks if we don't do this?* [text]
7. Link to the asset*   [url] Campaign, list, workflow, record or report
8. Approver*            [person] Who signs off that it's right
9. Anything else?       [text, optional]
BRANCH (Campaign build): audience, channels, launch date, assets ready Y/N
BRANCH (Report): question it answers, decision it changes, audience

=== PART 2: TICKET (ops writes at triage, readable in 60 seconds) ===
Title:        [Type] Outcome in 8 words
Objective:    One sentence. The outcome.
Context:      Why now. What's upstream. Link to intake.
Scope:        - bullet
              - bullet
Out of scope: - what we are NOT doing
Acceptance criteria (Given / When / Then):
  AC1 Given ..., when ..., then ...
  AC2 Given ..., when ..., then ...
Dependencies: What must be true first, and who owns it
Priority:     P1 / P2 / P3 / P4  (set by ops)
Size:         S (<30 min) / M (half day) / L (1-3 days) / XL (>1 week = project)
Definition of done: shipped + verified by approver against AC + documented + announced

=== DEFINITION OF READY (all four before Sprint Ready) ===
[ ] Objective   [ ] Acceptance criteria   [ ] Named approver   [ ] Size

=== PRIORITY x SIZE ACTION MATRIX ===
        S           M           L           XL
P1      Do now      Do today    Do today    Escalate
P2      Do today    Schedule    Schedule    Plan as project
P3      Self-serve  Schedule    Plan        Defer with date
P4      Self-serve  Defer       Defer       Decline

=== SLAs (business hours) ===
P1  acknowledge 1 h,   status update 4 h,   deliver same or next day
P2  acknowledge same day,                  deliver within 5 business days
P3  acknowledge 2 days, scheduled into next sprint
P4  acknowledge 1 week, may be declined or folded into a project

=== BOARD SECTIONS ===
New -> Triage -> Needs info -> Sprint Ready -> In Progress (WIP 3-5 per person) -> In Review -> Done
Rules: Needs info > 3 business days = flag at triage. In Review > 3 business days with no reply = auto-close.
FAQ

What MOps leads ask before they roll this out.

Direct answers to the questions that come up in the first week.

Is there a solid template for incoming ticket requests?

Yes, but use two: an intake form the requester fills in business terms, and a ticket ops writes at triage with objective, scope, out of scope, acceptance criteria, dependencies and definition of done. Both are in the template above.

Who should write the acceptance criteria?

Whoever will verify the work, before the build starts. In practice ops drafts them at triage and the approver confirms them. If the requester can't agree on how "done" will be checked, the ticket isn't ready.

Asana, Jira Service Management or HubSpot tickets?

Asana if marketing already plans there: forms, rules and branching cover most of it. Jira Service Management if you share a queue with IT or engineering and need real SLA clocks. HubSpot tickets if MOps lives in HubSpot and wants requests tied to records, keeping in mind the seat costs.

What do we do with "quick asks" in Slack?

Reply with the form link every time, politely. If it's truly under 30 minutes and the on-call owner has room, they can log it after doing it so it still counts. Skipping the log is how invisible work comes back.

Sprints or Kanban for marketing ops?

Sprints if most work is medium or large and stakeholders want a weekly plan. Kanban with WIP limits if most work is small and arrives unpredictably. Many teams run both: a Kanban lane for small and P1 work, sprints for planned work.

How do we stop everything being urgent?

Remove the priority field from the form. Ask for the date, what drives it and what breaks without it. Ops sets priority at triage on a published scale, and the matrix makes the trade-offs visible.

How JayOh does it

This is how our own pods run every client engagement.

Every JayOh task follows one SOP: readable in under 60 seconds, with a clear objective, defined scope and testable acceptance criteria. Asana is the source of truth and one-week sprints are the delivery engine.

100+engagements run on this operating model
8hsaved per FTE per week
90%reduction in data errors
$2.2Mpipeline in 90 days

Week 1: front door and template

We build the intake form, branches and ticket template in your Asana, Jira or HubSpot, and set the board sections and rules.

Weeks 2–3: triage and backlog reset

We run triage with you, groom the existing backlog into keep, defer and close, and point everything that stays.

Then: the pod works the queue

A consultant owns triage and priorities. Developers ship HubSpot and Salesforce work in weekly sprints against your SLAs.