DashboardSign inStart your trial

Plain

Reference

11 triggers and 120 actions for Plain workflows.

01. Triggers

Start a workflow when something happens in Plain

Each trigger lists the event it fires on, the data it sends, and a template you can use it in.

Webhook

11 triggers

Real-time push from the source.

Webhook

PLAIN_CUSTOMER_EVENT

Fires when a customer in Plain is created, updated or deleted. `event_type` says which it was, `created`, `updated` or `deleted`, in the same vocabulary the config filters on — so a single subscription to all three can branch downstream without matching on Plain's raw event names. Group membership changes are a separate slug, `customer_group_membership_changed`.

1 config field6 output fields
Webhook

PLAIN_CUSTOMER_GROUP_CHANGED

Fires when a customer group is created, edited or deleted in Plain.

5 output fields
Webhook

PLAIN_CUSTOMER_GROUP_MEMBERSHIP_CHANGED

Fires when a customer is added to or removed from a customer group in Plain. Use it to re-segment a customer downstream the moment their grouping in Plain changes — move them onto a different plan's onboarding, change who gets paged for their threads, sync the new segment into your CRM. `change` says which direction it was, `added` or `removed`, straight from Plain. Which group it was is the one that differs between `customer.customer_group_memberships` and `previous_customer.customer_group_memberships`, both of which carry the customer's full membership list.

6 output fields
Webhook

PLAIN_THREAD_CREATED

Fires when a new support thread is opened in Plain.

4 output fields
Webhook

PLAIN_THREAD_CUSTOM_FIELD_UPDATED

Fires when one of your own thread fields is set, changed or cleared on a Plain thread.

6 output fields
Webhook

PLAIN_THREAD_MESSAGE_RECEIVED

Fires when an inbound message arrives on a Plain thread. Covers email, in-app chat, Slack, Discord and Microsoft Teams, and each channel ships its own message shape, so read `channel` before reading `message`. For the replies your own team sends out, use the Thread Message Sent trigger instead.

1 config field6 output fields
Webhook

PLAIN_THREAD_MESSAGE_SENT

Fires when your team sends a message out on a Plain thread. Covers email, in-app chat, Slack, Discord and Microsoft Teams, and each channel ships its own message shape, so read `channel` before reading `message`. Editing a Slack or Discord message afterwards does not fire it again, and for messages arriving from the customer use the Thread Message Received trigger instead.

1 config field6 output fields
Webhook

PLAIN_THREAD_NOTE_CREATED

Fires when an internal note is added to a thread in Plain. Carries no `mentions`: Plain only reports them on its separate mention event, which is `PLAIN_THREAD_NOTE_MENTIONED`. Subscribing to both slugs delivers every mentioning note twice, under two different event ids.

5 output fields
Webhook

PLAIN_THREAD_NOTE_MENTIONED

Fires when an internal note mentions a machine user in Plain. The only event that carries `mentions`. The raw `<@mu_…>` markup is not guaranteed in either `note.text` or `note.markdown`, so this slug — not scanning the note body — is how a consumer learns who was mentioned. Plain publishes such a note twice, here and as `thread.note_created`, so subscribing to both this and `PLAIN_THREAD_NOTE_CREATED` delivers it twice, under two different event ids.

6 output fields
Webhook

PLAIN_THREAD_PROPERTIES_UPDATED

Fires when a thread's status, assignee, priority or labels change in Plain. Every event carries the thread's new state alongside its state immediately before the change, and names which of the four properties changed. Assignment events also cover reassignment, so both sides can be populated.

1 config field6 output fields
Webhook

PLAIN_THREAD_TENANT_UPDATED

Fires when a thread's tenant is set, changed or cleared in Plain. Plain also sends this event when a thread's tenant is reapplied without changing, in which case both sides hold the same tenant or both are null.

6 output fields
02. Operations

Act on Plain from a workflow

Operations are the actions a workflow can take in Plain, grouped by category. Each lists its method, parameters, and a template you can drop it into.

API

1 operation

Execute custom GraphQL queries against the Plain API to retrieve or manipulate data that may not be covered by standard operations. Use this when you need fine-grained control over your data requests or want to access specific fields and relationships in a single query.

Action

Run GraphQL Query

PLAIN_RUN_GRAPHQL_QUERY

