DashboardSign inStart your trial

Plain

Reference

11 triggers and 23 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.

5 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.

5 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

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.

1 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.

4 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
What now

Use Plain in a workflow

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