Short answer: Keep every client as one record and put their deals, tasks, invoices, subscriptions and contacts under it. Track time on the same records, so each client shows the hours they paid for next to the hours you've worked. Keep team availability in the same system, so you can see who is free before you assign work. Below is how we do this at Opsters, our automation agency, in Teamo.
Disclosure: I co-founded Teamo and Opsters, the agency Teamo was built out of.
Who is Opsters?
Opsters builds automations on monday.com and Make.com, and AI routines and agents with Claude for work that requires decisions, such as lead qualification. Depending on how busy we are, 10 to 15 people work on client projects at the same time, a mix of employees and contractors. We run our own operations in Teamo.
How should an automation agency structure its client data?
Make the client the center. Everything you do for a client sits under their record, in separate groups:
| Group | What's in it |
|---|---|
| Deals | Every new deal we sign with the client |
| Tasks | The work we're doing for the client |
| Invoices | Every invoice we've issued, with its payment status |
| Subscriptions | What the client pays us to host and maintain |
| Contacts | The people we work with at the client |
Our Gmail is connected, so each client's emails show up in Teamo on the client's record or the contacts under it (see How to log client emails and WhatsApp messages in your CRM automatically). When someone asks "what's going on with this client?", the answer is on one page: the open deal, the project in progress, the last invoice, and the latest emails.
What's the difference between a retainer and a subscription?
A subscription is a monthly fee for hosting and maintaining something we built, such as a client's dashboards or automations. A retainer is a number of hours the client buys every month for whatever work they need.
We track them differently. Subscriptions have their own group on the client, because each one covers specific things we maintain. A retainer is measured in hours, so instead of a group it's a set of columns on the client record: how many hours were paid for and how many were used.
How do you track retainer hours used vs hours paid?
We do it with three columns on each client record:
- Total hours paid. A roll-up from the client's invoices, filtered to invoices with the status "Paid". When an invoice is marked paid, its hours are added automatically.
- Time tracked. Our team tracks time inside Teamo on the client's work. A sum column adds it up for the client, and we set it to count only billable time.
- Difference. A formula column subtracts time tracked from hours paid.
This tells us, for every client, whether they have hours left or we've worked more than they paid for. Nobody has to export timesheets or add things up at the end of the month. For the invoices themselves, see How to track billable hours per client and turn them into invoices.
What should a sales-to-delivery handover document include?
Ours has six sections:
- Who the client is
- What we've discussed so far
- What we've sold so far
- Main priorities and the initial action plan
- Whether we have access to their systems
- The agenda for the first delivery meeting
We don't write it by hand. A Claude routine generates it after a deal is closed, using what's already on the client record. The same document later keeps a summary of the client and the workflows we've built for them, so anyone joining the project can catch up from one place.
Where do call notes go?
We use Fathom to record calls. The summaries go into the client's documents. If something in a call needs action, it goes into a comment on the record, tagging the person who has to do it, so it lands with them instead of staying in a summary nobody rereads.
How do you avoid assigning work to someone who is on vacation?
We keep our team in Teamo too: start dates, salaries, time off requests and time off balances. Because this sits in the same system as projects, it shows up in our dashboards and calendars, so we can see who is away before a project needs to start. We also have an automation that flags it if work gets assigned to someone who is currently on vacation.
Which metrics does an automation agency owner watch?
These are the numbers we look at in our Teamo dashboards:
- Hours spent vs hours paid, per client
- How much money is coming in over the next few months, and our runway
- Number of active clients
- Clients per person, and portfolio value per person
- Invoice payments still pending
- Invoices that still need to be issued
- How busy each person is every week (the workload widget)
We also track our internal projects the same way as client projects, so time spent on Opsters itself shows up in the same reports.
FAQ
How do you track retainer hours used vs hours paid? Roll up paid invoices into a "total hours paid" column on the client, sum the billable time tracked for that client, and use a formula column for the difference. It updates whenever an invoice is marked paid or time is logged.
What's the difference between a retainer and a subscription for an automation agency? A subscription is a monthly fee for hosting and maintaining dashboards or automations the agency built. A retainer is a set number of hours the client buys each month for any work they need.
What should a sales-to-delivery handover document include? Who the client is, what was discussed, what was sold, main priorities and the initial action plan, whether you have access to their systems, and the agenda for the first meeting.
How do you avoid assigning work to someone on vacation? Keep time off in the same system as projects, show it on dashboards and calendars, and set an automation that flags work assigned to someone who is away.