Connect Plain to AI agents

Connect Plain to Claude, Codex, Cursor, or other AI agents for your entire team. Metorial security, governance, observability, and gives your team a unified Magic MCP url to connect.

Supported Tools

list_threads

List Threads

List support threads with optional filtering by status, customer, or tenant. Returns thread details with pagination support.

manage_customer_tenants

Manage Customer Tenants

Add or remove a customer from tenants. Customers can belong to multiple tenants. Provide tenant identifiers to add or remove.

list_label_types

List Label Types

List all available label types in the workspace. Label types define the categories you can apply to threads (e.g., "Bug", "Feature Request"). Use the returned IDs when adding labels to threads.

update_customer_company

Update Customer Company

Change a customer's associated company. By default, Plain auto-derives the company from the customer's email domain. Use this tool to manually override it by specifying a company ID, domain, or set to null to remove the association.

upsert_customer

Upsert Customer

Create or update a customer in Plain. Uses an upsert pattern — if a customer matching the identifier exists, it will be updated; otherwise a new customer is created. Specify separate fields for creation vs. update via **onCreate** and **onUpdate**.

list_customer_groups

List Customer Groups

List all customer groups in the workspace. Customer groups are used for organizing customers by segment, pricing tier, or other criteria.

create_thread

Create Thread

Create a new support thread for a customer. Threads represent customer conversations and are created with an initial message composed of UI components (text, spacers, link buttons). You can optionally assign a tenant, labels, and priority.

update_thread_status

Update Thread Status

Change a thread's status to Todo, Done, or Snoozed. When snoozing, specify a duration in seconds after which the thread returns to Todo.

list_customers

List Customers

List customers in your Plain workspace with optional pagination. Returns customers along with their company and metadata.

get_customer

Get Customer

Look up a single customer by ID, email, or external ID. Returns detailed customer information including company and metadata.

get_thread

Get Thread

Retrieve a single support thread by ID. Returns full thread details including status, priority, labels, assignee, and associated customer/tenant information.

reply_to_thread

Reply to Thread

Send a reply to an existing thread. The reply is composed of UI components (text, spacers, link buttons). Optionally impersonate a customer when replying.

delete_customer

Delete Customer

Permanently delete a customer from Plain. This action cannot be undone.

manage_thread_labels

Manage Thread Labels

Add or remove labels on a thread. Use the **addLabelTypeIds** field to add labels and **removeLabelIds** to remove them. You can do both in a single call. Use the list_label_types tool to discover available label types.

upsert_tenant

Upsert Tenant

Create or update a tenant. Tenants let you organize customers to match your product's structure (e.g., teams, organizations). Uses an upsert pattern — matched by identifier, created if not found, updated otherwise.

create_timeline_event

Create Timeline Event

Create a custom event on a customer's timeline or on a specific thread. Timeline events appear in the thread view and can display rich content (text, links, spacers). Use **externalId** for idempotency.

send_email

Send Email

Send a new email to a customer. This creates a new thread with an outbound email. You can also specify Cc and Bcc recipients.

manage_customer_groups

Manage Customer Groups

Add or remove a customer from customer groups. Customer groups are used for segmentation and access control. Use the list_customer_groups tool to discover available groups.

change_thread_priority

Change Thread Priority

Change the priority level of a support thread. Priority levels: 0 = urgent, 1 = high, 2 = normal, 3 = low.

assign_thread

Assign Thread

Assign or unassign a support thread. Provide a userId to assign, or set unassign to true to remove the current assignment.

More integrations teams use with Plain

Slack

Slack: connect with bot OAuth or user OAuth. Send, update, delete, and schedule messages; list and cancel scheduled messages; open DMs and group DMs; manage conversations, members, files, reactions, pins, bookmarks, reminders, user groups, and user status; search messages and files with user scopes; and retrieve user, conversation, and workspace info.

Linear

