Skip to main content

Overview

The Client Management system in Reportr lets you organize all your client websites in one centralized dashboard. Each client can have Google Search Console and Google Analytics 4 connected to automatically pull SEO data for report generation.
Plan Limits Apply: Free users can add up to 3 clients, Starter plans get 5 clients, Professional plans get 25 clients, and Agency plans support unlimited clients.

Adding a New Client

You can add clients through the main Clients dashboard. The system validates your input and checks your plan limits before creating the client.
1

Navigate to Clients

From your dashboard, click on Clients in the sidebar navigation.
2

Click Add Client

Click the Add Client button in the top-right corner. If you’re at your plan limit, you’ll see an “Upgrade to Add More” button instead.
3

Enter Client Information

Fill out the client creation form:
  • Client Name (required) - Minimum 2 characters, max 50 characters
  • Website Domain (required) - Must be a valid URL (e.g., https://example.com)
  • Contact Name (optional) - Primary contact person
  • Contact Email (optional) - Must be a valid email if provided
4

Save the Client

Click Add Client to create the client record. You’ll see a success notification and the client will appear in your dashboard.

Example: Adding a Client via API

Client Creation
const response = await fetch('/api/clients', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    name: 'Acme Corporation',
    domain: 'https://acme.com',
    contactName: 'John Smith',
    contactEmail: '[email protected]'
  })
});

const client = await response.json();
console.log('Client created:', client.id);

Client Dashboard Overview

Each client card displays key information at a glance:

Connection Status

Visual indicators show whether Google Search Console and GA4 are connected and configured

Report History

See total reports generated and the date of the last report

Contact Info

Quick access to client contact name and email

Quick Actions

Generate reports, manage properties, or edit client details in one click

Google Integration States

Clients progress through three connection states:
The client has no Google account linked yet. Click Connect Google Accounts to start the OAuth flow.Status Badge: Gray “Not Connected”
Google OAuth is complete, but Search Console site and GA4 property need to be selected. Click Setup Properties to configure.Status Badge: Yellow “Setup Required”
Fully configured with both GSC site and GA4 property selected. Ready to generate reports.Status Badge: Green “Configured”You’ll see the selected property names displayed:
  • Google Search Console site (e.g., “https://acme.com/”)
  • GA4 property (e.g., “Acme Production Website”)

Connecting Google Accounts

Reportr uses OAuth 2.0 to securely connect to Google APIs without storing passwords.
1

Initiate OAuth

Click Connect Google Accounts on a client card. A popup window opens with Google’s authorization screen.
2

Select Google Account

Choose the Google account that has access to the client’s Search Console and Analytics properties.
3

Grant Permissions

Reportr requests read-only access to:
  • Google Search Console data
  • Google Analytics data
Reportr only requests read-only permissions. We never modify your Google data.
4

Configure Properties

After OAuth completes, you’ll see “Setup Required” status. Click Setup Properties to select which GSC site and GA4 property to use for this client.

OAuth Implementation Details

The OAuth flow is handled by the /api/auth/google/authorize endpoint:
OAuth Flow (Simplified)
// Step 1: Initiate OAuth
const authUrl = `/api/auth/google/authorize?clientId=${clientId}`;
window.open(authUrl, 'google-oauth', 'width=600,height=700');

// Step 2: After successful auth, tokens are stored
// Database fields updated:
// - googleAccessToken (encrypted)
// - googleRefreshToken (encrypted) 
// - googleTokenExpiry
// - googleConnectedAt

Managing Client Properties

After connecting Google, you need to select which specific properties to track.
Select the GSC property URL that matches your client’s domain:
  • Domain properties: sc-domain:example.com
  • URL-prefix properties: https://example.com/
The system fetches all verified sites from the connected Google account and displays them in a dropdown.

Property Selection API

Property Configuration
// Fetch available properties
GET /api/clients/{clientId}/properties

Response:
{
  "gscSites": [
    { "url": "https://acme.com/", "name": "Acme Main Site" },
    { "url": "sc-domain:acme.com", "name": "Acme Domain" }
  ],
  "ga4Properties": [
    { "id": "123456789", "name": "Acme Production" },
    { "id": "987654321", "name": "Acme Staging" }
  ]
}

// Save selections
PATCH /api/clients/{clientId}/properties
{
  "gscSiteUrl": "https://acme.com/",
  "ga4PropertyId": "123456789"
}

Editing Client Details

Click Manage on any client card to update client information.
  • Client name
  • Website domain
  • Contact name
  • Contact email
  • Reconnect Google account
  • Change selected GSC site
  • Change selected GA4 property
  • View connection status and last connected date
  • Disconnect Google integration
  • Delete client (permanent action)
Deleting a client also deletes all associated reports. This action cannot be undone.

Searching and Filtering Clients

Use the search bar at the top of the Clients page to quickly find clients:
Searchable fields:
- Client name
- Domain
- Contact name  
- Contact email
Search is case-insensitive and searches across all fields simultaneously.

Client Data Model

Each client in Reportr has the following structure:
id
string
required
Unique client identifier (cuid format)
name
string
required
Client display name
domain
string
required
Client website URL
contactName
string
Primary contact person name
contactEmail
string
Primary contact email address
googleConnectedAt
datetime
When Google OAuth was completed
gscSiteUrl
string
Selected Google Search Console property URL
gscSiteName
string
Display name for GSC property
ga4PropertyId
string
Selected GA4 property ID (numeric string)
ga4PropertyName
string
Display name for GA4 property
lastReportGenerated
datetime
Date of most recent report generation
totalReportsGenerated
integer
Lifetime count of reports created for this client

Access Control

Email verification is required before you can add clients. Free users must verify their email, while paid users get immediate access.

Verification Flow

Access Check (from source)
const hasActivePayPalSubscription = 
  user.paypalSubscriptionId && user.subscriptionStatus === 'active';
const isPaidTrialFlow = user.signupFlow === 'PAID_TRIAL';
const isFreeVerifiedUser = 
  user.signupFlow === 'FREE' && user.emailVerified;

const hasAccess = 
  hasActivePayPalSubscription || isPaidTrialFlow || isFreeVerifiedUser;

if (!hasAccess) {
  return res.status(403).json({
    error: 'Please verify your email before adding clients',
    requiresVerification: true
  });
}

Common Issues

Solution: You’ve reached your plan limit. Upgrade your plan to add more clients:
  • Free: 3 clients
  • Starter: 5 clients
  • Professional: 25 clients
  • Agency: Unlimited clients
Solution: Check your browser’s popup blocker settings and allow popups from Reportr. Then try connecting again.
Solution: Make sure the Google account you connected has access to Search Console and Analytics for the client’s domain. You may need to be added as a user in those platforms first.
Solution: Click Setup Properties and select both a Search Console site AND a GA4 property. Both are required to change status to “Configured”.

Best Practices

Use Clear Client Names

Use descriptive names that help you quickly identify clients (e.g., “Acme Corp - Production” instead of just “Client 1”)

Verify Domains Match

Ensure the domain you enter matches exactly what’s configured in Search Console and Analytics

Add Contact Info

Include contact details to keep client communication organized within Reportr

Test After Setup

Generate a test report immediately after configuring properties to verify data is flowing correctly

Google Integrations

Deep dive into Search Console and Analytics connections

Report Generation

Learn how to generate reports for your clients

Plan Limits

View client limits for each plan tier

Build docs developers (and LLMs) love