Client Portal

A complete workspacefor every client relationship

CRM and leads, campaign measurement, jobs, briefs, approvals, meetings, shared content, social reporting, and billing — all behind a secure, client-scoped login.

Separate, secure auth

Clients authenticate through their own cookie-based session system, completely isolated from your internal staff login. No JWTs, no shared tokens.

Every API query is automatically scoped to the authenticated client's data. There is no parameter to override, no way to see another client's projects.

Staff access portal management through the agency dashboard using JWT auth. Clients use cookie auth at /portal. Two systems, zero overlap.

Passwordless login

Clients request a short-lived, single-use email link at /portal/login. Client and staff authentication remain completely separate.

Cookie sessions

A verified link creates an HttpOnly cookie session. Raw link credentials are never stored in localStorage or the database.

Permission gating

Every page and API endpoint checks permissions like canViewInvoices, canApproveWork, and canSubmitRequests before rendering.

Auto-scoped queries

All database queries filter by the authenticated client ID. No clientId parameter needed — it is implicit.

A complete client workspace

From relationship management and campaign outcomes to delivery, review, and billing — each view is scoped to the client and their permissions.

Dashboard

The client's home base — active projects, pending approvals, recent notifications, and their assigned team members.

Active
5
Pending
3
Approved
12
Projects
Projects List
Project Detail
Approvals
Approvals List
Approval Detail
Approval Respond
Requests
Requests List
Request Detail
Invoices
Invoice List & Detail
CRM & leads

Client-scoped contacts, companies, opportunities, lead follow-up, response status, and won outcomes.

Campaigns & measurement

Permission-gated campaign trends, spend, leads, outcomes, and separate browser, server, and CRM evidence.

Meetings & video reviews

Upcoming sessions, shared recordings, review-ready video, and feedback kept with the client relationship.

Briefs & social

Structured brief intake plus approved social inbox, listening, reporting, and news workflows.

Gallery
Notifications
Settings
Accept Invite

Approval workflows

Upload deliverables for client review — creative assets, copy decks, campaign strategies. Clients can approve, request revisions, or leave comments directly in the portal.

Every action is tracked with timestamps and user attribution. No more email chains, no lost feedback, no ambiguous sign-offs.

Campaign Creative v2
Approved
Approve
Request Changes

Upload deliverables

Attach files, creative assets, or documents to an approval step for client review.

Approve or revise

Clients can approve the work, request revisions with specific feedback, or leave inline comments.

Full audit trail

Every approval, revision, and comment is timestamped and attributed. Complete accountability.

Status tracking

See which approvals are pending, in review, approved, or need changes — at a glance.

Job requests & support

Clients can submit job requests for new work or support tickets for issues — directly from the portal. No more email threads or lost Slack messages.

Each request has a built-in message thread where clients and staff can exchange updates. Internal notes stay hidden from clients, visible only to your team.

Staff manage all requests from the agency dashboard — assign team members, link to projects, set priorities, and track resolution times.

New Request
Job Request
Support
Category
Title
Description
Priority
Low
Normal
High
Urgent
Submit Request

Two request types

Job requests for new work (projects, revisions, strategy) and support tickets for issues (billing, access, bugs).

Category-based routing

Each type has its own categories — design, development, content for jobs; billing, access, feedback for support.

Conversation threads

Built-in message thread per request. Clients and staff exchange updates without leaving the portal.

Internal notes

Staff can leave internal notes that are invisible to the client — perfect for handoff context and team coordination.

Your team, visible

Dashboard team widget

Clients see their assigned project managers on the dashboard with email and phone contact buttons.

Project team members

The project detail page shows all team members assigned to tasks — controlled by the show_team_members setting.

Invoice detail view

Line item breakdown

Click any invoice to see the full line-by-line breakdown — descriptions, quantities, prices, and amounts.

Aging badges

Overdue invoices show exact days overdue with color-coded badges — 30d, 60d, and 90+ day aging buckets.

Slideover detail view

Full invoice detail opens in a slideover — subtotals, tax, discounts, payments, and outstanding balance at a glance.

Fine-grained permissions

Control exactly what each client can see and do. Permissions are checked on every API call and enforced at the UI level — nav items are hidden when access is denied.

canViewInvoices

Controls whether the client can see their billing history and download invoices.

canApproveWork

Determines if the client can submit approval responses — approve, revise, or comment.

canAddComments

Allows the client to leave comments on projects and deliverables.

canSubmitRequests

Controls whether the client can submit job requests and support tickets.

CRM
Contacts, companies, leads, and opportunities
Live
Campaign and measurement context
Scoped
Per-user modules and permissions
Audited
Agency access and approval history

Give your clients apremium experience

A branded portal that makes your agency look polished — and keeps clients in the loop without the email back-and-forth.

Get Started