---
title: "Client Portal"
id: "38204"
type: "page"
slug: "client-portal"
published_at: "2026-11-11T15:01:20+00:00"
modified_at: "2026-11-11T15:01:20+00:00"
url: "https://wppool.dev/flextable/use-cases/client-portal/"
markdown_url: "https://wppool.dev/flextable/use-cases/client-portal.md"
---

For agencies, freelancers and B2B teams

# Give every client a private status page, powered by the Sheet you already update.

Agencies, freelancers, print shops and B2B suppliers track projects and orders in Google Sheets. FlexTable shows each logged-in client only their own rows, like project stages, deliverables, invoices and delivery dates, so you stop answering "any update?" emails.

[Try FlexTable Free](https://wordpress.org/plugins/sheets-to-wp-table-live-sync/)
[See a live demo](https://demo.wppool.dev)

Free on WordPress.orgNo coding30-day money-back guarantee

Synced from **Client tracker 2026** · Google Sheets

Signed in as **jordan@northwind.co**Only your rows

**Your projects**Search…

| Project | Stage | Next milestone | Invoice |
| --- | --- | --- | --- |
| Website redesign | In review | Nov 20 | Paid |
| SEO retainer | In progress | Monthly report, Dec 1 | Due Nov 30 |
| Brand refresh | Scheduled | Kickoff, Jan 8 | Not issued |

Showing 3 of 3 entries*1**2**3*

Rows for 37 other clients are hidden

 Sound familiar?

## Your tracker is up to date. Your clients just can't see it.

> Half my inbox is clients asking for a status update I already wrote in a spreadsheet.

The agency owner

> I can't share the tracker sheet because every client is in it.

The project manager

> Proper client portal software costs more than the problem it solves.

The freelancer

How it works

## A client portal in three steps

No new project management tool. Keep updating your Sheet; FlexTable shows each client their slice of it.

1### Track work in one Google Sheet

One row per project, order or deliverable, with a column for the client's email or username.

2### Turn on User-Specific Display

Match rows to the logged-in WordPress user by email, username or name.

3### Give clients a login

Each client signs in and sees only their own rows. Everyone else gets a login prompt.

User-Specific DisplayPro

## One Sheet, a private view for every client

FlexTable compares the logged-in user with a column in your Sheet and shows only the matching rows. The search box is removed, so clients can't browse anyone else's records.

- Match by username, email address or name
- Clients with several projects see all of their rows
- Values must match exactly, so emails work best
- Update the Sheet and every client's view changes

Signed in as **orders@brightprint.com**Only your rows

**Your print orders**Search…

| Order | Item | Qty | Status |
| --- | --- | --- | --- |
| #4471 | Business cards | 1,000 | Shipped |
| #4502 | Trade-show banner | 2 | Printing |
| #4519 | Flyers A5 | 5,000 | Awaiting proof |

Showing 3 of 3 entries*1**2**3*

Orders from other customers are hidden

Search Only DisplayPro

## Order tracking without logins

Not every customer needs an account. Publish a lookup page where customers enter an order or ticket number and see just that order's status, carrier and delivery date.

- Search one column, like Order No.
- Nothing shows until a valid number is entered
- Status updates appear as soon as the Sheet changes

**Track your order**Enter the order number from your confirmation email

Order number10482Search

1 record found

Item**Custom oak desk**

Status**Out for delivery**

Carrier**DHL Express**

Expected**Nov 9, 2026**

The full list stays hidden. Visitors only see the row that matches their search.

Login promptPro

## Visitors who aren't signed in see a login prompt

Choose what non-logged-in visitors see: a custom login message with your own button text and URL, or no table at all. Your client data stays behind the login.

- Custom message, button label and login URL
- Or hide the table completely
- Protected View for internal team tables

**Client portal**

|  |  |  |  |
| --- | --- | --- | --- |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

**Please sign in to see your projects**Your project status, files and invoices are private to your account.Sign in

Features that matter here

## Everything a lightweight client portal needs

### Live from your tracker

Update a row in the Sheet and the client's view updates. No double entry.

### Match by email or username Pro

Use whatever identifier your Sheet already has. Emails are the most reliable.

### Private by default Pro

Login prompt or hidden table for anyone who isn't signed in.

### Projects and invoices in tabs Pro

Show several Sheet tabs, like Projects and Invoices, in one tabbed table.

### Exportable Pro

Let clients download their own list as CSV, Excel or PDF.

### Works on phones

Clients can check status from anywhere.

Also used for

Client portalsProject status pagesOrder trackingInvoice listsDelivery schedulesSupport ticket statusWarranty lookupMembership records

FlexTable Pro: MCP server

## Or just ask your AI assistant to build it.

Connect Claude, ChatGPT (Codex), Cursor or VS Code to FlexTable through its MCP server. Describe the table you need, and your assistant syncs the Google Sheet, styles the table, manages its columns and publishes the page for you.

Works withClaude DesktopClaude CodeChatGPT (Codex)CursorVS Code

[See how to connect MCP](https://wppool.dev/docs/how-to-connect-ai-assistants-to-flextable-with-mcp-claude-chatgpt-cursor-more/)

AI assistant · FlexTable MCP connected**• Connected**

Create a client status table from the "Client tracker 2026" Sheet, show each logged-in client only their own rows by email, and publish it on the Client Portal page.

**Synced Google Sheet** “Client tracker 2026”, 112 rows

**Enabled** User-Specific Display, match by email

**Applied theme** Brand

**Published page** /client-portal/

Done. Clients can sign in at /client-portal/ and see only their own projects.

Illustrative example of a FlexTable MCP session.

FAQ

## Frequently asked questions

Can clients see each other's data?

No. With User-Specific Display, each logged-in client only sees rows that match their account, and the search box is removed so they can't browse other records. Keep the Google Sheet itself private too.

Do clients need an account?

For a private portal, yes, because FlexTable needs to know who is logged in. For simple order tracking, use Search Only Display instead, which needs no login.

What if a client has several projects or orders?

All rows that match the client are shown.

How should I match clients to rows?

Use email addresses where you can. Values must match exactly, so keep formatting consistent and avoid extra spaces.

Is this a full client portal?

It's a fast way to share status tables privately. If you also need file sharing, messaging or billing, pair FlexTable with those tools.

Is FlexTable free?

Yes. The free plugin on WordPress.org includes live Google Sheets sync, unlimited tables and rows, search, sorting, pagination, responsive layouts, the Gutenberg block and shortcodes. Pro starts at $59 a year or $119 one-time and adds features like filters, conditional views, images and links, exports, AI summaries and the MCP server.

Do I need to know how to code?

No. You paste a Google Sheet URL, choose your settings and embed the table with the Gutenberg block, the Elementor widget or a shortcode.

## More ways teams use FlexTable

[HR and employee directoriesStaff directories, performance boards and private records](https://wppool.dev/flextable/use-cases/employee-directory/)
[Student results and certificatesResult lookups, grade dashboards and certificate checks](https://wppool.dev/flextable/use-cases/student-results/)
[Pricing tables and price listsPlans, rate cards and service menus that never go stale](https://wppool.dev/flextable/use-cases/pricing-tables/)
[WooCommerce product tablesSearchable product lists with images, stock and Buy buttons](https://wppool.dev/flextable/use-cases/woocommerce-product-table/)

## Answer "any update?" before they ask.

Turn your project or order tracker into a private client portal. Free to start.

[Try FlexTable Free](https://wordpress.org/plugins/sheets-to-wp-table-live-sync/)
[View pricing](https://wppool.dev/flextable-pricing/)
