Labels
Labels are a lightweight yet powerful way to categorize support threads in Plain. They give you a quick visual overview of what each conversation is about, making it easier to prioritize, route, and report on customer requests across the team.
To manage labels, press ⌘ + K
and search for Manage labels, or go to Settings → Labels
Use cases
You can define labels that reflect the types of conversations you regularly handle. For example:
Bug report
Feature request
orFeedback
Sales
orDemo request
API question
Security
Billing
Hiring
Churn risk
Threads can have multiple labels, and they’re displayed consistently across the Plain UI – in inbox views, search, and reports.
When you create a label, you can optionally add a description to it. This description will help you remember what this label is meant for. But more importantly, it will help our AI engine decide when to apply it to a thread.
Nested labels
In Plain, labels can be organized into a hierarchy with up to three levels. This structure helps teams manage large or complex sets of labels by grouping related items and reducing clutter in the interface.
Nesting labels makes it easier to correctly categorise threads, maintain data consistency, and streamline reporting. Especially when multiple teams or product areas are involved.
How nested labels work
Labels can be nested up to three levels deep. Each label can have multiple children, and any child can have its own sub-labels. For example:
API ├── Documentation │ └── Errors └── Technical Issue Sales └── Onboarding └── Self-serve
When a label is applied, all of its parent labels are applied automatically. So if you select Errors
, both Documentation
and API
will also be applied.
Likewise, when a label is removed, all its children are automatically removed. So if you remove the Documentation
label, Errors
will also be removed.
At the moment, labels cannot be moved between trees. If you need this behaviour, you should archive the source label and create a new one in the target tree.
Team labels
Labels don’t just organize threads. They can also define your internal teams. A team label is simply a label that represents a team or functional group in your organisation, such as API
, Sales
, or Invoicing
.
You can use these labels to group users by area of responsibility, making it easy to filter, triage and route the support workload across your team.
A user can have multiple team labels. The nesting behaviour also applies with them.
For example, given the labels below, if you add the label Platform
to Susan, she will also be automatically labelled with Engineering
Engineering [T] └── Platform [T]
Integration with Plain
Team labels benefit from the same deep integration that makes labels such a powerful part of Plain. You can apply them manually or automatically using Workflow Rules. They can drive conditional logic for SLAs and autoresponders, trigger webhook events when changed, and be used to filter threads in your thread views, as well as in reporting.
They also work with more advanced features that affect how threads behave. You can pre-set labels through the chat widget or support forms so they're automatically added to new threads. You can show or hide thread fields in the thread view based on labels, and control which knowledge sources are used when responding.
Like standard labels, team labels may be automatically applied by our AI engines based on the thread's content.
In your labels hierarchy, you can mix team and standard labels.
Example
Let’s say your company provides a payments API as a service. You might set up a label hierarchy like this, where each item is a label (those marked with [T] are team labels):
Product ├── Payments │ ├── Integrations [T] │ └── Card issues └── Identity ├── KYC [T] └── Document uploads Customer Success └── Onboarding [T] └── Sign up issues Accounts └── Billing
As you can see, company areas, product features, and internal teams can all be represented within the same label hierarchy. This gives you a single, unified structure that could power all of sorts of flows:
Applying the
Document uploads
label to a thread will also apply its parent labelsIdentity
andProduct
, making it easy to track issues by feature, category, or department.You could deploy a chat widget on your marketing site that automatically applies the
Onboarding
team label to all new threads, ensuring they land with the right team instantly.A workflow rule might assign the
Sign up issues
label to any thread that mentions error codes in your endpoints, routing them to theOnboarding
teamA saved view in the inbox could show all threads under
Payments
, giving that team a focused queue of work across multiple subtopics likeCard issues
Automating Labels with Workflow Rules
To reduce manual effort, you can apply labels automatically using Workflow Rules.
For example, you might:
Add a
Security
label to any email sent tosecurity@yourcompany.com
Label threads containing words like “crash” or “bug” as
Bug report
Add
Sales
to any request with “demo” or “pricing” in the bodyUse the AI match prompt to detect intent and apply the right label
Automated labelling ensures consistency and saves valuable time – especially when combined with routing, assignment, or prioritisation rules.
Configure automation in Settings → Workflow Rules
Programmatic labeling
If you're integrating Plain with external systems, you can also apply labels via the API – for example, tagging threads created from your in-app chat, CRM, or internal tooling.