Execute custom GraphQL queries and mutations against the Plain API to retrieve complex data, perform advanced operations, or access features not available through standard actions.

2 input

Companies

2 operations

Manage company records within Plain by fetching details and updating information like name, status, or custom fields. Use these operations when you need to keep company data synchronized or retrieve company context for customer interactions.

Action

Fetch Company

PLAIN_FETCH_COMPANY

Retrieves complete company profile information including name, domain, contact details, and contract value by company ID. Use this when you need to access or verify comprehensive company data for business operations.

1 input
Action

Update Company

PLAIN_UPDATE_COMPANY

Create or update company information in Plain using either a company ID or domain name, including details like company name, domain, contract value, and account owner assignments.

6 input

Customer Groups

4 operations

Organize customers into logical groups and manage membership for segmentation and targeted workflows. These operations help you categorize customers, add or remove members, and maintain audience lists for specific campaigns or support tiers.

Action★ Featured

Add Customer To Group

PLAIN_ADD_CUSTOMER_TO_GROUP

Assign a customer to one or more customer groups to organize your contacts and enable targeted communication strategies. This helps you segment your audience for personalized outreach and better relationship management.

2 input
Action

Create Customer Group

PLAIN_CREATE_CUSTOMER_GROUP

Creates a new customer group in Plain to organize and segment your customers by characteristics like pricing tier or support level. Use this to establish customer categories that help you manage support workflows and prioritize communication more effectively.

4 input
Action

List Customer Groups

PLAIN_LIST_CUSTOMER_GROUPS

Retrieve all customer groups in your account with optional filtering and pagination to organize and manage customer segments. Use this to view your customer group structure and metadata at a glance.

5 input
Action

Remove Customer From Group

PLAIN_REMOVE_CUSTOMER_FROM_GROUP

Removes a customer from one or more customer groups in Plain, allowing you to revoke group memberships and adjust customer access levels. This helps you manage customer segmentation as their status or needs change.

2 input

Customers

5 operations

Perform full lifecycle management of customer records including creation, retrieval, updates, and deletion. Reach for these operations when syncing customer data from other systems, enriching customer profiles, or removing outdated customer information.

Action★ Featured

Get Customer By Email

PLAIN_GET_CUSTOMER_BY_EMAIL

Retrieve a customer's profile information using their email address, allowing you to quickly access account details, contact preferences, and history without knowing their customer ID.

1 input
Action★ Featured

Upsert Customer

PLAIN_UPSERT_CUSTOMER

Creates a new customer record or updates an existing one to keep your customer information current and synchronized across your business systems.

3 input
Action

Delete Customer

PLAIN_DELETE_CUSTOMER

Removes a customer record from your system permanently using their customer ID. Use this when you need to eliminate outdated, duplicate, or unwanted customer entries to keep your customer database clean and accurate.

1 input
Action

Get Customer By ID

PLAIN_GET_CUSTOMER_BY_ID

Retrieve complete customer information and details by looking up their unique ID in your system. This lets you quickly access a customer's profile, contact information, and account history whenever you need it.

1 input
Action

Get Customers

PLAIN_GET_CUSTOMERS

Retrieve a list of your customers with options to filter, sort, and paginate through the results to find specific customer information.

6 input

Issues

1 operation

Retrieve issue records to access problem reports, bug tracking data, or support tickets stored in Plain. Use this operation when you need to pull issue details for reporting, escalation, or integration with external systems.

Action

Fetch Issues

PLAIN_FETCH_ISSUES

Retrieves all issue tracker links (from Jira, Linear, GitHub, etc.) connected to a customer's support threads, giving you a complete view of external issues tied to customer conversations.

3 input

Messages

1 operation

Send messages to customers or team members directly from your workflow. Use this operation to trigger notifications, alerts, or communications as part of automated customer support or engagement processes.

Action★ Featured

Send Message

PLAIN_SEND_MESSAGE

Sends a new message within an existing conversation thread to communicate with team members or clients. This helps you maintain organized communication by keeping related messages grouped together.

6 input

Threads

5 operations

Manage conversation threads where customer interactions are organized and tracked. These operations let you create new conversations, update existing ones, list all threads, and retrieve specific thread details for context in automation workflows.

Action★ Featured

Create Thread

