> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# What clients can see in the portal

> The exact list of what a client portal contact can and cannot see in TimeTracker – no cost rates, no margin, no other clients, and no internal comments.

A client portal contact sees their own company's shared projects, the deliverables you marked client-visible, the comments on those deliverables, and their invoices. Nothing else.

They cannot see your cost rates, your margin, your hours, your team's other clients, or any internal note – ever.

## The short answer

<CardGroup cols={2}>
  <Card title="They CAN see" icon="eye">
    Their own projects, deliverable names and status, due dates, client-visible comments, and their invoices.
  </Card>

  <Card title="They CANNOT see" icon="eye-off">
    Cost rates, billing rates, margin, profit, tracked hours, estimates, budgets, assignees, tags, internal notes, and any other client.
  </Card>
</CardGroup>

## Why this is safe by design

A `client` role holds **zero** capabilities. It is not a reduced staff role – it is an empty one. There is no permission a portal contact could be granted that opens an internal screen.

On top of that, the portal builds each screen from a short, fixed list of allowed fields. It does not take an internal record and hide parts of it. Anything not on the allowed list never reaches the browser.

<Note>
  This matters for a practical reason. If a new financial field is added to a project next year, it is not on the allowed list, so it cannot leak into the portal by accident.
</Note>

## Exactly what a client sees

### On a project

| Field                       | Visible |
| --------------------------- | ------- |
| Project name                | Yes     |
| Project status              | Yes     |
| Client company details      | No      |
| Project dates               | No      |
| Project description         | No      |
| Budget                      | No      |
| Profitability, margin, cost | No      |
| Project members or owner    | No      |

Project status shows as one of: **Draft**, **Planned**, **Active**, **On hold**, **Waiting on client**, **Completed**, **Cancelled** or **Archived**.

### On a deliverable (a task)

| Field                          | Visible                                                    |
| ------------------------------ | ---------------------------------------------------------- |
| Task title                     | Yes                                                        |
| Task status                    | Yes – but only **To do**, **In progress** or **Completed** |
| Due date                       | Yes, if one is set                                         |
| Approval state                 | Yes                                                        |
| Comments marked client-visible | Yes                                                        |
| Tracked hours                  | No                                                         |
| Estimate (original or current) | No                                                         |
| Billable flag                  | No                                                         |
| Assignee or collaborators      | No                                                         |
| Tags                           | No                                                         |
| Task description or notes      | No                                                         |
| Section, phase or milestone    | No                                                         |
| Subtasks                       | No                                                         |
| Priority                       | No                                                         |
| Task number                    | No                                                         |
| Dependencies                   | No                                                         |
| Created or updated dates       | No                                                         |

<Note>
  Your internal sections are collapsed into three plain words before they reach the client. A client never sees your section names or your workflow. A task sitting in your "QA" section reads as **In progress** to them.
</Note>

### On a comment

| Field                 | Visible                                           |
| --------------------- | ------------------------------------------------- |
| Comment body          | Yes, if it is a client-visible comment            |
| Author name and photo | Yes, for staff who wrote a client-visible comment |
| Date                  | Yes                                               |
| Internal comments     | **No**                                            |
| Author email address  | No                                                |
| Mention data          | No                                                |

Only comments explicitly marked client-visible are returned. An internal note written on the same task is never sent to the portal.

If a comment author cannot be resolved, the portal shows the collective label **Project group** instead of a name. Staff who only ever wrote internal notes are never named.

### On an invoice

| Field                                               | Visible |
| --------------------------------------------------- | ------- |
| Invoice number                                      | Yes     |
| Status                                              | Yes     |
| Issue date and due date                             | Yes     |
| Currency                                            | Yes     |
| Line description, quantity, unit price, amount      | Yes     |
| Subtotal, discount, tax, total                      | Yes     |
| Your sender details ("bill from")                   | Yes     |
| Where a line came from – a time entry or an expense | **No**  |
| Which time entry produced a line                    | No      |
| Exchange rate applied                               | No      |
| Internal invoice notes                              | No      |
| Who created the invoice                             | No      |

<Warning>
  A line's origin is stripped. A client can see "Design – 12 hours – \$1,200" but cannot tell whether it came from tracked time, an expense, or a manual line.
</Warning>

## The fields that can never appear

These are blocked by name across the whole portal. They cannot appear on any screen, at any depth, in any list:

* Cost rate and billing rate
* Actual cost, forecast cost, forecast margin
* Margin and gross profit
* Utilisation
* Internal notes
* Original estimate hours and current estimate hours
* Scope flags
* Assignee and collaborator identity
* Billable flag
* Phase or section identity
* Mention data
* The source of an invoice line, its time entry, its expense, and its exchange rate
* The creator of a record

