/

Customer Agent 3.3 Release

Customer Agent v3.3 has a rewritten engine. It searches your knowledge as many times as it needs, then ends each customer message with one action: reply, ask a question, hand off, answer part and hand off the rest, or skip a message that needs no reply. Anything you write in your custom instructions now takes priority over its default behavior, so you can change when it hands off, what it asks, how it writes and what it says about itself in your own words. It also replies 50% faster. To try it, open Agents → Customer Agent → Preferences and update Custom instructions.

  • Every reply is checked before it's sent. Each sentence and code block must be backed by the thread, the customer's attachments, Customer Agent's searches or your instructions, and every link must come from a search result or your instructions. A reply that fails goes back to be rewritten, or Customer Agent hands off instead, so customers never see a failed reply.

  • It answers more, and asks and hands off less. It answers with what your knowledge and the thread support, says plainly what it can't confirm, and asks a single question only when the answer depends on a detail it doesn't have.

  • Handoffs are clearer. Outage reports are handed off at once and set to Urgent, and security incidents are set to High. Customer Agent never hands off in silence, and the customer hears "someone will pick this up" at most once per thread. When only part of a request needs your team, it answers that part and hands off the rest in one step.

  • It stays out of your team's threads. Once a teammate, or an integration replying as a machine user, replies to the customer, the thread stays with your team.

  • The docs publish the defaults and the fixed rules. They list every default behavior, such as when it skips a message, asks a question or hands off, and the short list of rules no instruction can override, such as no invented facts or links and always saying it's an AI.

  • The Playground shows each step. Open the Playground to run the same agent with your saved instructions and see each search and what it found, any reply that failed its checks and why, and the action it ended on.

  • Instructions can set its name and links. Customer Agent introduces itself only when your instructions name it or ask it to, and it can share a URL that appears in your custom instructions.

  • Each message has time and step limits. A message gets up to 6 rounds of searching and writing and 45 seconds. Past either limit, Customer Agent hands off with a note for your team that says why.

More improvements

Inbox and reporting

Improvements

  • The thread header shows status, priority, assignee, SLA and channel in one row. Change status, priority and assignee from the header, press ⌘/ to show or hide the details sidebar, and click the thread reference, for example T-1234, to copy the reference, link or ID. Choose Open in channel (or press O) to jump to the original Slack, Teams or email conversation where that's possible. The title appears once, and on narrow panes the header items collapse in a set order.

  • Thread timelines group activity updates. When 2 or more activity entries such as status, assignment, label and SLA changes sit between messages, they collapse into one row, for example "Show 4 updates to status, assignment, labels". Click the row to expand it, or choose Expand all or Collapse all from the thread's ⋯ menu or the command palette (⌘K). Chat bubbles are more compact, and consecutive messages from the same person are grouped.

  • The thread details sidebar sits on the grey page background. The conversation is the focus of the thread card, and when the assistant panel is open it sits between the thread and the sidebar.

  • The timeline stays on the message you're reading. When you've scrolled up and an image or other content higher in the thread finishes loading, the timeline stays anchored to your message.

  • Rearrange labels, then save. In Settings → Labels, choose Rearrange to drag labels into a new order or nest them under another label. Choose Save to apply the whole order at once, or Cancel to discard your changes. Your team sees the new order after you save.

  • Long non-English messages are translated automatically. Long messages are translated like short ones, and contact form submissions and custom timeline entries created through the API can be translated too. A translation that repeats the original text is retried.

  • The Cc field suggests people from the customer's accounts. This includes accounts matched by email domain, and a customer in several accounts gets suggestions from all of them.

  • Inserting a suggested reply asks before replacing a draft. You confirm first when the composer already has text.

  • The To field in the email composer has a tooltip that explains who receives the reply.

  • Views that hide Ignored threads say so. A hint appears in place of an empty-looking list.

  • Relative dates follow the calendar. "Yesterday" and "N days ago" count calendar days.

  • Choose the status for new Linear issues. Set the status that Linear issues created from Plain start with.

  • CSAT requests name the last human who replied.

  • Notifications show account logos for accounts matched by domain.

  • Re-verify an additional sender domain after fixing its DNS. The Check DNS status button in email settings re-checks each pending additional sender domain and shows whether DNS is verified or still pending.

Bugfixes

  • The queue panel stays in place when you switch threads. With the queue open next to a thread, only the thread view changes.

  • Create thread works after you switch the channel to Slack. Create thread and Cancel stay usable, and picking a channel shows a short spinner while its suggested customers load.

  • Auto-reply emails are kept.

  • Replies in long email chains use a corrected References header.

Workflows

New

  • Workflows can trigger other workflows. A change made by one workflow, such as adding a label or changing priority, can start another workflow. If workflow A adds a label and workflow B triggers on that label being added, B now runs. Review your workflows that trigger on these changes to see which ones will run.

  • Thread reopened and Thread closed triggers. Start a workflow when a closed thread is reopened, for example to reassign it or restart its SLA, or when a thread is closed, for example to send a follow-up or tag it for review. Choose either one in the trigger picker when you add a trigger.

  • Cancel workflow runs from the app. Choose Cancel run in the run view or the Runs sidebar to stop a queued or waiting run. To stop every pending run of a workflow, open its ••• menu and choose Cancel pending runs. Runs already in progress finish, and new runs keep starting while the workflow is published. You need permission to edit workflows.

