You're viewing the AI side. See the human side
Vikram Bhalla

How Our Agency Earns Its Monthly Client Thumbs-Up

Twelve hours of scattered admin, turned into clean client reports by a small automation. The thumbs-up emoji remains.

In 16 years of running a creative agency, the best response I’ve ever received to a monthly client report has been a thumbs-up emoji.

Monthly reports are some of the least glamorous parts of running a creative business. Some agencies have an admin team handle them, while others palm them off to an intern. Unlike larger agencies, though, we don’t have an “admin” team. Or interns. Just little old me. Which means that at the end of every month, I’d have to spend the better part of an entire workday painstakingly putting together these individual monthly work reports for all our retainer clients by sifting through multiple sources and channels, and then racking my very forgetful brain to make sure I remembered the tiniest things that would’ve happened. Across three retainer clients, that’s easily 9–12 hours a month reconstructing work we’d already done.

A Necessary Friction

As annoying as these reports are, I’m not arguing against the practice. There have been multiple times when the client and I have had to refer to a report from a previous month to clarify something. But for the most part, they’re just a hygiene task that no one enjoys doing, yet someone has to do them. And as your agency scales, this task becomes heavier, and the risk of missing something increases.

My job putting this monthly report together usually involves multiple tabs open in my browser. One tab shows my email, filtered to only emails exchanged with that client’s team members within the current month. Another tab will have each client’s Trello/Asana open, where I would have to go through every completed and in-progress task. Next, I’d have to check my meeting notes from every meeting we had with that client that month. Finally, for the outlier and ad-hoc “small tasks”, I’d also have to scroll through WhatsApp or iMessage conversations with our client partners.

From all those sources, I’d then fill in a report template with sections aligned with our scope of work for that client, and start dropping the tasks and deliverables into their relevant sections. Obviously, there would be duplicates throughout this laundry list, so I had to make sure I didn’t include the same deliverable more than once.

Creative agency retainers are full of tiny, ad-hoc tasks that aren’t included in a contract scope of work, but which we do anyway because they’re insignificant in the grand scheme. But those tiny tasks still take time, and can add up over a month. So, of course, we have to include them in the report. Which is a pain in my ass.

It’s The Little Things

There was nothing creative about this whole process. It just required memory, patience, and the willingness to click through a month’s worth of digital breadcrumbs. I’m in short supply of at least two of those things.

So I automated this whole process as soon as I could. And as recently as last month, the automatic report my new system generated actually flagged a small compliance website page update in one of our client reports, which I’d completely forgotten about. I’d never have caught it because the request had come in via a very short email exchange with the client’s legal team on a particularly busy day.

The automation itself was fairly simple. When triggered, a Google Apps Script pulls client data for the month from my email, Trello/Asana, meeting notes, etc., then de-duplicates and cleans the deliverables, generates the final list and sorts it into that client’s report/scope template. The final output is a nicely formatted Google Doc that takes me a few minutes of review and cross-checking (less and less as I become more confident in the automation and model’s capabilities) before I send it to the client.

I should point out that APIs for most of these sources have existed for years, and you could’ve created an automation that pulled everything into a single laundry list, as far back as 2015. What we’ve never had, though, is this layer of intelligence on top of the data. One that is now so good that I often have to hold back from giving it too many guardrails, rules, or instructions.

Pre-AI, I’d have to create a bunch of separate, specific rules for the deliverables data to ensure there was no duplication if the same task was mentioned in an email and a Trello board, or to determine exactly how to classify tasks into their particular sections in a report. It’s now much more effective to just point the AI model at the data, give it some basic client context so it knows what’s what, and say, “Clean this up, remove the duplicates, and present the final deliverables in this specific report format.” The hardest part, then, becomes trusting the model to do that first pass.

Code-free. Stress-free. Mistake-free.

And if that sounds like too much work, you’re in luck. Since I built this for my own workflow, the tools have already evolved.

With Claude Skills, connectors, and MCP-style integrations becoming more capable, this may no longer require a custom Google Apps Script at all. You could just set up a reusable ‘monthly-client-report’ skill, connect the relevant sources, and simply ask Claude to generate the report in your preferred format at the end of every month.

I’ll also admit it took me a couple of months to fully trust the system I built. Those first two months’ reports actually had me doing the work alongside the automation just to verify its results. But I’ve now become very confident in the system’s ability to get it right. And today, my review process takes only a few minutes.

Meanwhile, our (non-existent) interns are theoretically happy. No need to hand off the task with a bogus wisecrack like, “This will give you a great grounding in the work.” No, kids, your creative instincts aren’t getting sharpened by turning a month of scattered admin into a list of deliverables.

In fact, no one should have to spend time on tasks like this any more, regardless of where they are in their careers. The machines can do the monthly reports now, so the interns can get the coffee. Like the work gods intended.

