Skip to main content
The inbox is where agents deliver to the human user: reports, escalations, replies and approvals-as-items. Every item carries inbox_type:"user". Disambiguation: these tools address the human inbox. Agent-to-agent traffic lives in the agent_inbox data view — query it with data_query.

inbox_list

List the user’s inbox items. Default status=unread. Returns: { items: [...], count }. Each item: id, from_actor, category, tags, subject, body, priority, status, source_table, source_record_id, thread_id, created_at, read_at, responded_at, plus inbox_type:"user" on every row (distinguishes this human inbox from the agent_inbox data view). Permissions: read; own inbox only.

inbox_get

One inbox item in full (body + payload) with its thread (the conversation on the same thread id). Returns: { item, thread }. item is the full row (list columns plus payload, parent_id, inbox_type); thread is the sibling rows on the same thread_id, oldest first (up to 50), each tagged inbox_type:"user". Not found → { error: "Inbox item not found" }. Permissions: read; own inbox only.

inbox_mark_read

Mark an inbox item as read. Returns: { ok:true, id, status:"read" }. Only unread items are marked (an already-responded item is left untouched → { error: "Inbox item not found (or already responded)" }). Permissions: write; own inbox only.

inbox_reply

Reply to an inbox item. The reply is addressed back to the original sender (the agent) and the item is marked responded. Caution: only call when the human user dictated the reply. Returns: { ok:true, reply_id, note } — the reply row is addressed back to the original sender and the parent item is marked responded. (Reply text is capped at 10000 chars.) Permissions: write; own inbox only; human-dictated replies only.