Linking Plain as a source
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Contents
The Plain connector automatically pulls your Plain customer support data – customers, threads, timeline entries, companies, tenants, users, label types, customer groups, customer surveys, discussions, and workflow executions – into the PostHog data warehouse.
Adding a data source
- Go to the sources tab of the data pipeline section in PostHog.
- Click + New source and then click Link next to Plain.
- Next, you need an API key from Plain. In your Plain workspace settings, create an API key. Make sure to grant the following read permissions:
customer:read,thread:read,timeline:read,user:read,label:read,labelType:read,company:read,tenant:read,machineUser:read,customerGroup:read,customerSurvey:read,threadDiscussion:read, andworkflowRule:read. Copy the key value (it starts withplainApiKey_). - Back in PostHog, enter the API key in the
API keyfield and click Next. - Select the tables you want to sync, set the sync method and frequency, then click Import.
Once the syncs are complete, you can start using Plain data in PostHog.
Available tables
| Table | Description | Sync method |
|---|---|---|
customers | Customers in your Plain workspace | Incremental |
threads | Support threads (conversations) | Incremental |
timeline_entries | Timeline entries (chats, emails, notes, and custom entries) for each thread | Incremental |
companies | Companies that customers are linked to, usually by email domain | Incremental |
tenants | Tenants (groups of customers, such as accounts or workspaces in your product) | Incremental |
users | Members of your Plain workspace | Full refresh |
label_types | Label types that you can apply to threads | Full refresh |
customer_groups | Customer groups used for segmentation (such as by plan or region) | Full refresh |
customer_surveys | Customer survey definitions (such as CSAT surveys), not individual responses | Full refresh |
discussions | Internal discussions on threads (Slack, email, or Sidekick Agent conversations) | Full refresh |
workflow_executions | Workflow automation runs across your workspace | Full refresh |
Incremental tables sync only new or updated records on each run. Full refresh tables reload all data on each sync.
Configuration
| Option | Type | Required |
|---|---|---|
API key | password | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
customers | A customer in Plain — a person who contacts your support team. | Incremental, Full refresh | updatedAt | — |
threads | A support conversation (thread) between a customer and your team in Plain. | Incremental, Full refresh | updatedAt | — |
timeline_entries | An event on a thread's timeline in Plain — a chat, email, or note entry. | Incremental, Full refresh | createdAt | — |
companies | A company in Plain. Customers are linked to a company, usually by their email domain. | Incremental, Full refresh | updatedAt | — |
tenants | A tenant in Plain: a group of customers, such as an account or workspace in your own product. | Incremental, Full refresh | updatedAt | — |
users | A member of your Plain workspace. Users are the assignees and actors on threads and timeline entries. | Full refresh | — | — |
label_types | A label type in Plain. Labels on threads are instances of a label type. | Full refresh | — | — |
customer_groups | A customer group in Plain, used to segment customers (for example by plan or region). | Full refresh | — | — |
customer_surveys | A customer survey configured in Plain, such as a CSAT survey sent after a thread is resolved. One row per survey definition, not per response. | Full refresh | — | — |
discussions | An internal discussion in Plain: a Slack, email or Sidekick Agent conversation held by your team, separate from the customer-facing thread. | Full refresh | — | — |
workflow_executions | One run of a Plain workflow automation, across every workflow in the workspace. | Full refresh | — | — |