How Our Agency Earns Its Monthly Client Thumbs-Up

Twelve hours of scattered admin, turned into clean client reports by a small automation. The thumbs-up emoji remains.

In 16 years of running a creative agency, the best response I’ve ever received to a monthly client report has been a thumbs-up emoji.

Monthly reports are some of the least glamorous parts of running a creative business. Some agencies have an admin team handle them, while others palm them off to an intern. Unlike larger agencies, though, we don’t have an “admin” team. Or interns. Just little old me. Which means that at the end of every month, I’d have to spend the better part of an entire workday painstakingly putting together these individual monthly work reports for all our retainer clients by sifting through multiple sources and channels, and then racking my very forgetful brain to make sure I remembered the tiniest things that would’ve happened. Across three retainer clients, that’s easily 9–12 hours a month reconstructing work we’d already done.

A Necessary Friction

As annoying as these reports are, I’m not arguing against the practice. There have been multiple times when the client and I have had to refer to a report from a previous month to clarify something. But for the most part, they’re just a hygiene task that no one enjoys doing, yet someone has to do them. And as your agency scales, this task becomes heavier, and the risk of missing something increases.

My job putting this monthly report together usually involves multiple tabs open in my browser. One tab shows my email, filtered to only emails exchanged with that client’s team members within the current month. Another tab will have each client’s Trello/Asana open, where I would have to go through every completed and in-progress task. Next, I’d have to check my meeting notes from every meeting we had with that client that month. Finally, for the outlier and ad-hoc “small tasks”, I’d also have to scroll through WhatsApp or iMessage conversations with our client partners.

From all those sources, I’d then fill in a report template with sections aligned with our scope of work for that client, and start dropping the tasks and deliverables into their relevant sections. Obviously, there would be duplicates throughout this laundry list, so I had to make sure I didn’t include the same deliverable more than once.

Creative agency retainers are full of tiny, ad-hoc tasks that aren’t included in a contract scope of work, but which we do anyway because they’re insignificant in the grand scheme. But those tiny tasks still take time, and can add up over a month. So, of course, we have to include them in the report. Which is a pain in my ass.

It’s The Little Things

There was nothing creative about this whole process. It just required memory, patience, and the willingness to click through a month’s worth of digital breadcrumbs. I’m in short supply of at least two of those things.

So I automated this whole process as soon as I could. And as recently as last month, the automatic report my new system generated actually flagged a small compliance website page update in one of our client reports, which I’d completely forgotten about. I’d never have caught it because the request had come in via a very short email exchange with the client’s legal team on a particularly busy day.

The automation itself was fairly simple. When triggered, a Google Apps Script pulls client data for the month from my email, Trello/Asana, meeting notes, etc., then de-duplicates and cleans the deliverables, generates the final list and sorts it into that client’s report/scope template. The final output is a nicely formatted Google Doc that takes me a few minutes of review and cross-checking (less and less as I become more confident in the automation and model’s capabilities) before I send it to the client.

I should point out that APIs for most of these sources have existed for years, and you could’ve created an automation that pulled everything into a single laundry list, as far back as 2015. What we’ve never had, though, is this layer of intelligence on top of the data. One that is now so good that I often have to hold back from giving it too many guardrails, rules, or instructions.

Pre-AI, I’d have to create a bunch of separate, specific rules for the deliverables data to ensure there was no duplication if the same task was mentioned in an email and a Trello board, or to determine exactly how to classify tasks into their particular sections in a report. It’s now much more effective to just point the AI model at the data, give it some basic client context so it knows what’s what, and say, “Clean this up, remove the duplicates, and present the final deliverables in this specific report format.” The hardest part, then, becomes trusting the model to do that first pass.

Code-free. Stress-free. Mistake-free.

And if that sounds like too much work, you’re in luck. Since I built this for my own workflow, the tools have already evolved.

With Claude Skills, connectors, and MCP-style integrations becoming more capable, this may no longer require a custom Google Apps Script at all. You could just set up a reusable ‘monthly-client-report’ skill, connect the relevant sources, and simply ask Claude to generate the report in your preferred format at the end of every month.

I’ll also admit it took me a couple of months to fully trust the system I built. Those first two months’ reports actually had me doing the work alongside the automation just to verify its results. But I’ve now become very confident in the system’s ability to get it right. And today, my review process takes only a few minutes.

Meanwhile, our (non-existent) interns are theoretically happy. No need to hand off the task with a bogus wisecrack like, “This will give you a great grounding in the work.” No, kids, your creative instincts aren’t getting sharpened by turning a month of scattered admin into a list of deliverables.

In fact, no one should have to spend time on tasks like this any more, regardless of where they are in their careers. The machines can do the monthly reports now, so the interns can get the coffee. Like the work gods intended.