Customer Support

Add Plain to your AI agent

Plain is a collaborative support platform for B2B support teams, offering a modern, AI-powered interface to consolidate support channels and assist customers efficiently.

Things your agent can do in Plain
119

Things your AI can do in Plain

Your FormWise AI can handle any of these in Plain — on its own, without you needing to click a button.

  • Add Customer To Group

    Popular

    Add a customer to up to 25 customer groups. Existing memberships are skipped, and the response contains only newly created memberships.

  • Add Members to Tier

    Popular

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

  • Create Customer Group

    Popular

    Creates a new customer group in Plain for organizing and segmenting customers. Customer groups allow you to categorize customers (e.g., by pricing tier, feature access, or support level) and manage them more effectively in your support workflow. Each group has a unique key, display name, and visual color for easy identification. Use this when you need to create a new customer segment for organization or filtering purposes.

  • Create Tier SLA

    Popular

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

  • Create SLA Policy

    Popular

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

  • Create Task

    Popular

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

  • Create Thread

    Popular

    Create a thread after obtaining a valid customer identifier. Creating a thread can trigger a configured autoresponder, which sends an external reply to the customer; that outbound message cannot be recalled.

  • Create Tier

    Popular

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

  • Delete Customer

    Popular

    Permanently and irreversibly deletes a Plain customer by ID, including all associated threads, timeline entries, and other customer data. Deletion runs asynchronously. Confirm the destructive operation before calling.

  • Delete Tier SLA

    Popular

    Delete a legacy SLA from a tier. A first-response SLA cannot be deleted while the tier still has a next-response SLA; delete the next-response SLA first.

  • Delete SLA Policy

    Popular

    Delete an SLA policy, its targets, and their trackers. Threads using the deleted policy fall back to their tier's SLAs.

  • Delete Task

    Popular

    Soft-delete a task and remove its thread links.

