# Customer Portal

The customer portal is the branded site where *your* customers sign in to open, track, and reply to their own support tickets. This article covers enabling it (admin) and how customers use it.

## What Customers Can Do

Signed-in customers can:

- **Open a ticket** with a subject, description, type, priority, and (for organizations) a visibility choice
- **Track their tickets** — status, expected response time, and full conversation history
- **Reply** to keep the conversation going, and see AI answers clearly labeled as AI
- **Mark a ticket resolved** themselves, or **reopen** a solved one
- **Rate the experience** (CSAT) once resolved
- **"Talk to a human"** at any time on an AI-handled ticket — an always-available escape hatch
- **Browse the help center** to self-serve before opening a ticket
- Manage their **profile and notification preferences**, and choose per ticket whether replies are emailed or shown **only here in the portal** (on the new-ticket form and the ticket page)

## Enabling the Portal (Admin)

1. In **Helpdesk Settings → Customer portal**, turn the portal **on**.
2. Set the **portal name**, **subdomain label** (e.g. `acme`), **logo**, and **primary color** — these brand the site for your customers.
3. Point DNS for `<subdomain>.<your portal base domain>` at the portal, so customers reach it at your branded address. (The exact base domain is part of your platform configuration; ask your admin if unsure.)
4. Optionally enable **auto-invite on email ticket** so a first-time email requester gets a portal account invitation automatically.

The portal is a separate site from the staff workspace, with its own sign-in. Customers never see your internal tools.

## Your Privacy Link

You decide what happens to what your customers give you, so the portal shows **your** privacy link, not Karmaflow.ai's. Under **Helpdesk Settings → Customer portal → Privacy**, set:

- **Privacy policy link**: your own policy, for example on your website.
- **Terms link** (optional).
- **Privacy contact email**: where a customer writes to see, correct or delete what you hold about them.

They show under every portal screen, the sign-in screen included, as **Privacy**, **Terms** and **Questions about your data**. [Booking pages](/help/crm/booking-pages) use the same link, and cannot be published without one.

**No policy of your own?** Leave the link empty and press **Draft a notice**, or **Write my own**. The draft is written from what Karmaflow.ai knows about your workspace: your business name, your privacy contact, the kinds of services a conversation reaches (Karmaflow.ai, AI and speech services, email, text and calendar providers), and how long conversations are kept. It names a removal period only when your transcript retention removes conversations automatically on every channel and for every agent, with call recordings; otherwise it says records are kept while needed. Read it, change anything that is yours to say, tick **Publish this notice at /privacy on the portal**, and save. A draft is never shown to customers until you publish it. When you later add a policy link, the link takes over and the notice stops being shown.

Changing these needs the permission to manage helpdesk settings.

## Portal Identity

Every portal user is tied to a CRM **Contact**, so their support history and the rest of your customer intelligence stay connected. Customers sign in with a password or a **magic link** emailed to them — no password required if you prefer link-only access.

## Inviting Customers

- **Auto-invite** — turn on auto-invite so emailing support creates a portal account invitation.
- **Org admin invites** — a customer who is an **organization admin** can invite their own colleagues from the portal.
- Invitations are one-time links valid for seven days; magic-link sign-ins expire in 30 minutes.

## Organization-Aware Visibility

This is the portal's most important B2B feature. When customers belong to a **company** (organization), you control who at that company can see which tickets.

![Organization-aware visibility within a single company: private to the requester, shared with selected colleagues, visible to organization admins, or visible to the whole organization — while another company can never see these tickets.](/help/assets/helpdesk/org-visibility.svg)

### Per-ticket visibility

When opening a ticket, an organization customer chooses who can see it:

- **Private to me** — only the requester (and your support team)
- **Selected colleagues** — the requester plus specific people they name
- **Organization admins** — the requester plus their company's admins
- **Entire organization** — anyone at their company

There is also an **Internal** visibility that your staff can set — those tickets never appear in the portal at all.

### Portal roles

Inside each customer organization, portal users have roles that shape what they see and do:

| Role | What it means |
|---|---|
| **Member** | Create and view their own tickets (plus anything shared with them) |
| **Power user** | Same reads as a member; used to distinguish trusted contacts |
| **Organization admin** | Sees org-visible tickets; manages the org's portal users |
| **Billing admin** | Sees org-admin-visible **billing** tickets |
| **Security admin** | Sees org-admin-visible **bug / incident** tickets |
| **Read-only viewer** | Can view tickets but not create or reply |

## Organization Admin Management

A customer with the **Organization admin** role gets an **Organization** area in the portal where they can invite colleagues, set roles, and disable accounts — all scoped strictly to their own company. (An organization always keeps at least one admin.)

## Security Note

Every portal read and write is checked against the visibility rules above, and always scoped to the user's own company — one customer can never see another company's tickets. Tickets a user isn't allowed to see return "not found," never a hint that they exist.
