# Plain integration

> B2B customer support platform with a GraphQL API for threads, customers, tenants, labels, messaging, SLAs, workflows and more.

- Authentication: apiKey

## Tools (502)

- **acceptSuggestedLabelTypes (mutation)**: Accepts one or more pending suggested label types, creating a real label type for each and marking the suggestions as ACCEPTED
- **acceptWorkspaceInvite (mutation)**: Accept a workspace invitation using its ID
- **accountFieldSchemas (query)**: Returns the list of account field schemas defined in the workspace
- **account (query)**: Fetches a single account by its Plain-assigned ID
- **accounts (query)**: Returns a paginated list of accounts in the workspace
- **activeThreadCluster (query)**: Returns the cluster that the given thread currently belongs to, or null if the thread has not been assigned to any cluster
- **addAdditionalAssignees (mutation)**: Add one or more users or machine users as additional (secondary) assignees on a thread
- **addCustomerToAccounts (mutation)**: Adds a customer to one or more accounts
- **addCustomerToCustomerGroups (mutation)**: Add a customer to one or more customer groups (up to 25 at once), identified by group ID, key, or external ID
- **addGeneratedReply (mutation)**: Programmatically add a suggested reply to a thread
- **addLabels (mutation)**: Add one or more labels to a thread
- **addLabelsToUser (mutation)**: Add one or more team labels to a Plain user (agent)
- **addMembersToTier (mutation)**: Adds one or more tenants or companies to a tier (up to 25 per call)
- **addUserToActiveBillingRota (mutation)**: Moves a user onto the active billing rota, marking them as currently consuming an eng-rota seat
- **addWorkspaceAlternateSupportEmailAddress (mutation)**: Adds an alternate support email address to the workspace's custom domain configuration, allowing emails to be sent from and received at that address
- **agentSandboxToolPolicies (query)**: The Sidekick tool approval policies for the workspace: every catalog tool with its effective approval mode (per-workspace override merged over the factory default)
- **aiFeedback (query)**: Paginated list of the feedback your team has submitted on Plain's AI features, such as a thumbs up or down on an Ari reply, newest first
- **aiToneRules (query)**: Returns the workspace's AI tone rules, which guide how Plain's AI features phrase replies
- **answerSidekickQuestion (mutation)**: Records the person's answer to a Sidekick question card and resumes the agent with those selections
- **archiveLabelType (mutation)**: Archives a label type so it can no longer be applied to threads, while preserving it on threads that already have it
- **assignRolesToUser (mutation)**: Assigns a role to a user in the workspace
- **assignThread (mutation)**: Assign a thread to a specific user or machine user, replacing any existing primary assignee
- **autoresponder (query)**: Fetch a single autoresponder by its ID
- **autoresponders (query)**: List all autoresponders in the workspace, ordered by their configured priority order
- **billingPlans (query)**: Returns the available billing plans that can be selected for self-serve checkout
- **broadcastAudience (query)**: Fetches a single broadcast audience by its ID, or null if no audience with that ID exists
- **broadcastAudiences (query)**: Returns a paginated list of the workspace's broadcast audiences, newest first
- **broadcast (query)**: Fetches a single broadcast by its ID, or null if no broadcast with that ID exists
- **broadcastRecipientUnsubscribes (query)**: Returns a paginated list of Slack channels that have opted out of broadcasts, newest first
- **broadcastSendTargetRecipients (query)**: Who a send target resolves to right now
- **broadcasts (query)**: Returns a paginated list of the workspace's broadcasts, newest first
- **bulkCreateThreadLinks (mutation)**: Links many threads to a single target entity (a Linear issue, Jira ticket, another Plain thread, a Plain task, or a generic issue tracker) in one request
- **bulkDeleteThreadLinks (mutation)**: Deletes multiple thread links by their IDs
- **bulkJoinSlackChannels (mutation)**: Instructs the Plain Slack bot to join public Slack channels for the given workspace Slack channel integration
- **bulkUpdateConnectedSlackChannels (mutation)**: Applies many connected-slack-channel updates in a single request
- **bulkUpdateSlackChannelSettings (mutation)**: Applies many Slack per-channel setting writes in a single request
- **bulkUpsertThreadFields (mutation)**: Upserts up to 25 thread field values in a single call — useful when setting multiple fields on one or more threads at once
- **bulkUpsertWorkflowSteps (mutation)**: Atomically replace all steps in a workflow
- **businessHoursSchedule (query)**: Fetches a single business hours schedule by its ID, or null if no schedule with that ID exists
- **businessHoursSchedules (query)**: Returns a paginated list of the workspace's business hours schedules, sorted by name
- **calculateRoleChangeCost (mutation)**: Calculates the billing cost delta of changing a user's role or seat type, including prorated and full-period amounts
- **cancelHyperlineSubscription (mutation)**: Cancels the workspace's active Hyperline subscription
- **changeBillingPlan (mutation)**: Switches the workspace to a different billing plan
- **changeThreadCustomer (mutation)**: Reassign a thread to a different customer
- **changeThreadDiscussionStatus (mutation)**: Moves a discussion between OPEN and RESOLVED
- **changeThreadPriority (mutation)**: Set the priority of a thread
- **changeUserStatus (mutation)**: Manually set a workspace member's availability status (ONLINE, OFFLINE, or AWAY)
- **chatApp (query)**: Fetch a single chat app by its ID
- **chatAppSecret (query)**: Check whether a signing secret exists for a chat app
- **chatApps (query)**: List all chat apps in the workspace
- **completeServiceAuthorization (mutation)**: Finalize a service authorization after the user has completed the OAuth flow in the third-party service
- **completeSidekickMcpServerConnection (mutation)**: Complete a custom MCP server connection after the admin finishes the in-browser OAuth consent: stores the Nango connection, discovers the server's tools (tools/list), persists the snapshot, and marks the server connected.
- **connectedDiscordChannels (query)**: Returns a paginated list of Discord channels synced from a specific guild
- **connectedMSTeamsChannels (query)**: Returns a paginated list of Microsoft Teams channels that are connected to this workspace
- **connectedSlackChannel (query)**: Returns a single connected Slack channel by its Plain ID, or null if not found.
- **connectedSlackChannels (query)**: Gets all slack channels for this workspace, which match the specified filters.
- **createAccount (mutation)**: Creates a new account
- **createAiFeedback (mutation)**: Submit feedback on any Plain AI feature result
- **createAiToneRule (mutation)**: Creates a single AI tone rule with the given category and description
- **createAllTestThreads (mutation)**: Create one test thread per scenario for the signed-in user, so they get a populated inbox in a single call rather than one `createTestThread` per scenario
- **createApiKey (mutation)**: Create an API key for a machine user
- **createAttachmentDownloadUrl (mutation)**: Generate a short-lived download URL for an existing attachment
- **createAttachmentUploadUrl (mutation)**: Generate a presigned upload URL for an attachment
- **createAutoresponder (mutation)**: Create a new autoresponder that automatically sends a reply when a thread is created from a matching message source and satisfies all specified conditions
- **createBroadcastAudience (mutation)**: Creates a reusable broadcast audience
- **createBroadcast (mutation)**: Creates a new broadcast in the workspace
- **createBusinessHoursSchedule (mutation)**: Create a new named business hours schedule, optionally with its opening slots
- **createChatApp (mutation)**: Create a new chat app, which represents a source of chat messages (e.g
- **createChatAppSecret (mutation)**: Generate a signing secret for a chat app used to authenticate incoming webhook requests
- **createCustomerCardConfig (mutation)**: Creates a new customer card config
- **createCustomerEvent (mutation)**: Creates a customer event that appears in the timeline of every thread belonging to the customer
- **createCustomerGroup (mutation)**: Create a new customer group with a unique key, display name, and color
- **createCustomerSurvey (mutation)**: Creates a new customer survey (e.g
- **createCustomRole (mutation)**: Creates a new custom role in the workspace
- **createDiscussion (mutation)**: Create a new discussion
- **createEmailPreviewUrl (mutation)**: Generates a short-lived URL that can be used to preview the rendered HTML of an email
- **createEscalationPath (mutation)**: Creates a new escalation path with the given name, optional description, and an ordered list of steps (up to 20)
- **createHelpCenterArticleGroup (mutation)**: Create a new article group (folder) within a help center
- **createHelpCenter (mutation)**: Create a new help center with a subdomain, branding, and access settings
- **createHyperlineBillingPortalSession (mutation)**: Creates a Hyperline billing portal session and returns a URL where the user can manage their subscription, invoices, and payment methods
- **createHyperlineCheckoutSession (mutation)**: Creates a Hyperline-hosted checkout session for upgrading to a paid plan
- **createHyperlineComponentsAuthToken (mutation)**: Creates a short-lived authentication token for embedding Hyperline billing UI components directly in your own interface
- **createImportSync (mutation)**: Create an import job definition that continuously syncs tenant field schemas, tenants, and customers from a connected external service (Attio, HubSpot, or Salesforce)
- **createIndexedDocument (mutation)**: Manually add a single URL as an indexed document within an existing knowledge source
- **createIssueTrackerIssue (mutation)**: Create a new issue in a connected issue tracker (Shortcut, Rootly, incident.io, or GitHub) and return a `ThreadLinkCandidate` that can immediately be used with `createThreadLink` to link it to a thread
- **createKnowledgeSource (mutation)**: Create a new knowledge source that Plain AI will index and use when generating replies
- **createLabelType (mutation)**: Creates a new label type in the workspace
- **createLinearAppIntegration (mutation)**: 
- **createMachineUser (mutation)**: Creates a new machine user in the workspace
- **createNote (mutation)**: Creates an internal note visible only to your team
- **createSavedThreadsView (mutation)**: Creates a new saved threads view in the workspace
- **createServiceLevelAgreement (mutation)**: Create a service level agreement (SLA) for a tier
- **createServiceLevelAgreementPolicy (mutation)**: Create an SLA policy together with its targets
- **createSidekickCustomSkill (mutation)**: Create a workspace custom skill
- **createSidekickMcpServer (mutation)**: Register a custom (customer-owned) MCP server for Sidekick and mint a Nango Connect session for in-browser OAuth consent
- **createSnippet (mutation)**: Creates a new snippet in the workspace
- **createTask (mutation)**: Create a new task
- **createTestThread (mutation)**: Create a test thread for the signed-in user
- **createThreadChannelAssociation (mutation)**: Associates a connected Slack channel with a company or tenant so that threads from that channel are automatically routed to the correct customer context
- **createThreadDiscussion (mutation)**: Start a new discussion on a Plain thread
- **createThreadEvent (mutation)**: Creates a thread event that appears only in the timeline of the specified thread
- **createThreadFieldSchema (mutation)**: Creates a new thread field schema, defining a custom field that can be attached to threads
- **createThreadFromSlackMessage (mutation)**: Creates a thread from a top-level message in a connected customer Slack channel, along with the replies Plain has already received for it
- **createThreadLink (mutation)**: Links a thread to an external entity such as a Linear issue, Jira ticket, another Plain thread, or a Plain task
- **createThread (mutation)**: Create a new thread for a customer
- **createTier (mutation)**: Creates a new tier
- **createWebhookTarget (mutation)**: Register a new HTTP endpoint to receive Plain webhook events
- **createWorkflow (mutation)**: Create a new workflow
- **createWorkflowRule (mutation)**: Create a new workflow rule
- **createWorkflowShareLink (mutation)**: Create a content-addressed share link for a workflow
- **createWorkflowStep (mutation)**: Add a single step to a workflow
- **createWorkspaceCursorIntegration (mutation)**: Creates a Cursor integration for the workspace using the provided API token
- **createWorkspaceDiscordChannelIntegration (mutation)**: Connects a Discord server (guild) to this workspace using an OAuth authorization code
- **createWorkspaceDiscordIntegration (mutation)**: Creates a webhook-based Discord integration for this workspace using an incoming webhook URL from Discord
- **createWorkspaceEmailDomainSettings (mutation)**: Configures a custom email domain for the workspace using the provided support email address
- **createWorkspaceFileDownloadUrl (mutation)**: Generate a fresh download URL for a workspace file
- **createWorkspaceFileUploadUrl (mutation)**: Begin a two-step file upload
- **createWorkspaceMSTeamsIntegration (mutation)**: Creates a workspace-level Microsoft Teams integration by linking Plain to an Azure AD tenant
- **createWorkspace (mutation)**: Create a new Plain workspace
- **createWorkspaceSlackChannelIntegration (mutation)**: Connects a workspace Slack channel integration using an OAuth auth code
- **createWorkspaceSlackIntegrationFromAuth (mutation)**: Connects a workspace-level Slack notifications integration reusing a Slack connection the workspace already has, with no second OAuth install
- **createWorkspaceSlackIntegration (mutation)**: Connects a workspace-level Slack notifications integration using an OAuth auth code
- **createWorkspaceSlackSidekickIntegration (mutation)**: Installs Plain's Sidekick AI agent into the workspace's Slack
- **creditSpend (query)**: Every billable item the workspace has used credits on, newest first: Sidekick sessions, Sidekick actions a workflow ran, and work done by the workspace's own agents
- **cursorRepositories (query)**: Returns the list of GitHub repositories accessible via the given Cursor integration
- **customerByEmail (query)**: Fetch a customer by their email address
- **customerByExternalId (query)**: Get a customer by its external ID
- **customerCardConfig (query)**: Returns a single customer card config by ID
- **customerCardConfigs (query)**: Returns all customer card configs for the workspace, ordered by their `order` field.
- **customerCardInstances (query)**: Returns the current customer card instances for a customer, triggering a fresh load for any cards that are expired or in an error state
- **customerGroup (query)**: Fetch a single customer group by its ID
- **customerGroups (query)**: Fetch a paginated list of all customer groups in the workspace
- **customer (query)**: Fetch a single customer by their Plain customer ID
- **customers (query)**: Fetch a paginated list of all customers in the workspace
- **customerSurvey (query)**: Fetches a single customer survey by its ID
- **customerSurveys (query)**: Returns a paginated list of all customer surveys configured in the workspace, ordered by their display order
- **customRole (query)**: Returns a single custom role by its ID, or null if not found
- **customRoles (query)**: Returns all custom roles defined in the workspace
- **deleteAccountField (mutation)**: Clears an account's value for a specific field without removing the field schema itself
- **deleteAccountFieldSchema (mutation)**: Permanently deletes an account field schema and all field values stored against it across all accounts
- **deleteAccount (mutation)**: Permanently deletes an account, unlinking it from all customers and removing its fields
- **deleteAiToneRules (mutation)**: Permanently deletes one or more AI tone rules by ID
- **deleteAllTestThreads (mutation)**: Permanently delete every test thread belonging to the signed-in user.
- **deleteApiKey (mutation)**: Permanently revoke an API key
- **deleteAutoresponder (mutation)**: Permanently delete an autoresponder
- **deleteBroadcastAudience (mutation)**: Soft-deletes a broadcast audience
- **deleteBroadcast (mutation)**: Soft-deletes a broadcast
- **deleteBusinessHoursSchedule (mutation)**: Delete a business hours schedule and the slots belonging to it
- **deleteChatApp (mutation)**: Permanently delete a chat app
- **deleteChatAppSecret (mutation)**: Delete the signing secret associated with a chat app
- **deleteCustomerCardConfig (mutation)**: Permanently deletes a customer card config and stops loading that card for all customers.
- **deleteCustomerGroup (mutation)**: Permanently delete a customer group by ID
- **deleteCustomer (mutation)**: Permanently deletes a customer and all associated data (threads, timeline entries, etc.)
- **deleteCustomerSurvey (mutation)**: Permanently deletes a customer survey
- **deleteCustomRole (mutation)**: Permanently deletes a custom role by its ID
- **deletedThreads (query)**: Paginated list of threads that have been deleted
- **deleteEmailSuppression (mutation)**: Removes a hard-bounce or manual suppression for one email address
- **deleteEscalationPath (mutation)**: Permanently deletes an escalation path by ID
- **deleteHelpCenterArticleGroup (mutation)**: Delete an article group
- **deleteHelpCenterArticle (mutation)**: Permanently delete a help center article
- **deleteHelpCenter (mutation)**: Permanently delete a help center and all its articles and article groups
- **deleteKnowledgeSource (mutation)**: Delete a knowledge source and remove it from Plain AI's index
- **deleteLinearAppIntegration (mutation)**: 
- **deleteMachineUser (mutation)**: Deletes a machine user and all of its API keys
- **deleteNote (mutation)**: Soft-deletes a note
- **deleteQueuedAgentSessionMessage (mutation)**: Removes a user message that is waiting in a Sidekick AGENT_SESSION queue
- **deleteSavedThreadsView (mutation)**: Permanently deletes a saved threads view
- **deleteServiceAuthorization (mutation)**: Delete a workspace-level service authorization and revoke the associated credentials
- **deleteServiceLevelAgreement (mutation)**: Delete an SLA from a tier
- **deleteServiceLevelAgreementPolicy (mutation)**: Delete an SLA policy
- **deleteSetting (mutation)**: Delete a stored setting value at the given scope, causing the effective value to revert to the next level in the scope hierarchy (for example, removing a per-channel override exposes the workspace-level default)
- **deleteSidekickCustomSkill (mutation)**: Delete a workspace custom skill.
- **deleteSidekickMcpServer (mutation)**: Delete a custom MCP server and best-effort revoke its Nango connection
- **deleteSnippet (mutation)**: Soft-deletes a snippet
- **deleteTask (mutation)**: Soft-delete a task
- **deleteTestThread (mutation)**: Permanently delete one of the signed-in user's own test threads
- **deleteThreadChannelAssociation (mutation)**: Removes a thread channel association, unlinking the connected Slack channel from its associated company or tenant
- **deleteThreadDiscussion (mutation)**: Permanently delete a discussion from Plain
- **deleteThreadField (mutation)**: Removes a stored thread field value from a thread, identified by thread ID and field key
- **deleteThreadFieldSchema (mutation)**: Permanently deletes a thread field schema and removes all field values stored against it on every thread
- **deleteThreadLink (mutation)**: Removes an existing thread link by its ID
- **deleteThread (mutation)**: Permanently delete a thread and all its associated data from Plain
- **deleteTier (mutation)**: Deletes a tier permanently
- **deleteUser (mutation)**: Permanently remove a workspace member
- **deleteWebhookTarget (mutation)**: Delete a webhook target, stopping all future deliveries to that endpoint and removing it from the workspace
- **deleteWorkflow (mutation)**: Permanently delete a workflow and all its steps
- **deleteWorkflowRule (mutation)**: Permanently delete a workflow rule
- **deleteWorkflowStep (mutation)**: Delete a single step from a workflow
- **deleteWorkspaceCursorIntegration (mutation)**: Removes the workspace's Cursor integration
- **deleteWorkspaceDiscordChannelIntegration (mutation)**: Removes a workspace Discord channel integration, disconnecting the Discord guild from the workspace
- **deleteWorkspaceDiscordIntegration (mutation)**: Removes a webhook-based workspace Discord integration by its ID.
- **deleteWorkspaceEmailDomainSettings (mutation)**: Removes the workspace's custom email domain configuration
- **deleteWorkspaceFile (mutation)**: Delete a workspace file by ID
- **deleteWorkspaceInvite (mutation)**: Cancel and delete a pending workspace invite
- **deleteWorkspaceMSTeamsIntegration (mutation)**: Removes a workspace-level Microsoft Teams integration
- **deleteWorkspaceSlackChannelIntegration (mutation)**: Disconnects and removes a workspace Slack channel integration
- **deleteWorkspaceSlackIntegration (mutation)**: Disconnects and removes a workspace-level Slack notifications integration.
- **deleteWorkspaceSlackSidekickIntegration (mutation)**: Removes Plain's Sidekick AI agent from the workspace's Slack
- **discussion (query)**: Fetch a single discussion by its ID
- **discussions (query)**: List discussions in the workspace, with optional filtering and sorting
- **dismissSidekickQuestion (mutation)**: Dismisses a Sidekick question card so the person can reply in the chat instead.
- **dismissSuggestedLabelTypes (mutation)**: Dismisses one or more pending suggested label types without creating label types
- **duplicateBroadcast (mutation)**: Copies an existing broadcast into a new draft
- **editQueuedAgentSessionMessage (mutation)**: Edits the text of a user message that is waiting in a Sidekick AGENT_SESSION queue
- **emailSuppression (query)**: Returns the suppression for a specific email address, or null when the address is not suppressed.
- **enabledAiToneRulesText (query)**: Returns all currently enabled AI tone rules serialised as a plain-text instruction string that is suitable for injecting into AI prompts
- **escalateThread (mutation)**: Advance a thread to the next step in its escalation path
- **escalationPath (query)**: Fetches a single escalation path by its ID
- **escalationPaths (query)**: Returns a paginated list of all escalation paths configured in the workspace
- **exportWorkflowTemplate (mutation)**: Build the files for publishing a workflow as a template; writes nothing
- **forkThread (mutation)**: Create a new thread by forking from a specific timeline entry in an existing thread
- **generateAiToneRulesFromDescription (mutation)**: Uses AI to generate a set of tone rules from a free-text description of the desired communication style (up to 5000 characters)
- **generatedReplies (query)**: This API is in beta and may change without notice
- **generateHelpCenterArticle (mutation)**: Use AI to generate one or more draft help center articles from the content of a support thread
- **getMSTeamsMembersForChannel (query)**: Fetches the current members of a Microsoft Teams channel directly from the Teams API
- **helpCenterArticleBySlug (query)**: Fetch an article by its URL slug within a specific help center
- **helpCenterArticleGroupBySlug (query)**: Fetch an article group by its URL slug within a specific help center
- **helpCenterArticleGroup (query)**: Fetch a single article group by ID
- **helpCenterArticle (query)**: Fetch a single help center article by ID
- **helpCenterIndex (query)**: Fetch the navigation index for a help center by its ID
- **helpCenter (query)**: Fetch a single help center by ID
- **helpCenters (query)**: List all help centers in the workspace
- **importAccountFieldSchemasFromService (mutation)**: Fetches account field schemas from a connected external service (identified by `serviceIntegrationKey`) and upserts them into Plain
- **importAccountFieldSchemas (mutation)**: Upsert up to 50 account field schemas from an external system using their externalFieldId for idempotency
- **importAccounts (mutation)**: Upsert up to 25 accounts from an external system using their externalId for idempotency
- **importBroadcastAudienceChannels (mutation)**: Bulk-imports Slack channels into a broadcast audience's pinned `slackChannels` filter (by channel id or exact name)
- **importBroadcastRecipientUnsubscribes (mutation)**: Bulk-imports broadcast recipient unsubscribes by recipient identifier (Slack channel id/name today; email later)
- **importCustomers (mutation)**: Upsert up to 25 customers from an external system using their externalId for idempotency
- **importerAccountLists (query)**: Fetch the available account lists (e.g
- **importJobDefinition (query)**: Fetch the import job definition for a connected service integration
- **importJobs (query)**: List import jobs, optionally filtered by service integration key or import job definition ID
- **importThreadDiscussion (mutation)**: Import an existing external conversation as a discussion on a Plain thread, backfilling all messages
- **importThreadMessages (mutation)**: Backfill up to 25 historical messages onto an existing thread
- **importThread (mutation)**: Import a thread from an external system using its historical creation timestamp
- **indexedDocuments (query)**: List indexed documents across your workspace, newest first
- **interpolationVariables (query)**: List the static variables that can be interpolated with `{{ key }}` in snippets, auto-responses, bulk replies and workflow actions
- **inviteUserToWorkspace (mutation)**: Send a workspace invitation to a user by email
- **issueTrackerFields (query)**: Fetch the configurable fields for a connected issue tracker (e.g
- **knowledgeGap (query)**: Fetch a single knowledge gap by its ID
- **knowledgeGaps (query)**: Paginated list of knowledge gaps detected in the workspace
- **knowledgeSourceCitationsByThread (query)**: Returns the knowledge sources cited by AI agent replies across a thread, each linked to the timeline entry it was cited in and carrying a snapshot title (and best-effort url) plus the live cited document when it still exists
- **knowledgeSource (query)**: Fetch a single knowledge source by its ID
- **knowledgeSources (query)**: List all knowledge sources in the workspace
- **labelTypeByExternalId (query)**: Returns a label type by its external ID
- **labelType (query)**: Returns a single label type by its ID
- **labelTypes (query)**: Returns a paginated list of label types in the workspace
- **linearAppIntegration (query)**: The workspace-level Linear app integration, if one has been authorised.
- **lockThread (mutation)**: Lock a thread to prevent further replies or changes by non-admin users
- **machineUser (query)**: Fetches a single machine user by ID
- **machineUsers (query)**: Returns a paginated list of all machine users in the workspace
- **markCustomerAsSpam (mutation)**: Flags a customer as spam, hiding their threads from the inbox and excluding them from metrics
- **markThreadAsDone (mutation)**: Mark a thread as Done, indicating there is nothing left for the support team to do right now
- **markThreadAsTodo (mutation)**: Explicitly move a thread back to Todo status
- **markThreadDiscussionRead (mutation)**: Clear the unread flag on a discussion
- **mintEmbedToken (mutation)**: Issues a short-lived RS256-signed JWT (60-second TTL) that a Plain embed iframe passes to your backend so you can verify the calling user's identity and context
- **moveLabelType (mutation)**: Changes the position of a label type in the ordered list, or moves it to a different parent
- **moveWorkflow (mutation)**: Move a workflow so it sits directly after another, or to the front of the list when `afterWorkflowId` is null
- **myMachineUser (query)**: Returns the machine user that owns the current API key
- **myPermissions (query)**: Returns the full list of permission strings granted to the currently authenticated user or machine user in this workspace
- **myWorkspace (query)**: Returns the Workspace associated with the current API key or session
- **permissions (query)**: Returns the complete list of all permission strings defined in Plain, sorted alphabetically
- **previewBillingPlanChange (mutation)**: Returns a cost preview for switching to a different billing plan, including the immediate charge and the earliest date the change can take effect
- **publicEventRequestBody (query)**: Fetch the full JSON request body that Plain sent (or would send) for a given public event
- **purchaseCredits (mutation)**: Purchases a top-up credit bundle for AI features
- **refreshConnectedDiscordChannels (mutation)**: Syncs the list of Discord channels for a guild from the Discord API into Plain
- **refreshSidekickMcpServerTools (mutation)**: Re-discover a custom MCP server's tools (tools/list) and reconcile the cached snapshot: newly-appeared tools start in the "ask" (approval-required) state.
- **refreshWorkspaceSlackChannelIntegration (mutation)**: Re-authorizes an existing workspace Slack channel integration with a new OAuth auth code
- **refreshWorkspaceSlackSidekickIntegration (mutation)**: Re-authorizes an existing workspace Slack Sidekick integration with a new OAuth auth code
- **regenerateWorkspaceHmac (mutation)**: Generates a new HMAC secret for the workspace, replacing any existing secret
- **reindexKnowledgeSource (mutation)**: Trigger an immediate re-index of a knowledge source
- **relatedThreads (query)**: Find threads that are semantically similar to the given thread, ranked by relevance
- **reloadCustomerCardInstance (mutation)**: Forces a fresh load of a customer card instance, bypassing the cache
- **removeAccountFieldSchemaMapping (mutation)**: Removes the mapping between an account field schema and a built-in Plain concept, disabling any automatic behaviour (such as tier assignment) driven by that field.
- **removeAdditionalAssignees (mutation)**: Remove one or more additional assignees from a thread
- **removeCustomerFromAccounts (mutation)**: Removes a customer from one or more accounts
- **removeCustomerFromCustomerGroups (mutation)**: Remove a customer from one or more customer groups (up to 25 at once), identified by group ID, key, or external ID
- **removeLabelsFromUser (mutation)**: Remove one or more labels from a Plain user (agent) by label ID
- **removeLabels (mutation)**: Remove one or more labels from a thread by label ID
- **removeMembersFromTier (mutation)**: Removes one or more tenants or companies from their current tier (up to 25 per call)
- **removeUserFromActiveBillingRota (mutation)**: Moves a user off the active billing rota, freeing their eng-rota seat for another team member
- **removeWorkspaceAlternateSupportEmailAddress (mutation)**: Removes an alternate support email address from the workspace's custom domain configuration.
- **reorderAutoresponders (mutation)**: Set new order values for one or more autoresponders
- **reorderCustomerCardConfigs (mutation)**: Updates the display order of one or more customer card configs
- **reorderCustomerSurveys (mutation)**: Updates the display order of one or more customer surveys in a single call
- **reorderThreadFieldSchemas (mutation)**: Updates the display order of thread field schemas
- **replyToEmail (mutation)**: Replies to an existing email in a thread, threading the response correctly in email clients
- **replyToThread (mutation)**: Send a reply to the customer on a thread using the most appropriate channel automatically
- **requestDiscussionToolCallApproval (mutation)**: Ask a human to approve a tool call the agent has reported as PENDING
- **resolveAgentApproval (mutation)**: Approves or denies a pending Sidekick tool-use approval request identified by its leaseId
- **resolveCustomerForMSTeamsChannel (mutation)**: Finds or creates a Plain customer associated with the Microsoft Teams users in the given channel, using the workspace's connected MS Teams integration
- **resolveCustomerForSlackChannel (mutation)**: Finds or creates a Plain customer associated with a Slack channel, using the Slack users in that channel to identify the customer
- **resolveDiscussionApproval (mutation)**: Decide a custom agent's approval by its approvalId
- **resubscribeBroadcastRecipient (mutation)**: Removes an unsubscribe so the recipient can receive broadcasts again
- **roles (query)**: Returns all roles available in the workspace, including both built-in roles (Owner, Admin, Support, Viewer, None) and any custom roles
- **savedThreadsView (query)**: Fetches a single saved threads view by its ID
- **savedThreadsViews (query)**: Returns all saved threads views for the workspace, ordered by creation time
- **scheduleBroadcast (mutation)**: Queues a broadcast to be sent, moving it from `DRAFT` to `SCHEDULED`
- **searchAccounts (query)**: Searches accounts by name or domain (case-insensitive partial match), or by external ID (exact match)
- **searchBroadcasts (query)**: Searches broadcasts by name (case-insensitive partial match)
- **searchCustomers (query)**: Search for customers using a case-insensitive partial match across name, short name, email, and external ID
- **searchKnowledgeSources (query)**: Perform a semantic (vector) search across your workspace's knowledge sources and help center articles
- **searchPlainHelpCenter (query)**: Perform a semantic (vector) search across Plain's own public help center (help.plain.com)
- **searchSlackUsers (query)**: Searches for slack users in a slack channel based on a search term
- **searchThreadLinkCandidates (query)**: Searches for external entities (e.g
- **searchThreadSlackUsers (query)**: Searches for slack users in a thread based on a search term
- **searchThreads (query)**: Full-text search across thread titles, message contents, and customer names/emails
- **sendBulkEmail (mutation)**: Sends the same email body to multiple threads at once (up to 100 thread IDs per call)
- **sendChat (mutation)**: Send a chat message from a support agent (or machine user) to a customer on a CHAT-channel thread
- **sendCustomerChat (mutation)**: Send a chat message on behalf of a customer into an existing CHAT-channel thread
- **sendDiscordMessage (mutation)**: Sends an outbound Discord message on a thread
- **sendDiscussionMessage (mutation)**: Send a message in an existing discussion
- **sendMSTeamsMessage (mutation)**: Sends a Microsoft Teams message on a thread
- **sendNewEmail (mutation)**: Sends a new outbound email to a customer, creating a new thread by default
- **sendSlackMessage (mutation)**: Sends a Slack message on a thread
- **sendTestBroadcast (mutation)**: Sends the broadcast to the Slack channels you name, up to 10, so you can see what recipients will get before the real audience does
- **sendThreadDiscussionMessage (mutation)**: Send a reply to an existing Slack or email discussion
- **serviceAuthorization (query)**: Fetch a single completed service authorization by its ID
- **serviceAuthorizations (query)**: List all completed service authorizations for the workspace
- **serviceLevelAgreementPolicies (query)**: Returns the SLA policies in the workspace, sorted by name
- **serviceLevelAgreementPolicy (query)**: Returns a single SLA policy by its Plain ID
- **setCustomerAccounts (mutation)**: Replaces the full set of account memberships for a customer in a single call
- **setSlackAutoJoinRules (mutation)**: Replaces all auto-join rules for a workspace slack channel integration
- **setting (query)**: Fetch the effective value of a named setting at the given scope
- **setupAccountFieldSchemaMapping (mutation)**: Maps an account field schema to a built-in Plain concept such as `TIER`, enabling automatic tier assignment based on the field's value
- **shareThreadToUserInSlack (mutation)**: Sends a direct Slack message to a Plain user sharing a link to the given thread
- **sidekickAvailableTools (query)**: List the Sidekick tools available to this workspace: Plain tools always, external tools only for connected integrations.
- **sidekickCreditBalance (query)**: The workspace's current Sidekick (Plain) credit balance: the monthly allowance grant/used/remaining and when it resets, plus any purchased top-up remaining
- **sidekickCreditUsageByDay (query)**: Credit usage for the workspace, bucketed by the UTC day each billable item resolved, over the given date range
- **sidekickCustomSkill (query)**: A single workspace custom skill, including its instructions, for editing.
- **sidekickGithubAccessibleRepos (query)**: Returns every GitHub repository the Sidekick integration (identified by serviceAuthorizationId) can currently see via its OAuth token
- **sidekickGithubServiceConfig (query)**: Returns the Sidekick GitHub configuration for a workspace: which repositories are selected for Sidekick to use and any workspace-level or per-repo operating instructions
- **sidekickMcpServer (query)**: A single custom MCP server by id, or null if it does not exist in this workspace.
- **sidekickMcpServers (query)**: The custom (customer-owned) MCP servers registered for Sidekick in this workspace.
- **sidekickPosthogServiceConfig (query)**: Returns the Sidekick PostHog configuration for a workspace, including any operating instructions and the default project the agent queries
- **sidekickServiceConfig (query)**: Returns the Sidekick configuration for a connected service (Datadog, Sentry, Grafana, Linear, Notion, incident.io, Attio, HubSpot, Jira, Granola, LaunchDarkly, Grain or Cursor), identified by its serviceAuthorizationId
- **sidekickSettings (query)**: Returns workspace-level Sidekick settings, including the custom prompt that is appended to every Sidekick session's system prompt and the tools selected during onboarding
- **sidekickSkills (query)**: Every skill available to Sidekick in this workspace: Plain's system skills plus the workspace's custom skills, each with its effective enabled state.
- **sidekickToolArgOptions (query)**: Browse choices for a configurable tool arg (from `SidekickAvailableTool.configurableArgs`)
- **slackAutoJoinRules (query)**: Gets the auto-join rules for a workspace slack channel integration
- **slackUser (query)**: Returns a Slack user within a specific channel, looked up by their Slack user ID
- **snippet (query)**: Fetches a single snippet by its ID, or null if no snippet with that ID exists
- **snippets (query)**: Returns a paginated list of all snippets in the workspace
- **snoozeThread (mutation)**: Snooze a thread for a number of seconds or until the customer replies (set `statusDetail` to `WAITING_FOR_CUSTOMER`)
- **startServiceAuthorization (mutation)**: Begin the OAuth authorization flow for a third-party service integration
- **stopAgentSessionTurn (mutation)**: Stops the in-flight turn of an in-app Sidekick session; the session and its queue survive, and the oldest queued message runs next
- **stopDiscussionTurn (mutation)**: Stop the in-flight turn of an in-app discussion answered by an agent the workspace built
- **subscriptionEventTypes (query)**: List every event type that can be subscribed to on a webhook target
- **suggestedLabelTypes (query)**: Returns the PENDING AI-suggested label types awaiting review, most recently created first
- **suggestedSlackTeammates (query)**: Suggests teammates to invite to Plain, sourced from the members of the workspace's connected Slack discussion channels
- **syncUserWorkingHours (mutation)**: Replace a user's working hours schedule in full
- **taskByRef (query)**: Fetch a single task by its short human-readable ref (e.g
- **task (query)**: Fetch a single task by its ID
- **tasks (query)**: Fetch a paginated list of tasks in the workspace
- **teamSettings (query)**: Fetch the settings for a team (label type of kind TEAM) identified by its label type ID
- **testChannel (query)**: The Slack test channel for one workspace Slack integration, or null until the first Slack test thread creates it
- **testThreads (query)**: The signed-in user's own test threads, oldest first
- **threadByExternalId (query)**: Fetch a thread by the external ID you assigned it, scoped to a specific customer
- **threadByRef (query)**: Fetch a thread by its human-readable ref (e.g
- **threadBySlackMessage (query)**: Resolves a Slack message to the Plain thread it belongs to, using the same channel ID and message timestamp as `createThreadFromSlackMessage`
- **threadBySlackPermalink (query)**: Resolves a Slack message permalink to the Plain thread it belongs to
- **threadCluster (query)**: Fetches a single thread cluster by its ID
- **threadClustersPaginated (query)**: Returns a paginated list of AI-generated thread clusters for the current workspace
- **threadClusters (query)**: Returns all AI-generated thread clusters for the current workspace, sorted by thread count descending
- **threadDiscussion (query)**: Fetch a single discussion by its ID
- **threadFieldSchema (query)**: Fetches a single thread field schema by its ID
- **threadFieldSchemas (query)**: Returns all thread field schemas defined in the workspace, paginated
- **threadHeatmapMetric (query)**: Fetch a heatmap metric for threads with filter support, distributing thread activity across a 7-day × 24-hour grid
- **threadLinkGroups (query)**: Returns a paginated list of thread link groups, each representing a distinct external entity (e.g
- **thread (query)**: Fetch a single thread by its Plain-assigned ID
- **threadsByExternalId (query)**: Fetch all threads that share the given external ID, returned as a paginated connection
- **threadSingleValueMetric (query)**: Fetch an aggregate (single-value) metric for threads with rich filter and group-by support
- **threadSlackUser (query)**: Returns a Slack user associated with the given thread, looked up by their Slack user ID
- **threads (query)**: List threads with optional filtering and sorting, returned as a paginated connection
- **threadTimeSeriesMetric (query)**: Fetch a time-series metric for threads with rich filter and group-by support
- **tier (query)**: Returns a single tier by its Plain ID
- **tiers (query)**: Returns all tiers in the workspace, sorted by creation date
- **timelineEntries (query)**: Returns a paginated list of all timeline entries for a customer, ordered from oldest to newest
- **timelineEntry (query)**: Fetches a single timeline entry by its ID within a customer's timeline
- **toggleSlackMessageReaction (mutation)**: Adds or removes a reaction from a slack message timeline entry.
- **toggleWorkflowRulePublished (mutation)**: Toggle the published state of a workflow rule
- **triggerWorkflow (mutation)**: Manually trigger a workflow against a specific thread
- **triggerWorkflowRule (mutation)**: Manually trigger a workflow rule against a specific thread, bypassing its automatic trigger conditions
- **unarchiveLabelType (mutation)**: Restores an archived label type so it can be applied to threads again
- **unassignThread (mutation)**: Remove the primary assignee from a thread, leaving it unassigned
- **unmarkCustomerAsSpam (mutation)**: Clears the spam flag from a customer, restoring their threads to the inbox and metrics
- **unsubscribeBroadcastRecipient (mutation)**: Records that a broadcast recipient should not receive further broadcasts
- **updateAccountTier (mutation)**: Sets the tier for a single account, identified by its Plain ID or external ID
- **updateActiveBillingRota (mutation)**: Atomically adds and removes multiple users from the active billing rota in a single call
- **updateAgentSandboxToolPolicy (mutation)**: Set the approval mode for a single Sidekick tool in this workspace
- **updateAiToneRules (mutation)**: Updates up to 10 AI tone rules in a single call
- **updateApiKey (mutation)**: Update the description and/or permissions of an existing API key
- **updateAutoresponder (mutation)**: Update one or more fields on an existing autoresponder
- **updateBroadcastAudience (mutation)**: Updates a broadcast audience's name, filters, or both
- **updateBroadcast (mutation)**: Updates one or more fields of an existing broadcast
- **updateBusinessHoursSchedule (mutation)**: Update a business hours schedule's name, its slots, or both
- **updateChatApp (mutation)**: Update the name or logo of an existing chat app
- **updateConnectedDiscordChannel (mutation)**: Updates settings for a connected Discord channel, such as enabling or disabling it
- **updateConnectedSlackChannel (mutation)**: Updates the settings of a connected Slack channel, such as its channel type (customer or discussion) or whether it is enabled.
- **updateCustomerCardConfig (mutation)**: Partially updates a customer card config
- **updateCustomerGroup (mutation)**: Update the name, key, color, or external ID of an existing customer group
- **updateCustomerSurvey (mutation)**: Updates an existing customer survey
- **updateCustomRole (mutation)**: Updates the name and/or description of an existing custom role
- **updateDiscussionAgentStatus (mutation)**: Report what an agent the workspace built is doing on a discussion
- **updateEscalationPath (mutation)**: Updates an existing escalation path
- **updateGeneratedReply (mutation)**: Record teammate feedback (thumbs up / thumbs down and an optional comment) on a generated reply
- **updateHelpCenterArticleGroup (mutation)**: Update the name of an existing article group
- **updateHelpCenterCustomDomainName (mutation)**: Set or clear the custom domain name for a help center
- **updateHelpCenterIndex (mutation)**: Replace the navigation index (sidebar order and hierarchy) of a help center in a single call
- **updateHelpCenter (mutation)**: Update the settings, branding, or access configuration of an existing help center
- **updateImportJobDefinition (mutation)**: Disable the active import job definition for a service integration
- **updateInternalNotifications (mutation)**: Marks one or more internal notifications as read, unread, or archived
- **updateLabelType (mutation)**: Updates properties of an existing label type
- **updateMachineUser (mutation)**: Updates the name, description, or avatar of an existing machine user
- **updateNote (mutation)**: Updates the text, markdown, or attachments of an existing note
- **updateSavedThreadsView (mutation)**: Updates an existing saved threads view
- **updateServiceLevelAgreement (mutation)**: Update an existing SLA's time target, priority or label filter, business-hours setting, or breach actions
- **updateServiceLevelAgreementPolicy (mutation)**: Update an SLA policy and its targets
- **updateSetting (mutation)**: Create or overwrite a named setting at the given scope
- **updateSidekickCustomSkill (mutation)**: Update a workspace custom skill
- **updateSidekickGithubConfig (mutation)**: Updates which GitHub repositories Sidekick has access to and the operating instructions (workspace-level and per-repo) that guide its behavior
- **updateSidekickMcpServer (mutation)**: Update a custom MCP server's name or operating instructions
- **updateSidekickPosthogConfig (mutation)**: Updates the operating instructions and default project that guide how Sidekick uses the PostHog integration
- **updateSidekickServiceConfig (mutation)**: Updates the operating instructions that guide how Sidekick uses a connected service (Datadog, Sentry, Grafana, Linear, Notion, incident.io, Attio, HubSpot, Jira, Granola, LaunchDarkly, Grain or Cursor), identified by its serviceAuthorizationId
- **updateSidekickSettings (mutation)**: Updates workspace-level Sidekick settings, such as the custom prompt appended to every session's system prompt and the tools selected during onboarding
- **updateSidekickSlackConfig (mutation)**: Updates configuration for the workspace's Slack Sidekick integration
- **updateSnippet (mutation)**: Updates one or more fields of an existing snippet
- **updateTask (mutation)**: Update an existing task
- **updateThreadAccount (mutation)**: Move a thread to a different account, or pass `accountIdentifier: null` to detach it from its current account
- **updateThreadAgentStatus (mutation)**: Update the AI agent status of a thread (`IN_PROGRESS`, `HANDED_OFF`, or `HANDLED`)
- **updateThreadChannelAssociationAccountMembershipPolicy (mutation)**: Changes how accounts are assigned for an existing thread channel association
- **updateThreadEscalationPath (mutation)**: Attach a thread to a specific escalation path, or pass `escalationPathId: null` to detach it
- **updateThreadExternalId (mutation)**: Update the external ID of a thread
- **updateThreadFieldSchema (mutation)**: Updates an existing thread field schema
- **updateThreadServiceLevelAgreementPolicy (mutation)**: Assign an SLA policy to a thread
- **updateThreadSuggestedActionStatus (mutation)**: Accept or dismiss a specific AI-suggested action on a thread's catchup summary
- **updateThreadTier (mutation)**: Assign a thread to a tier, which governs the SLAs applied to it
- **updateThreadTitle (mutation)**: Update the title of a thread
- **updateTier (mutation)**: Updates the name, color, external ID, default priority, or default flag of an existing tier
- **updateUserDefaultSavedThreadsView (mutation)**: Sets or clears the default saved threads view for a specific user
- **updateWebhookTarget (mutation)**: Update an existing webhook target
- **updateWorkflow (mutation)**: Update a workflow's name, trigger configuration, entry step, or published status
- **updateWorkflowRule (mutation)**: Update the name, payload, or display order of an existing workflow rule.
- **updateWorkflowStep (mutation)**: Update a single workflow step's configuration, transitions, or canvas position
- **updateWorkspaceEmailSettings (mutation)**: Updates workspace-level email settings such as whether email is enabled and the list of BCC addresses that are copied on all outbound emails.
- **updateWorkspace (mutation)**: Update workspace settings such as the display name, logo, or allowed email domain names
- **upsertAccountField (mutation)**: Sets or updates a field value for a specific account
- **upsertAccountFieldSchema (mutation)**: Creates or updates one or more account field schemas in a single call
- **upsertAccount (mutation)**: Creates a new account or updates an existing one identified by `externalId` or `accountId`
- **upsertCustomerGroup (mutation)**: Create or update a customer group identified by `customerGroupId`, `customerGroupKey`, or `externalId`
- **upsertCustomer (mutation)**: Creates or updates a customer identified by email address, external ID, or Plain customer ID
- **upsertDiscussionToolCall (mutation)**: Report a tool call made by the discussion's custom agent, keyed by toolCallId
- **upsertHelpCenterArticle (mutation)**: Create or update a help center article
- **upsertRoleScopes (mutation)**: Sets the thread-visibility scopes for a custom role, replacing any previously configured scopes for the given resource
- **upsertTeamSettings (mutation)**: Create or update the settings for a team (label type of kind TEAM)
- **upsertThreadField (mutation)**: Sets (or updates) a single thread field value on a thread, identified by thread ID and field key
- **userByEmail (query)**: Fetch a workspace member by their email address
- **user (query)**: Fetch a single workspace member by their ID
- **userSlackChannelMemberships (query)**: Returns the Slack channels the current user belongs to within the given Slack workspace
- **users (query)**: List all human members of the workspace, with optional filters to narrow results by role assignability
- **verifyHelpCenterCustomDomainName (mutation)**: Trigger a DNS verification check for the custom domain configured on the help center
- **verifyWorkspaceEmailDnsSettings (mutation)**: Triggers Plain to re-check whether the DKIM and return-path DNS records are correctly configured for the workspace's custom email domain
- **verifyWorkspaceEmailForwardingSettings (mutation)**: Marks whether email forwarding has been configured on the custom domain
- **webhookDeliveryAttempts (query)**: List delivery attempts for a webhook target, newest first
- **webhookTarget (query)**: Fetch a single webhook target by its ID
- **webhookTargets (query)**: List all webhook targets registered in the workspace, paginated
- **webhookVersions (query)**: List all available webhook schema versions
- **workflowCapabilities (query)**: Returns which blocks (condition/action/wait steps) are available for a workflow of the given trigger type
- **workflowExecution (query)**: Get a single workflow execution by id
- **workflowExecutionsByEntity (query)**: List workflow executions filtered by the entity they ran against (e.g
- **workflowExecutionsForWorkspace (query)**: List executions across every workflow in the workspace, newest first, paginated
- **workflowExecutions (query)**: List executions for a specific workflow, paginated
- **workflow (query)**: Get a workflow by id
- **workflowRule (query)**: Get a workflow rule by id
- **workflowRules (query)**: List all workflow rules in the workspace, paginated
- **workflowShareLink (query)**: Fetch a workflow share link by its token
- **workflows (query)**: List workflows in the workspace, paginated
- **workflowTemplateGallery (query)**: Published templates for the gallery, metadata only — deprecated ones are already absent because the templates repo omits them
- **workflowTemplate (query)**: Null if no template with that ID is published
- **workOSConfiguration (query)**: Returns short-lived WorkOS admin portal URLs and an embeddable widget token so workspace admins can configure SSO, directory sync, and domain verification
- **workspaceChatSettings (query)**: Returns the workspace-level chat settings, including whether the live-chat channel is enabled for this workspace.
- **workspaceCursorIntegration (query)**: Returns the workspace's Cursor integration, or null if none has been configured.
- **workspaceDiscordChannelInstallationInfo (query)**: Returns the Discord OAuth installation URL needed to connect a Discord server (guild) to this workspace
- **workspaceDiscordChannelIntegration (query)**: Fetches a single workspace Discord channel integration by its ID
- **workspaceDiscordChannelIntegrations (query)**: Returns a paginated list of all Discord server (guild) channel integrations connected to this workspace.
- **workspaceDiscordIntegration (query)**: Fetches a single webhook-based workspace Discord integration by its ID
- **workspaceDiscordIntegrations (query)**: Returns a paginated list of all webhook-based Discord integrations configured for this workspace.
- **workspaceEmailSettings (query)**: Returns the workspace's email settings, including whether email is enabled, any custom domain configuration, and BCC addresses.
- **workspaceHmac (query)**: Returns the workspace's HMAC configuration, including the secret used to sign outbound webhook and HTTP-request payloads
- **workspaceInvites (query)**: Returns all pending invites for the current workspace
- **workspaceLinearInstallationInfo (query)**: Builds the Linear OAuth installation URL for the app actor flow (actor=app).
- **workspaceMSTeamsInstallationInfo (query)**: Returns the Microsoft Teams admin-consent URL that a workspace administrator must visit to authorize Plain's bot for the workspace's Azure AD tenant
- **workspaceMSTeamsIntegration (query)**: Returns the workspace-level Microsoft Teams integration, or null if none has been created yet.
- **workspace (query)**: Fetch a workspace by its ID
- **workspaceSetup (query)**: Returns how far this workspace has progressed through setup: channels, teammates, label types, tiers, automation and Sidekick tools
- **workspaceSlackChannelInstallationInfo (query)**: Returns a Slack OAuth installation URL for connecting a workspace Slack channel integration
- **workspaceSlackChannelIntegration (query)**: Returns a single workspace Slack channel integration by ID, or null if not found.
- **workspaceSlackChannelIntegrations (query)**: Returns a paginated list of all workspace Slack channel integrations for this workspace.
- **workspaceSlackInstallationInfo (query)**: Returns a Slack OAuth installation URL for connecting a workspace-level Slack notifications integration
- **workspaceSlackIntegration (query)**: Returns a single workspace-level Slack notifications integration by ID, or null if not found.
- **workspaceSlackIntegrations (query)**: Returns a paginated list of all workspace-level Slack notifications integrations for this workspace.
- **workspaceSlackSidekickInstallationInfo (query)**: Returns the OAuth installation URL to begin installing Plain's Sidekick AI agent into your Slack workspace
- **workspaceSlackSidekickIntegration (query)**: Returns the current workspace's Slack Sidekick integration, or null if Sidekick has not been installed

Connect Plain in General Input: https://www.generalinput.com/apps/plain