Atune Docs

Changelog

Product and developer-platform changes, newest first.

2026-10-13

Higher ingest limit, per workspace

The ingest rate limit is now set per workspace, with a default of 2,000 messages per 10 seconds (was 100) for events, and separately for identify/group writes. The limit is soft under parallel bursts (known limitation). A full Segment batch of 1000 messages is accepted. With batching on in Webhooks (Actions), set Batch Size to 500 or lower so parallel batches fit. A 429 now says the limit, that nothing was stored, and when to retry, and Atune counts refused messages per workspace. See When you get 429.

2026-10-12

Segment batches up to 512 KB

/api/v1/segment now accepts batches up to 512 KB and 1000 messages. Before, every request was limited to 16 KB, so a Webhooks (Actions) batch of more than about 15 events was refused with 413 and lost. Each message still has a 16 KB limit: an oversized message inside a batch is listed in rejected and the rest is stored. The other endpoints keep the 16 KB limit, and every message still counts toward the 100 writes per 10 seconds, so keep Batch Size at 50 or lower. See Batch limits.

2026-10-11

Clerk apps: pass the account to the proxy (atune 0.1.5)

Inside a Next.js proxy, Atune could not read the Clerk session, so a Clerk app wired as the docs showed sent no events. From atune 0.1.5, pass the account from your clerkMiddleware callback: return atune(request, NextResponse.next(), { account: clerkAccount(auth) }). npx atune init now writes this for Clerk apps. Supabase sessions are read from the request's cookies, and ATUNE_URL defaults to https://useatune.com when it is unset. See Chaining with an existing middleware.

2026-10-07

Connect PostHog

Already on PostHog? Choose Already using PostHog on Install and click Connect PostHog. Atune imports your last 90 days of usage and syncs new events every 15 minutes, so you see customer health the same day without installing anything. Region, project and accounts are inferred from your PostHog sign-in and groups. See Connect PostHog.

An account counts toward your plan from 3 events

A customer account now counts as a tracked account when it has 3 or more events in the rolling 30 days, from any of its users. Before, one event was enough. A one-off visit, or a customer you imported that hasn't started using your product yet, no longer uses up your plan. See Billing.

2026-10-06

Install on any backend

The install prompt now looks at your project first and picks one path: the middleware on Next.js, the new track() on any other Node backend (Express, Hono, Fastify, Remix, workers), or the HTTP API from any other language. track() ships in atune 0.1.3: it sends one named event, never throws, and gives up after one second. See Any backend.

Users without a company

In a product with companies, people Atune can't place in a company yet no longer show up as accounts. The Accounts list shows companies only, and a Users without a company note links to those people under No company on the Users page. They get no Inbox actions or alerts, and they move to their company once your app sends a group call or a group ID. Products without companies are unchanged. See Users without a company.

Mobile users no longer leave accounts of one behind

Segment's mobile SDKs send track without a group id, and apps often call group only at login. A mobile user's first events could land on an account of one named after the user's id, and stay there as a phantom account at risk. When such a user joins a real account, Atune now moves those events to that account and removes the account of one. This also cleans up phantom accounts that already exist. Accounts of one that reported a paid subscription are kept. Segment ingest also reads the account from the reserved company object (traits.company.id).

2026-10-05

Identify no longer creates accounts

An identify without an account no longer turns an unknown user into an account of one. B2B sources such as Segment often send identify without a group id, and every such user showed up as an account of their own. Atune now keeps the user's name and email until a group call or a track with a group id places them in an account. Only a track without any account creates an account of one. Segment ingest also reads numeric account IDs and company_id, account_id and group_id.

Users and user health

A new Users page lists every person your product sends, once per person even when they belong to several accounts. Each person gets a user health score from active days, value use, recency and trend, and a status: Healthy, Watch, Risk, Inactive or Learning. Each person also has a user page with their accounts, what they do and their recent activity, and the account page now links every person to it. There is nothing to set up. See Users and user health.

Subscription value and downgrades

Events accept accountMrr and accountCurrency next to accountPlan and accountSeats, and Segment reads mrr/currency (or accountMrr/accountCurrency) from group and identify traits. Atune now keeps a history of stage, plan, seats and MRR. A paying account that lowers its MRR, drops seats, moves to a cheaper plan or goes back to trial gets a Downgraded action in the Inbox. The account page shows MRR and the history, and the Accounts list has an MRR column. The SDK's getAccount can return a subscription with the same fields.

Trial or paying: reported vs assumed

Atune never guesses who pays. Accounts your app has not sent accountStage for are now marked Assumed trial, and the Accounts list explains when no account has a reported stage.

Plan from Segment group and identify

Segment ingest now reads the account's plan, seats, stage and trial end from group and identify traits (plan, seats, accountStage, trialEndsAt, and their account* names). Before this change, the plan you sent through Segment was dropped and the account showed the plan as not set.

Accounts of one don't count against the plan limit

The plan meter now counts only real customer accounts. A person without an account (an account of one) counts as a user instead, and no longer toward the free plan's 25 accounts. Billing and the sidebar also show tracked users: distinct people with activity in the rolling 30 days. Users are shown for context and are not limited on any plan.

Identify and track without an account

/api/v1/segment now accepts identify and track without a group id, and /api/v1/identify accepts a userId without an accountId. A known user's traits are applied to every account they belong to. Their events go to the account they were most recently grouped into. A user without any account becomes an account of one, which is how B2C products work in Atune. Segment batches now store the valid messages and list the invalid ones in rejected, so one bad message no longer rejects the whole batch.

2026-10-02

Versioned API is canonical

/api/v1/events, /api/v1/identify, /api/v1/segment and /api/v1/understand are now the documented API surface, and the SDK sends to /api/v1/* by default. The unversioned /api/events, /api/identify and /api/segment paths keep working for existing installs and behave identically.

2026-07-26

Docs launch

Atune now has public docs at /docs. The first version covers quickstart, manual setup, capture-first concepts, identity and PII, SDK reference, API reference, and common guides.

Segment-compatible ingest

Segment ingest maps track, identify, group, and batch payloads into the same ingest core as native Atune capture, so teams can start with Segment or server-side GTM without changing the understanding model.

2026-07-25

Onboarding reset for operators

Admins can reset a workspace during testing. This keeps onboarding QA fast without adding product-facing controls for customers.

2026-07-24

understand()

The SDK gained understand(entity, question). It calls /api/v1/understand and returns grounded answers with knows, confidence, citations, a recommended next action, and the supporting signal bundle.

MCP server

npx atune mcp exposes the same understand call as a Model Context Protocol tool for AI agents.

Company context refinement

Settings gained a company-understanding page. Founders can confirm or correct Atune's understanding of product purpose, positioning, ICP, jobs to be done, and value events.

Operator admin dashboard

Admins can inspect operational snapshots for Stripe, Clerk, application data, environment setup, cron, and recent AI usage.

2026-07-23

Subscription model

Atune added Build, Grow, and Run plans. Plans meter signal volume, not understanding capability. Ingest never stops; free workspaces can pause new computation only after the grace period and only when enforcement is enabled.

SDK install primitive

npx atune init wires a Next.js app by installing the SDK, patching middleware, and writing server-side environment variables. Behavior capture is fire-and-forget and does not read request bodies.

On this page