Show 107 more things it can do
  • Delete Tier

    Popular

    Permanently delete a tier and all of its memberships. The live API also requires serviceLevelAgreementBreachAction:delete, including when the tier does not exist. Plain's API-key UI grantability for that permission is currently unknown.

  • Delete User

    Popular

    Permanently removes a Plain workspace user by ID. Their threads remain but become unassigned. Plain rejects deletion when the user is the workspace's only owner, so assign another owner first. Confirm this destructive operation.

  • Fetch Company

    Popular

    Tool to fetch company details by ID. Use when you need the full profile of a company, including name, domain, contract value, owner info, and timestamps.

  • Fetch Issues

    Popular

    Fetches external issue tracker links (Jira, Linear, GitHub, etc.) associated with a customer's threads. Returns a bounded, flattened snapshot of issue links across the customer's threads, including thread context. With defaults, it examines up to 50 threads and 50 links per thread; results may be truncated at either limit.

  • Fetch Tier

    Popular

    Fetch a tier by ID. Set include_details=true to include memberships and SLA configuration, which require additional permissions.

  • Get Customer By Email

    Popular

    Fetch customer details by email address. Returns customer information if found, or null if no customer exists with that email.

  • Get Customer By ID

    Popular

    Tool to retrieve details of a specific customer by their unique ID. Use after obtaining the customer's ID to fetch their complete record.

  • Get Customers

    Popular

    Tool to fetch a list of customers. Use when retrieving multiple customer records with pagination, filtering, or sorting.

  • Get Knowledge Gap

    Popular

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

  • Get SLA Policy

    Popular

    Fetch one SLA policy by its Plain ID.

  • Get Task by ID or Ref

    Popular

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

  • Get Thread By ID

    Popular

    Fetches a thread by ID, including customer info, status, priority, labels, and assignments. Returns null if the thread is not found.

  • Get User By ID

    Popular

    Fetch workspace user/team member by ID. Returns detailed information about a workspace team member including their name, email, status, and avatar. Note: This fetches workspace users (team members), not customers. Use GET_CUSTOMER_BY_ID for customer data.

  • List AI Feedback

    Popular

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

  • List Customer Groups

    Popular

    List one paginated page of customer groups with optional external-ID filtering.

  • List Knowledge Gaps

    Popular

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

  • List SLA Policies

    Popular

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

  • List Tasks

    Popular

    List workspace tasks with pagination, filtering, and sorting.

  • List Tiers

    Popular

    List tiers with cursor pagination. Set include_details=true to include memberships and SLA configuration, which require additional permissions.

  • List Threads

    Popular

    Retrieve up to 50 threads from one page, optionally filtered by status. Omit the cursor for the first page and pass the returned end cursor to fetch the next page.

  • Remove Customer From Group

    Popular

    Removes a customer from one or more customer groups in Plain. Use this action to revoke customer group memberships. The customer must be a member of the specified group(s) - attempting to remove a customer from a group they're not in will result in an error. Groups can be identified by their Plain internal ID (customerGroupId), unique key (customerGroupKey), or external ID (externalId). Common use cases: - Downgrade customer tier (e.g., remove from premium_tier group) - Remove customer from beta access groups - Clean up group memberships after customer status changes

  • Remove Members from Tier

    Popular

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

  • Run GraphQL Query

    Popular

    Execute an arbitrary GraphQL document against Plain without a safety gate. Prefer a specific Plain action when one exists. Inspect the full document first: mutations can immediately and irreversibly create, deliver, update, or delete data. Required authorization depends on its operations and selected fields, so this action cannot predeclare sufficient permissions; the connected credential must already have them. Provider GraphQL errors, including mutation business errors, are returned in the errors field and must not be treated as success merely because HTTP returned 2xx.

  • Send Message

    Popular

    Immediately and irreversibly deliver a message through an existing thread. The thread determines the delivery channel and primary recipient or channel; this action does not let the caller review or override them. Email threads can add CC and BCC recipients. By default Plain sends as the connected machine user, while impersonation can make the message appear from a customer or an allow-listed workspace user.

  • Update Company

    Popular

    Upserts (creates or updates) a company in Plain. Provide companyId to update by ID or companyDomainName to upsert by domain. When both identifiers are omitted, domainName is also used as companyDomainName for compatibility. Use this to create new companies, update existing company details (name, domain, contract value), or assign account owners.

  • Update Company Tier

    Popular

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

  • Update Tier SLA

    Popular

    Update a legacy tier SLA without changing its SLA type.

  • Update SLA Policy

    Popular

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

  • Update Task

    Popular

    Update selected fields on an existing task.

  • Update Tenant Tier

    Popular

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

  • Update Thread Title

    Popular

    Tool to update a thread's title. Use when renaming a thread after confirming its ID.

  • Apply or Clear Thread SLA Policy

    Popular

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

  • Update Tier

    Popular

    Update selected fields on an existing support tier.

  • Upsert Customer

    Popular

    Tool to upsert (create or update) a customer. Use when syncing or ensuring a customer record exists before subsequent actions.

  • Add Customer To Tenants

    Idempotently add a customer to one or more tenants.

  • Add Generated Reply

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

  • Add Labels To Thread

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

  • Archive Label Type

    Archive a label type while preserving labels already on threads.

  • Bulk Delete Thread Fields

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

  • Bulk Set Thread Fields

    Create or replace multiple typed thread-field values.

  • Change Thread Assignment

    Irreversibly assign, unassign, add, or remove thread assignees. For an AI-agent ASSIGN, LIVE lets the agent reply to customers, while SHADOW observes real threads without sending customer replies.

  • Create Attachment Download URL

    Create a sensitive three-minute URL and return its virus-scan result. Download or process the file only when attachmentVirusScanResult is CLEAN. Treat INFECTED as unsafe, FAILED or PENDING as not cleared, and null as unscanned; do not fetch or expose the file in any of those states. Do not log or share the URL.

  • Create Attachment Upload Form

    Create a sensitive, two-hour presigned upload capability; no file is uploaded. Do not log or share uploadFormUrl or uploadFormData. Next, POST multipart/form-data directly to uploadFormUrl with every uploadFormData key/value as a form field and the exact binary file in the form field named `file`. After that upload succeeds, pass the returned attachment.id to a compatible message or note action.

  • Create Autoresponder

    Create an autoresponder that automatically sends outbound customer replies. Enabled autoresponders can send irreversible external messages when new threads match. Plain permits at most 25 autoresponders per workspace and delays up to 900 seconds.

  • Create Email/Slack Discussion

    Immediately and irreversibly start an external EMAIL or SLACK discussion. EMAIL delivers the first message to every emailDetails.toAddresses recipient and optional ccAddresses recipient. SLACK posts it to the connected channel selected by slackDetails.connectedSlackChannelId. Live provider authorization requires threadDiscussion:create, although the current operation page omits it.

  • Create Customer Or Thread Event

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

  • Create Label Type

    Create a label type that can be applied to threads.

  • Create Note

    Create an internal note on an existing customer thread. Plain's live API currently rejects customer-level notes without threadId even though the current GraphQL SDL marks that input nullable.

  • Create Snippet

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

  • Create Thread Field Schema

    Create a custom thread-field schema.

  • Delete Autoresponder

    Permanently delete a native autoresponder.

  • Delete Customer Group

    Permanently delete an empty customer group after confirmation.

  • Delete Note

    Soft-delete an internal note.

  • Delete Snippet

    Soft-delete a snippet while preserving historical references.

  • Delete Tenant

    Delete a tenant, unlink its customers, and remove its field values. Existing threads retain a reference to the tenant deletion record but are no longer routed through that tenant.

  • Delete Tenant Field Value

    Clear one tenant field value without deleting its schema.

  • Delete Tenant Field Schema

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

  • Delete Thread

    Permanently delete a thread and all associated data.

  • Delete Thread Field Schema

    Delete a schema and all values stored against it.

  • Escalate Thread Or Select Path

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

  • Get Autoresponder

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

  • Get Customer By External ID

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

  • Get Customer Group

    Fetch one customer group by its Plain ID. Plain's live API requires customerGroup:read for this query.

  • Get Email/Slack Discussion

    Fetch metadata for one EMAIL or SLACK side-conversation by ID. Live provider authorization requires threadDiscussion:read, although the current public operation page does not state that permission.

  • Get Label Type

    Fetch one label type by Plain ID or external ID.

  • Get Snippet

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

  • Get Tenant

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

  • Get Thread By Reference

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

  • Import Thread

    Import one historical thread without triggering SLAs or autoresponders.

  • Import Thread Messages

    Import up to 25 historical messages and return one result per input message. Reusing a message externalId is idempotent and returns NOOP. The batch is non-atomic: successful messages remain committed when others fail, with per-message results and a top-level bulk_partial_failure error. Attachments require previously uploaded IDs.

  • List Autoresponders

    List native Plain autoresponders in priority order.

  • List Deleted Threads

    List deletion-audit records for threads.

  • List Email/Slack Discussions

    List only EMAIL and SLACK side-conversations with filters and pagination. Live provider authorization requires threadDiscussion:read, although the current public operation page does not state that permission.

  • List Generated Replies

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

  • List Label Types

    List active and/or archived label types.

  • List Snippets

    List the workspace snippet library with cursor pagination.

  • List Tenant Field Schemas

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

  • List Tenants

    List tenants with current filters and cursor pagination.

  • List Thread Field Schemas

    List the workspace's custom thread-field schemas.

  • List Threads By External ID

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

  • List Threads With Rich Filters

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

  • Mark Customer As Spam

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

  • Remove Customer From Tenants

    Idempotently remove a customer from one or more tenants.

  • Remove Labels From Thread

    Remove one or more concrete labels from a thread.

  • Reorder Autoresponders

    Reorder native autoresponders in one call.

  • Reorder Thread Field Schemas

    Reorder one or more thread-field schemas.

  • Reply To Email

    Immediately and irreversibly send an external reply to an inbound email. Plain inherits the primary recipients and email channel from the referenced inbound email. The request can add CC and BCC recipients or send from a verified alternate support address while preserving email-client threading.

  • Search Customers

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

  • Search Tenants

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

  • Search Threads

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

  • Send Email/Slack Discussion Message

    Immediately and irreversibly deliver a message in an existing discussion. The discussion ID determines the external recipients and original EMAIL or SLACK channel; they cannot be reviewed or overridden here. Live provider authorization requires threadDiscussionMessage:create, although the current operation page omits it.

  • Send New Email

    Immediately and irreversibly send an external email to a customer. Plain uses the customer's email as the primary recipient. The request can add CC and BCC recipients, send from a verified alternate support address, and attach the email to an existing thread; the delivery channel remains email.

  • Set Customer Tenants

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

  • Transition Thread Status

    Move a thread to Todo, Snoozed, or Done.

  • Unarchive Label Type

    Restore an archived label type for use on new threads.

  • Unmark Customer As Spam

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

  • Update Autoresponder

    Update an autoresponder that automatically sends outbound customer replies. Enabling or changing a matching autoresponder can cause irreversible external messages. Plain permits at most 25 autoresponders per workspace and delays up to 900 seconds.

  • Update Generated Reply

    Record teammate feedback on a generated reply.

  • Update Label Type

    Update mutable label-type properties using field wrappers.

  • Update Note

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

  • Update Snippet

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

  • Update Thread Attributes

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

  • Update Thread Field Schema

    Update mutable properties of a thread-field schema.

  • Upsert Customer Group

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

  • Upsert Tenant

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

  • Upsert Tenant Field

    Set one typed custom field value for a tenant.

  • Upsert Tenant Field Schemas

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