PLAIN_CREATE_THREAD

Start a new conversation thread with a customer to organize and track communications in one place. This helps you keep all related messages together for better context and follow-up.

14 input
Action★ Featured

List Threads

PLAIN_QUERY_THREADS

Retrieve a paginated list of threads, with optional filtering by status, to manage and organize your communication history.

2 input
Action

Get Thread By ID

PLAIN_GET_THREAD_BY_ID

Retrieves detailed information about a specific conversation thread, including customer details, current status, priority level, labels, and who it's assigned to. Use this to access all relevant context about a customer interaction in one request.

1 input
Action

List Threads (Deprecated)

PLAIN_LIST_THREADS

Retrieves a list of all support conversations (threads) from Plain, including their ID, status, and priority information. Use this to get an overview of customer support activity and manage conversations across your support queue.

4 input
Action

Update Thread Title

PLAIN_UPDATE_THREAD

Rename or update a thread's title to keep your conversations organized and easier to find. This helps you maintain clear communication channels as your discussion topics evolve or when you need to reflect the current status or focus of a conversation.

2 input

Tiers

2 operations

Access tier definitions that categorize customers or services by level or plan. Use these operations to retrieve tier information for conditional logic in workflows or to understand customer segmentation rules.

Action

Fetch Tier

PLAIN_FETCH_TIER

Retrieves detailed information about a specific tier using its ID, allowing you to access tier metadata and settings whenever you need to reference or validate tier details.

2 input
Action

List Tiers

PLAIN_LIST_TIERS

Retrieve a paginated list of available tiers to see your pricing options and tier details. Use this when you need to browse or inventory all tiers in your system.

5 input

Users

2 operations

Manage user accounts and team member records in Plain by fetching user details or removing inactive users. Use these operations to keep your team roster synchronized or retrieve user information for audit and access control purposes.

Action

Delete User

PLAIN_DELETE_USER

Remove a user account from your system permanently by their ID. Use this when you need to deactivate team members, clients, or contacts who no longer need access.

1 input
Action

Get User By ID

PLAIN_GET_USER_BY_ID

Retrieve detailed information about a team member in your workspace, including their name, email, status, and avatar. This is useful for accessing specific team member data to manage your workspace or integrate with other tools.

1 input

Ai

1 operation
Action

List AI Feedback

PLAIN_LIST_AI_FEEDBACK

List feedback submitted on Plain AI features, optionally filtered by feature, sentiment, or time.

5 input

Support

96 operations
Action

Add Customer To Tenants

PLAIN_ADD_CUSTOMER_TO_TENANTS

Idempotently add a customer to one or more tenants.

2 input
Action

Add Generated Reply

PLAIN_ADD_GENERATED_REPLY

Add a suggested reply for teammate review without sending it to the customer.

3 input
Action

Add Labels To Thread

PLAIN_ADD_LABELS

Add one or more labels to a thread by label-type ID.

3 input
Action

Add Members to Tier

PLAIN_ADD_MEMBERS_TO_TIER

Add or move up to 25 tenants or companies into one tier.

2 input
Action

Apply or Clear Thread SLA Policy

PLAIN_UPDATE_THREAD_SERVICE_LEVEL_AGREEMENT_POLICY

Apply an SLA policy, or clear it so the thread falls back to its tier's SLAs.

2 input
Action

Archive Label Type

PLAIN_ARCHIVE_LABEL_TYPE

Archive a label type while preserving labels already on threads.

1 input
Action

Bulk Delete Thread Fields

PLAIN_BULK_DELETE_THREAD_FIELDS

Sequentially delete thread fields, returning each non-atomic item result.

1 input
Action

Bulk Set Thread Fields

PLAIN_BULK_SET_THREAD_FIELDS

Create or replace multiple typed thread-field values.

1 input
Action

Change Thread Assignment

PLAIN_CHANGE_THREAD_ASSIGNMENT

Irreversibly assign, unassign, add, or remove thread assignees.

7 input
Action

Create Attachment Download URL

PLAIN_CREATE_ATTACHMENT_DOWNLOAD_URL

Create a sensitive three-minute URL and return its virus-scan result.

1 input
Action

Create Attachment Upload Form

PLAIN_CREATE_ATTACHMENT_UPLOAD_FORM

