Whether you are using Plain’s API or not, this page is a quick way to understand how Plain works.

Within Plain, all data belongs to a Workspace. Within a workspace, you have Users, Customers, Threads, Companies and more.


Everything within Plain happens in a workspace. Typically, you will have one workspace like you would in Slack or Discord. You can create multiple workspaces if you want to match different environments, e.g. “Acme Staging” and “Acme Production”.


When you use Plain, you are a user. As a user, you have one or more roles that define what you are allowed to do within Plain.


Within Plain, you help customers. Each customer has a name (“Grace Hopper”), short name (“Grace”), and one email address. Email addresses are unique across all customers. Customers can also have an externalId which lets you correlate them to customers in your own systems, you can provide this when creating or updating them via the API.

Customers are created automatically by Plain when receiving a new support request or can be created programmatically using our API. Customers can belong to a company and multiple tenants (more on that below).


Threads are the core of Plain’s data model and are equivalent to tickets or conversations in other support platforms.

Each thread belongs to one customer and has a status which is one of Todo, Done, or Snoozed. When you use Plain to help a customer, you assign yourself to a thread and then mark the thread as done once you’re done helping.

Threads are created automatically by inbound communications or programmatically via the API, for example, when a contact form is submitted.

Each thread has a timeline. The timeline contains all relevant communication, events and other updates such as assignment changes.

Threads can be extended with custom attributes called thread fields.


Labels are a lightweight way of categorizing threads by topic (e.g., bugs, feature requests, demo request, etc.). A thread can have one or more labels, and each label has a name and an icon that you choose in your settings.

You can filter threads by label in any queue.


Events belong to a customer or thread and allow you to log important actions that happen outside of Plain within Plain. Events provide you with additional context of the customer’s actions when you are helping them.

For example, if you log an event when a customer deletes an API key in your systems, then if they reach out reporting 401 errors - you immediately know why.


Each customer can belong to one company. The company is automatically set by Plain based on the customer’s email. For example if a customer gets in touch with the email jeff@nike.com,then their company will be set to Nike. The company of a customer can be changed manually and via the API.

You can filter and organise your support by company.


Tenants allow you organise your customers in the same way they are organised in your product. For example. For example if your product’s users are organised into teams then every team would be one tenant within Plain.

Tenants can only be created programmatically and are useful for advanced integrations or larger support teams.


Tiers allow you to organise companies and tenants into groups that match your product’s pricing. For example “Enterprise”, “Pro”, “Free” etc. Within tiers you can also define SLAs so that you can stay on top of your queue and prioritise.