# Branding and white-labelling

> Set the product name and logo that a deployment shows on its login page, top bar, and browser title.

The **Branding** screen white-labels a TeleQuick deployment. It holds
the product name and the logo that the console presents to everyone who
signs in to that deployment, so an operator can ship the consoles under
their own name instead of the name they were built with.

You reach it at `admin/branding`, inside the admin section of the
console.

## What branding controls

The screen manages two values:

| Value            | Type                    |
| ---------------- | ----------------------- |
| Product name     | Text                    |
| Logo             | Uploaded image          |

Everything the screen changes is presentation. It does not change
tenant, org, or trunk configuration, and it is not part of the
authentication flow — only the chrome around it.

## Where each value is rendered

The screen describes its own scope as the product name and logo "shown
on login, top bar & title". In practice that is three surfaces:

| Surface                      | What appears                                                |
| ---------------------------- | ----------------------------------------------------------- |
| Login page                   | The product name and the logo, before any session exists.   |
| Console top bar              | The product name and the logo, on every authenticated page. |
| Browser / document title     | The product name. A title is text, so the logo is not used. |

Because the login page is one of the surfaces, branding is visible to
people who have not authenticated yet. Treat the product name and the
logo as public.

## Scope: deployment-wide, not per-tenant

Branding is a property of the **deployment**, not of a tenant, org, or
user. The screen sits behind the admin shell and describes itself as
white-labelling "this deployment", and it exposes a single product name
and a single logo — there is no per-tenant variant on this screen. Every
tenant served by that deployment therefore sees the same name and logo,
including on the shared login page.

If you need two different brands, you need two deployments.

## Both consoles render one implementation

The branding form itself lives in a shared package
(`agent-ui/screens/branding`). Each console ships only a thin host
wrapper that supplies its own chrome — the admin navigation shell, the
page icon, and the header's title and subtitle. The contact-centre
wrapper is the one shown above.

The practical consequence: the fields, validation, and behaviour of the
branding form are identical in both consoles. Only the surrounding
navigation differs. A screenshot from one console is an accurate guide
for the other.

## Relationship to the shipped defaults

A deployment always has a name and a logo before you touch this screen —
the ones compiled into the build, which is why an untouched console
reads as TeleQuick. Saving branding values overrides that
presentation for the deployment; it does not alter the build.

Self-hosted deployments use the same screen. There is nothing to
configure at the image or environment level to enable it: the branding
values are set from the console, by an admin, after the deployment is
running.

## Logo constraints and propagation

The console source that this page documents establishes *that* a logo is
uploaded and *where* it is rendered. It does not establish:

- accepted image formats, pixel dimensions, aspect ratio, or file size;
- where the uploaded image is stored or from what URL it is served;
- whether a session that is already open picks up a new name or logo
  immediately, on navigation, or only after a reload;
- whether a reset-to-shipped-defaults control exists.

Do not design around an assumption for any of these. Verify the
behaviour against the deployment you are configuring, and reload an
open console after saving if you need to confirm what a new visitor
will see.