Create a sensitive, two-hour presigned upload capability; no file is uploaded.

4 input
Action

Create Autoresponder

PLAIN_CREATE_AUTORESPONDER

Create an autoresponder that automatically sends outbound customer replies.

8 input
Action

Create Customer Or Thread Event

PLAIN_CREATE_EVENT

Create a custom customer-wide or single-thread timeline event.

8 input
Action

Create Email/Slack Discussion

PLAIN_CREATE_DISCUSSION

Immediately and irreversibly start an external EMAIL or SLACK discussion.

6 input
Action

Create Label Type

PLAIN_CREATE_LABEL_TYPE

Create a label type that can be applied to threads.

8 input
Action

Create Note

PLAIN_CREATE_NOTE

Create an internal note on an existing customer thread.

5 input
Action

Create SLA Policy

PLAIN_CREATE_SERVICE_LEVEL_AGREEMENT_POLICY

Create a named SLA policy with zero or more unique target types.

3 input
Action

Create Snippet

PLAIN_CREATE_SNIPPET

Create a reusable plain-text and optional Markdown reply snippet.

4 input
Action

Create Task

PLAIN_CREATE_TASK

Create a task, optionally linked to one parent and one assignee.

8 input
Action

Create Thread Field Schema

PLAIN_CREATE_THREAD_FIELD_SCHEMA

Create a custom thread-field schema.

16 input
Action

Create Tier

PLAIN_CREATE_TIER

Create a support tier, optionally assigning tenant or company members.

6 input
Action

Create Tier SLA

PLAIN_CREATE_SERVICE_LEVEL_AGREEMENT

Create one legacy tier SLA; next-response requires a first-response SLA on the tier.

2 input
Action

Delete Autoresponder

PLAIN_DELETE_AUTORESPONDER

Permanently delete a native autoresponder.

1 input
Action

Delete Customer Group

PLAIN_DELETE_CUSTOMER_GROUP

Permanently delete an empty customer group after confirmation.

1 input
Action

Delete Note

PLAIN_DELETE_NOTE

Soft-delete an internal note.

1 input
Action

Delete SLA Policy

PLAIN_DELETE_SERVICE_LEVEL_AGREEMENT_POLICY

Delete an SLA policy, its targets, and their trackers.

1 input
Action

Delete Snippet

PLAIN_DELETE_SNIPPET

Soft-delete a snippet while preserving historical references.

1 input
Action

Delete Task

PLAIN_DELETE_TASK

Soft-delete a task and remove its thread links.

1 input
Action

Delete Tenant

PLAIN_DELETE_TENANT

Delete a tenant, unlink its customers, and remove its field values.

1 input
Action

Delete Tenant Field Schema

PLAIN_DELETE_TENANT_FIELD_SCHEMA

Permanently delete a tenant-field schema and all values stored against it.

1 input
Action

Delete Tenant Field Value

PLAIN_DELETE_TENANT_FIELD

Clear one tenant field value without deleting its schema.

1 input
Action

Delete Thread

PLAIN_DELETE_THREAD

Permanently delete a thread and all associated data.

1 input
Action

Delete Thread Field Schema

PLAIN_DELETE_THREAD_FIELD_SCHEMA

Delete a schema and all values stored against it.

1 input
Action

Delete Tier

PLAIN_DELETE_TIER

Permanently delete a tier and all of its memberships.

1 input
Action

Delete Tier SLA

PLAIN_DELETE_SERVICE_LEVEL_AGREEMENT

Delete a legacy SLA from a tier.

1 input
Action

Escalate Thread Or Select Path

PLAIN_ESCALATE_OR_SELECT_PATH

Advance a thread's escalation or attach/detach its escalation path.

3 input
Action

Get Autoresponder

PLAIN_GET_AUTORESPONDER

Fetch one native Plain autoresponder through the machine-user-safe list query.

1 input
Action

Get Customer By External ID

PLAIN_GET_CUSTOMER_BY_EXTERNAL_ID

Fetch a customer by the exact stable external ID from your own system.

1 input
Action

Get Customer Group

PLAIN_GET_CUSTOMER_GROUP

Fetch one customer group by its Plain ID.

1 input
Action

Get Email/Slack Discussion

PLAIN_GET_DISCUSSION

