What was capping them
Upper Floor runs organic and paid social for ecommerce brands. Every client meant the same set of chores: work out what is actually performing in their niche, plan a month of content, get it scheduled, report on it, and keep the sales pipeline moving on the side. None of that lived in one place. Scheduling was a Metricool subscription. Prospects were a Google Sheet. Brand research, competitor ads, analytics and the content calendar each sat in a different tool or a different person's head.
The cost was not any single tool. It was that only one person could run a client end to end, because only one person knew where everything was.
What we built
A web app the whole agency runs on, with two front doors. Staff see every client and the prospecting CRM. A client logs in and lands only in their own workspace: their planner, their analytics, their ideas and their brand research, styled in their own colours.
Inside a client workspace:
- Brand Brain. Ground truth from the owner, then a Brand DNA, a voice-of-customer document and a competitor set, written by Claude with live web research and versioned so a correction is never overwritten. Each document renders in the client's own palette, so it reads as theirs.
- Planner. A month view and a queue, a composer with a live phone preview, per network captions, and publishing to Instagram, Facebook, TikTok and YouTube through a rented publishing API rather than one we had to build.
- Analytics. Instagram post metrics pulled straight from the Graph API, daily follower snapshots, and a creative intelligence layer that classifies what is in each post so the maths can say which formats actually reach. On the first client it ran on, product demos reached 2.8 times what the rest did, and that finding cost under two pounds of API time.
- Meta Ads. Spend and results per client through one system user token, so nobody has to log in to Facebook.
- Signals and a weekly brief. The organic outliers and the paid ads that have been running longest in the niche, refreshed on a schedule.
For the agency itself: a prospecting CRM that mines UK ecommerce founders, builds branded proposal one-pagers from a brand name and a website, and tracks who opened them.
The part that changed the working day is the clock. At 07:00 a scheduled job walks every client: pulls the numbers, refreshes the signals, checks each metric against its own seven day baseline and posts an alert to Slack when something moves. By the time the team opens Signal, the morning's work has been done.
What changed
The agency runs from one login instead of three subscriptions and a sheet. A second team member can now take a client from onboarding to reporting without asking where anything is, because it is all in the one place and the tool does the research legwork. Clients get a transparent view of what is coming and how it did, in their own branding, and the numbers they see are the numbers the team sees.