Create, read, update, and delete issues across teams with support for priorities, labels, assignees, due dates, and workflow states. Manage projects that group related issues, and organize work into time-boxed cycles (sprints). Create and manage documents, comments, and file attachments. Search issues using vector similarity or rich filters. Configure teams, workflow states, and labels. Track customers and link them to issues. Subscribe to real-time webhooks for changes to issues, projects, cycles, comments, documents, and more.

GitHub

Manage repositories, issues, and pull requests. Create and configure branches, star repositories, review code, and merge changes. Automate CI/CD workflows with GitHub Actions, manage workflow runs, secrets, and artifacts. Track issues with labels, milestones, and assignees. Search across code, repositories, issues, and users. Manage organizations, teams, and memberships. Create and manage projects, gists, packages, deployments, and environments. Access security alerts including code scanning, secret scanning, and Dependabot alerts. Read and write file contents in repositories. Manage webhooks, notifications, and codespaces.

Sharepoint

Manage SharePoint sites, document libraries, lists, and files. Create, read, update, and delete lists and list items with custom columns. Upload, download, move, copy, and version files in document libraries. Search across sites, files, folders, lists, and list items using Microsoft Search. Manage permissions at site, list, and item levels with granular access control. Define and manage content types and site columns. Subscribe to webhooks for list and library change notifications. Retrieve site properties and search for sites across Microsoft 365.

Hubspot

Create, read, update, and delete CRM objects including contacts, companies, deals, tickets, and custom objects. Manage associations between CRM records. Track engagements such as calls, emails, meetings, notes, and tasks. Send transactional and marketing emails, manage campaigns, and handle subscription preferences. Build and manage marketing workflows, sequences, and automation actions. Manage CMS content including blog posts, landing pages, and HubDB tables. Handle commerce data including products, orders, invoices, quotes, and payments. Create and manage contact lists for segmentation. Configure deal, ticket, and order pipelines with custom stages. Search and filter CRM records. Bulk import and export CRM data. Manage users, teams, and account settings. Subscribe to webhooks for real-time notifications on object creation, deletion, property changes, merges, and association changes.

Salesforce

Manage CRM data including Accounts, Contacts, Leads, Opportunities, Cases, and custom objects. Create, read, update, and delete records. Query data using SOQL and search across objects using SOSL. Perform bulk data operations for large-scale imports, exports, and migrations. Execute composite requests to batch multiple operations in a single API call. Access analytics, reports, and dashboards. Manage files and attachments associated with records. Interact with Chatter feeds, posts, and groups for social collaboration. Subscribe to real-time change events via Change Data Capture and Platform Events. Manage org metadata including custom objects, fields, layouts, and workflows. Query data using GraphQL for precise data retrieval across related objects.

Technical notes for Plain

Manage customer support threads, customers, and conversations across email, Slack, chat, and other channels. Create and update customers with external IDs, organize them into companies, tenants, and groups. Create, reply to, assign, prioritize, and change status of support threads. Apply labels, set SLA tiers, and manage thread fields. Send and receive messages via email (with Cc/Bcc), Slack, and chat. Create custom timeline events on customer profiles with rich UI components. Receive webhooks for thread, message, and customer lifecycle events including status changes, assignments, label updates, and SLA transitions.

Connect Plain to production AI agents

See how Metorial gives Plain access the governance, tracing, and security controls teams need.

Frequently asked questions

Common questions about connecting Plain to AI agents with Metorial.

  1. Can Metorial connect Plain to AI agents?
    Yes. Metorial connects AI agents to Plain through a governed integration layer, so teams can use the provider while keeping access controlled and observable.
  2. Metorial is MCP compatible and lets teams expose approved provider tools to MCP-capable agents and clients through a controlled access layer.
  3. Metorial applies policies across users, groups, providers, agents, and individual tools, then records the context around every agent interaction.
  4. Yes. Metorial records provider activity so teams can inspect tool calls, troubleshoot integrations, and give security teams the visibility they need.