Integrations
Integration

Bring Plain support events and threads into Sazabi

By Sazabi Team

Last verified on Nov 8, 2026.

A support thread is often the first report of an outage. A customer writes in before any dashboard turns red, and the useful details are in the message: which account, which action, roughly when. The fix is in your logs, and nothing joins the two.

Sazabi, the AI-native observability and security platform, can take Plain's events as records next to your infrastructure and application logs. It can also give the agent read access, and optionally write access, to Plain itself.

What Sazabi reads from Plain

Webhook events. Plain delivers events such as threads, customers, labels and comments through webhook targets. There are two ways to set one up, and they differ in who owns the target:

  • Connect your account. You give Sazabi a machine user API key with webhookTarget:create, webhookTarget:edit, webhookTarget:delete, webhookTarget:read and subscriptionEventTypes:read. Sazabi lists the subscribable event types and manages one consolidated webhook target, because Plain caps a workspace at 25.
  • Send to an endpoint. You create the webhook target in Plain yourself and paste the intake URL. Sazabi never sees a Plain API key, and picking event types happens in Plain.

Per Plain's webhook documentation, each request body carries id, type, timestamp, workspaceId, payload and webhookMetadata. Sazabi stores the full payload as searchable attributes.

Agent connectors. The OAuth connector lets the agent search threads by customer or topic, read customer profiles, browse tenants and review thread timelines, with writes restricted by default. The API-key connector adds replying to threads, internal notes, assigning, and marking threads done or todo, and has a read-only toggle.

Questions it answers

  • Which customers wrote in within ten minutes of that deploy?
  • Is this new thread the same failure other customers have already reported?
  • What errors did the API log for the account named in this thread?
  • Which tenants are affected, going by the threads that mention the symptom?
  • Did a support event arrive twice, or is it a retry?

A worked example: a thread and the error behind it

Plain guarantees at-least-once delivery and says the id field can serve as an idempotency key, and it retries failed deliveries for about five days. That is worth remembering when you count events. A record for a new thread looks like this, with fictional values:

{
  "id": "evt_example_01",
  "type": "thread.thread_created",
  "timestamp": "2026-11-08T09:14:22.000Z",
  "workspaceId": "w_example",
  "payload": {
    "thread": {
      "title": "Exports keep timing out"
    }
  }
}

The payload is abbreviated here, since Plain's shape varies by event type. Say three of these arrive in a quarter hour. Ask from the CLI:

sazabi logs ask "Plain thread.thread_created events from the last 30 minutes, and API errors in the same window"

Sazabi returns the support events and the service logs in one answer. You can tell whether the three threads came from one tenant, and whether the export service logged timeouts at the same time. If the same id shows up twice, that is a redelivery, not a second customer.

With the connector enabled, the follow-up goes in a thread: "Search Plain for other threads about export timeouts this week." The agent reads Plain through its tools, and you decide whether it should write anything back.

How it fits with other integrations

Plain is a customer-support source, and it works best beside the systems that produce the errors customers describe. Pair it with Sentry or PostHog for product-side signals, and with Slack where incident channels live. Webhook-based sources share a pattern covered in Webhooks. The integrations index lists the rest, and pricing explains how volume counts.

Ways to connect

  • Plain (MCP connector): Give the Sazabi agent tools to search and manage support threads, customers, and tenants from your Plain workspace.
  • Plain (API key) (MCP connector): Give the Sazabi agent tools to search and manage Plain support threads and customers using a Plain API key instead of OAuth.

Log sources

  • Plain (native log source, customer support): Connect your Plain workspace so Sazabi can manage a webhook target for the support event types you select.
  • Plain (manual log source, customer support): Create a Plain webhook target pointed at your Sazabi intake URL to stream support events into Sazabi without sharing a Plain API key.

Frequently Asked Questions

Which Plain event types can I stream?

On the connected-account path Sazabi lists every subscribable Plain event type and you pick from that list. On the endpoint path you choose the types in Plain when you create the webhook target.

Does Sazabi create more than one webhook target in Plain?

No. Plain allows at most 25 webhook targets per workspace, so Sazabi consolidates your selections into a single target.

Can the agent reply to a Plain thread?

Through the API-key connector it can reply to threads, leave internal notes, and assign or mark threads done or todo. Write operations can be restricted with the connection's read-only toggle. The OAuth connector restricts writes by default.

Why are some fields missing from an event?

Plain's webhook payload structure varies by event type. Sazabi stores the full payload as searchable attributes, so every field Plain sends is available.

Sources

  1. Plain connects through a native log source, a manual log source and two MCP connectors (accessed Nov 8, 2026)
  2. Sazabi manages one webhook target for the selected event types, needs five webhookTarget and subscriptionEventTypes permissions, Plain allows 25 targets per workspace (accessed Nov 8, 2026)
  3. On the endpoint path you create the webhook target yourself, Sazabi gets no API key, and the full payload is stored as searchable attributes (accessed Nov 8, 2026)
  4. The OAuth connector searches threads, customers and tenants, and write operations are restricted by default (accessed Nov 8, 2026)
  5. The API-key connector can reply to threads, leave notes, assign and mark threads done or todo, with a read-only toggle (accessed Nov 8, 2026)
  6. Webhook body fields id, type, timestamp, workspaceId, payload and webhookMetadata; at-least-once delivery with id as an idempotency key; retries over about five days (accessed Nov 8, 2026)