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

# Client Portal

> Share project progress, deliverables, and invoices with your clients — no login required

# Client Portal

The Client Portal gives your clients a branded, real-time view of their projects — without needing a dronelist.io account. Share a secure link, and your client can track progress, review deliverables, approve work, exchange messages, and view invoices.

## How It Works

Each portal link is tied to a client's email address and your organization. When a client opens the link, they see a sidebar-driven interface branded with your organization's logo and name. No signup, no password — just a direct link to their project information.

### Access flow

<Steps>
  <Step title="Create a portal link">
    From any project detail page, open the **Client Portal** section and click **Create Link**. Enter the client's email, optional name, and security settings.
  </Step>

  <Step title="Share the link">
    Copy the generated URL and send it to your client via email or any channel you prefer. If email notifications are enabled, the client receives automatic updates when you send messages.
  </Step>

  <Step title="Client opens the portal">
    Your client clicks the link and sees their personalized portal dashboard — branded with your organization's identity. If an access code is set, they enter it first.
  </Step>

  <Step title="Ongoing updates">
    As you update project status, upload deliverables, or send messages, the client sees the changes in real time.
  </Step>
</Steps>

***

## Security

Portal links use cryptographic tokens in the URL — long, random strings that are effectively unguessable. You can add two additional layers of security:

### Access codes

Set a 6-digit access code when creating a portal link. The client must enter this code before viewing any portal content. The code is verified server-side and remembered via a secure cookie for 30 days.

### Link expiry

Set an expiration period (in days) when creating a link. After the expiry date, the link becomes inactive and the client can no longer access the portal. You can create a new link at any time.

### Revoking access

Revoke any portal link instantly from the project detail page. Once revoked, the link stops working immediately — even if it hasn't expired.

### Security summary

| Feature                 | Description                                                     |
| ----------------------- | --------------------------------------------------------------- |
| **Token-based URLs**    | Cryptographically random tokens — no account required           |
| **Access code**         | Optional 6-digit PIN for additional verification                |
| **Link expiry**         | Optional expiration date after which the link becomes inactive  |
| **Revocation**          | Instantly deactivate any link from the project detail page      |
| **Access tracking**     | See when a client last accessed the portal and how many times   |
| **Email notifications** | Per-link toggle to control whether clients receive email alerts |

***

## Portal Navigation

When a client opens their portal link, they see a sidebar with four sections:

| Section       | What the client sees                                                                |
| ------------- | ----------------------------------------------------------------------------------- |
| **Dashboard** | Welcome message, key stats, and recent activity                                     |
| **Proposals** | All [Proposals](/docs/features/proposals) sent to their email — view details and respond |
| **Projects**  | All [Projects](/docs/features/projects) shared with them — with full detail views        |
| **Invoices**  | All [Invoices](/docs/features/invoicing) associated with their projects or email         |

Section badges show counts so clients can see at a glance how many proposals, projects, and invoices they have. Sections with no data are hidden automatically.

***

## Project Progress Phases

Inside each project, clients see a visual progress stepper that maps your internal project status to five client-friendly phases:

<Steps>
  <Step title="Planning">
    The project has been confirmed and scope is being defined.
  </Step>

  <Step title="Pre-flight">
    The project is scheduled — dates are set, preparations are underway.
  </Step>

  <Step title="In Progress">
    Field work is happening — flights are being flown, data is being captured.
  </Step>

  <Step title="Review">
    Deliverables have been uploaded and are ready for the client to review and approve.
  </Step>

  <Step title="Invoiced">
    The project is invoiced or complete — all deliverables are delivered.
  </Step>
</Steps>

This stepper appears in the project detail sidebar, giving clients a clear sense of where things stand without exposing your internal status labels.

***

## Deliverables & Files

Clients can only see deliverables and files that you've explicitly marked as **client-visible**. This is controlled per-deliverable and per-file from the project detail page on your side.

### What clients can do

| Action                   | Description                                                            |
| ------------------------ | ---------------------------------------------------------------------- |
| **View deliverables**    | See deliverable title, type, format, status, and version               |
| **Download files**       | Download any client-visible files attached to a deliverable            |
| **Approve deliverables** | Mark a deliverable as accepted                                         |
| **Request revisions**    | Reject a deliverable with a reason — the reason is posted as a message |

### Client approval statuses

| Status                 | Meaning                                                   |
| ---------------------- | --------------------------------------------------------- |
| **Pending**            | Deliverable is awaiting client review                     |
| **Approved**           | Client has accepted the deliverable                       |
| **Revision Requested** | Client has requested changes — check messages for details |
| **Rejected**           | Client has rejected the deliverable                       |

Deliverables are grouped by mission when the project has missions defined. Clients see mission titles, types, scheduled dates, and completion status alongside the deliverables for each mission.

***

## Messaging

The portal includes a built-in messaging thread for each project. Both pilots and clients can send messages, creating a simple conversation history.

* **Pilot messages** are sent from the project detail page under the Client Portal section
* **Client messages** are sent from the portal's Messages tab within a project
* Messages show the sender name, sender type (pilot or client), and timestamp
* If email notifications are enabled on the portal link, clients receive an email when you send a new message

Messages are stored permanently and visible to both sides in chronological order.

***

## Organization Branding

The portal automatically displays your organization's branding in the sidebar header:

| Element               | Source                               |
| --------------------- | ------------------------------------ |
| **Logo**              | From your organization settings      |
| **Organization name** | Your organization's display name     |
| **Website**           | Links to your organization's website |
| **Contact email**     | Your organization's email address    |

The portal footer shows your client's name and email, plus a "Powered by dronelist.io" attribution.

Set up your branding in **Settings > Organization** to make sure clients see a professional, branded experience. See [Settings](/docs/features/settings) for details.

***

## Cross-Organization Discovery

If a client works with multiple drone operators who use dronelist.io, they can switch between organizations directly from the portal sidebar. The portal automatically detects all organizations that have shared portal links with the client's email address.

Each organization's access code is independent — verifying with one organization doesn't grant access to another.

***

## Managing Portal Links

From the [Projects](/docs/features/projects) detail page, the **Client Portal** section lets you:

* **Create new links** — with optional access code and expiry
* **View existing links** — see client email, access count, last accessed date
* **Toggle notifications** — enable or disable email notifications per link
* **Revoke links** — instantly deactivate a link
* **Send messages** — communicate with clients through the portal thread

The `clientPortalEnabled` flag on a project is set automatically when you create the first portal link for that project.

***

## Tips

<AccordionGroup>
  <Accordion title="Set access codes for sensitive projects">
    For high-value or confidential projects, add a 6-digit access code to the portal link. Share the code separately (e.g., via phone or text) for an extra layer of security.
  </Accordion>

  <Accordion title="Control visibility before sharing">
    Before creating a portal link, review which deliverables and files are marked as client-visible. Only items you've toggled to visible will appear in the portal.
  </Accordion>

  <Accordion title="Use messages instead of email threads">
    Portal messages keep the conversation in context — tied to the project, visible to both sides, and preserved in the activity timeline. This is easier to reference than scattered email threads.
  </Accordion>

  <Accordion title="Leverage cross-org discovery for repeat clients">
    If you have multiple organizations (e.g., separate divisions), your clients automatically see all of them in the portal sidebar. Each org manages its own links and access codes independently.
  </Accordion>

  <Accordion title="Set expiry dates for one-time reviews">
    For deliverable review rounds, create a link that expires in 7 or 14 days. This keeps access time-boxed and encourages clients to review promptly.
  </Accordion>
</AccordionGroup>
