Skip to content

Process automation for agencies: six tasks before your next PM

Before you spend €5k a month on another project manager, automate the six collection tasks quietly eating their future workload. A field guide for agencies.

Jacob Molkenboer
Jacob Molkenboer
Founder · A Brand New Company
Published
22 May 2026
Reading time
7 min read
Category
Process automation
Vintage brass and wood telephone switchboard panel on ivory paper, six coiled patch cords, a paper form with green sticky note, red wax seal.

It is the Thursday before a long weekend, and your operations lead has three tabs open: a hiring board, a spreadsheet of candidate project managers, and a Slack channel where four account managers are asking the same question. "Where are we on the IJmuiden rebuild?" None of this is a hiring problem. It is a process-automation problem, and the cost stays invisible until you go looking for it.

The instinct is to hire. Another PM would absorb the chase. But a project manager costs €4,000 to €6,000 a month, and most of what they would absorb is not management. It is collection. Copying a number from one tool into another. Asking a designer for an update that already exists in the task board. A recent r/webdev thread made the wider point well: headcount layered onto a weak process does not fix the process, it hides it.

This is a field guide to the six tasks worth automating before you write that job description. None of them need a model fine-tune or a six-week project. Most are a scheduled script and a webhook.

The hire that hides the process

A PM dropped onto a broken process becomes a human integration layer. They spend the day moving data between systems that should already talk to each other, and because they are good at it, nobody notices the systems never got fixed. Six months later you have the same problem plus another salary.

So before automating anything, write down the actual sequence of a task: who triggers it, where the data starts, where it ends, who gets nagged. Half the time the map alone shows you the fix.

Warning

Automating a broken process only makes the breakage faster and harder to see. Map the steps on paper first. If you cannot draw it, you are not ready to script it.

Project kickoff intake

A deal closes. Someone then creates the project in the task tool, opens a Slack channel, makes the drive folder, copies in a task template, invites the team, and pastes the budget somewhere. Thirty to forty-five minutes, and a step gets missed often enough that you have all seen a project run for a week with no budget recorded.

Trigger it from the CRM instead. When a deal moves to "won", a webhook builds the skeleton:

# intake.py - turn a closed deal into a project skeleton
from fastapi import FastAPI, Request

app = FastAPI()
HOURLY_RATE = 95

@app.post("/intake")
async def intake(req: Request):
    deal = await req.json()
    project = create_project(
        name=deal["client"],
        budget_hours=deal["amount"] / HOURLY_RATE,
        channel=create_slack_channel(deal["client"]),
    )
    seed_tasks(project, template=deal["service_type"])
    notify(project.lead, f"{deal['client']} is live: {project.url}")
    return {"project_id": project.id}

The win is not the saved half hour. It is that every project now starts the same way, so every later automation can assume the same shape.

Status chasing across the team

"Where are we on X" is the single most expensive sentence in an agency. Answering it pulls a PM into five DMs, each of which interrupts someone whose update already exists: in the git history, the task tool, the time tracker.

Pull it instead of asking for it. A script reads the three sources every morning and posts one line per active project to a single channel: last commit, open tasks, hours burned against budget. No DMs, no standup that exists only to collect what a query could.

Keep the digest short. One line per project, with the change since yesterday. A status update that runs 400 words gets skimmed and then ignored.

Timesheet and WIP reconciliation

Every project has a budget and a burn. The gap between them is where margin quietly dies. Most agencies discover a project is 130% over only when someone finally adds up the timesheets, which is to say too late.

Run the reconciliation nightly. Sum approved time entries per project, compare against budget hours, and flag anything past 80%. The output goes to the project lead, not a report nobody opens. The point is to catch the overrun while there are still levers to pull.

Client status reports

The weekly client update is real work, and it is also the same three questions every week: what shipped, what is blocked, what is next. That is structured data, and you already have it from the status digest above.

Generate the draft, then have a human edit and send. Do not automate the send. The draft saves the blank-page tax; the human keeps the judgment. And resist the temptation to let a model pad it. A recent Hacker News thread caught the mood exactly: people are tired of AI-generated walls of text dropped into conversations. Clients feel that instantly. They want three short sections, not an essay that took longer to read than the work took to do.

Invoice chasing

Somewhere there is a spreadsheet of unpaid invoices, 400 rows deep, colour-coded, maintained by hand. It is the clearest automation candidate in the building, because the logic is a query:

-- invoices past due that still need a nudge
SELECT id, client_email, amount, due_date
FROM invoices
WHERE status = 'sent'
  AND due_date < CURRENT_DATE - INTERVAL '3 days'
  AND reminders_sent < 3;

Schedule that, send a templated reminder, increment the counter. If you bill through a payment provider, you may not need to build it at all: Stripe's automatic reminders cover this from the dashboard. The trap is reconciliation, and we will come back to it.

Meeting notes and action items

Client calls end with commitments, and commitments decay if they live only in someone's notebook. A transcript can be turned into a list of action items with an owner and a due date, written straight into the task tool.

One rule: a human reviews the list before it is assigned. Transcripts mishear names and misread tone, and an action item invented by a model and silently assigned to a developer is worse than no automation at all.

The tasks worth leaving alone

Scoping a project, having the hard conversation when a client is unhappy, deciding which of two late projects gets the senior developer this week. These are judgment, and judgment is the actual job of a PM. Automating the collection work does not replace the role, it clears the desk so the role can be done.

For the plumbing, you do not have to start from scratch. Open-source tools such as n8n give you a self-service workflow runner, so the six tasks above become configuration rather than a fresh codebase. Use them for the wiring. Keep the judgment human.

When we built a process-automation setup for a Rotterdam recruitment agency, invoice chasing was the first task we took on, and the thing we ran into was reconciliation: "paid" lived in their bank feed, not their invoicing tool, so a naive reminder would nag clients who had already settled up. We solved it by matching the bank export against open invoices before any reminder left the building, which is the kind of unglamorous detail that decides whether process automation earns trust or loses it.

Here is the five-minute version. Open your last five "where are we on X" threads in Slack. For each answer, ask where that fact lived before a human retyped it into the thread. Every one that already existed in a tool is a line on your backlog, and that backlog is shorter than a job description.

Frequently asked

Should I automate before or after hiring another PM?+
Before. A PM hired onto a broken process spends the day shuffling data between tools. Automate the collection work first, then hire for judgment if the volume still demands it.
Which of the six tasks is easiest to start with?+
Invoice chasing. The logic is a single dated query, the payoff is cash arriving sooner, and most payment providers already offer reminders, so you may only need to schedule and template it.
Do I need AI for any of this?+
Mostly no. Five of the six are scheduled scripts and webhooks. Only meeting-note extraction really needs a model, and even then a human should review action items before they are assigned.
Won't automated status reports annoy clients?+
Only if you let a model pad them. Generate a short draft from real project data, three sections at most, and have a human edit and send. The automation removes the blank page, not the judgment.

Want to build something similar?

Send us one paragraph about the process that eats the most of your week. We'll reply with an honest plan — within 4h on weekdays.