Tideworthy Platform Updates

Approvals counts now match what each side is actually waiting on

Devon Bate, Founder & CEO at SEO Brothers Devon Bate · September 23, 2026

The Clients and Contacts approval columns now count different, correct things: every open approval on the client, and the approvals a given contact has actually been asked to sign off. Behind that, a day spent teaching one agent to hold its own pace and making our own monitoring say when something is getting worse.

Tuesday was two kinds of day. One small correction in the portal that changes what a number means, and a long run of work on how we watch our own systems and how one agent decides how much to do in a sitting.

For our partners

  1. The Approvals column on Clients counts every open approval on that client, partner-side asks included, and matches the Approvals badge in the campaign sidebar.
  2. The Approvals column on Contacts counts only the approval types that client’s contacts actually see, and the tooltip gives the age of the oldest one.
  3. Product updates can now be delivered by email to people without a platform account, and the newsletter itself has a proper layout.

1. Two columns, two questions

The Clients column was answering the contact’s question: how many approvals are sitting with the client. That left partner-side asks invisible, so a client could read as clear while something waited on the agency. It now counts everything open on the client, and the Access popover uses the same number.

Contacts keeps the narrower count, which is the right one there: the approval types toggled on for that client, the same set the portal and the share link show. Neither column counts asks still held for our review, so nothing appears in your queue before it is yours to decide.

3. Updates by email

There is now a Product Updates option on the updates page of the website, for people who want these posts in their inbox and do not log in to the platform. Partner users already have a Product updates preference in their communications settings, on by default, so nothing changes for you.

Newsletters and product-update broadcasts also render in a layout built for reading: one column, one card, a callout style and a feature panel, sized to hold together on a phone.

Behind the scenes

Most of the day went to two threads.

The first is watching our own machinery. Every alert we raise now carries a class (a real fault, a vendor problem, something needing a person, or a note we only want recorded) and a severity, and they route accordingly instead of all setting off the same siren. Each alert also writes an event, so the Platform Issues page shows a rate over seven days and a fourteen-day trend rather than a lifetime count and the latest message. An issue can be acknowledged, assigned, muted for a week or resolved with a link to the fix, and it notifies on news: a new problem, a resolved one recurring on newer code, or a jump in rate. A daily digest covers the steady rest, and nothing is sent on a quiet day. There is a new Jobs view showing every scheduled job, when it last succeeded and whether it is healthy, and a request reference on error pages so a report can be traced to the exact request.

The second is pace. Our crawl maintenance agent had a goal (no issues) and an order to work through them, and nothing telling it how much belongs in one sitting. Two runs on the same site filed three tasks, then eleven. Eleven tasks landing on one queue in a morning and nothing the following month is not maintenance, it is a flood. So the rule is now explicit: decide every critical issue, then one more check, and the rest wait. Saying it in the instructions was not enough; the context the agent woke up to still presented every open check as the job, so it now names this session’s checks as the ask and shows the rest as counts. The tools hold the same line, and the page reader returns a page in windows rather than dumping an entire document, which stopped the long sessions that ran out of room before filing anything.

One more, smaller: when a reviewer cancels an agent’s task, the reason now has to name something wrong with the work. “The page already ranks well” is not a reason, and one of the pages cancelled for that sat at position sixteen. The check reads the reason against the task, refuses the two empty categories, and files the rest as a record of why a person overruled an agent. Calibrated against ten days of real notes, it refused exactly the seven that named nothing and let everything else through.

Get these updates by email

A short note when something changes on the platform, plus whatever else you pick.

Send me:

Let's grow your agency's revenue.

We've been a white-label SEO and website partner to agencies since 2015. Book a growth call and we'll walk through how we deliver under your brand, or start free to see partner pricing, sample reports, and run a free discovery on your own time.

White-label under your brand Free discovery audits