API
Discussion
status is now OPEN or RESOLVED. Agent activity moved to agentStatus (UNKNOWN, IDLE, and related values). If you filter or switch on the old discussion status values (IDLE, IN_PROGRESS, APPROVAL_REQUESTED), update those clients.DiscussionsAPI
Added
isCustomAgent on MachineUser. true when the machine user is an agent the workspace built itself, rather than an ordinary API integration.Machine users- Added
thread.note_mention_createdwhen a note mentions a machine user (for example an agent). Payload includesthread,note, andmentions(an array ofmachineUser). - Added
attioandemail_domaintotenant.sourceonthread.tenant_updated.
API
Added
createTenant. It fails if a tenant already exists with the given externalId. Use upsertTenant when you want create-or-update. Requires tenant:create.API
- Added
threadsByExternalIdto list every thread with a givenexternalId, across customers.threadByExternalIdstill returns a single thread for one customer. - Added
knowledgeSourceCitationsByThreadfor the knowledge sources cited by AI replies on a thread.
API
Added
updateThreadExternalId. Pass externalId: null to clear it. Requires thread:edit.Updating threads- Added
WAITING_INDEFINITELYtostatusDetail.typeonthread(snoozed with no duration). The same value is available on the thread type in the API. componentUser.usermay be amachineUseras well as auserwhen a UI component references a machine user.
API
Added
importThread and importThreadMessages for backfilling historical threads without firing SLAs or autoresponders. Each externalId is idempotent (NOOP on replay). Requires thread:import.Importing threads- Added
numberValueonthreadField. - Added
NUMBERtothreadField.type.
API
Added a paginated
discussions query with filters for user and discussion type.Fetch discussionsAPI
Added
webhookDeliveryAttempts so you can inspect delivery attempts, including response status and body, without leaving the API.Delivery attemptsAPI
Added
createDiscussion, sendDiscussionMessage, and the single discussion query, so you can open a side-conversation on a thread and post into it programmatically.Create a discussion · Send a messageAPI
Added
importCustomers, importTenants, and importTenantFieldSchemas for bulk backfills from another system. Each is idempotent on externalId and returns added, updated, and skipped counts.API
Added
lockThread to freeze a thread so non-admin users cannot reply or make changes.API
Added
updateThreadAgentStatus to set a thread’s AI agent status to IN_PROGRESS, HANDED_OFF, or HANDLED.Building agentsAPI
Tasks are now available over the API:
createTask, updateTask, deleteTask, plus task, taskByRef, and a filterable tasks query.TasksAPI
Added
labelTypeByExternalId, so you can look up a label type by the ID it has in your own system.Label typesAPI
Added
deleteThread for permanently deleting a thread.Deleting threadsAPI
Added
searchKnowledgeSources to search the knowledge your agents draw on.Searching knowledgeAPI
Added
upsertTenantField, deleteTenantField, and deleteTenantFieldSchema, completing tenant field management over the API.Tenant fieldsAPI
Added the
tenantFieldSchemas query and upsertTenantFieldSchema mutation, including field visibility.Tenant fieldsAPI
Added
deleteTenant. Deleting a tenant unlinks it from all customers and removes its fields.Deleting tenantsAPI
Added the
knowledgeSources query and deleteKnowledgeSource mutation.Searching knowledge- Added
additionalAssigneesonthread. - Added
externalIdandisExcludedFromAionlabelType.

