← Blog
Agencies 8 min read

Uptime Monitoring for Agencies: How to Monitor All Your Clients

Managing 10 or 50 client sites with per-site monitoring, per-client status pages, and proactive alerts is exactly what PingBase Business was built for. Here's how agencies set it up.

The agency monitoring problem is different from the single-product monitoring problem. You're not watching one service — you're watching a portfolio. Each client has their own domain, their own stack, their own stakeholders who expect to be kept informed. And when something breaks, you want to know before the client calls you.

PingBase Business at $29/month gives agencies unlimited monitors, multiple status pages, team invites, and a REST API for programmatic setup. Here's how to structure it.


Step 1: Organize with monitor groups

With dozens of client sites, a flat list of monitors becomes unmanageable fast. Monitor groups let you organize by client, by service tier, or by team — whatever makes sense for your workflow.

The most common agency structure is one group per client:

Monitor groups

📁 Acme Corp

→ Homepage

→ Admin panel

→ SSL cert

📁 Globex Industries

→ Marketing site

→ E-commerce store

→ Checkout

→ SSL cert

📁 Initech

→ Website

→ Contact form endpoint

Each group shows an aggregate status — green if all monitors in the group are up, amber or red if any are degraded or down. Scanning your dashboard gives you a quick health check across your entire client portfolio.


Step 2: Create per-client status pages

Each client gets their own status page. When their site goes down, their customers have somewhere to check — and your team has a place to post incident updates without calling the client to ask what to say.

PingBase supports multiple status pages per account on Business. For each client:

  1. Create a new status page and name it after the client
  2. Add the monitors from that client's group to their status page
  3. Configure a custom domain: status.clientdomain.com via CNAME
  4. Invite the client's project manager or IT contact as a team member with read-only access

The client can now see their own status page, check their monitors, and see incident history — without having access to your other clients' data or your account settings.


Step 3: Set up alert routing

Agencies typically want two kinds of alerts:

The webhook alert channel is the most powerful for agencies. Configure it to POST to your project management or support system, and incidents auto-create tickets. Your team sees the ticket before the client notices the site is down — that's the proactive service clients pay retainers for.

# Example webhook payload PingBase sends

{
  "event": "monitor.down",
  "monitor": {
    "id": "mon_abc123",
    "name": "Acme Corp — Homepage",
    "url": "https://acme.com",
    "group": "Acme Corp"
  },
  "timestamp": "2026-04-06T14:32:00Z",
  "response_time": null,
  "status_code": null
}

Step 4: Bulk setup via API for new client onboarding

Creating 5–10 monitors per client manually for each new onboarding doesn't scale. PingBase's REST API lets you automate this. A simple script run at client onboarding creates all monitors, adds them to a group, creates their status page, and configures alert channels.

# Onboarding script skeleton (Node.js)

const client = {
  name: 'Acme Corp',
  urls: [
    { name: 'Homepage', url: 'https://acme.com', contentCheck: 'Acme' },
    { name: 'Admin', url: 'https://acme.com/admin', expectedStatus: 302 },
    { name: 'Checkout', url: 'https://acme.com/checkout', slowThreshold: 2000 },
  ]
};

// 1. Create monitor group
const group = await pb.groups.create({ name: client.name });

// 2. Create monitors
for (const m of client.urls) {
  await pb.monitors.create({ ...m, groupId: group.id });
}

// 3. Create status page
const page = await pb.statusPages.create({
  name: client.name,
  slug: slugify(client.name),
  monitorIds: group.monitorIds,
});

console.log(`Status page: https://pingba.se/status/${page.slug}`);

See the PingBase API docs for full endpoint reference. The CLI also supports bulk operations if you prefer shell scripts to Node.js.


Step 5: Team invites and access control

PingBase Business supports team member invites. For agencies this has two uses:

Internal team access. Invite all your account managers, developers, and support staff. Everyone who might need to post an incident update or check a monitor during an incident has access without sharing credentials.

Client stakeholder access. Invite key client contacts as read-only members. They can see their monitors, their status page, and incident history — without seeing any other client's data and without being able to change settings. This is the "self-service client reporting" that saves hours of monthly reporting calls.


What to monitor for each client

A baseline setup per client site:

Monitor Type Notes
HomepageHTTP GETContent check for brand name
SSL certificateSSLAlert 30d + 7d before expiry
DNS (apex)DNS AAlert if IP changes unexpectedly
Contact/checkoutHTTP GETCritical pages specific to client

For e-commerce clients: add checkout and cart pages. For SaaS clients: add the app login page and API health. For simple marketing sites: homepage, SSL, and DNS is usually sufficient.


The value proposition to clients

Agencies that include uptime monitoring as part of a retainer or maintenance package have a concrete, measurable service to point to:

PingBase Business at $29/month covers unlimited client sites. For most agencies, that's less than the cost of one hour of developer time per month, for a service clients genuinely value.

Monitor all your clients with PingBase Business

Unlimited monitors, multiple status pages, team invites, API access. $29/month flat — no per-site fees.

Start free →

Related