Built from a prompt, not a template

Create Your Own Client Portal

Create your own client portal by describing it in plain language — the tables, the client logins and the per-client views get generated for you, and you adjust them live. It is built around the way you already work with clients instead of the structure a vendor picked, and when your process changes you change the portal the same day.

Build a client portal
Generating
Build a client portal where each client sees only their projects, invoices, and shared files.
Created 4 tables, 1 client role, 3 views. Client sign-in is on.
Preview · Client view · Northline RetailLive
Store rollout — Phase 2
Project · 68%
In progress
Q3 operations review
Deliverable · Due Sep 12
Awaiting you
INV-2041
Invoice · $8,400
Unpaid
site-survey-notes.pdf
File · 2.1 MB
Shared
01

From prompt to portal: what you describe, what gets built

You do not start from a blank builder or a fixed template. You write one or two sentences about the portal you want, and the first working version comes back with real tables, real logins and a real client view you can click through. If you would rather not write it from scratch, copy our ready-made client portal prompt and paste it straight in.

01

You describe it

"Each client sees only their projects, invoices and shared files." That sentence is the spec.

02

The AI generates it

Tables, fields, relationships, client logins and the views each role can open.

03

You adjust it live

Rename a field, hide a column, change who can see what — and watch the portal update.

04

A human sits with you

If it is not right, someone from our team gets on a call and shapes it with you.

02

What gets generated: tables, fields and client logins

The portal sits on a shared database, not on a pile of spreadsheets. You can see every table and column it created, rename anything that does not match your language, and add the fields your process actually needs. One source of truth your team and your clients read from.

Generated schema
4 tables · 17 fields
clients
  • id · uuid
  • company_name · text
  • primary_contact · email
  • portal_access · role
projects
  • client_id · relation
  • name · text
  • stage · select
  • progress · percent
deliverables
  • project_id · relation
  • title · text
  • due_date · date
  • approval · status
invoices
  • client_id · relation
  • number · text
  • amount · currency
  • paid_at · date
Client role: read own recordsStaff role: read + writeAdmin: full access
Client portal · Northline Retail
Signed in as client
2
Active projects
3
Awaiting approval
$8,400
Open balance
DeliverableDueApproval
Q3 operations reviewSep 12Awaiting you
Staffing model v4Sep 19Awaiting you
Vendor audit summaryAug 30Approved
Phase 1 close-outAug 08Approved
Scoped to client_id = northline
3 other clients hidden
03

A worked example: a consultancy client portal

A consultancy asks for clients, projects, deliverables and invoices, with each client scoped to their own records. What comes back is a portal where the client signs in and sees their two active projects, the deliverables waiting on their approval, their open invoice and the files shared with them — and nothing belonging to anyone else.

Copy the prompt for that exact portal

This is the consultancy example above, written out as the prompt that builds it: the four tables, the client logins, the rule that scopes every client to their own records, and the views your team and your clients open. Paste it into AgentUI as it is, or edit it first — it is plain text, not code. More variants live on the client portal prompt page.

Prompt
Ready to paste
Build a client portal for my consultancy.

Create a shared database with four tables. Clients: company name, primary contact, contact email, engagement start date. Projects: linked to a client, project name, stage of Scoping / In progress / In review / Delivered, lead consultant, start date, target delivery date, percent complete. Deliverables: linked to a project, title, due date, file attachment, approval status of Draft / Awaiting client / Approved / Changes requested, approved by. Invoices: linked to a client, invoice number, amount, due date, paid status.

Give every client their own login. A signed-in client must see only the projects, deliverables, invoices and files whose client record is theirs — never another client's records, and never our internal fields such as lead consultant notes, effort hours or margin. On my side create two roles: consultant, who can read and edit everything, and partner, who can also invite clients and change permissions.

Build a client dashboard showing their active projects with stage and percent complete, the deliverables awaiting their approval and their outstanding balance; a deliverables view where the client opens the file and approves it or requests changes with a comment; and an internal view of every client, every project stage and every overdue invoice. Keep an audit log of who changed what and when, and email the client when a deliverable is waiting on them.
Paste into AgentUI chat

The first three things you will change

01
Your record names

Swap "clients", "projects" and "deliverables" for the words your team already uses — accounts, engagements, matters, cases, campaigns.

02
Your stages

Replace Scoping / In progress / In review / Delivered with the stages on your own board, in the order you actually run them.

03
Your permission rule

Name the fields a client must never see — margin, effort hours, internal notes — and say which internal role can invite clients.

04

Change it yourself, the same day

Adding a field or tightening a permission is a sentence, not a ticket. Ask for a "Signed off by" column on deliverables and it appears. Decide clients should no longer see internal notes and the field is hidden from their role. No release cycle, no developer, no waiting for the next sprint.

Edit in place
Applied · 0 tickets
you › Add a "Signed off by" field to deliverables, and hide internal notes from clients.
deliverables.signed_off_by
field added
deliverables.internal_notes
hidden from Client role
Audit log
  • maria.s added field signed_off_bytoday 14:22
  • maria.s set internal_notes → staff onlytoday 14:22
  • dev.ops invited client northlineAug 14 09:05
05

When your process or your org changes, the portal changes with it

Most portals break the first time you add a stage, split a team or onboard a client who works differently. Here the structure is yours to edit, and every edit is recorded.

Audit logs

Who changed what, when. Every field, permission and record edit is written down.

Role-based access

Clients, staff and admins see different things. Access is set per role, not per file link.

SQL integrations

Pull from the systems you already run so nobody copy-pastes numbers into the portal.

06

Who maintains the portal after you build it

You do — and that is the point. Because changes are made by describing them, the portal never becomes the one thing only a single person on the team understands. Onboarding is white-glove: a real person builds the first version with you, shows your team how to change it, and stays reachable when you need the next thing. Start on the Free plan at $0/mo, or bring the team in from $99.99/mo.

Questions before you build

Do I need any technical skills to create my own client portal?

No. You describe the portal in plain language and adjust it the same way. If a change is hard to phrase, someone from the team gets on a call and does it with you.

Can clients only see their own data?

Yes. Access is role-based and scoped per client record, so each client signs in and sees only the projects, invoices and files linked to them.

What if the first version is not what I pictured?

You keep editing it. Nothing is locked, and every change is captured in the audit log so you can see exactly what moved and roll your thinking back.

Can it connect to the systems we already use?

Yes. SQL integrations let the portal read from your existing databases so your team is not copy-pasting between tools to keep clients informed.

Built from a prompt, not a template

Describe the portal you want. See it running.