## Other clients and other projects

A portal contact can only reach:

* Projects shared with them, and
* Invoices belonging to a client that owns one of those projects.

Anything outside that set returns a plain access error. The error is deliberately vague – it does not tell the client whether the item exists at all.

They see the message `You don't have access to this` with the text `This item isn't shared with you. If you think that's a mistake, contact your project group.`

## Example

Ruth Castillo is the portal contact for Bluebird Coffee at Northwind Studio.

She opens the **Website Redesign** project and sees a deliverable called "Homepage wireframes", marked **In progress**, due 14 March.

She does not see that Sarah Lin is the assignee. She does not see that Sarah tracked 3 hours against it. She does not see the $300 of billable value, the $135 of cost, or the $165 of margin. She does not see the $40,000 project budget or how much of it is spent.

She also does not see Harbor Logistics – Mobile App, or Fenwick Legal – Brand Refresh, because those belong to other clients.

## What you control

You decide what a client sees in three places:

<Steps>
  <Step title="Which client owns the project">
    Portal access follows the project's client. See [portal projects](/portal/portal-projects).
  </Step>

  <Step title="Which projects each contact can open">
    Untick a project for one contact on the client's **Portal access** panel.
  </Step>

  <Step title="Which tasks and comments are client-visible">
    Only tasks marked client-visible appear as deliverables, and only client-visible comments are shown.
  </Step>
</Steps>

## Permissions

| Action                                    | Capability       | Roles                         |
| ----------------------------------------- | ---------------- | ----------------------------- |
| Share or unshare a project with a contact | `project.manage` | Owner, Admin, Project Manager |
| Invite or remove a portal contact         | `client.manage`  | Owner, Admin, Project Manager |

The `client` role itself holds no capabilities at all. See [roles and capabilities](/concepts/roles-and-capabilities).

## Common questions

<AccordionGroup>
  <Accordion title="Can a client see how many hours we spent?">
    No. There is no hours field anywhere in the portal, on any screen. Tracked time, timesheets and estimates are all absent.
  </Accordion>

  <Accordion title="Can a client see who worked on their task?">
    Not from the task. Assignee and collaborator identity is blocked. They only learn a name when a staff member posts a client-visible comment, which is a deliberate choice you make when you write it.
  </Accordion>

  <Accordion title="Can a client see our profit on their project?">
    No. Cost, margin, gross profit, forecast cost and utilisation are all blocked by name.
  </Accordion>

  <Accordion title="Can a client see a draft invoice?">
    Yes. Draft invoices are not filtered out of the portal invoice list. Keep an invoice out of the portal by not creating it until you are ready.
  </Accordion>

  <Accordion title="Can a client see an archived project?">
    Yes, if they are still shared on it. Archiving a project does not remove client access. Untick the project on the client's **Portal access** panel to take it away.
  </Accordion>

  <Accordion title="Can two clients see each other?">
    No. There is no client directory, no member list, and no way to reach another company's projects or invoices.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                            | Cause                                                                            | Fix                                                                                                 |
| -------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| A client says a project is missing                 | The project does not belong to their client, or the project is unticked for them | Check the project's client, then the **Portal access** panel on the client record                   |
| A client can still see finished work               | Archiving does not revoke portal access                                          | Untick the project for that contact                                                                 |
| A client sees a draft invoice                      | Drafts are visible in the portal                                                 | Create the invoice only when you are ready to show it                                               |
| A client sees a comment you meant to keep internal | The comment was posted as client-visible                                         | Delete it – the portal re-reads the thread, so a deleted comment drops out of any pending email too |

## Related guides

<CardGroup cols={2}>
  <Card title="Client portal overview" icon="door-open" href="/portal/overview">
    What the portal is and how it is gated.
  </Card>

  <Card title="Portal projects" icon="folder" href="/portal/portal-projects">
    How a project becomes visible to a client.
  </Card>

  <Card title="Portal invoices" icon="file-text" href="/portal/portal-invoices">
    What a client sees on an invoice.
  </Card>

  <Card title="Portal comments" icon="message-square" href="/portal/portal-comments">
    Client-visible comments versus internal notes.
  </Card>

  <Card title="Roles and capabilities" icon="shield" href="/concepts/roles-and-capabilities">
    Why the client role holds nothing.
  </Card>

  <Card title="Remove portal access" icon="user-minus" href="/portal/remove-portal-access">
    How to take access away.
  </Card>
</CardGroup>
