In the first 7 weeks after launch, time spent on weekly reporting dropped by up to 70%, and cross-channel discrepancies in reports fell by 60–75%.
An internal operations platform for an agency that runs dozens of clients across multiple ad and analytics systems in parallel. The system unifies client-activity management, repeatable delivery workflows, controlled data imports from channels, a single KPI calculation module, and an approval flow with a decision log. The product is built so the team operates within a single interface rather than splitting execution, reporting, and approvals across disconnected tools.
A UK-based marketing agency that manages many clients across different niches and works with paid channels and CRM analytics in parallel. The team includes account managers, marketers, analysts, and ops — and every role depends on the same numbers and the same work statuses. They came to us after a failed earlier attempt to build a similar system with another team, where part of the functionality never worked, the data was inconsistent, and the core processes remained in spreadsheets. The goal was to rebuild the platform from scratch as a controllable system for the ops team and a foundation that could scale cleanly.
Data normalization
Each source had its own structure, field naming, and attribution logic, so reports produced different numbers even for identical questions.
Operations living in chats
Statuses, blockers, and ownership were scattered across chats, notes, and threads, and the team wasted significant time just keeping them in sync.
Delivery pipeline
Audit, plan, launch, optimization, and reporting repeated for every client, but without a standard workflow the delivery quality was inconsistent and onboarding new people stayed inefficient.
Financial control and approvals
Without a decision log and clear approval statuses, the agency kept running into conflicts driven by misalignment, payment delays, and difficult client situations.
Restart
The platform foundation had to be laid in again from scratch — including QA verification of requirements and rules that could actually be tested.
Operations system on Directus
We used Directus as the core for the data model, roles and permissions, business rules, and operational entities, allowing the team to evolve the structure without an expensive frontend rebuild. This gave the team a more manageable process layer and faster iteration on the rules.
Control Panel
We built a central screen surfacing client activities and work items with owners, dates, statuses, and short context. The goal was for anyone on the team to understand, within seconds, what's in progress, which projects are at risk, what's waiting on approval, and where the blocker sits.
Flow Builder for delivery processes
We formalized the typical cycle — audit → plan → launch → optimize → report — as workflow templates with stages, status transitions, transition rules, and ownership. This standardized execution and removed the ad-hoc handling.
Data import pipeline with normalization
We implemented imports from Meta, Google Ads, GA4, HubSpot, and CSV files into a standardized format with field-mapping checks, validation, deduplication, missing-value controls, and import versioning. Data is tied to client, reporting period, and activity or workflow, ensuring every report is reproducible.
Calculator as the KPI logic
We fixed ROI, CPA, ROAS, and derived metrics as a single source of truth, so the same numbers mean the same thing across people, clients, and reports.
Activity Log as an audit trail
We recorded every critical action — import and import error, status change, data edit, approval and rejection, the reason behind each decision. This cut down incident-investigation time.
Approval mechanics for financial and risk control
We designed a unified Approved / Waiting / Rejected model for work items, budgets, and decisions, with explicit transition requirements and a documented basis for each step. This gives the agency evidence in disputed cases and reduces the risk of work being delivered without proper authorization.
We started by unpacking the previous attempt to identify where the numbers diverged, where imports were breaking, and which statuses the team was still running through chat. QA validated user scenarios to define what had to be reproducible, what had to be logged, and what qualifies as critical for financial control. The output was a refined spec with testable rules.
+4 Resource
By consolidating numbers and work statuses into one system, the platform made the agency's operations reproducible across the whole team. Within the first 7 weeks after launch, the client saw:
to prepare weekly client reports and summaries, down from ~3–5 hours per client per week
between channels in internal reports
for ops and account managers spent on manual data sync
across the delivery cycle
thanks to approvals and a documented decision log
Or send us a message and we'll get back to you within 15 minutes during business hours