Built for the way you actually work

No code, no engineers

Connect in a few clicks and start using your AI right away. If you can use the apps you already love, you can do this.

Sounds like you, not like a bot

Train your AI on your offer, your voice, and the way you actually talk to clients — it picks up where you leave off.

Plugs into the stack you already use

No need to rip out your CRM, your scheduler, or your email tool. Your AI works inside the apps running your business today.

Your data stays yours

Client conversations, lists, and credentials are scoped to your workspace. Nothing gets shared, sold, or used to train anyone else’s AI.

What you can do once Plain is connected

Onboard new clients without lifting a finger

When someone signs up, your AI greets them, sets up their next step in Plain, and keeps the momentum going — even at 2am.

Reply to leads in seconds, not days

Your AI watches Plain for new inquiries, answers questions in your voice, and books the call before they cool off.

Get your weekends back

Hand off the repetitive Plain work — follow-ups, reminders, updates, simple admin — and stop being the bottleneck in your own business.

How to connect Plain to your agent

  1. 1

    Start using FormWise for free

    Sign up in under a minute.

  2. 2

    Find Plain in your connected apps

    Inside FormWise, open Connectors and look for Plain.

  3. 3

    Hit "Connect"

    Click "Connect Plain" and log in like you normally would. We only ask for the permissions your AI actually needs.

  4. 4

    Tell your AI what to do in Plain

    Build a quick AI Agent (it's like writing instructions, not code), and pick the Plain actions you want your AI to handle.

  5. 5

    Watch it run

    Send it a real-world task and watch your AI take care of Plain for you. Tweak the wording until it feels just right.

Powered by the AI you already trust

Your Plain workflow runs on the same world-class AI used by ChatGPT, Claude, and Gemini. We handle the technical part — you just tell your AI what to do, in plain English.

  • OpenAI
  • Anthropic Claude
  • Google Gemini

Questions other Plain users had before signing up

Do I need to know how to code?

Not even a little. If you can use Plain today, you can set this up. You'll connect Plain, tell your AI what it should help with, and you're live. The whole thing is built for coaches, course creators, agencies, and operators — not engineers.

Will my clients know they're talking to an AI?

Only if you want them to. Your FormWise AI is trained on your voice, your offer, and the way you actually communicate — so it sounds like a thoughtful team member, not a clunky chatbot. Most people can't tell.

Can I make it sound like me?

Yes. You can give your AI examples of how you write, the questions you usually ask new clients, the way you handle objections, and the language you use about your offer. The more you give it, the more it sounds like you wrote it.

What if I want to take over a conversation?

You're always in control. You can step in at any point, take over from your AI, or stop it from sending messages until you've reviewed them. Think of it as a teammate, not a replacement.

Is my client data safe?

Yes. Your Plain login and client information stay scoped to your workspace. We don't sell it, we don't share it, and we don't use your data to train anyone else's AI. You can disconnect Plain or delete everything any time.

What happens when Plain updates their app?

We handle it. When Plain adds new features or changes how something works, we update the integration in the background. You don't have to do anything — your AI just keeps working.

How fast can I actually get this running?

Most people are up and running the same day they sign up. Connecting Plain takes a few minutes. Teaching your AI to handle the work the way you'd want it done is the part worth slowing down for.

What is FormWise?

FormWise is the AI agent builder for coaches, course creators, and agencies. You connect the apps you already use — like Plain — train your AI on your offer and voice, and let it handle the work you've been doing manually: onboarding, follow-ups, support, admin. No code, no developers, no engineering team required.

Can I sell AI agents to my clients?

Yes. A lot of FormWise users build AI assistants and sell them as part of their offer — done-for-you AI setups, white-label assistants for client businesses, custom GPTs trained on a client's brand. You can charge a setup fee, a monthly retainer, or both.

Can I embed my AI on my website or in my course?

Yes. Every AI you build in FormWise can be embedded on your site, dropped into your course platform, or shared as a standalone link. Your clients and students just open it like any other web page — no app to download, no login hoops.

Do I need to know anything about AI to use this?

No. If you can describe what you want your AI to do in plain English — "greet new clients, ask these 3 questions, book them a call" — FormWise can build it. We handle the models, the prompts, the connections. You handle the part you already know: what your business actually needs.

About Plain on FormWise

Plain is a collaborative support platform for B2B support teams, offering a modern, AI-powered interface to consolidate support channels and assist customers efficiently.

Connect Plain once and your FormWise AI gets 119 things it can do inside it. That means your AI can handle the Plain work in your business — the messages, the updates, the follow-ups, the admin — the way you would, just faster and around the clock.

You don't need to know how any of it works under the hood. We take care of keeping the connection alive, retrying if something fails, and making sure your data only ever moves where you tell it to.

New to Plain? Take a look at www.plain.com.

Stop doing the Plain work yourself

Hand it off to an AI assistant that sounds like you, works around the clock, and never forgets a follow-up. Free to start.