Web Agency 2026-04-28

Web Agency Monitoring: 30-Client Retainer Playbook

How a web agency manages 30 client retainers with Miterl: webhook maintenance windows, white-label status pages, and engineer-led investigation on Pro.

agency maintenance contract uptime monitoring incident investigation white-label

The team and assumptions

This use case follows a fictional 10-person web agency, "Agency A," based in Tokyo and Osaka. They primarily build and maintain corporate websites for SMBs. Their portfolio: 30 active clients, 90 production sites under maintenance contracts at ¥30,000–100,000 per month per client.

Until recently, their "uptime monitoring" was effectively a phone call from the client saying "the site is down." This use case walks through what changed in the three months after they adopted Miterl, ending with a model where monitoring and incident investigation became a sellable line item rather than an unpaid burden.

Three pain points before adoption

1. Clients told them about outages first

Off-the-shelf monitoring SaaS catches downtime, but doesn't investigate root cause. Engineers had to dig through logs at 2 AM themselves — and clients usually called before they finished investigating. Trust quietly eroded with each incident, and renewal conversations got harder.

2. Deploy-time false alerts trained the team to ignore alerts

Major CMS upgrades (WordPress, Movable Type) and server migrations triggered DOWN alerts during planned work. Slack would buzz at 2 AM, and the team would shrug it off as "yeah, that's the deploy." A culture of "ignore the channel" set in, and real incidents started getting buried.

3. Monthly reports and incident write-ups were assembled by hand

"Last month's uptime was 99.95%" took an engineer 3–4 hours every month, with a different format per client and no template to reuse. Every incident triggered another from-scratch Word document. Pure unpaid overhead.

Three reasons Miterl made the cut

Concern What worked
Engineer-led incident investigation Pro plan: 3 cases/month included, with NDA-backed server-internal access
Maintenance windows One webhook call from the deploy script
White-label From Standard: hide "Powered by Miterl", custom domain — ship it as Agency A's own service

The single biggest unlock was replacing late-night log digging with a next-business-morning investigation report. Miterl's investigation desk runs weekdays 10:00–19:00 JST (Standard: first response within 4 business hours, Pro: within 2). Late-night work stopped landing on Agency A's own people, which paid for the subscription on engineer-retention alone.

Operational playbook

1. One Workspace per client

Agency A separates each client into its own Workspace. Project managers receive viewer access to their assigned Workspaces only; engineers get member access for monitor-rule edits. Onboarding/offboarding became trivial — flip permissions, no SQL surgery.

For a quick cross-client health check, the on-call engineer pulls every monitor's status in a single API call each morning instead of clicking through 30 dashboards.

# Morning health check: list every monitor's current status
curl -s "https://miterl.com/api/v1/monitors?per_page=100" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  | jq -r '.data[] | "\(.status)\t\(.name)"'

2. Webhook-based maintenance windows in CI/CD

Each Workspace mints a maintenance webhook token. The deploy script wraps real work between START and END calls — works equally well in GitHub Actions, Bitbucket Pipelines, or self-hosted Jenkins.

# Before deploy
curl -X POST https://miterl.com/api/v1/webhooks/maintenance/$MITERL_TOKEN/start \
  -H "Content-Type: application/json" \
  -d '{"duration_hours": 1, "name": "Deploy v1.2.3"}'

# Real deploy steps
./deploy.sh

# After deploy
curl -X POST https://miterl.com/api/v1/webhooks/maintenance/$MITERL_TOKEN/end

Monitoring is paused for the whole window. If the deploy runs long, the duration_hours cap auto-resumes monitoring — no risk of leaving a site silently unmonitored if the END call is forgotten.

3. Hand investigations to Miterl's engineers

Agency A added an SLA clause to the maintenance contract: first client contact within 1 hour during business hours, by the next business morning for overnight and weekend incidents. Miterl pushes alerts into a #oncall Slack channel; the on-call engineer makes the first contact and decides next steps, then opens an investigation request to Miterl (3/month on Pro, weekdays 10:00–19:00 JST, first response within 2 business hours).

Miterl's engineers come back with a root-cause and remediation report (PDF). Agency A re-brands it with their own logo and forwards it to the client. Late-night investigation work moves from your engineer's keyboard to a next-morning report — that change alone reduced engineer churn risk significantly.

4. On-call drills

You can't validate your alert routing or the on-call playbook without real incidents. Drill mode fires simulated incidents on a schedule — Agency A runs one drill per month. New hires reach independent on-call rotation within 3 months. Drills never appear on public status pages, so they're safe to run during business hours.

5. Automated monthly reports and incident write-ups

On the first of each month, every Workspace generates a monthly uptime report as a shareable URL / PDF, branded with Agency A's logo and colours. Format is consistent across clients. Engineering effort dropped from 3 hours/month to 15 minutes. Incident reports are auto-generated too — the "writing the post-mortem in Word" task is gone.

White-label: ship it as Agency A's own service

From the Standard plan you can erase Miterl's brand from everything client-facing:

  • Replace logo and brand colour with Agency A's
  • Hide the "Powered by Miterl" mark
  • Publish the status page on a custom domain like status.client.com (one CNAME on the client's DNS)

Clients see Agency A's maintenance service. Miterl's existence as a tool stays internal. Built for the resell model.

Cost model

Agency A picked the Pro plan (¥49,800 / month). Pro includes 100 monitors, 1-minute intervals, all notification channels (incl. LINE, SMS, Webhook), 3 investigation cases per month with NDA-backed server-internal access, and priority support.

90 sites on Pro = about ¥553 per site per month in raw cost.

Bundle "24/7 automated monitoring + next-business-day investigation report" into the maintenance contract at ¥4,000 / month per client:

  • 30 clients × ¥4,000 = ¥120,000 / month of new revenue
  • Less Pro subscription ¥49,800 = ¥70,200 / month of net margin

You're not selling "monitoring." You're selling "we detect issues before your clients do, investigate root cause, and report it back under our own brand." That's a different, much more durable line item.

A pitch you can copy

"Your current maintenance contract covers incident response, but in practice you usually notice the issue before we do. We'd like to flip that with a 24/7 automated monitoring + business-hours investigation add-on — ¥4,000 / month — that catches SSL expiry, missing keywords, slow pages, and (when something does break) hands you a root-cause report from our engineers, not just a 'site is down' alert. Incidents detected overnight are picked up first thing the next business morning."

Bring last year's incident count, average time-to-detection, and a rough estimate of revenue lost during downtime. Concrete numbers close deals.

Related reading

Run the same playbook on Miterl

Start free. No credit card required.

See pricing