Fetch metadata for one EMAIL or SLACK side-conversation by ID.

1 input
Action

Get Knowledge Gap

PLAIN_GET_KNOWLEDGE_GAP

Fetch one AI-detected knowledge gap and its linked task and signals.

1 input
Action

Get Label Type

PLAIN_GET_LABEL_TYPE

Fetch one label type by Plain ID or external ID.

2 input
Action

Get SLA Policy

PLAIN_GET_SERVICE_LEVEL_AGREEMENT_POLICY

Fetch one SLA policy by its Plain ID.

1 input
Action

Get Snippet

PLAIN_GET_SNIPPET

Fetch one snippet by ID, including a soft-deleted snippet.

1 input
Action

Get Task by ID or Ref

PLAIN_GET_TASK

Fetch one task by either its Plain ID or human-readable T-123 ref.

2 input
Action

Get Tenant

PLAIN_GET_TENANT

Fetch one tenant by its Plain ID, including current custom field values.

1 input
Action

Get Thread By Reference

PLAIN_GET_THREAD_BY_REFERENCE

Fetch a thread by ref or by its customer-scoped external ID.

3 input
Action

Import Thread

PLAIN_IMPORT_THREAD

Import one historical thread without triggering SLAs or autoresponders.

12 input
Action

Import Thread Messages

PLAIN_IMPORT_THREAD_MESSAGES

Import up to 25 historical messages and return one result per input message.

2 input
Action

List Autoresponders

PLAIN_LIST_AUTORESPONDERS

List native Plain autoresponders in priority order.

4 input
Action

List Deleted Threads

PLAIN_LIST_DELETED_THREADS

List deletion-audit records for threads.

5 input
Action

List Email/Slack Discussions

PLAIN_LIST_DISCUSSIONS

List only EMAIL and SLACK side-conversations with filters and pagination.

6 input
Action

List Generated Replies

PLAIN_LIST_GENERATED_REPLIES

List current suggested replies for a thread's most recent inbound message.

1 input
Action

List Knowledge Gaps

PLAIN_LIST_KNOWLEDGE_GAPS

List AI-detected knowledge gaps with status filters and useful sort orders.

6 input
Action

List Label Types

PLAIN_LIST_LABEL_TYPES

List active and/or archived label types.

5 input
Action

List SLA Policies

PLAIN_LIST_SERVICE_LEVEL_AGREEMENT_POLICIES

List named SLA policies, optionally filtering by name or target type.

5 input
Action

List Snippets

PLAIN_LIST_SNIPPETS

List the workspace snippet library with cursor pagination.

4 input
Action

List Tasks

PLAIN_LIST_TASKS

List workspace tasks with pagination, filtering, and sorting.

6 input
Action

List Tenant Field Schemas

PLAIN_LIST_TENANT_FIELD_SCHEMAS

List tenant-field schemas before reading or writing custom values.

5 input
Action

List Tenants

PLAIN_LIST_TENANTS

List tenants with current filters and cursor pagination.

5 input
Action

List Thread Field Schemas

PLAIN_LIST_THREAD_FIELD_SCHEMAS

List the workspace's custom thread-field schemas.

4 input
Action

List Threads By External ID

PLAIN_LIST_THREADS_BY_EXTERNAL_ID

List a page of threads with an external ID across all customers.

5 input
Action

List Threads With Rich Filters

PLAIN_LIST_THREADS_RICH

List threads with the provider's complete public filter and sort surface.

6 input
Action

Mark Customer As Spam

PLAIN_MARK_CUSTOMER_AS_SPAM

Idempotently hide a customer's threads as spam and exclude them from metrics.

1 input
Action

Remove Customer From Tenants

PLAIN_REMOVE_CUSTOMER_FROM_TENANTS

Idempotently remove a customer from one or more tenants.

2 input
Action

Remove Labels From Thread

PLAIN_REMOVE_LABELS

Remove one or more concrete labels from a thread.

1 input
Action

Remove Members from Tier

PLAIN_REMOVE_MEMBERS_FROM_TIER

Remove up to 25 tenants or companies from their current tiers.

1 input
Action

Reorder Autoresponders

PLAIN_REORDER_AUTORESPONDERS

Reorder native autoresponders in one call.

1 input
Action

Reorder Thread Field Schemas

