Skip to main content
Agency operations platform

Agency Aviator

The single source of truth an agency had been trying to keep in spreadsheets: every client, what they actually bought, when they were last met with, how happy they are, and where they sit on a map.

Agency operations
Client
Agency operations platform
Engagement
Custom Software
Service
One record
Updated once and reflected across every team that needs it
Per team
Service breakdowns split the way each department actually thinks
Mapped
Clients plotted nationally, with proximity visible at a glance
Agency Aviator — Agency operations platform

The challenge

What we walked into

Client information lived in spreadsheets, and there was more than one. The social team kept theirs, SEO kept theirs, and the account team kept a third. Nobody could reliably say when a client had last been met with, exactly which package they were on, or which clients were near enough to see on the same trip. Updating anything meant updating it in several places, which meant it was updated in one.

Three teams, three spreadsheets, three versions of the truth

Every team had built the view they needed, because none of them had one. Social tracked which clients got which posting cadence. SEO tracked which tier a client was on. The account team tracked meetings and renewals. All of it described the same clients from different angles.

The cost was not the duplication itself, it was the drift. A client upgrading their package meant an update in several places, so in practice it happened in the one the person making the change owned. Every other view then quietly described a client who no longer existed.

They knew what they wanted, and described it as a CRM. What they actually needed was narrower than any CRM they had looked at, and every product they trialled asked them to reshape how they worked to fit it.

One record, seen the way each team thinks

The client record became the single place anything is updated, and the teams get views onto it rather than copies of it. Change what a client is subscribed to once and every department sees it immediately, because there is nothing to propagate.

The service breakdown is the part that made it usable rather than merely correct. Services are not tracked as a flat list, they are tracked at the granularity each team distinguishes. Social sees who gets regular Facebook posts against who gets the enhanced package. SEO sees basic against plus. Paid sees local service ads against standard Google Ads.

That granularity is why generic tools had failed. A CRM that records the client is on the mid tier is useless to a social manager who needs to know exactly what to produce this week.

When did we last actually speak to them

The record carries the last meeting date and how satisfied the client is, which together answer the question that predicts churn better than any usage metric. A client nobody has spoken to in months, whose last recorded satisfaction was lukewarm, is not a mystery when it cancels.

Previously that question could only be answered by asking around, and the answer depended on someone remembering. As data on the record it is sortable, which turns it from a recollection into a list of who to call.

The map, and why proximity mattered

Clients are plotted across the United States, and the map turned out to be more than presentation. Because it shows which clients are near each other, a trip to see one client becomes a trip to see three.

That is a scheduling insight that is effectively impossible to extract from a spreadsheet of addresses. Nobody cross-references postal codes by hand to plan a visit, so the opportunity had always been there and had never been visible.

It also gave a geographic read on the book of business that had previously only existed as a sense of where clients tended to be.

Why we did not tell them to buy something

We usually push clients toward an off-the-shelf product, and here we did not. The requirement was unusually specific: service tracking at a granularity that mapped to their own packages, meeting recency, satisfaction, and geography, all on one record.

Generic CRMs handled the contact management well and could not represent the service breakdown without heavy customisation, which is where the cost stops being a subscription. What they needed was narrow, and narrow is exactly when building beats configuring.

How we went at it

  • Consolidated three team spreadsheets into one client record with per-team views
  • Modelled services at the granularity each department actually distinguishes
  • Made meeting recency and satisfaction sortable data rather than recollection
  • Plotted clients geographically so proximity became visible
  • Chose to build only after confirming off-the-shelf could not represent the packages

What we handed over

  • A single client record replacing several team spreadsheets
  • Per-team service breakdowns for social, SEO, and paid
  • Last meeting date and client satisfaction on every record
  • A national client map with proximity visible for trip planning
  • Update-once behaviour with every view reading from the same source

What happened next

  • Package changes stopped being wrong in two out of three places
  • Each team got the detail it needed without maintaining its own list
  • Quiet, unhappy clients became a sortable list instead of a recollection
  • Client visits could be planned around who else was nearby

Capabilities

  • Operations platform
  • Data modelling
  • Geographic visualization
  • Multi-team access

Stack

  • Next.js
  • TypeScript
  • MongoDB
  • Google Maps API
  • Zoom API
  • Calendly API
  • Stax Payments API
  • NodeMailer
  • Vercel

Find out what should actually be built.

Start with an assessment. We walk your business end to end and show you where automation and AI pay off, ranked by what they are worth.