> For the complete documentation index, see [llms.txt](https://docs.usepylon.com/pylon-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.usepylon.com/pylon-docs/customer-portal/styling-and-customization.md).

# Styling & Customization

Customize the look, settings, and content of your customer portal

Portal settings live under [**Settings > Customers > Customer portal**](https://app.usepylon.com/customer-portal?page=general), split into these pages:

* **General**: access, invitations, authentication, and custom domains
* **Styling**: logos
* **Links**: header logo link, header links, and footer links
* **Ticket forms**: which forms customers can submit
* **Tabs**: per-tab settings for **Issues**, **Projects & tasks**, and **Feature requests**

## Styling

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2FpSkCztimU7GNAgXcYtoU%2FCleanShot%202024-10-19%20at%2021.38.15%402x.png?alt=media&amp;token=faf7c373-ac09-4ba3-98f4-0872b83f9968" alt=""><figcaption></figcaption></figure>

* **Header Logo** and **Footer Logo**, each with a light mode and dark mode version. Empty logos fall back to the logos in **Settings > Workspace > Brand center**.
* Brand colors come from your Brand center.

Customers can switch the portal between light and dark mode.

## Links

* **Header Logo Link**: the URL your header logo opens. Leave it empty to keep the logo unclickable.
* **Header Links**: links shown in the portal header.
* **Footer Links**: links grouped into footer sections.

## General settings

| Setting                        | What it does                                                                                                                                                         |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Portal access                  | Turns the portal on or off. When off, all customer portal links are hidden and disabled.                                                                             |
| Default portal role            | The role new contacts get. See [Access Control](/pylon-docs/customer-portal/access-control.md#default-role-for-new-contacts).                                        |
| Support reply identity         | Show your team's replies under the **Original sender** or a workspace alias. Manage aliases in **Settings > Workspace > Workspace**.                                 |
| Auto-create contacts on login  | Creates a contact the first time someone logs in. With email login, the person's domain must match an existing account.                                              |
| Allow portal users to edit CCs | Lets customers add or remove CC recipients when replying to email tickets. Off by default.                                                                           |
| Automatic invitation email     | Emails new contacts an invitation to the portal. No email is sent when the default role is No Access. When off, share the portal link yourself.                      |
| Invitation email sender        | Which email app sends invitations. Only email apps with a custom outgoing domain are listed. Defaults to a Pylon address.                                            |
| Enable chat widget             | Shows your [chat widget](/pylon-docs/chat-widget/overview.md) in the portal. If you have more than one widget, pick it with **Chat Widget App**.                     |
| Portal Authentication          | Email passcode or your own login. Set it in **Settings > Workspace > Workspace**; see [Custom Authentication](/pylon-docs/customer-portal/custom-authentication.md). |

You can also use the API to create customer users and grant access to the portal as part of your user provisioning process.

### Custom Domains

Host your customer portal on a custom branded domain, allowing a fully white-labeled experience for your customers.

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2FreaAgD1Ds55cxGEZHSMW%2Fcustom%20domain.avif?alt=media&amp;token=f570ba1a-2f16-4e74-9c37-a103a9b34995" alt="" width="563"><figcaption></figcaption></figure>

You can add up to five custom domains. Add the DNS records Pylon shows for each domain to verify it.

One domain is the **Primary domain**, used in emails and other links Pylon generates. Use **Make Primary Domain** to change it. If the primary domain isn't verified yet, links keep using your Pylon-hosted portal URL and switch over automatically once verification completes.

## Tabs

Each tab page has a **Tab visibility** switch. **Issues** and **Projects & tasks** are on by default; **Feature requests** is off by default and appears only when Feature Requests is enabled for your workspace. Projects & tasks and Feature requests are hidden in the portal when nothing in them is visible to the customer.

#### Fields

Choose which fields on your tickets, tasks, and feature requests are visible to customers. For example, surface a Priority or Question Type field that users can view and modify.

* **Issues** tab: under **Issues fields**, click **Add Field** and pick a custom field, then choose **Can view** or **Can edit**. Issue fields appear both in the portal's issues table and within each issue.
* **Projects & tasks** tab: for each task field, choose **Customer Can View** or **Customer Can Edit**.

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2FDV31kytljrZqzUffW1vp%2Fimage.png?alt=media&amp;token=7c6ed8fb-e6b5-4814-ad78-46228f87b038" alt="" width="375"><figcaption></figcaption></figure>

**Visibility conditions**

To show an issue custom field only to some customers, click the eye icon (**Add visibility conditions**) next to the field, then click **Add Condition**. Conditions can use:

* Account properties: **Account**, **Account Owner**, **Parent Account**, **Account Tags**, **Pylon Account Type**, **Creation Source**, **External Channels**, **Primary External Channel**, **External Channel Type**, and **Account Slack Channel**
* Account custom fields
* Issue custom fields

Customers on issues that don't match the conditions don't see the field at all, in the issues table or on the issue. Native fields such as **Last Message At** can't have visibility conditions.

To check what a customer will see, use **Preview as** above the portal preview and select an account. Some fields may still vary by issue, for example when a condition uses an issue field.

On the **Feature requests** tab you can also turn on **Show descriptions in the feature request sidebar**.

#### Customer-facing Status Labels

For configured custom Issue and Task statuses in Pylon, you can also define corresponding customer-facing status labels.

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2FEmBRXWSimO6WI8vkVU1l%2Fimage.png?alt=media&amp;token=575898ae-480d-4535-82d6-5a9f71a856ab" alt="" width="375"><figcaption></figcaption></figure>

Status label mappings are available for Issues, Tasks, and Feature Requests, each configured from its own tab page ([Issues](https://app.usepylon.com/customer-portal/tabs?type=issues), [Projects & tasks](https://app.usepylon.com/customer-portal/tabs?type=projects_tasks), [Feature requests](https://app.usepylon.com/customer-portal/tabs?type=feature_requests)).

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2FNyyErFqMcrjYSsseA6r4%2Fimage.png?alt=media&amp;token=7151337c-aada-4dea-bd4d-8366b5d41cd7" alt="" width="375"><figcaption></figcaption></figure>

## Ticket Forms

You can have different sets of [ticket forms](/pylon-docs/support-workflows/ticket-forms.md) available to different sets of portal users. For example, accounts on different tiers can see different forms.

## Issue Visibility

By default, new tickets submitted by users will be visible in the portal. You have control on the ticket level to show or not show particular tickets, as well as the title the ticket shows up with.

Click into any issue in Pylon and find the **Customer Portal Settings** module in the sidebar to change the visibility or title of an individual issue. To change several at once, select them and use **Portal visibility**. You can also set up a [Trigger](/pylon-docs/platform/triggers.md) to automatically set the portal visibility of certain types of issues.

{% hint style="info" %}
Customers can view and manage tickets from across Slack, Email, Chat Widget, and more directly in the portal!
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.usepylon.com/pylon-docs/customer-portal/styling-and-customization.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