PLAIN_REORDER_THREAD_FIELD_SCHEMAS

Reorder one or more thread-field schemas.

1 input
Action

Reply To Email

PLAIN_REPLY_TO_EMAIL

Immediately and irreversibly send an external reply to an inbound email.

9 input
Action

Search Customers

PLAIN_SEARCH_CUSTOMERS

Search customer profile fields or timeline text using explicit OR conditions.

6 input
Action

Search Tenants

PLAIN_SEARCH_TENANTS

Search tenants by name, domain, or exact external ID.

6 input
Action

Search Threads

PLAIN_SEARCH_THREADS

Search thread titles, messages, and customer names or emails.

6 input
Action

Send Email/Slack Discussion Message

PLAIN_SEND_DISCUSSION_MESSAGE

Immediately and irreversibly deliver a message in an existing discussion.

3 input
Action

Send New Email

PLAIN_SEND_NEW_EMAIL

Immediately and irreversibly send an external email to a customer.

10 input
Action

Set Customer Tenants

PLAIN_SET_CUSTOMER_TENANTS

Replace a customer's complete tenant membership set in one call.

2 input
Action

Transition Thread Status

PLAIN_TRANSITION_THREAD_STATUS

Move a thread to Todo, Snoozed, or Done.

4 input
Action

Unarchive Label Type

PLAIN_UNARCHIVE_LABEL_TYPE

Restore an archived label type for use on new threads.

1 input
Action

Unmark Customer As Spam

PLAIN_UNMARK_CUSTOMER_AS_SPAM

Idempotently clear a customer's spam flag and restore inbox visibility.

1 input
Action

Update Autoresponder

PLAIN_UPDATE_AUTORESPONDER

Update an autoresponder that automatically sends outbound customer replies.

9 input
Action

Update Company Tier

PLAIN_UPDATE_COMPANY_TIER

Assign one company to a tier or clear its tier membership.

3 input
Action

Update Generated Reply

PLAIN_UPDATE_GENERATED_REPLY

Record teammate feedback on a generated reply.

2 input
Action

Update Label Type

PLAIN_UPDATE_LABEL_TYPE

Update mutable label-type properties using field wrappers.

7 input
Action

Update Note

PLAIN_UPDATE_NOTE

Replace an internal note's content and optional attachment list.

4 input
Action

Update SLA Policy

PLAIN_UPDATE_SERVICE_LEVEL_AGREEMENT_POLICY

Replace an SLA policy's targets; omitted target types and their trackers are deleted.

4 input
Action

Update Snippet

PLAIN_UPDATE_SNIPPET

Update selected snippet fields using Plain's field-level wrappers.

5 input
Action

Update Task

PLAIN_UPDATE_TASK

Update selected fields on an existing task.

9 input
Action

Update Tenant Tier

PLAIN_UPDATE_TENANT_TIER

Assign one tenant to a tier or clear its tier membership.

3 input
Action

Update Thread Attributes

PLAIN_UPDATE_THREAD_ATTRIBUTES

Change one thread priority, customer, external ID, tenant, or tier attribute.

10 input
Action

Update Thread Field Schema

PLAIN_UPDATE_THREAD_FIELD_SCHEMA

Update mutable properties of a thread-field schema.

15 input
Action

Update Tier

PLAIN_UPDATE_TIER

Update selected fields on an existing support tier.

6 input
Action

Update Tier SLA

PLAIN_UPDATE_SERVICE_LEVEL_AGREEMENT

Update a legacy tier SLA without changing its SLA type.

10 input
Action

Upsert Customer Group

PLAIN_UPSERT_CUSTOMER_GROUP

Idempotently create or update a customer group using machine-user-safe calls.

5 input
Action

Upsert Tenant

PLAIN_UPSERT_TENANT

Create or update a tenant while synchronizing its stable external ID.

7 input
Action

Upsert Tenant Field

PLAIN_UPSERT_TENANT_FIELD

Set one typed custom field value for a tenant.

9 input
Action

Upsert Tenant Field Schemas

PLAIN_UPSERT_TENANT_FIELD_SCHEMAS

Create or update tenant-field schemas keyed by source and external field ID.

1 input
What now

Use Plain in a workflow

Drop a trigger and an action into a template; approve from your phone; the workflow runs.