Needs reply feed

Which conversations entered, returned to, or were revised in Needs reply.

View as Markdown
GET/inbox/changes

Requires inbox:read on an API key; a sign-in session or an MCP client is refused with 403 An API key is required. tRPC context.inbox.changes, with an API key only. No MCP tool. Only owners and admins can add inbox:read to a key.

Reports which conversations entered, returned to, or received a new customer message in the inbox's Needs reply list. Poll every few minutes with the stored cursor; each poll returns only what changed since the last. GET /tickets is ordered by latest message, so it misses a conversation that comes back without one: a late classification, a restore, or mail filed back into the inbox. The feed only reports; it never drafts, assigns or sends.

A poll that timed out can be repeated: the same cursor returns the same page. Skip any conversationId and inputRevision pair you have already handled.

  • Leaving Needs reply is not reported. Read the ticket before acting on an old entry.
  • A conversation that leaves and comes back between polls with no new customer message produces no entry, and one that enters and leaves between polls produces none.
  • Each poll checks the whole organization, whatever the key's connection access; a key limited to some connections still sees only their conversations.

A 400 Invalid cursor means the cursor was not issued to your organization: start again without cursor.

x-api-key<token>

In: header

Query Parameters

limit?integer

Page size, 1 to 500.

Range1 <= value <= 500
Default100
cursor?string

nextCursor from the previous poll. Leave it out to read the feed from its start: every entry for the mailboxes you may read, including conversations that have since left Needs reply.

Length1 <= length <= 64

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/inbox/changes"
{  "items": [    {      "sequence": "string",      "conversationId": "string",      "inputRevision": -9007199254740991,      "reason": "entered",      "recordedAt": "string"    }  ],  "nextCursor": "string",  "hasMore": true}