---
title: "System Users vs Website Users"
space: "Frappe Framework"
url: "https://www.prilk.com/docs/frappe-framework/system-website-users"
updated: "2026-05-14"
---

## System Users vs Website Users

Frappe has two fundamentally different user types. Knowing the distinction matters for both access control and billing on managed plans.

### The two types

| Type | What | Login destination | Counted on managed plans? |
|---|---|---|---|
| **System User** | Internal staff who use the desk | Desk (`/app`) | Yes — counts against your seat licence |
| **Website User** | Customers, suppliers, candidates using the portal | Portal pages (`/me`, `/orders`, etc.) | No — unlimited on most plans |

User Type is set on the **User** record at creation. Switching afterwards requires manual cleanup of permissions and references.

### When to use Website User
- Customers logging into the portal to view their invoices, orders, statements
- Suppliers viewing purchase orders or submitting bids
- Job candidates filling out applications
- Anyone who shouldn't see the internal desk

### When to use System User
- Employees of your organisation
- Consultants you've onboarded
- Anyone who needs to create / edit DocTypes via the desk

### Permissions still apply on top
"Website User" is *not* a weaker rank — it's a user **type**. You still assign Roles to control what data they can access. A Website User with the right role can use API endpoints; a System User with no roles can do nothing.

### Portal access for Website Users
A Website User needs three things to use the portal:
1. The **Website User** type (set at creation)
2. Roles that grant access to the portal DocTypes they need (`Customer`, `Supplier`, `Employee`, …)
3. An entry in the linked party's `portal_users` child table — so a customer-user sees only that customer's data

Missing any of the three = login works but no data appears.

### Switching a user from Website to System
Possible via desk: **User → User Type → System User**. Caution — the user now consumes a seat. The reverse (System → Website) requires removing System User-only roles first.

### Auditing
**System Settings → User Type** lists the current split. Useful before billing renews or before purging stale users.