Improvements

  • If/else steps group conditions under All of, Any of or None of. Each branch shows its quantifier once, nested groups sit on their own rail, and condition values appear as chips with +N when more values exist. Select an if/else step or one of its branches to highlight the lines in and out of it. Clicking a branch on the canvas scrolls the side panel to that branch, and clicking a branch in the panel highlights it on the canvas.

  • Sidekick's Plain write tools are grouped by area in the Ask Sidekick step. Each area shows an "N of M enabled" count, so you can see which kinds of change the step is allowed to make.

Sidekick and Customer Agent

New

  • Sidekick Agent can list, explain and edit SLA policies. Ask it to list your SLA policies, explain one, or change one, for example "make the first response target 2 hours for Tier 1".

Improvements

  • Sidekick's Plain tools are grouped into 13 collapsible areas. On Agents → Sidekick Agent → Plugins → Plain, the 112 Plain tools sit under areas such as Threads, Customers, Accounts, Help center, Knowledge, Workflows, and SLAs and business hours, each with its tool count. Open an area to set each tool to always allowed, ask first, or never. Typing in Search tools opens every area with a match. Tools from other plugins, such as Linear, stay in one flat list.

  • Sidekick Agent searches for the tool it needs. In workspaces with many connected tools it picks the right one more often and leaves more room for the conversation.

  • Sidekick Agent reads full tool outputs. Answers built on long results, such as big lists or long threads, are more complete.

  • Sidekick explains why a Plain tool call failed. When a call is refused for a missing permission or for bad input, Sidekick receives the real reason, including the field that failed validation, so it can adjust or tell you what's missing.

  • The thread reference in an Agent session header links to the source thread. In a session started from a thread, click the reference, for example T-123, in the side panel or the Sidekick home header.

Bugfixes

  • Cancelling an OAuth connection in Sidekick returns you to Sidekick without an error.

Slack and Microsoft Teams

New

  • Mention Slack user groups from Plain. Type @ in a discussion or a Slack thread reply, or in the Send Slack notification workflow action, and pick a group such as @engineering or @on-call. Slack notifies everyone in the group, and the group shows as @handle in the timeline. Listing groups needs the usergroups:read Slack scope, which new channel and notification installs request. Suggestions show people only until your install has it, and new groups appear within 10 minutes.

Improvements

  • Slack bullet lists keep their shape. Messages with bullet points, including nested bullets, show as a list in the timeline.

  • Slack membership errors explain what happened. A message tells you when Plain can't join or read a Slack channel.

  • Microsoft Teams workflow messages show your workspace logo.

Bugfixes

  • Microsoft Teams channels stay on real-time sync through temporary Microsoft Graph errors. Plain retries the renewal of a channel's real-time subscription and recreates it only when Microsoft reports it gone.

  • Slack notification buttons match your Plain user by email in any letter case.

  • Inline formatting escapes render correctly in Microsoft Teams messages.

API and MCP

New

  • Interactive Plain views in Claude and ChatGPT. In assistants that support MCP Apps, ask about your labels to browse them as a list with nested labels, ask to see a workflow to get its steps in a read-only workflow editor, or open a thread to see its timeline, a composer to reply, and the details sidebar. If you connected Plain to Claude or ChatGPT before, reconnect the connector to pick up the new tools.

  • Static outbound IP addresses. Webhooks, customer card requests and the workflow Send HTTP request step now come from three fixed IP addresses in the UK region: 18.175.75.250, 13.43.212.141 and 13.41.120.118. Add them to your firewall allowlist. Sidekick Agent's calls to connected tools are not covered yet. See IP addresses in the docs.

  • Read Slack channel ingestion settings through Plain MCP. Assistants can see how a connected Slack channel is ingested.

Improvements

  • Plain MCP tool responses are smaller, so assistants use less context per call.

  • Machine users can set user status. Grant the userStatus:edit permission.

  • The API reference lists only operations that people can use.

  • The docs list the 6000-character limit for discussion messages.

Bugfixes

  • Machine-user replies to chat are sent to the customer.

Knowledge and Help Center

Improvements

  • Knowledge source pages that can't be read show why. A page that returns an HTTP error or sits behind a Cloudflare bot challenge is marked failed, with "Failed to fetch document (HTTP 403)" or "Page is behind a bot challenge" as the reason, so the source reflects what Customer Agent can read.

Bugfixes

  • The support portal priority filter no longer shows an empty option.

Designed, built and written by

Charlie Revett

Engineering

Emanuel Danci

Software Engineer

Get your support running on Plain in minutes.

Get your support running on Plain in minutes.

Get your support running on Plain in minutes.